在短距离无线传书里面,指的是类似433M这样的RF传输,最稳定可靠的是什么传输协议?
这方面有用modbus的吗
共6条
1/1 1 跳转至页
5楼
ASK调制芯片与MCU建立正确的通讯协议要求
由于电磁波在空间的传播速度接近于光速,故发射和接收必须基本上同步进行。如果在发射完毕再进行接收,电磁波在空间已经消失了,就再接收不到信号了。因此,在没有帧结构和曼切斯特编解码时,对应的时序图应该如下:
波特率为:2.4kbit/s
由于无线通信过程需要“握手”单片机和接受模块工作时,通常自己定义传输协议,不论用何种调制方式,所要传递的信息码格式都很重要,它将直接影响到数据的可靠收发。
码组格式推荐方案
前导码+同步码+数据帧 + 死区 + 下一帧前导码+......
前导码长度应大于10ms(433MHz),以避开背景噪声,因为接收模块接收到的数据第一位极易被干扰(即零电平干扰)而引起接收到的数据错误。所以采用CPU编译码可在数据识别位前加一些乱码以抑制零电平干扰。
同步码主要用于区别于前导码及数据,有一定的特征,好让软件能够通过一定的算法鉴别出同步码,同时对接收数据做好准备。
因此最后的格式应该如下:
此图中,Tp部分是前导码,可以为有特征的方波,持续时间大于10ms(433MHz);在315MHz的频率下要把Tp前导码时间加长到20 ms; Td部分是引导码,大于4ms,典型为4ms。
发射部分把这种帧格式的数据发射出去,在接受部分,检测到特征方波时,MCU将其识别为“前导码”,在接下来的时间中,如接收到4ms低电平,则认为是“引导码”,MCU将4ms以后的数据认为是“有用数据”进行接收。有用数据后的持续低电平则认为是数据完毕后的“死区”。
由于SYNOXO射频芯片是一个低功耗的芯片,所以它的DATA端的驱动只有10个UA的CMOS电平,当我们在选择MCU的时候一定要注意电平接口问题,像51内核的MCU( TTL电平)我们的芯片是驱动不了的,要加缓冲。PIC内核的MCU(COMS电平)就不会有问题。
实际应用中,重复发射4次上述码组,有一次正确即认为数据传输成功。
数据部分一般还要进行曼切斯特编解码,可以抑制数据传输的误码率。
13728989126
共6条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |