最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能装备

基于ZigBee的无线人机界面设计

发布时间:2011-01-29 作者:石建国 邓春健  来源:万方数据
关键字:ZigBee 人机界面 HMI LCD 触摸屏 
针对特殊应用系统中进行信息交互的需要,提出一种基于ZigBee的无线人机界面设计。采用支持IEEE802.15.4/ZigBee协议的JN5139无线微控制器,配置带触摸屏的TFT-LCD显示器、导航按键、实时钟、蜂鸣器和字库存储器,利用所建立的ZigBee网络,实现与现场控制器的无线连接及数据交换。与有线人机界面相比,具有节省线材、安装灵活、使用方便等优点,应用前景广阔。

0 引言

    人机界面(Human-Machine Interface,简称HMI)是电子系统中实现人机交互的数字终端设备,其基本功能是通过LCD屏幕显示系统运行状态或参数变化,通过控制按钮设置工作参数或输入操作指令。HMI以8位、16位或32位微控制器为核心,并配有外部通信接口,利用RS485/422、CAN等标准总线还可实现多台HMI与现场控制器的网络互连。

    现实中有一些应用系统,如行走机器人监控系统、无线抄表系统、手持遥控系统等,由于被控设备或操作人员处于移动状态,不能使用存在线缆约束的有线HMI,必须在现场控制器与HMI之间建立某种形式的无线连接。可供选用的无线技术有IrDA、Bluetooth、WUSB、ZigBee、GPRS、Wi-Fi等,其中,ZigBee作为低速无线个域网(LRWPAN)规范,具有协议简单、终端功耗小、成本低、可靠性高、组网能力强等优点,是实现设备间短距离、低速率无线互连的较好选择。

1 无线HMI的结构

    无线HMI由JN5139微控制器、液晶触摸屏、导航按键、蜂鸣器、有线通信接口、字库存储器、实时钟等单元组成,如图1所示。JN5139作为HMI控制器,除用于各输入/输出设备和功能芯片的驱动和控制外,还通过所建立的ZigBee网络,实现与现场控制器的无线连接,接收并执行其发送的输出控制命令,并向其传送设备输入信息。

无线HMI结构图

图1 无线HMI结构图

    JN5139为Jennic公司推出的第二代单片无线微控制器,内部集成了32位RISC CPU、2.4GHzIEEE802.15.4射频收发器、192KB ROM、96KB RAM以及多种接口部件。方便起见,直接选用已通过FCC、ETSI等认证的JN5139模块,该模块将微控制器芯片及其外围晶振、串行FLASH存储器、陶瓷天线等部件整合在30mm×18mm的4层 PCB板上,具有优良的电磁兼容性。

2 无线HMI的硬件实现

无线HMI电路原理图

图2 无线HMI电路原理图

    图2为无线HMI的具体硬件电路。根据不同外设和功能芯片的接口要求,充分利用JN5139片上资源,实现同类型接口对应信号线的匹配连接,简化了系统硬件结构。图中JN5139异步串口0经MAX232电平转换后成为RS232接口,既可用于程序的调试以及代码或字库文件的下载,也可作为与现场控制器近距离有线连接的标准接口。分页2.1 液晶触摸屏及导航按键

    液晶显示选用分辨率为240×320,尺寸为3.2in的16位色TFT LCD模块,该模块内置ILI9320驱动器,采用8位并行传输模式,8条数据线和5条控制线由JN5139的13根I/O口线直接驱动。图3为LCD模块典型工作时序。显示控制通过对ILI9320内部寄存器进行读写实现,先利用控制通道写入要访问的寄存器地址索引,再利用数据通道写入或读出相应的数据。大部分寄存器与显示参数设置有关,多数是在显示器上电时进行初始化。对显存(GRAM)的访问通过地址计数器(AC)间接实现,首先向R20h、R21h寄存器写入水平及垂直显示方向的GRAM地址分量,作为地址计数器AC的初始值,接下来对R22h寄存器进行的数据读写将自动映射到AC对应的GRAM单元,且AC会在每次GRAM写操作后根据R03h中AM、I/D1、I/D0的设置自动进行地址调整,提高了GRAM连续写入的效率。

    4线电阻式触摸屏由ADS7846芯片控制,JN5139通过DIO20接收笔中断信号,通过1#SPI口向ADS7846发送控制字并读取A/D转换结果,进而利用线性标度变换解算出触点位置坐标。LCD背光采用5只白光LED,其亮度由JN5139 T0_OUT端输出的PWM波控制。

    导航按键包括上、下、左、右4个方向键和1个确认键,主要用于菜单的便捷操作。为减少JN5139 I/O口开销,利用1路A/D转换器实现按键的检测。每个按键对应不同范围的分压值,根据A/D转换结果的数字量范围即可确定是否有键按下以及哪个键按下。

