基础篇在这里:用廉价的315M遥控模块实现数据传输

实验一:链路层协议
(友情提醒:如果你没有过通信调试的经验,看以下文字可能会觉得晕晕乎乎的,请跳过本小节直接从第二节开始)
用示波器查看315M接收模块的输出波形,发现有以下规律:
1)平时没信号的时候输出杂波(串口一直接收到乱码);
2)有信号的时候,输出发送模块送来的波形,但是最开始的一个字节数据会有干扰;
3)信号发送结束后,输出端会有100ms左右的寂静期(输出低电平),然后重新输出杂波;
4)数据发送期间,刚开始的数据的输出波形比较干净,信号持续的时间越长,越容易出现干扰(串口接收数据出现1-2bit的误码)。
根据以上特点,确定315M模块发送的帧结构如下:引导码+间隔15ms+帧头+数据+校验位,解释如下:
1)引导码的作用:从没信号到有信号的开始阶段,数据会有干扰,所以先发送几个字节的引导码。这样即使其中的1-2个引导码因为干扰而丢掉也没有关系。接收端收到引导码不保存,自动忽略。我的盖革计数器协议中,引导码为4个字节的字符‘A’。
2)引导码+间隔15ms:保证从帧头开始,输出信号的波形非常干净;
3)帧头:告诉接收端一个帧的开始。我的盖革计数器协议中,帧头为两个字符“AT”。帧头第一个字节跟引导码相同,这样在接收端处理接收数据时可以自动忽略重复收到的字符‘A’。
4)校验:因为315M无线传输极易出现干扰,所以必须加上帧校验,避免将干扰信号误认为是有效数据。我的盖革计数器协议中,采用异或和的校验方式,具体为:将数据所有字节进行异或计算,取得一个异或和作为校验位。
5)检验的改进:经过大量测试发现,经常出现以下情况:数据的某一个bit受到干扰,例如0变成1,而恰巧校验和的同一个bit也同样因为干扰而由0变成1,这样事实上收到了一位错误的数据,但是检验却刚好正确,接收端误认为是正确的数据。为了避免以上的情况,将校验和改为:异或和取反,即将数据所有字节进行异或计算,取得一个异或和,再取反作为校验位。
6 )帧长:由于上面观察到的规律4,发送长帧的时候容易出现误码,而发送短帧的时候正确率接近100%。我的盖革计数器协议中,本来采用长度为12字节的帧一次将一分钟/5分钟/1小时/1天测量平均值发送给PC机,后来改为长度为6字节的短帧,分4次发送4个测量平均值。帧结构为:AAAA-15ms-AT-数据类型-数据高字节-数据低字节-校验和。
实验二:天线
在网上查询了资料,关于315M模块的天线,有以下3种说法:
1)弹簧天线,用1mm的铜线绕成弹簧形状,弹簧直径6mm,绕23圈。淘宝上卖的模块有部分是不焊天线的,如果有天线,就是这样的弹簧天线。
2)用25cm的长导线,竖起来。
3)315M模块用39cm的导线,433M模块用23cm。
测试条件:速率1200bps。接收模块采用稳压5V供电,发送模块采用未经稳压的11V供电。发送模块的工作电流:静态3.7mA,发送数据时4-11mA(发送第一帧的时候4mA,第二帧5mA,第三帧6mA,如此逐次上升,到11mA再逐次下降到4mA。不知道为什么会变化)。发送连帧头+数据+校验位共6个字节的短帧。测试结果:
1)弹簧天线:直线距离大于8米开始出现误码帧;
2)25cm导线:书房到客厅,距离13米,隔一堵墙,开始出现误码帧;
3)39cm导线:书房到阳台,距离15米,隔2堵墙一道门,正确率100%。如果改为发送12字节的长帧,开始出现误码,误码帧30%,正确70%。
结论:采用39cm的导线效果最好。
实验三:采用归零码
在网上查阅了一些资料,称数据通信最好不要采用非归零码,尤其是不能出现长1或者长0,否则容易受到干扰。建议采用归零码,例如曼切斯特码或者POCSAG码等。所谓的归零码就是发送的所有数据中,出现高电平和低电平的时间总和刚好是50%-50%。例如曼切斯特码,不再用高电平/低电平表示1和0,而是用电平跳变表示1和0,例如低电平变成高电平(上升沿)为1,下降沿为0,这样无论发送任何数据,都保证高电平和低电平的时间刚好是50%-50%。
用示波器观察接收波形,跟资料描述的一致。我发送的数据帧为:AT-00-01-02-校验和,其中有大量的长0,很容易受到干扰将00变成01,或者40之类,其实只有一个bit出错,由于校验失败,整个帧就要丢弃。如果是12字节的长帧,出现误码帧的概率更大,一共96个bit,只要任何一个bit受到干扰出错,整个帧就要丢弃。
原来的长帧结构为:
AAAA-15ms-AT-10-00-01-02-03-04-05-06-07-XOR,现在改成归零码:
0x5a-0x5a-0x5a-0x5a-15ms-0x5a-0xa5-99-55-56-59-5a-65-66-69-6a-XOR(原来的引导码和帧头AT不符合归零码规则,改为0x5a-0xa5)。
效果超好!从书房到阳台(距离15米,隔2堵墙一道门)正确率100%。发送在13楼,接收走到10楼,仍然保持正确率100%。走到9楼(隔4层楼)开始出现误码帧。走到8楼(隔5层楼)只能偶尔收到一帧。
这个效果已经超过我在TB上买的成品CC1100数传模块,单个模块60块钱,带SMA鞭状天线,在9600速率下,书房到阳台ok,隔一层楼ok,1.5层楼开始出现误码,隔2层楼则只能偶尔收到数据。
------------------------------- 总结-------------------------------------------------
1)采用帧结构:0x5a-0x5a-0x5a-0x5a-间隔15ms-0x5a-0xa5-数据-XOR_SUM_NOT,尽量缩短帧长度;
2)数据采用曼切斯特码来编码,可以极大地提高传输性能;
3)天线采用39cm的导线,竖起来,效果最佳。

