更全的杂志信息网

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

更新时间:2016-07-05

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 红外学习系统的软件设计

组织形式多样的文体活动。成立了院乒羽、健走等协会,定期组织乒乓球团体赛、羽毛球交流赛、篮球排球联赛以及“春季健康行”、“迎新春”联欢晚会等,并不定期开展棋牌、瑜伽等群众性文体活动,不仅促进锻炼身体,释放工作压力,也营造了团结和谐、健康向上氛围。9月,在由19个代表队参加的分公司运动会上,研究院代表队勇夺团体总分第一名,激发了大家科研攻坚的勇气和信心,展现了研究院团队合作、奋勇拼搏的精神风貌。

图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 红外数据格式

{

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)

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

if(IR_OUT[i]!=0)

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

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

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

路面结构容易受到机械设备的碾压,从而导致路面出现松散的状况,运输车辆在路面上应禁止急刹车或急转弯的情况。

{

if(i%2==0)

{

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

式中:为12×5矩阵,δl为5×1矩阵,Te为12×15矩阵,δe为15×1矩阵,Tλ为12×21矩阵,δλ为21×1矩阵,Tpθ为12×6矩阵,δpθ为6×1矩阵。整理式(11)得

{

}

else

{

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

精工是世界上唯一一家能够用单体表壳制造潜水表的制造商。整体式结构非常有价值,专为70年代末制作的水肺潜水表而设计(例如,最初的PloProf也采用整体式表壳),它代表着令人难以置信的特点---没有密封件(除了从表盘侧面外无法进入机心),完美的密封性和独特的设计。SLA025就继承了伟大原型的这一特点:采用厚重的单体不锈钢表壳,表径44.8毫米,厚15.7毫米 - 与原型相比略大一些。此外,该表壳还具有超硬涂层,具有更好的防刮性;而4点钟位置的表冠是典型的向原型致敬设计。

delay_us(IR_OUT[i]*10);

}

因即时配具备强大的市场发展潜力,所以吸引了很多的快递企业纷纷加进入这一新的业务领域。即时配送相较于传统快递还是有着很大的区别,某些快递企业虽然迅速组建了自己的专职配送团队,但是也仍然面临很多问题。因此,本文以开展该项新业务的某快递公司为切入点,先对快递公司的现状进行分析,发现投入运力的支出在收入中占据了极大的比重,从而确立以配送员每次配送的收入最大为目标函数,借此降低运力数量,从而提高快递公司在该项业务上的收益。

2)提倡施用酵素菌沤制的堆肥或腐熟有机肥,增施磷钾肥,搞好氮磷钾合理搭配,增强小麦抗病力。速效氮不宜过多、过迟,防止小麦贪青晚熟,加重受害。

首先,应加强建设和完善智慧乡村旅游基础设施,重点加强环境整治、道路建设、绿化建设、基础网络建设和餐饮、住宿、娱乐、医疗卫生等基础设施和配套设施建设。

}

}

教学评价应是一项长期性、过程性的评价,《标准》的出台,利用等级制度的标准,不仅可以对教师的教学效果进行评价,还可以对学生的运动技能掌握情况进行科学合理化的评价。

}

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

3.4 通信协议

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

表1 通信命令格式

字头模式位置结束标识格式0x410xXXXX,XX0x45

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

4 试验结果及分析

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

设D={(xk,yk)|k=1,2,…,n},其中xk∈Rn为得到的分解信号,yk∈R为输出结果。在权w空间中最小二乘支持向量机分类问题可以描述如下:

2015年6月,国网福建水口集团公司集控中心正式投入运行。水口集控中心功能定位是所属各水电站控制和调节功能的延伸和集中,也就是将水口、嵩滩埔、水东、雍口、街面“两江五站”共17台机组和4座水库全部纳入统一监控。

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

参考文献:

[1] 邱士安.通用遥控器的解决方案[ J].昆明理工大学学报,2001,43(26):197-199.

[2] 程小辉.可识别载波的红外遥控自学习模块研究与设计[J].电子技术应用,2013,39(2):121-124.

[3] 林武.一类学习型红外遥控器电路设计关键技术分析[J].南昌大学学报(工科版),2008,30(3):279-282.

[4] 曾炼成.基于波形存储型红外学习的数据压缩方法[J].计算机与现代化,2014,30(4):195-198.

[5] 张燕妮.STM32F0系列Cortex-M0原理与实践[M].北京:电子工业出版社,2016.

[6] 徐志.一类基于软件载波的学习型遥控器的设计与实现[J].现代电子技术,2009,33(2):36-38.

[7] 谭浩强.C程序设计[M].4版.北京:清华大学出版社,2011.

张赛,刘达,姚国栋
《电气自动化》 2018年第02期
《电气自动化》2018年第02期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息