使用华荣汇">
技术频道

如何解决无线多机通信冲突问题

使用华荣汇带前向纠错的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所有,未经许可不得转载。