智能串口显示终端在温度测试系统中的应用*
2013-09-29郑晓庆杨日杰赵轩坤
郑晓庆,杨日杰,赵轩坤
(海军航空工程学院 航空反潜教研室,山东 烟台 264001)
随着信息技术的发展以及人们对电子产品智能化、便捷化、人性化要求的不断提高,触摸屏作为一种最新的智能显示终端,得到了越来越广泛的应用。触摸屏具有坚固耐用、反应速度快、节省空间、易于交流等优点,是最便捷和自然的人机交互方式[1-2]。本文将智能串口显示终端应用于温度测试系统,实现了环境温度的实时监测与动态显示。
1 系统的硬件构成
1.1 Atmega128单片机
Atmega128单片机是一款基于AVR内核的、采用RISC结构的增强型低功耗CMOS 8 bit微控制器。它的大部分指令在一个时钟周期内完成,因此具有1 MIPS/MHz的数据吞吐率。其拥有优化的功率消耗结构,在功耗相对较少的情况下可以进行复杂的处理[3]。
1.2 数字温度传感器DS18B20
DS18B20是DALLAS公司生产的单线智能温度传感器,温度测量范围为-55℃~+125℃,具有 9~12 bit可编程的转换精度,最大温度分辨率为0.062 5℃[4]。DS18B20温度储存格式如图1所示。
图1 DS18B20温度数据格式
1.3 智能显示终端
智能显示终端[5]采用北京迪文科技有限公司生产的DMT64480T056_01W型四线电阻式触摸屏[6-7]。它是一款640×480分辨率、65k彩色、5.6英寸的 TFT屏幕,工作电压为 4.5 V~26 V的宽压输入,灵敏度为5 g,响应速度为0.01 s,表面硬度在3 H以上,在典型工作电压12 V条件下功耗为2.9 W。其屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层有机玻璃作为基层,表面涂有一层透明的导电层,上面再盖上一层外表面硬化处理光滑防刮的塑料层,它的内表面也涂有一层透明导电层,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。
系统设计中使用串口智能显示终端的配置文件工作模式。在此模式下,可以通过预先将配置文件和触控界面图片,根据界面的跳转顺序关系下载到HMI(智能串口显示终端)中,实现触摸屏根据配置文件自动切换界面以及上传触控键码。配置文件是由最多8 192条触控指令组成的二进制文件,每条触控指令长达16 B,其定义如表1所示。触控界面图片是通过专业图形工具设计和制作的,其分辨率的选取应与屏幕分辨率一致,界面图片被下载到串口智能显示终端后,每页界面都有自己唯一的编号,在配置文件中只需对这个编号进行操作。
表1 触控界面配置指令定义
配置文件工作模式使得单片机对触摸屏的控制程序简单明了,同时也简化了上位机的程序设计。采用配置文件工作模式,触摸屏程序设计可以分为以下几个步骤。
(1)设计好和HMI分辨率相同的界面,下载到HMI中。
(2)利用ASM51编译器和HEX转BIN工具制作并生成配置BIN文件。
(3)把配置文件下载到 HMI中。
(4)配置HMI为触控界面自动切换模式。
(5)测试界面切换及上传指令码是否正常。
1.4 系统原理框图
系统原理框图如图2所示。单片机通过串口1采用中断的方式获取触摸屏的触控信息,触摸屏的电平信号为RS-232电平,单片机的串口信号为TTL电平,设计中采用电平转换芯片MAX3232作为触摸屏与单片机的通信接口。单片机对串口1接收到的按键控制信息进行识别,控制DS18B20的温度转换,同时将DS18B20温度测量结果回传给触摸屏显示。
图2 系统原理框图
2 系统软件设计
2.1 HMI指令
HMI指令集可用于文本显示、点显示、连线显示、圆弧曲线显示及区域显示等。HMI指令中,AA为指令开始标志,CC 33 C3 3C为指令结束标志。由智能显示终端回传的数据包包含触控键码信息,其指令长度为8 B,格式为 AA 78<触控键码(2 B)>CC 33 C3 3C,78 表示触控键码返回指令。控制触摸屏界面跳转指令格式为:AA 70<图片编号>CC 33 C3 3C,70表示触控界面跳转指令,图片编号可以根据需要选取1 B或者2 B。文本显 示 指 令 格 式 为 :AA 55<X><Y><String>CC 33 C3 3C,其中 55表示 ASCII字符以半角 16×32点阵显示,<X><Y>表示显示字符串的起始位置,<Strinig>为要显示的字符。动态曲线显示指令格式为:AA 74<X><Ys><Ye><Bcolor><(Y0,Fcolor0),(Y1,Fcolor2)… (Yi,Fcolori)>CC 33 C3 3C,该指令用于在一个窗口中快速显示多条变化曲线,终端接收到该指令后用<Bcolor>颜色擦出从(X,Ys)到(X,Ye)的垂直线,把原来的显示内容清空,然后在(X,Yi)位置用<Fcolori>颜色置点。
2.2 串口接收程序
串口1接收程序流程图如图3所示,DUR1是单片机串口1的寄存器,用于接收串口信号,Receive是一个程序定义的数据寄存器,串口信号以比特为单位传来后由DUR1寄存器接收,赋值给Receive。如果这是一个指令开始标志,将指令开始标志位flag置1,将指令数组Order的计数器j清零,然后将该数据存入指令数组;如果不是一个指令开始标志的话,则由当前指令开始标志位判断是否属于指令的内容。如果flag为1则将数据存入数据寄存数组,然后将指令数组计数器j加 1,并对 j的值进行判断,当j=8时则说明8个字节的返回指令已经接收完毕,将指令数组寄存器j和指令开始标志位flag清零。根据触控键码返回指令格式,只需读取 Order[2]和 Order[3]的 值就可以识别出返回的控制信息。
图3 串口1接收程序流程图
2.3 DS18B20温度测试程序
单片机使用时间隙来读写DS18B20的数据位和写命令字位,其温度测试过程如图4所示。单总线上的所有处理均从初始化开始,总线主机检测到DS18B20的存在,便可以发出ROM操作命令,之后发送存储器操作指令完成温度转换(44H)和温度读取(0BEH)。
图4 DS18B20温度测试流程图
2.4 程序流程图
系统程序流程图如图5所示。单片机通过串口1中断的方式设置温度测试标志位ii,接收到测试开始指令后将标志位ii置1温度测试开始;接收到测试结束指令后将标志位ii置0,温度测试结束。
图5 系统程序流程图
本文设计了基于智能串口显示终端、Atmega128单片机和DS18B20的温度测试系统,实现了温度的实时监测、温度值的实时显示以及温度动态变化曲线的显示。触摸屏作为系统智能的输入和输出终端,具有友好的人机界面。北京迪文智能串口显示终端具有丰富的指令集能够满足系统设计对于文本显示、点显示、连线显示、圆弧曲线显示及区域显示等功能的需求,将在系统设计中得到越来越广泛的应用。
[1]张恩宜,张爱红.触摸屏技术的发展与应用[J].山东师范大学学报(自然科学版),2002,17(1):93-94.
[2]马雅.基于ARM9的触摸屏控制器系统硬件模块设计与实现[J].中国西部科技,2011,23(10):30-31,39.
[3]金钟夫,杜刚,王群,等.AVR Atmega128单片机C语言设计与实践[M].北京:北京航空航天大学出版社,2008.
[4]王战备.室内温度检测与调控系统设计[J].电子设计工程,2011:19(6):40-43.
[5]北京迪文科技有限公司.HMI产品线应用指南[Z].2008.
[6]罗敏.基于 PLC和触摸屏的纸厂污水控制系统[J].机电工程技术,2009,38(11):50-52.
[7]王孝洪,徐振宇,莫鸿强,等.基于 Atmega128单片机的数字化地下管线定位仪[J].智能仪表与传感器,2009,17(9):1860-1964.