Andrew Haung 转载请注明作者及联络方式.
我在的S3C6410上有一个完整的IRM3638芯片,用作红外遥控器接收.但是网上的资料非常之少。因此只能从头来开始分析。首先我们分析了红外协议
首先看资料IRM3638采用是PT2222协议。
每次按下遥控器一个按键,它将发送一个串信号: 引导码+用户码+用户反码+键码+键码的反码.
其中引导码是固定波形。用户码(有的称系统码)用来标识遥控器类型一个整数,受控设备一般只接收特定用户码的遥控器控制。一般固化不可以调。但所谓的万能遥控器就是能随意修改自己的用户码设备。
键码是不同的按键对应不同的值。就是软件主要读它来判断,即用户按下了哪一个键.
遥控器的学习相当于读出遥控器的用户码。
第二步,我们简易的逻辑分仪分析接收硬件波形来验证红外协议。IRM3638三个脚里,有两个脚分别是地线和电源线。只有一根数据线,其DataSheet并未明示如何进行接收编程,我分析其它平台的源码,推测这根线同时充当中断线和I/O数据线,首先IRM3638用波形触发中断信号,在ISR里把这根线切换成IO输入脚进行数据分析。
因此用简易逻辑分析仪来验证我的推测。 我用来测试是教室里上课用的东芝投影仪的遥控器。
测试方法,将逻辑分析仪的CH1脚联接在红外发射管的1脚,数据脚。将其地线联接在板上做铜柱上。(原来以地线接地不重要,后来实测发现地线不接地对测试结果影响极大)
在此感谢我的学生,怯志兵。他的硬件和红外线单片机知识使用我在S3C6410的测试顺利不少。同时他提供了红外线遥控自动侦测仪(YX-2058B)用来辅助分析测试结果。
红外线编码分析仪可以读出遥控器的用户码和按键码。
我用它来读取东芝ct90205投影仪的用户码是 6121
input键的Key是 0x0A15,SETUP的键是 0x0A1B,MUTE键是 0x0A11
经过几次尝试后,我们顺利在24MHz的采样频率下测出IRM解码后的波形。
二.采样结果分析
----------------------------------------------------------------------
采样后,从测试的结果来看,验测有一些文档讲过,红外线发射(编码)与接收(解码)的波形正好相反,
即捕获接收后的解码的电平,正好与编码规范里相反.
• 即规范为1的地方捕获是0,为0的地方捕获是1 后面所有分析都是按相反波形的来分析的.
红外线总体编码分析
.
1.接收器空闲时,输出脚电平始终为高
2. 在长按按键时,除了第一个波形为完整PT2222包外,后面都是重复信号
以下就是连续按下mute键的波形
将其放大.可以得到更详细的波形
如下图这是一个标准的PT2222协议波形,但是经过多次波形分析,发现用户码并不符合PT2222的规范,即用户码跟侦测仪读取的值不符合,也后8位是不是反码.
但是后面键值非常规范,是8bit的键值和8bit的反码
引导码非常规范 首先低电平 9ms,然后高电平4.5ms.
PT2222的数字1的波形
一个1的周期2.25ms,首先低电平 0.56ms,然后剩下1.69ms是高电平
PT2222的数字0的波形
0的完整周期为1.125ms,首先低电平 0.56ms,然后剩下变为高电平
1个1的周期正好等于是2个0的周期
重复信号
首先9ms低电平,然后2.5ms高电平,然后再0.5的低电平
重复信号后面数据始终为高电平,是否表示软件要取上次有效操作键值,规范未提及
PC上的红外的管理系统
-----------------------------------------------------------------------------
在整理此文时,意外发现网上有红外遥控器管理系统。这是存放有大量遥控器资料。
有兴趣的朋友可以下来安装试一下
里面有波形分析资料
阅读(6972) | 评论(0) | 转发(1) |