MSP430G2553的红外学习调试方法

2018-01-15 06:18
单片机与嵌入式系统应用 2018年1期
关键词:键值低电平高电平

(苏州工业园区职业技术学院,苏州 215123)

引 言

图1 NEC标准

电视遥控器使用专用集成发射芯片来实现遥控码的发射,如东芝TC9012、飞利浦SAA3010T等。通常彩电遥控信号的发射,就是将某个按键所对应的控制指令和系统码(由0和1组成的序列)调制在38 kHz的载波上,然后经放大、驱动红外发射管将信号发射出去。本文使用的是一体化接收头,当一体化接收头收到38 kHz 红外信号时,输出端输出低电平,否则为高电平。不同公司的遥控芯片,采用的遥控码格式也不一样。较普遍的有两种:一种是NEC标准,另一种是PHILIPS 标准。

1 背景分析

NEC标准:遥控载波的频率为38 kHz(占空比为1:3),当某个按键按下时,系统首先发射一个完整的全码,如果键按下超过108 ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9 ms)和结束码(2.5 ms)组成。

一个完整的全码=引导码+客户码+客户码+数据码+数据反码。其中,引导码是由高电平4.5 ms和低电平4.5 ms组成;接着是客户码的低8位、客户码的高8位、数据码8位、数据码的反码8位,共32位数据;其中前16位为客户码,能区别不同的红外遥控设备,防止不同机种遥控器互相干扰;后16位为8位的数据码和8位的数据反码,数据反码用于核对数据是否接收准确。

NEC、TOSHIBA、SAMSONG公司的编码格式有其共通之处:全码都由“引导码+客户码+客户码+数据码+数据码反码”组成;接收端根据数据码作出应该执行什么动作的判断。连发代码是在持续按键时发送的码,它告知接收端,某键是在被连续地按着。NEC标准如图1所示。

发射数据0时用“0.56 ms高电平+0.565 ms低电平=1.125 ms”表示,数据1用“高电平0.56 ms+低电平1.69 ms=2.25 ms”表示。即发射码“0”表示发射38 kHz的红外线0.56 ms,停止发射0.565 ms。发射码“1”表示发射38 kHz的红外线0.56 ms,停止发射1.69 ms。需要注意的是:当一体化接收头收到38 kHz红外信号时,输出端输出低电平,否则为高电平。所以一体化接收头输出的波形是与发射波形是反向的,如图2所示。

图2 遥控发射码与一体化接收头信号比较

NEC、TOSHIBA、SAMSONG公司的编码格式有其共通之处:全码都由“引导码+客户码+客户码+数据码+数据码反码”组成;数据“0”和“1”的定义相同,不同的只是引导码高低电平的持续时间不同,客户码位数有长有短,第一个简码和全码最后一位之间的延时不同,简码的引导脉冲不同等。所以,可以把相同的部分做成通用子程序,包括产生数据“0”和“1”的子程序“ONE”和“ZERO”,9 ms、4.5 ms、2.25 ms、22 ms、45 ms等时间控制子程序。

当使用MSP430G2553时,红外遥控器的学习需要和通信功能相结合,单片机不能存储学习到的红外键值,需要传给存储器保存,也需要由存储器来传输要还原的键值。同时由于MSP430G2553的RAM比较小,只有512字节,如果要实现红外键值的学习,需要谨慎使用RAM空间。

2 解决方案

有些公司的摄像机的遥控器是不遵循任何标准的红外编码格式的,所以要进行红外学习只能采集到红外接收头端收到的码值波形,在还原的时候,也就是在低电平时间内红外输出端发送38 kHz的载波,在高电平时间内红外输出端保持低电平。记录接收到的波形的过程就是红外学习的过程,可以采用定时器捕获的方法,定时器设置为上升沿、下降沿都捕获。MSP430G2553有两个定时器,其中一个用来记录系统TICKS(精度为10 μs),另外一个用作定时器捕获。使用这两个定时器就可以记录下红外接收头接收到的波形,中断处理流程图如图3所示。

图3 处理流程

图4 业务程序处理流程

我们记录波形中高、低电平的时间,由于开始学习的第一个状态一定是低电平状态,所以不需要记录高低电平位置,那么接下来需要把记录下来的高低电平的值传给业务,此时要区别下是不是干扰,如果记录的值太少就不是键值,而是干扰源发出的,然后在业务程序需要进行发送的时候再把这组值发给我们,业务程序处理流程如图4所示。

那么如果业务将包含一个键值信息的高低电平值发给我们,该怎么处理呢?在红外键值还原过程中只需要用到一个用于计时功能的定时器,结合接收到的键值延时信息进行还原就可以了。其中的长延时是公司的摄像机遥控器在按键按下后发送的若干组值,这些代表一个键值,每组之间会有20 ms左右的延时,这个延时也需要记录下来,并且需要记录下这个长延时出现在第几个高低电平位置,以便能正确还原出键值。还原流程如图5所示。

图5 还原处理流程

结 语

在调试过程中,首先需要弄明白红外编码和解码的原理,然后针对具体情况学习不止一种遥控器。由于不能针对某种红外协议标准进行学习,所以直接将接收到的红外波形的高低电平时间记录下来,还原时也是依据这个时间值进行还原。调试中总是遇到学习到的数据错误的问题,

[1] TI. RS-422 and RS-485 Standards Overview and System Configurations,2010.

[2] TI. GPIO User's Guide,2011.

[3] Jonahan Corbe, Alessandro Rubini, Greg Kroah-Hartman. LINUX 设备驱动程序[M]. 魏永明,等译.北京:中国电力出版社,2010.

[4] 刘刚,赵建川. LINUX系统移植[M]. 北京:清华大学出版社,2011.

吴丽萍(讲师),主要研究方向为自动控制系统;戈志明(工程师),主要研究方向为嵌入式系统,软件测试。

猜你喜欢
键值低电平高电平
一种基于FPGA的PWM防错输出控制电路
铁道车辆高/低电平信号智能发生器设计
非请勿进 为注册表的重要键值上把“锁”
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
一键直达 Windows 10注册表编辑高招
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
15-MeV电子直线加速器的低电平系统
集成电路静态参数测试