基于STM32的软件载波红外学习系统设计

2018-07-31 01:33张赛刘达姚国栋
电气自动化 2018年2期
关键词:数组低电平高电平

张赛, 刘达, 姚国栋

(1.北京航空航天大学 机械工程及自动化学院, 北京 100191; 2. 中国科学院电工研究所, 北京 100080)

0 引 言

红外遥控是家用电器通信控制中应用最广泛的方式,电视机、空调、风扇等家用电器均采用红外遥控形式进行控制,具有结构简单、体积小、功耗小、功能强、成本低等特点,随着家电数目日益增多,不同家电的遥控器编码格式不同[1],常用的红外编码协议有NEC协议、Philips协议、ITT协议等[2],这些协议的不同阻碍了智能家居控制系统的研究与发展。

为解决此问题,促进智能家居智能化的发展,本文设计一种基于低功耗STM32的红外学习系统,将不同家电不同编码的红外控制信号进行学习,存储在控制系统Flash中,达到通过智能终端控制家电设备的目的。

1 红外学习系统的原理

从控制器原理出发,红外学习方式有两种:固定编码式学习和波形复制学习[3]。固定编码式学习主要是搜集各种已知类型的红外信号,预先存储在控制系统中。这种学习方式的缺点是对于未知红外信息无效;波形复制学习可以完全不用考虑设备及其红外码信息,专注于波形的脉冲序列记录与重现,不受遥控编码协议的限制[4],只需要记录红外信号高低电平的时间,存储在Flash中。与固定式编码学习相比,这种学习方式适用性更广。本文即采用波形复制的思路进行系统设计。

波形复制式学习方式控制系统的功能主要分为学习和发送两部分。在学习过程中,控制系统接收来自设备遥控器发送过来的红外信号。接收电路收到信号后经过放大并解调出TTL电平信号,处理器对信号进行处理并存储在内部Flash中。当需要发射时,读取相应Flash存储区的数据,调制到38 kHz载波信号,通过放大电路驱动红外发射二极管发射红外信号。完成红外信号的学习与发射,从而可以实现控制系统学习多种设备遥控器红外信号。

2 红外学习系统的硬件设计

红外学习系统的系统结构如图1所示,主要由以下五部分组成:STM32F0最小系统、红外接收电路、红外发送电路、电源模块以及蜂鸣器和LED指示。Flash是STM32内置的高性能闪存,可提供10万次以上的擦写次数[5],在红外学习系统中对红外脉冲时间进行存储和读取。此次设计采用的STM32F0内置32 kB的容量,经实验测试不同遥控器红外协议红外信号的时间长度不同,其红外信号高低电平时间数组长度小于300,因此设定临时数组长度300,Flash半字写入,理论计算可得最大存储128个红外信号。红外接收电路:一体化接收头将输出信号进行检波、整形、放大、解调,输出信号直接为TTL高低电平。红外发射电路:软件调制38 kHz载波,经三极管放大,驱动红外发光二极管。

图1 红外学习系统结构图

3 红外学习系统的软件设计

系统采用定时器中断与MCU轮询方式运行。串口无输入数据时,控制系统指示灯规律闪烁,等待指令。串口接收到相应数据时,系统进入学习模式或者发送模式。调用相应的程序完成红外学习或者红外发送任务,总体流程如图2所示。

图2 主程序流程图

3.1 红外信号编码结构分析

尽管不同设备不同协议的红外信号不同,但其有相同的编码类型。红外信号编码脉冲由起始码、系统码、系统反码、功能码、功能反码组成[6],如图3所示,波形高电平表示发射红外载波,波形低电平表示不发射红外载波信号,以发射红外载波的不同占空比表示数据“0”和“1”,如图4所示。以NEC TC9012红外协议为例,位0为0.56 ms高电平,0.565 ms低电平,位1为0.56 ms高电平,1.69 ms低电平。

图4 红外数据位定义

图3 红外数据格式

通过分析大量不同类型的红外遥控器波形,发现不同的遥控器红外信号区别在于引导码的高低电平时间不同,位0与位1的定义不同。这些编码都是经38 kHz载波调制发射,因此可以直接考虑红外信号的高低电平宽度,不考虑其编码形式。

3.2 编码学习软件分析

红外发射脉冲与红外接收头输出的脉冲高低电平相反。如图5所示,在设计中采用定时器中断捕获接收信号的上升沿和下降沿,捕获之后进入中断处理函数,分别对高低电平时间进行测量,将捕获的结果暂存到临时数组中,进行压缩处理后写入Flash相应存储区。

图5 红外发射与接收脉冲信号

初始设置为定时器下降沿捕获,当系统进入红外输入下降沿捕获中断后,获取计数器数值temp[2i],再次进入定时器上升沿捕获中断获取计数器数值temp[2i+1],考虑到计数器可能溢出,因此其差值temp[m+1]-temp[m]或0xFFFF-temp[m]+temp[m+1]为高低电平的计数差值,利用定时器频率求出高低电平时间,当不再进入中断时,完成学习过程,其程序流程如图6所示。

