摘 要:在红外遥控设备的使用中,设备的稳定性和调节平滑性是最基本而最重要的指标。根据NEC红外协议,设计了一种基于STM32F103C8单片机的红外可调的功放系统。此系统通过STM32F103C8的输入端口捕获红外遥控器发射的脉冲信号,用其强大的定时器对遥控编码进行解码,判断出哪个功能键被按下,根据所按下的功能键驱动单片机的GPIO口输出控制信号来调节数控电位器X9313,实现功放输入电压的调节,从而平滑地调节音量的增加和减少。通过测试,功放系统可通过红外遥控器进行有效的、平滑稳定的音量调节。
关键词:STM32F103C8; 红外; X9313; PAM8403
随着音视频领域数字化大浪潮的发展,传统的按钮调节型音量控制器渐渐地失去主导地位,高效、平稳的红外遥控倍受用户喜爱。红外遥控是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点,广泛应用于诸多电子设备特别是家用电器,并越来越多地应用到计算机系统中。
常见的D类功率放大器采用51单片机作为主控芯片,本文使用ST公司的32位ARM单片机,其主频可以达到72 MHz,能快速高效地对红外进行解码,调节音量的大小。STM32F103C8的通用定时器是一个通过可编程预分频器驱动的16 bit自动装载计数器,它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)[1]。
1 STM32F103C8单片机简述
本系统选用意法半导体STM32F103C8芯片为主控芯片,这是一款以ARM Cortex-M3为内核的32 bit 芯片,时钟频率为72 MHz,从而区别于功能简单的8 bit 单片机,专门应用于对性能要求较高、成本要求较低以及低功耗的场合[2]。具有运行速度高、处理能力强、外设界面丰富、价格低廉和控制、运算性能很强等特点。其具体性能指标如下:(1)最高工作频率为72 MHz;工作温度范围:-40℃~+85℃;宽电压供电:2.0 V~3.6 V;(2)128 KB的闪存和16 KB的SRAM;(3)12位16通道A/D转换器,具有双采样和保持功能,转换时间最短1 s。(4)3个16位通用定时器,每个定时器有多达4个通道用于输入捕获、输出比较PWM或脉冲输出[3]。本系统用到STM32F103C8的通用定时器2的输入捕获模式对红外信号进行解码,与传统的单片机相比省去了同时要打开外部中断和定时器中断的繁琐过程,节约了资源。
2 红外简介
红外线遥控没有无线电遥控那样穿过障碍物去控制被控对象的能力,因此在设计红外线遥控器时,不需要像无线电遥控器那样每套(发射器和接收器)有不同的遥控频率或编码(否则可能隔墙控制或干扰邻居的家用电器)。同时,同类产品的红外线遥控器可以有相同的编码或遥控频率,且不会出现遥控信号“串门”的情况,这使得红外遥控得以大批量生产,在家电设备上得到了普遍应用。
红外遥控的编码一般使用NEC Protocol的PWM(脉冲宽度调制)和NXP RC-5 Protocol的PPM(脉冲位置调制)[4]。本系统中遥控器使用NEC协议,其特征如下:
(1) 8 bit地址和8 bit指令长度;
(2) 命令和地址传输2次,确保可靠性;
(3) 采用PWM脉冲位置调制,根据发射红外载波的占空比来区分代表“0”和“1”;
(4) 载波频率为38 kHz;
(5) 位时间为1.125 ms或2.25 ms。
NEC码的位定义:一个脉冲对应560μs的连续载波,一个逻辑1传输需要2.25 ms(560 μs脉冲+1 680 μs低电平),一个逻辑0的传输需要1.125 ms(560μs脉冲+560 μs低电平)。遥控器接收头在没有脉冲时为高电平,收到脉冲后变为低电平,这样,在接收头端收到的信号为:逻辑1时间为560 μs(低)+1 680 μs(高),逻辑0时间为560 μs(低)+560μs(高)。
NEC遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个9 ms的低电平和一个4.5 ms的高电平组成,地址码、地址反码、控制码、控制反码均是8 bit数据格式。按照低位在前、高位在后的顺序发送。传输时采用反码传输,增加传输的可靠性。遥控器的任意一按键被按下时,从红外接收头端收到的波形如图1所示。
3 系统硬件设计
基于STM32F103C8的功放系统硬件部分主要由STM32最小系统、红外接收电路、音频调节电路、功放电路组成。硬件结构框图如图2所示。
3.1 嵌入式微处理器单元
主控芯片STM32F103C8、电源、复位电路、晶振电路、J-LINK调试界面构成STM32最小系统。STM32F103C8内嵌经出厂调校的8 MHz的RC振荡器,2.0~3.6 V供电,能使系统的工作频率为72 MHz。外部接有按键,10 kΩ的电阻,0.1 μF的电容组成复位电路。
3.2 红外信号的接收和处理
红外接收电路采用Vishay Semiconductor GmbH公司的HS0038红外一体化接收头,接收红外信号频率为38 kHz,周期约26 μs,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。3个管脚分别是地、+5 V电源、解调信号输出端。为了消除干扰,对红外接收头的输出信号接到74HC14进行两次反相后接入STM32的PA6脚,目的是为了得到理想平稳的、有规则的高低电平波形,以便于STM32的解码。其红外信号接收、处理电路如图3所示。
3.3 音量调节电路
美国XICOR公司研制的X9313是一种非易失性数控电位器,是理想的可调电阻器。与机械式电位器相比有以下优点:调节精度高,不易受振动、污染等影响,无机械磨损,易于用单片机或逻辑电路控制,体积小巧易于安装,适用于音量、灯光控制等场合[5]。音频信号的左声道分别经过10 k?赘电阻和10 ?滋F电容后接入数控电位器X9313的高端Rh端,STM32F103C8的GPIOA的PA4口接X9313的“增加”控制引脚INC,PA5口接X9313的升/降控制输入脚U/D, 数控电位器的低端RL接地, 滑动端RW经过10 ?滋F的极性电容后接入PAM8403模块的左声道输入引脚LIN。右声道同样经过另一数控电位器后接入PAM8403模块的右声道输入引脚RIN。功放电路部分采用由PAM公司生产的PAM8403和部分器件组成数字功放板模块。PAM8403立体声D类音频功率放大器能够以D类放大器的效率提供AB类放大器的性能,能够以高于85%的效率提供3 W功率。音量调节电路图如图4所示。
系统上电后进行系统初始化,包括:使能用于输入捕获的定时器时钟、输入捕获和输出的I/O引脚时钟;初始化GPIO,PA1为上拉输入,PA2~PA7为推挽输出;定义定时器输入捕获结构体,进行各参数设置;设置定时器输入捕获通道,捕获下降沿,设置采样分频系数,滤波机制等。数控电位器X9313的片选输入脚CS给低电平,器件被选中,在音频信号接入的情况下等待红外遥控器的按键信号。红外接收头的信号输出端经反相器74HC14两次反相后接入STM32的PA6脚,当有键按下时PA6脚电平由高电平变为低电平,触发定时器2中断进行红外中断解码。如图6所示STM32输入捕获红外解码流程,PA6脚由高电平变为低电平时,触发中断判断是否接收到引导码,当引导码接收成功后接着接收地址码、地址反码、数据码、数据反码,32 bit数据接收完后判断数据码和数据反码之和是否为0FFH,之和等于0FFH则此次数据有效准备下次数据的接收,否则数据无效进行下次数据的接收。
当红外遥控有键按下时,STM32输入捕获红外解码出“1”、“0”对应的程序代码如下所示:
if((IR_PluseSub>900)&&(IR_PluseSub<1300))
{
Im[m/8]=Im[m/8]>>1|0x80;
m++;
}
if((IR_PluseSub>450)&&(IR_PluseSub<900))
{
Im[m/8]=Im[m/8]>>1;
m++;
}
文中建立的红外遥控音量可调系统使用功能强大的32位STM32F103C8单片机,可实现音量的平稳、有效的调节,对于智能化家居系统中多个遥控家电设备共享一个红外遥控器的实现能提供一定的参考价值。该系统红外遥控将来可以直接利用STM32的内部定时器产生38 kHz的红外载波,通过学习目前市场上各种红外遥控器的红外编码即可成为万能遥控器[6],为智能化家居的发展带来一定的推进作用。
参考文献
[1] 黄智伟,王兵,朱卫华. STM32 32位ARM微控制器应用设计与实践[M].北京:北京航空航天大学出版社,2012.
[2] 许雪楠,梁晋涛,黄邦宇.基于STM32的健康一体机控制系统的设计[J].微型机与应用,2013,32(16):20-22.
[3] STMicroelectronics.STM32F103xB STM32F103x8 data sheet [EB/OL].(2009)[2013].http://www.st.com.
[4] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.
[5] 李学海.非易失性数控电位器E2POT-X9313[J].电子制作,1997(8):12-13.
[6] 邵振,章勇,刘培培.应用于智能家居中的红外学习型红外模块设计[J]. 通信市场,2011(4):7-8,27.