|
注册会员

|
1#
大 中
小 发表于 2007-9-17 04:18 PM 只看该作者
如何解决无线多机通信冲突问题
使用华荣汇带前向纠错的RF Modem,可以采用简单的监听_避让的方法来解决无线多机随机发送冲突的问题,大致思路(以WAP200B在无线表决的应用为例)如下:
;无线接收串口中断服务程序
UARTRF: JB
RI,UARTRCV
CLR
TI
RETI
UARTRCV CALL
RXPRO
;接收数据处理
LCALL
RANDOM
;每接收到一个字节的数据,就调用一次随机延时程序
RETI
;1mS的定时器中断服务程序
T1MSINT USH
ACC
PUSH
PSW
CLR
TF0
DJNZ
TX_DELAY,T1MSINTE
MOV
A,TX_NUM
JZ
T1MSINT1
;没有数据发送就结束
LCALL
TXRF
;发送数据
T1MSINT1 CALL
RANDOM
T1MSINTE OP
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
|