本文介绍的是一种非常普遍且便宜易实现的短距离无线通讯-红外通讯,电视机、空调虽无线控制方式也是五花八门了,但红外控制仍然占据着一席之地。
红外发射器(遥控器)、红外接收管
1.1 红外信号调制解调原理
平时所使用的红外遥控器传输的信号是经过调制过的信号,调制、解调是无线通信的经常用的通信手段,通信原理、高频电子课程上大家想必都已经很熟悉了。红外遥控器所使用的是38KHZ的载波频率,下面结合红外通讯做点简单介绍。
调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个信号去装载另一个信号。比如我们的红外遥控信号要发送的时候,先经过38K调制,如图所示。
原始信号就是我们要发送的一个数据“0”位或者一位数据“1”位,而所谓38K载波就是频率为38K的方波信号,调制后信号就是最终我们发射出去的波形。我们使用原始信号来控制38K载波,当信号是数据“0”的时候,38K载波毫无保留的全部发送出去,当信号是数据“1”的时候,不发送任何载波信号。
红外通信协议也是多种多样,只介绍一种常用的编码协议,NEC协议,载波也就是上面说到的38KHZ载波,NEC协议是基于PWM(脉冲宽度调制)来传输数据的。其特征如下:
- 8 位地址和 8 位指令长度
- 地址和命令 2 次传输(确保可靠性)
- PWM 脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”;
- 载波频率为 38Khz
- 位时间为 1.125ms 或 2.25ms
NEC 码的位定义:一个脉冲对应 560us 的连续载波:
一个逻辑 1 传输需要 2.25ms(560us脉冲+1680us 低电平),
一个逻辑 0 的传输需要 1.125ms(560us 脉冲+560us 低电平)。
而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑 1 应该是 560us 低+1680us 高,逻辑 0 应该是 560us 低+560us 高。
NEC 遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个 9ms 的低电平和一个 4.5ms 的高电平组成,地址码、地址反码、控制码、控制反码均是8 位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。
下面结合我们逻辑分析仪截取的数据波形,对着协议对上面提到的协议格式进行分析,下面是按键2的波形,对应的数据为98即01100010:
可以看到在数据之后,还收到了几个脉冲,这是 NEC 码规定的连发码(由 9ms 低电平+2.5m 高电平+0.56ms 低电平+97.94ms 高电平组成),如果在一帧数据发送完毕之后,按键仍然没有放开,则发射重复码,即连发码,可以通过统计连发码的次数来标记按键按下的长短/次数。
至此,关于红外的一些基础知识就算啰嗦完了,没懂的可以留言一起讨论哈。