红外的通信原理
红外通信的外设
接收端以vs1838b接收管脚为例,vs1838b有三个引脚口分别是vcc、gnd、out。其中out引脚用于和控制器相连来进行信号读取。
输出端也是3个引脚构成位vcc、gnd、out。out用来输入信息。
信号传输原理(怎么把高低信号传输给接收端)
红外的信号传输不同于有线通信,高低信号可以由线直接传输给接收端。红外的通信需要依赖于38khz的载波信号,发射端发射38khz的载波信号,当接收端接收到了发射端发射出的38khz载波信号时接收端就会将out引脚口电平拉低,当接收不到38khz的信号时接收端out引脚口信号为高。这样就可以通过对发射端的输出电压进行调节从而实现对接收端电压的控制。具体波形如下
通信协议(NEC通信协议)
在实现了通信双方对高低信号的传输之后,通过通信协议来传递信息。现在存在的通信协议较多,但不同的通信协议原理基本相同。本文以最常见的NEC通信协议为例。该通信协议的要点有三个:
1、引导码(告诉接收端要开始传递信息)
从接收端来看引导码的格式是接收到9ms的低电平和4.5ms
的高电平。但是从发射端来看是发射出去9ms的38khz的载波信号和4.5ms的高电平或低电平。具体波形如下
2、0和1的表示
0的表示在接收端是560us的高电平和560us的低电平表示逻辑0,而在发射端是560us的38Khz方波信号大约21个周期和560us的低电平表示逻辑0.所以要发射逻辑0需要发送560us的38Khz方波信号和560us的低电平信号。而接收端检测到的是560us的低电平和560us的高电平。1的在接收端表示为560us的低电平和1.68ms的高电平。和0类似在发射端是1.68ms的低电平和560us的38Khz方波。波形如下
3、数据形式
传递的信息形式主要有这几部分组成,引导码用户码(8位)、用户反码(8位)、数据码(8位)、数据反码(8位)。传递信息其中用户码是用来识别匹配用,用户反码主要是 用来核对用户码是否正确的,数据码是用来储存传递的信息的,反码用来校验。以stm32自带遥控器采集到的波形(此为接收端波形)为例
有8为用户码0和8位用户反码为0xff。后面跟着控制码和控制反码。这就构成了信息的传递和对接收端的控制。