如何解决无线多机通信冲突问题 点击:308 | 回复:0



苏金芝

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2007年8月16日
发表于:2007-12-10 15:49:00
楼主
使用华荣汇带前向纠错的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,#R


热门招聘
相关主题

官方公众号

智造工程师