金融电子化论文基于ARM的自助出票机便携式终端设计
所属栏目:电子技术论文
发布时间:2013-12-11 15:27:20 更新时间:2013-12-11 15:35:19
随着智慧化城市的发展,越来越多的人工操作将被智能机器所取代。目前在各种景区、影院等公共场所,人工售票还是主流。本文提出一种基于ARM的自助出票系统的设计,游客可以通过刷***来自动获取公共场所门票,这大大节约了人力成本,方便了人们的生活。
摘要:为了有效降低现有自助出票机的成本,缩小其体积,扩大其推广范围,提出一种基于嵌入式Linux的自助出票机的实现方法。以ARM开发板作为核心板,集成门票打印机模块和二代***识别模块,设计自助出票机系统硬件平台;软件设计包括嵌入式Linux环境下的各功能模块驱动设计、Linux文件系统环境配置、QT界面程序设计等。系统测试结果显示,各模块工作正常,能够满足用户的需求。
关键词:ARM,嵌入式系统,Linux,QT,热敏打印机
0引言
目前市面上的自助出票系统都是基于x86电脑硬件系统,采用Windows操作系统来设计的,这使得自助出票机的体积不能缩小,也大大增加了成本,售价非常昂贵。我们采用以S3C2440为CPU核心的ARM平台,基于Linux操作系统来进行自助出票机系统设计,集成了QT界面设计单元、门票打印单元、***识别单元、系统时间单元等多个模块,设计出低成本、高稳定性、适合景区或影院等公共场所的自助出票机,体积可以做成类似便携式的嵌入式设备。该设计顺应当前智慧城市的需求,有很深远的应用前景。
1系统要求与整体设计
自助出票机系统设计的基本要求和服务流程是:设计出一款便携式的自助出票机,挂在公共场所墙壁上,提供友好的界面支持,在没有游客取票时,显示公共场所景点宣传画面,有游客取票时,进入取票界面,等待游客刷二代***,后台根据***信息,结合系统当前的时间,打印出实时的门票票据。界面需要设计对系统配置的接口,配置系统时间、系统接口参数等。系统提供SQLite数据库支持,保存游客的客户信息,便于后台程序的统计和分析。
考虑到整个系统复杂的界面设计需求,同时系统需实现的多个功能模块的驱动和应用支持,如***识别模块、打印机模块、系统时钟配置、系统接口参数配置等,以及对SQLite轻巧数据库的支持,我们选用以S3C2440为CPU的ARM开发平台,采用Linux操作系统,能根据用户需求进行裁剪,简化对平台硬件配置的要求;选用基于Qt4.7类库的QT嵌入式界面设计,能友好地支持Linux平台,并提供丰富的复杂的界面设计效果。
系统设计框图[1,4]如图1所示。
2硬件设计
嵌入式自助出票机采用S3C2440的ARM开发板[2],LCD显示屏选用群创7寸LCD显示屏,选用RTC模块来实现系统的实时时间的管理,选用合适的打印机模块和二代***识别模块搭建出硬件系统。
2.1热敏打印机
门票打印机的选择要根据现场的应用场景来决定,主要参数有:①打印参数:门票的纸张宽度、打印宽度,打印纸的折叠形式(折叠式或卷式)、打印方式(热敏或热转印)等;②通信接口:要根据ARM开发板的接口以及Linux操作系统的特点来选择打印机的驱动接口,一般热敏打印机支持USB接口、串口、网口三种通信方式,本设计选用串口驱动打印机,根据串口命令配置打印机输出的字体格式、位图、条形码等多种用户需求。
本设计选用的打印机是打印宽度为58mm的热敏票据打印机,工作电压为5V。
2.2TX523T***卡号模块
TX523T是一款天线一体化,同时可以读二代居民***卡号的模块。TX523采用13.56MHz频基站。当有卡靠近时,模块会以韦根或UART方式输出卡号。根据需要,可选择UART或Wiegand接口与任何MCU进行连接;使用UART接口时,可以选择波特率9600或19200。为了简化代码,我们同样采用串口通信与ARM开发板通信。5V供电电源需要从ARM开发板引出,ARM开发板通过GPIO口来配置***识别模块的工作模式。
3软件设计
自助出票机软件系统的设计是难点,软件模块包括:①基于S3C2440开发板的Linux环境开发的配置[3];②QT嵌入式运行环境的配置和基于Qt4.7类库的自助出票机界面设计[5];③根据ESCPOS协议设计打印机的串口驱动程序;④***识别模块的串口驱动程序;⑤时间处理模块等。
3.1Linux环境开发的配置
我们使用的交叉编译的虚拟机开发环境为Ubuntu10.10版本,交叉编译工具为arm-linux-4.3.3版本,S3C2440开发板的Linux内核版本为:linux2.6.30.4,需要根据硬件接口和器件,如LCD显示屏、UART串口、eth0网口、GPIO口的原理图来按需对Linux2.6.30.4内核进行裁剪。
3.2QT嵌入式运行环境的配置和界面设计
自助出票机系统选用QT进行嵌入式界面设计。QT是一个跨平台的C++类库,其界面设计程序在各个平台上是一样的,只是跨平台时需要加上各个平台的库重新编译生成可执行文件。QT目前已经发展到第三代,是通过升级类库来更新发展,目前最高版本的类库是Qt4.7,Nokia一直在对QT类库进行更新升级。QT平台主要是面向嵌入式界面设计的,QT界面程序不是一个桌面系统,而是可以直接运行在嵌入式环境下的程序。
QT界面程序的设计环境是Qtcreator,这是QT的集成开发环境(IDE),用于开发源代码、编译链接源代码、调试源代码,大大简化了设计环境的配置。Qtcreator环境配置成交叉编译的环境之后,用Qtcreator设计出的界面可执行文件能够在S3C2440开发板上运行。3.2.1QT嵌入式运行环境的配置
配置QT嵌入式运行环境,需要对S3C2440开发板的文件系统进行修改:添加经过交叉编译的Qt4.7类库、添加ts触摸屏校准库和配置应用程序、修改/etc/profile配置文件、添加QT配置脚本、添加QT界面设计程序。配置文件主要用于指定环境变量的具体路径,其中QTDIR是Qt4.7类库路径,QWS_MOUSE_PROTO用于指明触摸屏或鼠标的设备名。
3.2.2人机界面设计
自助出票机的人机界面是多级界面。主界面提供取票界面、广告界面、系统设置界面给用户选择。取票界面是主要的功能界面,等待从串口接收用户输入的***信息,与数据库中的信息进行比对和判断,决定是否打印门票,并将用户信息存储到数据库。广告界面是根据用户需求定制展示用户宣传图片。系统设置界面主要需要读取当前系统时间,并可以根据时间进行调整和设置,同时提供与打印机通信的串口UART1和与***识别模块通信的UART2的属性配置选项。系统流程图如图2所示。
⑴取票的处理过程
取票流程为:进入取票界面,系统等待从串口2接收***识别模块输入的***UID号,再查询数据库,若在当前数据库中没有查到该游客的信息,则将游客信息存储到数据库,启动门票打印机打印出系统实时信息并自动出一张票;若在当前数据库中已查到该游客的信息,则不再重复出票,处理完成之后返回主界面等待用户输入。在取票处理的程序设计过程中,我们将界面处理和数据处理分开管理,用不同的类进行处理。取票处理过程抽象出五大功能类:GetTicket(取票界面类)、Serial(串口类)、EscPos(操作打印机的类)、IdCardMag(***号识别的类)、SqliteHelper(数据库处理的类)。
⑵系统设置的处理过程
系统设置的过程为:进入系统设计界面,通过输入用户名和密码登录到系统具体的设置页面,具体功能是,在系统设置页面中查看当前自助出票机的系统时间:年月日时分,如果与当前实际的时间不匹配,系统设置界面提供了相应的调整时间的按钮;在系统设置页面中可以对串口的属性进行设置。系统设置过程抽象出三大功能类:SystemSet(系统设置界面类)、TimManager(系统时间处理功能类)。在SystemSet(系统设置界面类)中,完成对打印机的串口初始化和打印机设备初始化、***识别模块串口初始化、QT时钟管理初始化的工作。界面设计如图3所示。
3.3根据ESCPOS协议设计打印机驱动
根据ESCPOS协议可以设置打印机打印的字符格式:字体、倍宽、倍高、粗体等,如果需要打印复杂的图片,可以采用定义打印Flash位图的方式处理。Flash位图格式如图4所示。
3.4***识别模块串口驱动
***识别模块串口驱动的软件设计,重点是监听***识别模块串口发送过来的数据,对串口数据进行分析,找到UID号的有用数据。在Linux操作系统中,串口设备是作为一个文件来进行管理的,本系统中设备名是/dev/ttySAC2。我们对串口文件接收的数据监听有效地利用了QT的signal/slot信号/槽机制。采用QT提供的QSocketNotifier对象来监听系统文件操作,可以将文件操作转换为QT事件(QSocketNotifier::Read)。当串口有数据可读时,QT事件(QSocketNotifier::Read)会驱动QSocketNotifier对象发送ativated信号,并调用预先设置好的槽函数(remoteDataIncoming)来处理事件。代码如下:
m_notifier=newQSocketNotifier(m_fd,QSocketNotifier::Read,this);
connect(m_notifier,SIGNAL(activated(int)),this,SLOT
(remoteDataIncoming()));
3.5时间处理模块
S3C2440开发板板载RTC实时时钟硬件电路,在系统断电时,RTC时钟自带的电池能够保证时钟正常工作。Linux操作系统提供的date命令可以设计操作系统的时间,hwclock-w命令可以实现操作系统的时间和硬件RTC实时时钟的时间同步。我们使用QT的QDataTime类获取当前系统的实时时间,使用datetimedit控件接收用户的设置,在通过date和hwclock命令对系统时钟和硬件时间进行同步修改。
4实验结果
自助出票机系统集成时,操作流程如下:
⑴将S3C2440开发板和周边器件的硬件环境连线准备好;
⑵在S3C2440开发板中烧入bootloader、Linux内核和文件系统,S3C2440开发板能够正常启动进入文件系统;
⑶配置S3C2440开发板文件系统中QT运行的环境,正确加载库文件、配置文件和界面程序可执行文件;
⑷自助出票机系统设计完成,可以验证结果。
自助出票系统的联调如图5所示,实验验证表明:系统能准备识别出***号,并触发打印门票机制,打印出系统的实时信息。
5结束语
自助出票机系统整体设计方案综合考虑了现场应用环境的需求,采用基于Linux的嵌入式开发技术有效地降低产品成本,提高系统的稳定性。本设计可靠性好、成本低廉、操作方便,具有较强的工程实用意义和推广价值。自助出票机采用S3C2440嵌入式开发板,有效降低了自助出票机的硬件成本;采用Linux操作系统,可以高效地针对应用场景进行内核的裁剪和驱动程序的设计;采用广泛应用于嵌入式系统界面的QT封装的C++类来进行界面设计,可以设计出人机交互流畅稳定的工控机界面。目前自助出票机经过第三方的测试和用户的初步使用,较好地满足了客户的需求。为了扩大本设计的应用场景,我们下一阶段的工作目标是:设计出一款基于ARM的自动售票机。
参考文献:
[1]刘超,周继超,张红星.基于LinuxQt的列车人机界面设计与实现[J].计算机与现代化,2013.4:215
[2]汪思静,程志强.基于QT的虚拟示波器的软面板设计[J].计算机技术与发展,2013.6:180
[3]孙计伟.基于嵌入式Linux的指纹识别系统设计[J].工业控制计算机,2013.3(26):1
月期刊平台服务过的文章录用时间为1-3个月,依据20年经验,经月期刊专家预审通过后的文章,投稿通过率100%以上!