在STM32F0和STM32F3系列MCU上实现红外遥控收发控制协议
前言
红外辐射是指电磁频谱中微波和可见光之间的区域。
红外辐射分两部分。近红外光与可见光的波长最接近,远红外与电磁频谱的微波区域更接近。
远程控制使用的是波长较短的波。信息通过电磁能而非线路进行发送和接收。
红外技术作为一种无线通信形式具有明显的优势。现今,几乎所有音频和视频设备都可以使用红外遥控手段来控制。在接收端,接收器检测光脉冲,并对其进行处理以检索/解码它们所包含的信息。
有多种流行的红外协议标准用于通过红外光传送数据,例如 RC5、SIRC...
本应用笔记旨在提供一种通用的解决方案,以使用 STM32F0xx 和 STM32F3xx 微控制器在软件中实现 IR 发送器(远程控制器件)和接收器。针对 RC5 和 SIRC 协议提供了软件实现示例。还可以根据需要支持和提供其它协议(有关更多信息,请联系意法半导体当地销售办事处)。
注: 本文档中描述的红外发送器和接收器解决方案使用 C 语言实现,并在 STM320518-EVAL(Config2)、STM32373C-EVAL 和 STM32303C-EVAL 演示包中提供,这些演示包可在http://www.st.com 下载。
1 红外协议规范
1.1 RC5 协议基础
RC5 编码是一个 14 位字,该字使用 36 kHz IR 载波频率的双相调制(也称为曼彻斯特编码)。所有位的长度均相等,为 1.778 ms,其中位时间的一半填充 36 kHz 载波脉冲,另一半空闲。逻辑 0 由位时间中的前一半脉冲串来表示。逻辑 1 由位时间中的后一半脉冲串来表示。36 kHz 载波频率的占空比为 33% 或 25%,以降低功耗。
RC5 帧可以生成 2048 (32 x 64) 个不同的命令,这些命令分为 32 组。每组有 64 个不同的命令。RC5 帧包含下列字段。RC5 帧的示例如图 2 所示。
● 起始位 (S):长度为 1 位,始终为逻辑 1。
● 字段位 (F):长度为 1 位,表示发送的命令位于低位字段(逻辑 1 = 十进制数 0 到 63)还是高位字段(逻辑 0 = 十进制数 64 到 127)。该字段位是后来增加的,因为人们意识到每个设备 64 条命令是不够的。以前,该字段位与起始位结合在一起。许多设备仍在使用这种原始体系。
● 控制位或切换位 (C):长度为 1 位,每次按下按钮时切换。这使得接收设备可以区分两次连续的按钮按下操作(例如“1”、“1”代表“11”)。
● 地址:长度为 5 位,可选择 32 种可能系统中的一种。
● 命令:长度为 6 位(与字段位结合使用),表示 128 种可能的 RC5 命令中的一种。
为避免帧冲突,在两个连续帧之间插入一段特定宽度的空闲时间(参见图 3)。空闲时间定义为 50 位宽。因此,一帧的周期为 64 x 1 位宽:64 x 1.778 = 113.792 ms。
|