基于ST20P18 的433MHz无线通用遥控设备
摘 要:随着家用电器的增加,遥控器式样繁多,给使用带来诸多不便。人们希望能有通用遥控器来控制多个家电。本文讨论了以433MHz为频率的无线通用遥控设备,对其硬件和软件进行了设计,该设备可控制多个家用电器,而且功耗低、成本小,实际运行证明传输系统工作稳定,穿透能力强。
关键词:无线通用遥控设备、无线发码、ST20P18、睡眠模式
1.简介
在现代家庭中,各种各样的家用电器都配置有遥控器,以致遥控器泛滥成灾。桌面上摆上七八个遥控器(电视机、录像机、DVD播放机、MD唱机、功放机等)已司空见惯,寻找、辨认起来都很困难,更不要说操作。因此,人们即希望:能不能有一种通用遥控器,用它控制家庭中所有的电器。这样就诞生以433MHz为频率的无线通用遥控设备,为短距离无线通信提供了非常简单的解决方案,它是开发低成本、低功耗无线通信系统的理想方案。一般由单片机控制电路、LCD显示电路、无线发码电路等构成。按照节点的多少可以分为单节点和多节点模式。单节点也称为点对点式,结构简单、体积小,便于随身携带,用于控制单个家电的通信;而多节点又称为点对多式,它可以根据用户的要求而设计不同的路数,也可以很方便地进行扩展,可以同时控制多个家电,功能齐全。本系统设计为16路,在接收部分可以根据接收到的信息控制多个家用电器。
2.系统硬件的结构原理和设计
2.1 系统简介
通用型遥控设备主要由开/关键、液晶显示屏、置位键、确认键、返回键、数字键盘等部分组成,其外形与手机相仿。它的操作也很简单,以遥控电风扇为例,打开遥控器后,首先显示主菜单,是各种电器的名称,用上下键选中所要操作的家用电器。例如选中“电风扇”,按确认键后就可进入其子菜单,再选择所操作的项目,如风力挡位的大小、风扇的方向等,再按确认键进入下级子菜单,进行具体的操作,如调整风力和风向等,其余家用电器类似操作。
硬件电路是由1个4位的拨码开关电路、无线发射电路、ST20P18单片机主控制电路、键盘扫描电路、液晶(LCD)显示电路等组成。
2.2 无线发码电路
其中单片机采用的是 ST20P18,它是由台湾矽创公司生产的一种CMOS工艺制造的低功耗低价位的8位单片机,芯片内部带有振荡器、系统定时器、看门狗定时计数器、LCD控制器和16Kb的ROM以及192B的RAM。ST20P18控制的发码电路原理图如图1所示,其发码的基本原理为:系统利用拨码开关来控制地址位和数据位(二进制)信息的设置,再通过单片机运行发码程序进行编码并把地址位和数据位信息变换成一串脉冲信号,最后由无线发射电路发射出去。具体实现为:单片机PB0口为发码电路的数据输出口和控制口,当需要发码的时候该口设置为输出口,然后以脉冲的形式,按照相关的通信协议,输出当前所要发出的正确数据。反之,PB0口可复用为其他功能。PB0口的脉冲数据经发码电路调制并发射出433MHz的无线电波。
在无线发射电路中使用声表面滤波器搭建的模拟发射模块电路,其工作频率是433MHz,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在 -25~+85℃之间变化时,频漂仅为10-6/℃,特别适合一发多收无线遥控及数据传输系统。但因无线电信号传输时受到很多因素的影响,所以一般实用距离只有标准理想距离的一半甚至更少,这点在开发时需要注意。如果需要更远一点的发射距离,可以在发射模块的输出端增加一级射频功率放大器。
经过对电路的研究得到以下结论:
(a)为了得到稳定且正确的频率,经过反复的调试得出无线电波频率取决于R3,当R3=15kΩ时,发射的无线电频率为433MHz。
(b)由于该模块是由模拟电路搭建,所以决定了其性能不如相关的其他类型的数字射频芯片,但是其成本相当的低廉!考虑到尺寸和成本因素且射频波长短,在设计中选用50Ω的1/4波长偶极子微带印制板天线,即在接地层由电介质隔开的印制电导线。故在该电路中天线的形状以及长短具有至关重要的作用。设计实践表明:天线的形状和长短如选取不满足50Ω的1/4波长偶极子天线,该电路发射不稳定,更严重直接导致该电路不能起振。
2.3 键盘扫描电路
由于ST20P18的I/O口有限,故在键盘电路中采用扫描的方式来实现。该电路的实现方式如图2所示。其工作的基本原理是:单片机初始化后先设置PA0至PA5、6个I/O口均为输入方式。以K1为研究对象,先设置PA0口为高电平,设置PA5口为低电平,当K1按键按下后,PA0则由高电平跳变为低电平,并产生中断。单片机响应该中断,执行中断服务程序。同理,其他6个按键也是按照该方式工作的。单片机扫描原则是自上而下,自左而右的。
2.4 LCD显示电路
本设计采用的ST20P18单片机,其内核中自带控制/驱动液晶模块,该LCD(图3)显示模块是8×40点阵,常用于遥控设备的液晶显示。液晶显示的主要控制引脚为COM0~COM7。本设计只用到COM0~COM3。
该模块的显示RAM分为4块,每块5行,8列,所以共有4×5×8位。液晶屏幕上的每一个8点列对应显示RAM中的一个列字节。当设置了块地址和列地址后,就唯一确定了显示RAM中的一个列字节。每个列字节中最上面一位为LSB,最下面一位为MSB。对显示RAM的一个列字节赋值就是对液晶屏幕上对应像素点是否显示进行控制。把不同字符的字模写到不同位置的显示RAM字节中,就能在屏幕上显示相应的所要求的字符。
3.通用遥控器的软件设计
开机后,先进行初始化,包括对单片机的初始化、LCD的初始化和其他模块的初始化。出于省电的考虑在40s内若没有键按下,让单片机的LCD控制器进入空闲模式。用“for”循环来计时,并设计初值为零。随后开始40s计时,若在此期间有键按下,则进入中断服务程序,若40s内无键按下,则单片机的LCD控制器进入空闲模式。若在空闲中有键被按下,单片机被唤醒,执行中断服务程序。由于单片机的LCD控制器被中断唤醒执行完中断程序返回后,单片机会接着执行把单片机的LCD控制器置为空闲模式的那条指令的下一条指令,因此在把单片机的LCD控制器置为空闲模式的指令后再有一个循环来计时,由于中断返回前,重设计数初值为零,所以会重新开始5s的计时。在这40s内,若无键按下,则单片机的LCD控制器又进入空闲模式。程序流程图如图4所示。
4.通信协议
4.1 编码字的格式
能实现编码功能的逻辑电路称为编码器。每一种遥控编码芯片都有一种特定的编码格式。我们把传送一位二进制数0或者1的时间作为一个时间单位T,编码信号的频率为F=1/T。这里用的是一种比较常用的编码格式,每一帧由步码、地址码和数据码组成,同步码用在一帧的开始,是一帧的识别标志,宽度为8T;地址码20(A0—A19),宽度为20T;数据码4位(D0-D3),宽度为4T,一帧占据的总时间是32T。
对应于每一种状态,编码芯片内部能够生成一种特殊的编码,这种编码也是由“1”和“0”组成,但并不是简单的用高电平代表“1”,用低电平代表“0”,而是用高电平与低电平宽度比例的不同来区分“1”和“0”,也就是所谓的占空比。为了提高此编码传输串行信号的可靠性,故此编码采用一个周期的占空比为1/4的脉冲表示0,占空比为3/4的脉冲表示1,同步信号用一个占空比为1/32的脉冲表示,如图5所示。
4.2 遥控信号的发射
通常遥控信号的发射,就是将某个按键所对应的控制指令和信息码(由0和1组成的序列),调制在32~56kHz范围内的载波上,然后经放大、驱动无线发射电路将信号发射出去。
如表1所示,各部分码的作用:引导码用来通知接收器其后为遥控数据。地址码用来区分是哪一机型的数据,接收端据此来判断后续的数据是否为本机必须执行的指令。信息码用来区分是哪一个键被按下,接收端接受信息码的数据并据此做出应该执行什么动作的判断。信息码也包括在持续按键时发送的连续码。它告知接收端,某键是在被连续地按着。结束码用来通知接收器一帧数据发送完毕。
遥控数据传输系统的关键是数据传输的可靠性。为了提高编码的可靠性,本协议规定地址码后接着传送一个反码,供误码校验使用。每一位的信息码后接着传送一个奇偶校验位也是用来作为误码校验使用。
5.结束语
本设计的创新在于提出了通用家电遥控设备的设计方案,根据实际的要求能够控制多个家用电器,睡眠模式实现低功耗,且成本低于其他同类产品。经过实际运行测量,该无线传输系统工作稳定,穿透能力强,功耗低(当在空闲模式下,电路中电流小于10μA)能够很好的实现相应设计要求的功能。
暂无评论