图6 定时器中断红外学习过程

3.3 软件载波红外信号发射

通过系统定时器产生38 kHz占空比为1∶3的载波频率,用存储在Flash中的红外高低电平时间控制定时器的开启或关闭时长,实现调制过程。具体实现过程为:读取相应Flash存储的数据到发射数组IR_OUT[],由图5中接收的脉冲信号可以得知,发射数组的偶数位为红外信号发射高电平时间,发射数组的奇数位为红外发射信号低电平时间,若为高电平则开启定时器,低电平则关闭定时器。这种方式不用考虑红外编码的方式,只考虑红外高低电平宽度,进行调制发射。调制的信号经过三极管放大控制红外发射二极管实现信号的发射,主要程序代码如下[7]:

Flash_Read(ADDR_FLASH_PAGE_24,&IR_OUT[0],300); //读取Falsh数据

if(IR_OUT[0]!=0)

{

for(int i=0;i<300;i++)

{

if(IR_OUT[i]!=0)

{

if(i%2==0)

{

TIM_Cmd(TIM2, ENABLE); //使能定时器

delay_us(IR_OUT[i]*10); //延时μs时间

}

else

{

TIM_Cmd(TIM2,DISABLE); //禁止定时器

delay_us(IR_OUT[i]*10);

}

}

}

}

这样以软件的形式实现载波,有效实现了红外信号的发射,简化了设计,降低了硬件复杂度。

3.4 通信协议

智能终端与红外学习系统采用串口通信,串口配置为:波特率9 600 bps,数据位8位,一个停止位,无奇偶校验位,定义接收命令格式如表1所示。

表1 通信命令格式

字头为命令识别,固定字节。模式0x53为红外发送模式,0x4C为红外学习模式。位置为指定要存储或者读取的数据在Flash中的位置。例如串口发送指令41 4C 00 00 45,表示学习模式,将学习的红外信号存储在Flash定义存储区的第0个位置。串口发送指令41 53 00 02 45,表示从Flash定义存储区的第2个位置读取数组数值,进而完成调制发射。

4 试验结果及分析

红外学习系统功能是否有效取决于学习和还原2个过程的正确,即学习过程能够正确学习红外信号生成数组存储在Flash中,发送过程能无误差读出Flash中的数组,通过控制定时器中断软件载波方式实现红外信号发送。试验以格兰仕空调遥控器“开”按键作为测试,分别试验红外学习与红外发射功能。

4.1 红外学习试验

串口发送指令41 4C 00 00 45,进入红外学习模式,按下按键,获取的红外信号高低电平脉冲计数器差值存储在临时数组中,如图7所示。由于捕获定时器分频系数为480,定时器频率为0.1 MHz,即捕获精度为10 μs,临时数组值乘以10即为时间μs。可以得出该红外信号的起始码为高电平3.61 ms,低电平1.59 ms。位0为550 μs低电平,500 μs高电平,位1为550 μs低电平,1 180 μs高电平。通过Flash写入函数将临时数组值以半字写入Flash存储区中,存储结果如图8所示,数组中的每个值占两个地址。

图7 临时数组捕获值

图8 Flash 存储结果

学习系统接收到完整的红外波形,波形如图9所示,放大波形图,如图10所示,脉冲信号较为清晰直观,利用示波器光标测量红外接收端起始码的低电平时间Δt为3.600 ms,与红外捕获临时数组第一个数值相等,证明捕获红外高低电平时间正确,完成红外信号学习试验。

图9 红外接收波形

图10 红外接收波形放大图

4.2 红外发射试验

图11 红外发射数组图

将学习的遥控器“开”按键红外信号读取并进行发射。串口发送指令41 53 00 00 45,读取Flash定义存储区第0个位置数组值,读取的发射数组如图11所示,与图7中捕获的临时数组值完全相同,读取完整无误,再通过软件载波的形式经三极管放大电路控制红外二极管发送红外信号,试验测试系统红外发射距离达到8 m,用一体化红外接收头获取红外发射二极管发送的红外信号,如图12所示,对比红外发射波形与红外接收波形,可知两种脉冲编码完全一致,完成红外信号发射试验。

图12 红外发射波形

5 结束语

本文设计了基于STM32F0的红外控制系统,介绍了系统的整体框架,硬件组成及软件流程,经过反复测试,系统可以有效学习不同家电不同协议的红外信号,对各种电器进行控制,具有很好的通用性,为智能家居提供一种可行的解决方案。

猜你喜欢
数组低电平高电平
JAVA稀疏矩阵算法
一种基于FPGA的PWM防错输出控制电路
铁道车辆高/低电平信号智能发生器设计
JAVA玩转数学之二维数组排序
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
Excel数组公式在林业多条件求和中的应用
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
15-MeV电子直线加速器的低电平系统