打印

一种解决433M的抢占式协议设计,不用载波侦听也行。

[复制链接]
1433|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
罗菜鸟|  楼主 | 2014-9-25 22:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有些433M芯片不支持载波侦听,但是至少支持RSSI信道检测,即使不支持信道检测,至少可以接收数据。
假设一款芯片不支持CCA和RSSI,至少可以采用以下方法。
在主控芯片上开辟一个定时器中断,定时时间为T。
设置一个全局标准位RxFlag,只要接收到数据就置1,最好是在接收中断里面置1,收到帧头就置1。
发送函数不去触发TX状态,只是把数据写入到芯片的FIFO中。如果芯片没有FIFO,就只是保存在主控的RAM中。
设置一个全局变量TxRandom和TxCounter。
调用发送函数的时候,把TxRandom设置为1~4的一个随机数,TxCounter设置为3。
定时器中断的时候,去检测TxRandom是否为0,如果不为0,则减1,减到0的时候,就去读RxFlag,如果RxFlag不为1,就转TX状态,如果RxFlag为1,清零RxFlag,然后TxCounter减1,TxRandom设置为1~8的随机数,然后等TxRandom减到0的时候再去判断RxFlag,为0发送,为1则TxCounter减1。TxRandom第一次为1~4,第二次为1~8,第三次为1~16,第四次1~32……反正随机数以2的N次方递增。
如果TxCounter减到0也不能发送,则算发送失败,清空FIFO

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

522

帖子

8

粉丝