登录
首页 串口通信 串口通信
回帖 发帖
正文

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

点击:4133 回复:0

附件
使用华荣汇带前向纠错的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
07-09-10 11:33

工控新闻

更多新闻资讯