红外遥控器与红外接收器调试问题分析
红外误码问题分析
目前开发的产品是带Qt界面的,所以作为一款可视化控制产品,遥控器是必不可少的,前段时间正好调试了遥控器与红外接收模块,现总结下遇到的红外误码问题分析解决过程。
分析思路分为两个方向,一是怀疑红外模块出来的信号是正确的,但是过了板卡电路后信号改变,造成CPU判读错误;第二个怀疑点是红外模块本身问题,解码红外信号异常。下面分两个方向,并借用示波器抓取信号进行分析。
1、判断是否板卡电路引起的问题
在D121芯片TX1_M_UART2_RX处连接一个示波器测量点,这个芯片的作用是将红外模块TTL 5V电平转换为3.3V电平,然后接入到TX1芯片UART2接口进行读取。
在红外模块TXD接另外一个示波器测量点。然后比较出错时两个信号的差异性。
测试结果如下:
TX1串口程序打印接收数据,正常数据是0x407F80,异常数据0x507F80。
串口数据对应的示波器信号,黄色信号是红外模块直出信号,粉红色是经过D121的转换信号。
放大来看正常与异常数据的区别:
正常信号:0x407F80
异常信号:0x507F80
从图中可以看出,标红处多了一个1信号,解析错了,但是红外模块解码数据与D121出来的信号是一直的,所以可以得出结论,错误不是后端板卡引入的,而是从红外模块出来的数据就已经错了
2、红外模块本身有问题
两个测量点,一个接在解码输出TXD上,另外一个接在P3.3红外脉冲接收入口。
发送6组数据,其中第4组0x577FA0解析错误,正确值是0x577F80,也是1个bit的错误
粉红是红外脉冲信号,黄色是解码信号,一共6组数据。
正常的TTL信号,0x577F80
异常的信号 0x577FA0
正常脉冲
异常脉冲信号,两个脉冲信号乍一看上去好像一样,但是仔细观察发现左面有一个空闲信号稍稍有点宽(标红处),放大来看:
再放大
明显这个脉冲信号的空闲比较宽,结合脉冲编码的原理:
http://c.biancheng.net/cpp/html/1957.html
引导码:9ms 的载波+4.5ms 的空闲。
比特值“0”:560us 的载波+560us 的空闲。
比特值“1”:560us 的载波+1.68ms 的空闲。
这个脉冲应该判定为1了,也就是说红外脉冲信号就不是很严格,不稳定造成了单片机误判。
所以最后的结论是遥控器红外脉冲信号间隔并不严格准确造成的最终解码错误。
三次测试遥控器误码率分别是1%,2%,1%,每次测试按同样按键100次。
红外遥控器与红外接收器调试问题分析相关推荐
- 红外遥控及Android手机红外遥控器开发
一.红外遥控 红外遥控技术是通过红外技术.红外通信技术和遥控技术的结合实现的一种无线控制技术.由于红外线的波长较短,对障碍物的衍射能力较差,无法穿透墙壁,所以红外遥控术更适合应用在短距离直线控制的场合 ...
- Ardunio开发实例-红外遥控器解码与LED控制
红外遥控器解码与LED控制 红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机和手机系 ...
- C#+Arduino使用红外遥控器
这几天在看红外遥控器和红外接收器的介绍,接线很简单, 实物连接图如下: 网上给的例子也很简单,具体的代码如下: #include <IRremote.h> // 使用IRRemote函数 ...
- android如何编程红外遥控,全志A20[android教程]-红外遥控器调试
第1章 前言 要在树莓派3 (A20)android系统上实现红外遥控器,因为super3上有红外接收头,所以可以直接支持红外遥控器,可以把树莓派3应用到家庭控制当中.当作网络机顶盒用 树莓派3的 ...
- 红外遥控器-IR-linux驱动(基于百问网IMX6ULL_Pro平台)
IR驱动使用指南 NEC红外协议说明 红外发射器将信号通过载波发送出来,红外接收器将接收到的红外信号进行电平解码,红外驱动根据这个解码后的电平信号进行解码操作,上图显示了NEC编码的时序规则 Star ...
- 学习型红外遥控器硬件结构说明
本篇文章上接:智能家居中红外遥控芯片分析比较 2 硬件结构 学习型红外遥控器由红外一体化接收电路. 反相器.温度传感器.AT89C52单片机.红外发送电路.E PROM存储器.键盘及 LCD显示器和 ...
- 学习型红外遥控器设计(2) 红外遥控学习方案设计
学习型红外遥控器设计(0) 摘要 (1) 绪论 (2) 方案设计 (3) 遥控解码 (4) 编码还原 (5) 硬件实现 (6) 总结展望 2.1 设计目标及要求 本文设计的万能学 ...
- android 红外遥控器实现原理
一.红外遥控器是什么鬼 现有的红外遥控器有两种:一种是PWM(脉冲宽度调制),另外一种是PPM(脉冲位置调制): 这两种调制方式对应两种编码形式NEC(PWM对应的编码形式)和philips的RC-5 ...
- 【测试】更新红外遥控信号读取,用示波器抓取红外遥控器NEC信号
最近群里有问红外信号采集相关问题,我以为他问arduino,原来他问米思齐,然后我居然忘了之前我用米思齐也试过.今天再把资料整理一下,备战新项目. 红外遥控器应用非常广泛,大部分家电都使用它来控制 , ...
最新文章
- linux服务器文件后缀名,linux服务器备份网站程序并下载到本地(自动)
- matlab保存数据
- Shell脚本读取Redis键值对
- python狗狗年龄换算_Python之美——一只数据狗的笔记[长期更新]
- 实数是不是python数据类型_Python数据类型之数字(Numbers)和运算符
- [转] 爱情的隐式马尔可夫模型(Love in the Hidden Markov Model)
- Delphi 的字符及字符串[4] - 字符串、字符指针与字符数组
- 计算机考试报名无法弹出支付界面,教资报名支付页面不弹出怎么办 2021教师资格证报名入口网址...
- bufferreader readline一次读一行_python中read(),readline(),readlines()的区别
- 【数据结构与算法】链式栈的Java实现
- 变步长梯形法与龙贝格算法
- 【高德地图API】如何打造十月妈咪品牌地图?
- Android及其他平台音频开源库介绍
- iOS之线程(二)GCD
- sklearn学习——递归特征消除法(RFE)
- php文本安全内容敏感词检测(微信的)
- 喜获5亿元D2轮融资,星环科技谋求更多发展!
- CSS揭秘:6.复杂的背景图案(下)
- EXCEL中如何将文本格式的数字转换为日期格式
- Matplotlib的一些常规操作
热门文章
- 我在深圳这几年。。。。(四)
- su、sudo、sudo su、sudo -i sudo -l的用法和区别
- 【Ubuntu16.04常见问题】之无法获得锁,无法锁定管理目录,是否有其他进程正占用它
- C语言Windows下实现音乐播放器
- steam泰坦之旅dlc_《泰坦之旅:周年纪念版》解禁 支持简中仅需19元!
- 【转载】windows 如何一键关闭所有进程程序 --- (博客园 - 木人子韦)
- CSS中获取显示器的宽度
- Python 中的随机森林
- SpringBoot集成Kafka消息队列
- NMOS和PMOS管电流方向,NMOS载流子是电子,流向都是从源极到漏极,电流的流向是从漏极到源极。PMOS,载流子是空穴对,空穴对的流向也是从源极到漏极(此方向是S极和衬底短连,不短连则DS可以互)