使用华荣汇带前向纠错的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
|