用廉价的315M遥控模块实现数据传输.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用廉价的315M遥控模块实现数据传输

用廉价的315M遥控模块实现数据传输?? 常用的近距离无线传输有很多种方式: 1)CC1100/NRF905 433MHz无线收发模块; 2)NRF2401 2.4GHz无线收发模块; 3)蓝牙模块; 4)Zigbee系列无线模块; 以上1/2/3模块,一个大概要几十块钱,一套加起来要一百多块,4就更贵了,单个就要上百块钱。 而常用的315M遥控模块就便宜很多了,收发一套淘宝上才卖8块钱。这种模块用途极其广泛,例如遥控开关/汽车/门禁/防盗等,大部分是配合2262/2272编解码芯片实现开关的功能。如果能够利用315M模块实现数据传输,透明传输串口数据,那将是无线数据传输最廉价的方式。 就是这种模块,不带编码解码芯片的,淘宝价一套8块钱: 发送电路图,使用声表,工作稳定: ? ? 接收电路图,超外差接收,用了一片LM358: 试验一:单片机串口发送端TX直接接315M发送模块的TXD,另外一个串口的接收端RX直接接315M接收模块的DATE输出端: 结果如上图所示,串口发送单字节0x50的时候,串口TX端的波形如上图上半部分所示,一个开始位,一个停止位,8个数据位(低位在前高位在后)。下半部分是通过315M模块无线传输之后,在串口接收端RX收到的波形。接收下来之后,发现数据传输错误,发送0x50,收到的是0x05,发0x40收到0x01,发送0x41收到0x50,发送0x42收到0x28。 传输错误的原因:在有数据时候,波形是正确的。但是串口TX端在空闲的时候,是高电平状态,而通过315M无线传输之后,空闲时候却是低电平状态!结果就是接收电路读出的数据错开了一位,数据传输错误。 试验二:串口TX经过反相后,再通过315M模块传输,接收端再反相一下,电路图如下: 这次数据传输成功了! 1)在1200bps和2400bps速率下,在数据传输期间,数据是正确的,但是数据发送完成后,接收端会收到一大堆的乱码; 2)在4800bps速率下,首字节丢失,其他字节传输正常,发送完成后仍然跟着一堆乱码。 ---------------------------------------- ? 分割线 ?------------------------------------------------------------------- 总结: 1)通过315M无线模块透明传输串口数据是可行的,但是传输之前和接收之后要加一个三极管反相; 2)在1200bps和2400bps速率下数据稳定传输;在4800bps速率下,首字节丢失,其他字节传输正常; 3)数据发送完成后,接收端会收到一大堆的乱码,所以在软件上要加上帧校验,否则可能会引起误触发。例如我的遥控小车,遥控器发送给小车的控制命令只需要单字节,我在软件上使用3个字节作为一个命令帧,格式为AT+命令字,只有连续收到A和T两个字符之后,后面收到的一个字符才认为是有效的命令,否则认为是乱码,丢弃之。 4)传输距离:发送端和接收端都采用5V供电,天线使用一小段线圈的情况下,直线5米稳定传输。更长的距离没有测试过,以后有空测试一下再补充。 经过深入研究,传输性能有了极大的提高,具体参见日志:315M模块数据传输-深入研究 315M无线模块数据传输——深入研究?? 实验一:链路层协议 (友情提醒:如果你没有过通信调试的经验,看以下文字可能会觉得晕晕乎乎的,请跳过本小节直接从第二节开始) 用示波器查看315M接收模块的输出波形,发现有以下规律: 1)平时没信号的时候输出杂波(串口一直接收到乱码); 2)有信号的时候,输出发送模块送来的波形,但是最开始的一个字节数据会有干扰; 3)信号发送结束后,输出端会有100ms左右的寂静期(输出低电平),然后重新输出杂波; 4)数据发送期间,刚开始的数据的输出波形比较干净,信号持续的时间越长,越容易出现干扰(串口接收数据出现1-2bit的误码)。 根据以上特点,确定315M模块发送的帧结构如下:引导码+间隔15ms+帧头+数据+校验位,解释如下: 1)引导码的作用:从没信号到有信号的开始阶段,数据会有干扰,所以先发送几个字节的引导码。这样即使其中的1-2个引导码因为干扰而丢掉也没有关系。接收端收到引导码不保存,自动忽略。我的盖革计数器协议中,引导码为4个字节的字符‘A’。 2)引导码+间隔15ms:保证从帧头开始,输出信号的波形非常干净; 3)帧头:告诉接收端一个帧的开始。我的盖革计数器协议中,帧头为两个字符“AT”。帧头第一个字节跟引导码相同,这样在接收端处理接收数据时可以自动忽略重复收到的字符‘A’。 4)校验:因为315M无线传输极易出现干扰,所以必须加上帧校验,避免将干扰信号误认为是有效

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档