引言
红外遥控在家电、玩具、工控、智能仪表中是使用最广泛的一种通信和遥控手段。Proteus仿真能大大加快该遥控系统的开发周期和提高其性能,但是当前版本的Proteus中尚没有红外发射器的仿真元器件,只有一个IRlink模块可以用于接收并解调红外信号,给红外系统仿真带来了较大的难度。目前学者对红外遥控系统的接收部分仿真已经有较多的研究,但是还很少有针对红外遥控发射部分的典型仿真研究。可以设计一种典型的红外发射器仿真模块,该模块在仿真中相当于实际的遥控器。进行红外遥控系统开发仿真时,可以将此模块用于红外遥控接收电路以及其软件的快速验证,加快产品开发周期。
1 红外遥控发射器调制解调过程简介
红外遥控发射器发射的一帧数据一般由引导码、低8位用户编码、8位数据码、8位数据码的反码等4部分组成。其中用户识别码能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位数据码和8位数据码的反码,每次8位的数据码被传送之后,它的反码也随即被传送,用于确保接收数据准确。这种遥控码是采用脉冲宽度调制方式,它的特征是:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。
红外数据帧经编码后,还要用38kHz的方波进行脉冲幅度调制。如图1所示,最上面一行为待发射数据的波形,第二行为38k载波,第三行为经载波调制后的红外发射信号波形,第四行是经过一种专门的红外接收滤波后的数据还原。可以看出,最后通过解码还原出来的数据波形与红外遥控器发射的数据波形相位刚好反向。
2 红外遥控仿真硬件电路设计
图2所示是红外发射接收一体化仿真电路。单片机U2部分为红外接收,并显示接收到的红外编码,显示部分可采用数码管,LCD等显示器件,学者已经对红外接收及显示有较详细的研究,在此不作论述,只用作验证红外遥控发射器模块的有效性。
单片机U1部分为模拟红外遥控器发射。因Proteus仿真软件里面没有常见的红外遥控发射器处理芯片,这里用8051单片机U1来实现,其P3.4口输出待发射数据,该数据经与门U3和38k载波信号调制后发射到接收电路,接收电路再通过Proteus软件自带的IRlink模块解调后送到U2的外部中断INT0。遥控发射器按键输入采用4×4矩阵键盘,当按下某一个键后会发出对应的编码。例如按下键K6,按照红外发射数据帧结构,将通过P3.4口串行发送“00,00,006,0f9”,其中,前面的“00,00”为用户码,对于不同的设备需作相应的修改;“006”是代表6号键,“0f9”是“006”的反码,用于校验,提高传输准确性。只要在单片机的程序中对用户码和按键编码作相应的修改,就能使该遥控发射器在各类红外遥控系统仿真中通用。
3 红外遥控发射器程序设计
3.1 软件功能概述
根据仿真硬件电路设计,单片机的软件程序需要完成以下2个功能:1)按键扫描:实时对4×4矩阵键盘扫描,得到按键码,并根据按键码查找出对应的红外发射编码。2)编码发射:根据前述2.1和2.2的编码协议通过P3.4口发射红外编码。
单片机程序功能较简单,但是对于按键扫描和编码发射的时序要求较高,既要保证实时扫描到按键,又要保证红外编码的实时发射。
3. 2 程序设计