OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » 如何解决无线多机通信冲突问题(转)

共2条 1/1 1 跳转至

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

工程师
2008-03-20 09:17:13    评分

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




关键词: 如何     解决     无线     多机     通信     冲突     问题    

工程师
2008-03-20 09:18:02    评分
2楼
计算延时,每包传送数据为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

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]