2.2 字库存储器

    字库存储器选用32Mbits串行Flash芯片SST25VF032B,该芯片采用SPI接口,由JN5139的2#SPI口直接驱动。采用自动地址增量字编程模式在SST25VF032B中预先存入多套ASCII西文字库及GB2312一二级汉字库,0#扇区(最低4KB空间)为字库索引表,可通过字库编号检索出每套字库的点阵宽度、高度以及在SST25VF032B中的偏移地址。

2.3 实时钟

    PCF8563为I2C接口低功耗时钟芯片,除正常的时钟/日历功能外,还具有可编程频率输出、定时器、闹钟报警、低压监视等功能。工作电压为3V时,休眠电流仅为0.25μA。

    JN5139内置硬件I2C接口,其SIF_CLK、SIF_D引脚分别与PCF8563串行时钟线SCL和串行数据线SDA相连。PCF8563的器件地址为A2H(写操作)和A3H(读操作),片内16个可寻址寄存器的地址为00H~0FH。

3 无线HMI软件结构

    Jennic SDK集成了开发ZigBee应用所需的CodeBlocks IDE、C语言工具链、IEEE 802.15.4/ZigBee协议栈、JN5139外设驱动库和BOS操作系统,可利用CodeBlocks的工程向导创建无线HMI程序框架,程序中通过调用不同的API函数或自定义函数,实现对外设中断、协议栈事件和传输帧的处理。

LCD写操作时序图

图3 LCD写操作时序图

    无线HMI系统软件以非抢占式任务调度器BOS为核心,由BOS控制ZigBee协议栈任务(包括网络层NWK、应用子层APS和ZigBee设备对象ZDO)和用户任务的执行,不同任务之间利用事件进行通信,通过消息传递实现数据交换。

    系统复位入口为AppColdStart函数,主要负责网络参数设置、系统初始化并启动BOS,BOS获得控制权后,通过调用JZA_boAppStart函数启动ZigBee协议栈,并以协调器(Coordinator)身份自动完成网络的创建。接下来,BOS周期性地调用JZA_vAppEventHandler函数,执行时间读取、屏幕刷新等用户任务,发生协议栈事件(如数据发送确认)或外设中断(如定时器中断、串口中断、触摸屏笔中断等)时,自动执行JZA_vStackEvent或JZA_vPeripheralEvent函数中的事件处理代码,显示控制指令的接收处理通过JZA_bAfMsgObject函数实现,按键键值和触摸屏触点坐标的发送通过afdeDataRequest函数实现。

4 应用设计

    无线HMI应用系统的结构如图4所示,图中主控器配接ZigBee无线接口模块,并且该模块以路由器(Router)身份加入无线HMI建立的ZigBee网络。主控器与HMI应用层之间通过命令帧和状态帧进行信息交换。命令帧和状态帧均是相对于主控器而言,通过发送命令帧实现其对HMI的显示控制、背光调整、实时钟设置以及蜂鸣器驱动,通过接收状态帧获知HMI发送的命令执行结果、按键键值或触摸屏触点坐标。

无线HMI应用系统的结构

图4 无线HMI应用系统的结构

    ZigBee接口模块的结构比较简单,硬件方面仅为一块JN5139模块组成的最小系统,通过串口连接主控器。软件方面,以Router身份加入网络后,一方面通过JZA_vPeripheralEvent函数监视串口状态,收到主控器发送的命令帧后,将其拼装为MSG帧,通过afdeDataRequest函数传送给HMI;另一方面,通过JZA_bAfMsgObject函数检测是否收到HMI发送的MSG帧,是则将其拆解为状态帧并通过串口传送给主控器。

5 结束语

    本文研制的无线HMI利用ZigBee网络实现主控器与HMI之间的信息交换,数据传输率可达250Kbps,开阔地通信距离为50-100m,通过增加网络节点还可实现更大范围多个主控器与多个HMI之间的互连。笔者通过二次开发,先后设计出LED大屏幕现场调试器以及空调集控系统无线遥控面板,使用效果理想。随着相关技术的不断成熟,基于无线连接的HMI将获得更加广泛的应用。