无线通信是人们现代日常生活的一部分,在办公室、学校或家庭等场所,都在接触无线通信设备,如笔记本电脑、打印机、摄像机、手持设备、照明控制器和家电设备等。这些设备的复杂程度与它们执行的任务类型有关,其中许多家庭自动化的无线应用采用小型微控制器和少量代码执行简单的任务,更加追求低成本、单一性和微型化。在目前众多的无线网络技术中,ZigBee技术作为一种新兴的无线网络技术,近两年在工业控制、消费电子等领域以及科研开发中得到了众多的关注和使用,而且越来越显示出它的强劲应用势头。ZigBee是一种低功耗、短距离和低速的无线网络技术,工作在2.4 GHz国际免执照的频段,在IEEE标准上它和无线局域网、蓝牙同属802家族中的无线个人区域网络。
通常的ZigBee无线控制器节点是以一个高端微控制器为核心,再配合无线收发器构成的。本文将设计一个新型的、低成本的、使用ZigBee无线技术的精简型无线控制器,比如用于空调遥控,整个目标应用板上的元器件极少,走线极少,体积极小。该设计只采用三个电子芯片:一个低端微控制器(MC9S08QG8)、一个RF收发器(MC13192)和一个16×2的LCD,其他需要的元器件为电阻和按键之类的无源器件。
1 器件选择
为了实现工业或家电无线控制应用低成本的目标,首要任务是选择合适的微控制器(MCU)和无线收发器。Freescale半导体公司(飞思卡尔,前身为Mo-torola半导体部)的各档微控制器在国内嵌入式控制领域获得了越来越多的应用。它最新推出的MC9S08QG低端微控制器系列,其处理内核、片上外围设备、节电功能和开发工具等,构成了成本、能源、效率敏感的控制应用的理想解决方案。采用MC9S08QGx微控制器系列,不仅开发的费用可明显减少,最终生产阶段的成本也可大幅下降。在开发阶段,一些高级调试功能,包括CodeWarrior全功能工具链和ProcessorExpert工具包等都是免费赠送的。在生产阶段,内部时钟源模块、模拟电路和E2PROM模拟则减少了对诸如晶振或谐振器、模拟比较器、串行E2PROM等外部器件的需求,否则这些外部器件都是印制电路板上必不可少的。
本无线控制器设计的核心器件即选择Freescale该系列中的仅有16引脚的MC9S08QG8,它是采用高性能、低功耗的HCS08内核的飞思卡尔8位微控制器系列中具有很高的集成度的器件,内置8 KBFLASH存储器,512 B RAM,SCI/SPI/IIC接口,8位模/数定时器模块,A/D模块等。MC9S08QG8 MCU集成了通常只有较大、较昂贵的元器件才具有的性能,包括背景调试系统以及可进行实时总线捕捉的内置在线仿真(ICE)功能,具有单线的调试及仿真接口(BDM),还包括一个可编程的16位定时器/脉冲宽度调制(PWM)模块(TPM),是同类产品中最灵活、又最经济的模块之一。
另一个主要芯片为无线收发器,同样选择Frees-cale半导体公司的MCl3192,它是Freescale公司推出的符合ZigBee标准的新型射频芯片。其工作频率是2.405~2.480 GHz,该频带划分为16个信道,每个信道占用5 MHz的带宽;采用直接序列扩频的通信技术,数据传输速率为250 Kb/s。MCl3192具有一个优化的数字核心,有助于降低MCU处理功率,缩短执行周期。为了适应低功耗的要求,芯片除了接收、发送和空闲三种工作状态外,还有三种低功耗运行模式:
掉电模式 此模式下芯片电流小于1μA;
睡眠模式 此模式下电流在3μA左右;
休眠模式 此模式下电流约为35μA。
芯片采用可编程功率输出模式,发送功率为O~4 dBm,接收灵敏度可以达到-92 dBm,传输距离为30~70 m。由于MC13192的低功耗特性以及SPI通信接口,它与MC9S08QG8微处理器配合用于解决电池供电设备的低电压、低功耗应用以及通信控制等,是十分适合的。
至于其他外围器件则可选用通用的,比如液晶显示器使用16×2的字符型LCD,按键按最终的工艺要求配用,这部分的电路应用是成熟技术。
2 无线控制器的总体构建
基于前述主要器件的选择考虑,本文实现的无线控制器原理框图如图1所示。
用来在收发器和微控制器之间交换数据的接口主要为串行外设接口(SPI)。微控制器MC9S08QG8通过SPI接口(4线)对MCl3192的内部寄存器进行读写操作,从而完成对MCl3192的控制和数据通信。该接口可以读写收发器的配置、状态和控制寄存器。SPI接口还可以读写位于收发器内部的RAM,用于通过RF发送和接收数据。另一个用于收发器和微控制器间通信的信号是中断请求(IRQ)信号。IRQ脚由收发器进行处理。当收发器的状态寄存器发生变化时,IRQ脚会产生下降沿跳变。IRQ产生后,微控制器要做的第一件事就是读取状态寄存器,确定产生中断的特定事件。
微控制器MC9S08QG8通过通用I/O接口GPIO完成与液晶显示器和按键的连接,其中LCD数据线和按键输入线设计成多路分时复用的(共4线),LCD的控制线由MCU单独提供(共3线)。
BDM程序下载和在线调试仅占用MCU的单线1线,在设计之初是必须的,但当调试下载完成后,该引线也可当做普通I/O使用或备用。
3 硬件电路的具体设计
根据前面器件选择和总体构建的考虑,本文完成的无线控制器具体设计电路如图2所示。其中MC9S08QG8微控制器(MCU)的大部分管脚具有多重功能,电路设计中,即以MC9S08QG8为核心,实现各种控制。
图2无线控制器应用原理图分为三部分:MC9S08QG8 MCU所需的基本连接;MCl 3192无线收发器的连接;16×2 LCD和4个按键的连接。
各部分的供电电源为低电压3 V,可用两节7号电池供电。MCU的时钟电路无需外接晶振,直接使用MCU内部自带的时钟;MCU的RST和BKGD引脚用于BDM接口的连接,完成程序下载后可另作它用,比如MCl3192的中断信号IRO就接至PTA3/RST/IRQ复用;图2中MCl3192收发器其他外围电路使用数据手册提供的工作所需的最低硬件要求。MCU与MCl3192的连接按照标准SPI方式连接,MCU为主机,MCl3192为从机,通过MOSI,MISO,SPSCK信号线可以配置收发器,并发送和接收数据。同时也可以通过SPI配置收发器提供的定时器和GPIO引脚,将其用于其他的目的。收发器的片选CE信号由MCU的通用I/O口PTB5进行选通。收发器要切换运行模式(接收、发送、半休眠、休眠或空闲)还需要另外一个信号,该信号称为RXTXEN,由MCU的通用I/O口PTB7进行处理。MCU与MCl3192之间的数据传输模式可采用流模式,每次收发一个字(16 b),都通过中断由MCU控制处理,这样可以最大限度地保证了数据传输的实时性。
16×2 LCD的RS,R/W,E信号由MCU通用I/O口PTB的三个引脚进行控制,实际上可以将R/W直接接低电平,或者软件控制使始终为低点平,因为应用时只需对LCD做命令、数据写入;数据线采用LCD的4线访问形式,即只用DB4~DB7,由MCU的PTA0~PTA3提供;背光电源BKL+,BKL-不接,以减少功耗。4个按键也接在MCU的PTA0~PTA3,与LCD数据线复用,按键的上拉电阻使用MCU内部配置的,无需外接上拉以减省元件。同时当等待处理按键时,MCU将按键输入直接配置成按键输入中断,也减少了硬件连接和软件复杂度,按键发生时MCU自动转去读取按键输入及按键处理,当要进行LCD显示时,MCU又将复用线临时配置成数据输出,配合LCD控制信号完成LCD的内容显示。
MCU的8 KB FLASH和512 B的存储器资源对于一般的无线控制是足够的,另外,设计中还会用到MCU的定时器资源,通过定时比较器生成一般无线控制应用中都需要的定时时间,通过软件编程可以方便地实现。
4 无线控制功能示例
以上设计方案适用于多种无线控制应用,如空调、智能风扇等的无线控制。在此方案基础上还可以扩展出更复杂的无线控制应用,因为MCU还有少量口线(比如再增加一个设备开关按键)、MCl3192还有很多接口如它自带的GPIO、定时器等都是可利用资源;同时此方案其实仍然可以精简,比如不需要显示的无线控制应用,就可省去LCD显示器。
以空调的无线控制应用为例,按本文硬件设计原理,使用LCD来显示不同的功能菜单,如当前温度、定时设置、温度设置和工作状态报告等。4个按键可以分别安排为:
SW1为功能菜单或状态报告;SW2为增加数值或功能切换;SW3为减少数值或功能切换;SW4为确认或接受,兼用开关设备。
当应用开始时,空调总是处于关闭状态。必须先按SW4按键才能打开空调。当强制关闭空调时,SW1+SW4按键起作用。空调打开后,LCD上会显示当前温度和上次设定温度,一旦空调打开,可以分别使用SW2键和SW3键来降低或增加温度。这时如果要设置空调的各种工作模式如制冷、制热、除湿、自动、风向、风速、定时时间及温度等,可以按动SW1切换功能并配合SW2键、SW3进行操作,每次用按键修改了工作模式、温度、定时时间等设置后,系统会采用一个简单的协议将控制命令通过MCl3192无限收发器发送到加热/制冷系统。此时可按SW4键确认以使LCD恢复到状态报告及新的设定指示。
如果没有设置定时时间,空调永远不会自动关闭,需要人工强制关闭。设置定时时间能自动关闭空调,安排定时时间在5~300 min之间。如果设置希望的定时时间,步骤如下:
(1)打开空调,如果空调处于关闭状态,则不能设置定时时间;
(2)按SW1键。调整菜单到定时功能,使在LCD上显示定时设置菜单;
(3)按SW2键或SW3键来减少或增加希望的定时时间;
(4)按SW4来接受新的定时时间;
(5)一旦接受新的定时时间后,LCD上会再次显示工作模式、当前温度、定时时间、剩余时间等相关信息。
对应于设备定时关闭,空调的自动开启功能则需要在本文电路基础上增加专门的时钟芯片来获得日期、时间信息基准来实现,具体本文不做讨论。
5 结 语
本文仅使用了一个Freescale MC9S08QG8低端微控制器,再加上很少的一些连接线和硬件资源,已经具有无线通信能力和人机交互功能。这说明ZigBee无线应用并不一定总是需要高性能的微控制器,低端微控制器也能够完成无线网络要求的一些基本任务,从而降低了整个解决方案的成本。同时,本文实现的无线控制器具有功耗低、元器件少、成本低、性能高而功能全的特点,是嵌入式无线控制应用的一种精简解决方案。