推广 热搜: 电机  PLC  变频器  服务机器人  培训  变送器  危化品安全,爆炸  西门子PLC  触摸屏  阀门 

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

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:30    评论: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

 
打赏
 
更多>同类环保知识
0相关评论

推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON