今天小编要和大家分享的是控制,MCU相关信息,接下来我将从STM32单片机以NEC协议实现红外遥控设计,nec s820图赏这几个方面来介绍。

控制,MCU相关技术文章STM32单片机以NEC协议实现红外遥控设计nec s820图赏

控制,MCU相关技术文章STM32单片机以NEC协议实现红外遥控设计

红外的介绍、优点、缺点就不给大家说了,进入正题

一、红外遥控协议的的讲解

红外遥控的编码目前广泛使用的是:NEC Protocol的PWM(脉冲宽度调制)和Philips RC-5 Protocol的PPM(脉冲位置调制)

本文将以NEC协议实现红外遥控。

NEC协议的特征:

1、8位地址和8位指令长度;

2、地址和命令两次传输;(确保可靠性)

3、PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”;

4、载波频率为38KHz

5、位时间为1.125ms和2.25ms

NEC码位的定义:一个脉冲对应560us的连续载波,一个逻辑1传输需要2.25ms(560us脉冲+1680us低电平),一个逻辑0的传输需要1.125ms(560us脉冲+560us低电平)。而遥控接收头在收到脉冲时为低电平,在没有收到脉冲时为高电平,因此,我们在接收头端收到的信号为:逻辑1应该是560us低+1680us高,逻辑0应该是560us低+560us高。如下图:

STM32单片机以NEC协议实现红外遥控设计

NEC遥控指令的数据格式为:同步码头(引导码)+地址码+地址反码+控制码+控制反码。同步码是由一个9ms的低电平和一个4.5ms的高电平组成,地址码、地址反码、控制码、控制反码均为8位数据格式。按照高位在前低位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。下图是我们按下按键2时,从红外接收头端测到的波形:

STM32单片机以NEC协议实现红外遥控设计

在图中可以看到,在100ms之后,我们还收到了几个脉冲,这是NEC码规定的连发码(由9ms低电平+2.5ms高电平+0.56ms低电平和97.94ms高电平组成),如果在一帧数据发送完后,按键仍没有松开,则发送重复码(连发码),可以通过统计连发码的次数来标记按键按下的长短/次数。

二、解码程序解析(参考正点原子的代码)

在正点原子的代码中是利用定时器的输入捕获功能来实现遥控解码的,下面解析一下关键代码:

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查