王守华,纪元法,孙希延
WANG Shou-hua, JI Yuan-fa, SUN Xi-yan
(桂林电子科技大学 信息与通信学院,桂林 541004)
随着信息技术的发展,支持图形界面的触摸操作的设备已经越来越广泛地应用到航空航天、军事、消费类电子、通讯设备等诸多领域。由于嵌入式系统具有体积少、性能好、功耗低和可靠性高以及面向行业应用的突出特征,嵌入式技术越来越与人们的生活紧密结合。如今,基于嵌入式触摸屏作为一种新的输入设备随处可见,手机、PDA、ATM取款机、签署包裹和一些公共查询系统都可能用到触摸屏,由于其轻便、占用空间少、方便灵活等优点,触摸屏已经逐步取代键盘和鼠标成为嵌入式系统的主要输入设备。
在教学领域,教师手工登记学生的各项成绩,一般采用的是纸质表格。这种方式不但工作量大,效率低,而且容易出错,密密麻麻的成绩期末处理起来非常的繁琐。而ARM触摸式实验成绩录入装置的研制,可以实现实验成绩录入流动作业,并且便于后期统计、汇总和分析。
整个装置结构包括ARM触摸式录入手持端和教师主机PC端。ARM触摸式录入手持端框图如图1所示。主要包括3.2英寸TFT触摸屏、控制模块STM32F103和无线模块RF1100SE等几部分。其中,STM32F103RBT6开发板作为整个系统的核心板。这个开发板上的I/O接口,可直接驱动3.2英寸的触摸屏,只需制作一个连接触摸屏和无线模块的转接板即可。
图1 ARM触摸式录入手持端框图
STM32103RBT6为增强型STM32系列。它是32位基于ARM核心的带闪存的、USB、CAN总线的微控制器,它有七个16位定时器、2个ADC、9个通信接口。STM32 是Cortex-M3内核的CPU,有32K字节至128K字节闪存程序存储器和6K字节至16K字节SRAM。
触摸屏Poweravr 3.2寸TFT[240*320]是26万色彩屏触摸模块。它支持SD卡,支持DATAFLASH(可以做字库),支持16位/8位模式,自带触摸屏及触摸控制芯片。LCD模块的驱动芯片为ILI9320,触摸屏的控制芯片为RSM1843。RSM1843是四线电阻式触摸屏控制芯片。电路是一个12bit模数转换器(ADC),内置同步串行数据接口和驱动触摸屏的低阻开关。电路提供了关断模式,功耗可降低至0.5W。RSM1843 工作电压能低至2.7V,是电池供电手持端设备的理想选择。
RF1100模块使用Chipcon公司的CC1100芯片开发而成。RF1100 单片无线收发器工作在433/868/915MHZ 的ISM 频段,它由完全集成的频率调制器、带解调器的接收器、功率放大器、晶体震荡器和调节器组成。工作特点是自动产生前导码和CRC 可以很容易通过SPI接口进行编程配置,电流消耗低。该手持端装置工作在433MHz频段,SPI接口编程是无线模块应用的关键。
ARM触摸式录入教师主机PC端框图如图2所示。主要包括C8051F310控制模块、RF1100SE无线模块和RS232串口通信模块等部分。
图2 ARM触摸式录入教师主机PC端框图
ARM触摸式实验成绩录入装置软件框架如图3所示。
图3 成绩录入装置软件框架
其中,触摸屏输入驱动部分完成触摸屏触摸触点检测和输入,触摸屏显示驱动部分完成显示各个界面及学生成绩小项各相关信息,无线模块驱动部分完成成绩录入装置与教师主机PC之间的通信功能。STM32F103模块是核心部件,它可以保证各功能模块的正常运行,协调工作。
软件设计对整个装置的功能实现起着至关重要的作用,当嵌入式处理器及外围电路基本选定后,软件的设计将主宰整个系统装置的性能。软件设计工作比较耗时,不过也是灵活性最大的,它要完成诸多复杂功能并协调好系统工作中的各个环节。采用正确而有效的软件设计方法,规划好整个软件结构是系统成功实现的关键。整个软件使用C语言进行设计,按照结构化、模块化编程对整个软件系统进行构架。按系统功能划分为键盘模块、科目模块、课程类型模块、年级模块、学院模块、班级模块、学号模块、学生成绩模块和学生信息确认及发送模块。
ARM触摸式开发环境采用Keil for ARM。该集成开发软件界面友好,不用关心组合问题,可以直接进行 C语言程序设计。并且,Keil uVision4调试器可以帮助用户准确地调试ARM期间的片内周边功能(I2C、CAN、UART、SPI、中断、I/O口、A/D转换器等)。同时通过使用Keil uVision4 JLINK USB-JTAG转换器,可以很方便的完成诸如编辑、下载和在系统测试功能。PC上位机编程采用VC++6.0和SQL Server2000。
ARM触摸式实验成绩录入装置系统设计与实现,主要包括硬件开发和软件编程与调试等。手持端主要完成以下功能:3.2英寸TFT触摸屏驱动,触摸屏界面设计和无线通信成绩提交功能。
首先确定ARM开发环境和JLINK与目标板连接是否正常;试着驱动触摸屏并使之被点亮,测试触摸屏连接是否正常;通过测试程序使触摸屏显示某图形和特定字符。
最后实现触摸屏上显示矩形、字符和字体。后面才是界面编程工作,界面编程就是在上面的清屏、显示矩形、显示字符和显示字的基础上组合而成。
编程中,通过矩形显示函数G U I_Rectangle(u16 x0, u16 y0, u16 x1, u16 y1,u16 color,u8 fill),可以在触摸屏上指定位置显示矩形图形,而且可以选择这个矩形图形为填充模式或者不填充。主程序里调用了下面两句程序代码:
这两句程序代码中第一句为在触摸屏上(x,y)起点坐标为(100,140),终点坐标为(140,110)画一个内部填充的矩形,第二句为在触摸屏上(x,y)起点坐标为(100,140),终点坐标为(210,180)画一个内部不填充的矩形。
软件编程上,利用VC++6.0对SQL Server2000进行开发,完成手持ARM触摸式成绩录入装置即时发送学生成绩小项,生成成绩记录小项,并可以根据需要和选择,按班或按批次进行成绩统计、汇总和分析等工作。
VC++对SQL Server2000各功能操作之前,需要完成数据库SQL数据源生成、测试连接、登录方式设置等必不可少的工作,在此不一一赘述。
教师主机PC主界面和查询界面如图4、5所示。
图4 教师主机PC主界面
该ARM触摸式实验成绩录入装置具有界面友好、操作方便、信息完整等特点,解决了教师在流动作业登记成绩时任务繁重、易出错等问题。整个教学期末成绩统计、汇总和分析等工作变得轻松,从而提高了教学效率。
图5 实验成绩查询管理界面
[1]李文仲,段朝玉.C8051F系列单片机与短距离无线数据通信[M].北京:北京航空航天大学出版社,2007.
[2]封景刚.ARM嵌入式系统开发完全入门与主流实践[M].北京:电子工业出版社,2008.
[3]杨宗德.嵌入式ARM系统原理与实例开发(第2版)[M].北京:北京大学出版社,2010.
[4]张晓伟.ARM嵌入式系统设计原理与开发实例[M].北京:电子工业出版社,2008.
[5]马忠梅,等.ARM&Linux嵌入式系统教程[M].北京航空航天大学出版社,2004.