【转载】315M无线模块数据传输——深入研究相关推荐

  1. 【转载】用廉价的315M遥控模块实现数据传输

    常用的近距离无线传输有很多种方式: 1)CC1100/NRF905 433MHz无线收发模块: 2)NRF2401 2.4GHz无线收发模块: 3)蓝牙模块: 4)Zigbee系列无线模块: 以上1/ ...

  2. 用廉价的315M遥控模块实现数据传输 -小虫的机器人8元V35元的传输成本

    常用的近距离无线传输有很多种方式: 1)CC1100/NRF905 433MHz无线收发模块: 2)NRF2401 2.4GHz无线收发模块: 3)蓝牙模块: 4)Zigbee系列无线模块: 以上1/ ...

  3. 无线模块怎么上传服务器,物联网WiFi模块如何进行数据传输

    物物相连的互联网就是我们常说的物联网了,物联网架构可分为三层:感知层.网络层和应用层,主要涵盖了数据的采集.传输及分析应用.物联网应用都有一个共同点:收集数据并将其发送到服务器或其他系统中,在数据传输 ...

  4. 315M接收 PT2264发送 无线模块的使用

    315M接收 PT2264发送 无线模块的使用 315M接收波形说明 315M接收波形说明 最后的一大段低电平是每次发完数据的静默时间,前面是几帧相同正式的数据. 每帧数据周期大概19.4ms,包含了 ...

  5. 使用Rola模块进行的无线中继数据传输实验

    使用E95-DTU(400SL30P-485)型Rola模块进行的无线中继数据传输实验 实验环境 硬件 DDZY719-Z型单相费控智能电能表1块 : E95-DTU(400SL30P-485)型Ro ...

  6. 远程抄表系统(AMR/AMI)中无线模块选型指南

    1.概述 远程抄表系统是为提高水表.电表等能耗参数的综合计费管理水平而设计的新兴技术.它以全自动的抄表方式取代了传统的人工抄表方式,和同类抄表系统相比,具有网络结构自适应.免调试.免维护.运行稳定.方 ...

  7. 【指南】远程抄表系统(AMR/AMI)中无线模块选型

    概述 远程抄表系统是为提高水表.电表等能耗参数的综合计费管理水平而设计的新兴技术.它以全自动的抄表方式取代了传统的人工抄表方式,和同类抄表系统相比,具有网络结构自适应.免调试.免维护.运行稳定.方便扩 ...

  8. 无线模块在工业控制上的应用

    工业控制现状 随着计算机.通信.自动控制.微电子等科学技术的发展,无线通讯在工业控制上的应用越来越广泛.在工业控制应用中,有线传输受环境的影响较大,不利于工业控制.为了加强对工控设备的实时监测和控制, ...

  9. 毕业论文开题报告 - 基于Linux的无线网络渗透测试研究

    目录 开题报告填写要求 1.毕业论文综述(题目背景.研究意义及国内外相关研究情况) 1.1 题目背景 1.2研究意义 1.3现阶段相关研究情况 2.本课题研究的主要内容和拟采用的研究方案.研究方法或措 ...

最新文章

  1. 程序员过关斩将--从用户输入手机验证码开始
  2. ICCV 2017 《Online Video Object Detection using Association LSTM》论文笔记
  3. Qt C++属性类型提供给 QML调用(五)
  4. C/Cpp / STL / 类型萃取
  5. 电脑版企业微信_靠谱的企业客户管理系统电脑版下载
  6. Dubbo(四)之xml配置方式
  7. 数据结构:(6)其他情况的算法分析
  8. 【机器学习】Softmax和Sigmoid
  9. .NET DLL 保护措施详解(四)各操作系统运行情况
  10. PostgreSQL环境变量
  11. OpenType的Adobe字体开发工具包(AFDKO)
  12. 指纹识别系统电路设计图集锦 —电路图天天读(200)
  13. Angular—生命周期函数
  14. Python工程师必备哪些技能 学习路线是什么
  15. 2023二建建筑施工备考第二天Day04
  16. Windows如何管理(禁用、开启)FileZilla自启动(大部分软件通用)
  17. 王瑞平:挺和合国际收《火火的情怀》建交朱之文高安孟文豪谷传民
  18. RFID珠宝零售管理解决方案
  19. 拼多多2021高频题汇总 | 备战春招,刷这30题就够了!
  20. 电机与拖动 - 2 变压器

热门文章

  1. 键盘enter按钮出发登陆事件
  2. 区块链的那些事,你知道和不知道的都在这里!
  3. java MD5 并发
  4. 病毒行为分析初探(三)
  5. 多行并一行显示的两种方式(DB2)
  6. 老罗学习MVC之旅:MVC组件分析
  7. [Java][JavaScript]字符串数组与字符串之间的互转(join/split)(转)
  8. 1001 Calculate a + b
  9. linux7 无法连接网络,CentOS7无法连接网络怎么办
  10. c语言线程锁的原理开锁原理图,C++多线程之可重入锁