如何解決無線多機通信沖突問題
使用華榮匯帶前向糾錯的RF Modem,可以采用簡單的監聽_避讓的方法來解決無線多機隨機發送沖突的問題,大致思路(以WAP200B在無線表決的應用為例)如下:
;無線接收串口中斷服務程序
UARTRF: JB RI,UARTRCV
CLR TI
RETI
UARTRCV:LCALL RXPRO ;接收數據處理
LCALL RANDOM ;每接收到一個字節的數據,就調用一次隨機延時程序
RETI
;1mS的定時器中斷服務程序
T1MSINT:PUSH ACC
PUSH PSW
CLR TF0
DJNZ TX_DELAY,T1MSINTE
MOV A,TX_NUM
JZ T1MSINT1 ;沒有數據發送就結束
LCALL TXRF ;發送數據
T1MSINT1:LCALL RANDOM
T1MSINTE:POP PSW
POP ACC
RETI
;計算延時,每包傳送數據為64字節(無線傳輸時間32mS)
RANDOM: PUSH DPH
PUSH DPL
RANDOM1:MOV A,TX_DELAY
CLR C
SUBB A,#80 ;如果后續延時已經超過80ms(根據發送數據包的大小來確定),就不再延時
JNC RANDOME
INC RAND_P
MOV A,RAND_P
ADD A,SYSID ;S_ID,設備ID
ANL A,#0FH
MOV RAND_P,A
MOV DPTR,#RAND_TAB ;查隨機數表
MOVC A,@A+DPTR
ADD A,TX_DELAY
MOV TX_DELAY,A
CLR C
SUBB A,#40 ;如果調整后的延時時間小于40ms(取決于系統中數據包的大小),繼續調整
JC RANDOM1
RANDOME: POP DPL
POP DPH
RET
需要更詳細的資料,請發mail給我:smartrf@263.net
文章版權歸西部工控xbgk所有,未經許可不得轉載。