栗鸣
摘 要:文章就基于Android/Linux平台的智能自助服务一体机的硬件系统设计思路和软件驱动开发进行讨论。硬件设计部分主要涉及到设计需求和硬件架构,硬件模块部分涉及到Cortex-A8处理器、热敏打印机、IC卡读写器以及显示部分;软件涉及到打印类驱动程序接口功能、读写器驱动程序接口功能,文章中对一些模块的指令集也作了较全面的介绍。
关键词:Android 驱动 架构 PBOC2.0
中图分类号:TP393 文献标识码:A 文章编号:1674-098X(2019)03(c)-0087-03
为了更好地方便客户,压缩人工成本,分担柜台业务压力,现在各大银行、车站、医院以及社保单位大量的使用自助服务一体机完成各种服务工作,一台设计合理的自助服务终端可以替代一名柜台员工,替代一个柜面窗口。智能自助服务一体机以小体积、低成本、功能全面著称。本文就基于智能服务一体机的系统硬件设计思路和软件驱动开发进行讨论。
1 硬件架构
智能自助服务一体机硬件架构的选择有X86(Windows/Linux软件平台)或以ARM为核心的MCU(Linux/Android软件平台)。以X86(ATOM处理器方案)的整机成本会比ARM核心(Cortex-A8方案)的整机成本高,因此ARM平台方案为最佳选择。
如图1整套系统以Cortex-A8为核心,带4路独立UART,一路经过MAX232将通信电平从CMOS 5V转化为RS232电平,用以直插9针串口进行软件调试。其他三路(UART1~UART3)分别通过上拉至CMOS 5V水平保证输出信号的电平水准,分别驱动热敏打印机、接触式IC卡读写器、非接触式IC卡读写器。市面上的USB接口3G上网卡,其本质是一块USB转串口芯片+基带调制解调器的解决方案,WCDMA/CDMA2000不同制式之间只是基带调制解调器的解决方案不同。
2 硬件模块
2.1 Cortex-A8处理器
ARM Cortex-A8处理器是基于ARMv7架构的应用处理器,Cortex-A8处理器的速率可以在600MHz到超过1GHz的范围内调节,能够满足那些需要工作在300mW以下的功耗优化的移动设备的要求;以及满足那些需要2000 Dhrystone MIPS的性能优化的消费类应用的要求。早在2010年,Cortex-A8方案就已经是一款成熟的消费类电子解决方案。
系统级芯片已经使用Cortex-A8内核的包括,全志A1X、苹果A4、飞思卡尔半导体的MX51、三星的SP5V110/SP5V210,TI的OMAP3系列以及高通的Snapdragon系列处理器。系统芯片除了集成Cortex-A8内核以外,还有板载MMU,NAND Flash控制器、DDRRAM控制器、四路UART接口、触摸扩展引脚、一路USB主从OTG、一路USB Host、I2C、SPI以及丰富的IO扩展接口。
2.2 热敏打印機
2.2.1 热敏打印机硬件特性
热敏打印机的工作原理是打印头上安装有半导体加热元件,打印头加热并接触热敏打印纸后就可以打印出需要的图案,其原理与热敏式传真机类似。图象是通过加热,在膜中产生化学反应而生成的。这种热敏打印机化学反应是在一定的温度下进行的。高温会加速这种化学反应。最普遍的热敏打印机使用一种带加热点阵的固定打印头,打印头设有320个方点,每一点为0.25mm×0.25mm。利用这种点阵,打印机可把打印点在热敏纸的任意位置上。
以常用的58mm小票热敏打印机为例,其核心为打印头和热敏打印机控制板,通信接口分为USB/RS232接口,5V电压供电,打印峰值电流在3A左右。控制板采用GB2312或者GB18030字库。可运行于Windows、Windows CE、Linux/Android平台。
热敏打印机采用EPSON精简的针式打印机指令集,常用指令如表1。
2.2.2 打印类驱动程序接口功能
热敏打印机只提供指令集,具体的驱动程序需要在针对不同的操作系统进行驱动程序开发。如表2是驱动程序接口功能说明。
2.3 接触式IC卡读写器
随着中国银行PBOC3.0规范的出台,使用磁条卡保存用户个人信息的时代已经成为过去,现在乃至将来几年内将会是芯片卡大行其道的时代。与磁条卡相比,IC芯片卡在容量、安全性乃至体积上都有无可比拟的有事。SIM卡、SLE4442、SLE4428乃至我们使用的新市民卡,芯片卡充斥着我们生活的方方面面。常见的IC芯片卡读写器IO接口为USB和DB9串口,DB9串口通信方便稳定,已成为读写器行业的重要行业标准,POS机,嵌入式系统的读写器模块都是基于串口实现。
2.3.1 读写器驱动程序接口功能
接触式IC卡读写器机只提供指令集,具体的驱动程序需要在针对不同的操作系统进行驱动程序开发。如表3是驱动程序接口功能说明。
2.3.2 驱动流程
首先通过握手方式收到打印机回复的设备ID,确认无误后设置通信比特率、设置需要访问的卡座、设置卡型、经过上电复位就可以对卡片进行操作。
2.4 非接触式芯片卡读写器
非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。非接触性IC卡与读卡器之间通过无线电波来完成读写操作。二者之间的通讯频率为13.56MHZ。非接触性IC卡本身是无源卡,当读写器对卡进行读写操作 时,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与本身的L/C产生一个瞬间能量来供给芯片工作。另一部分则是指令和数据信号,指挥芯片完成数据的读取、修改、储存等,并返回信号给读写器,完成一次读写操作。读写器则一般由MCU,专用智能模块和天线组成,通讯接口为USB或者RS232。
2.4.1 驱动程序接口功能
见表4所示。
2.4.2 驱动流程
首先通过握手方式收到非接读写器回复的设备ID,确认无误后设置通信比特率、设置非接卡类型,设置要激活的扇区,通过密钥认证后就可以对该扇区进行读写操作了。
2.5 LCD显示驱动
让一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。生产厂商会把LCD驱动器以COF/COG的形式与LCD玻璃基板制作在一起,LCD控制器则通过外部电路实现。从ARM9时代起,很多的的MCU内部都集成了LCD控制器。Cortex-A8时代,LCD控制器不仅支持更大的屏幕,也支持更高的像素分辨率和更高的色彩。
2.5.1 LCD驱动需要用到的外部信号
见表5所示。
2.5.2 常见TFT屏工作时序分析
一帧图像的刷新从上到下,从左到右。如图2、表6一帧的刷新以VSYNC的一个上升沿脉冲作为帧起始,每一个HSYNC脉冲刷新一行像素点。第二个HSYNC脉冲会迎来行切换,并刷新第二行的像素点,以此类推直到刷新到最后一行,迎来第二个VSYNC上升沿脉冲,开始第二帧的刷新。在行刷新期间,VDEN端使能,会把VD[23:0]上的像素色彩,灰度信息传输给LCD驱动器。设置好下表中的6个参数,LCD的驱动等于完成了一半。
2.5.3 帧缓冲
图像信息是以帧的形式存储在显存当中,LCD圖像显示则是不停从显存中取数据,不停刷新显存内容的一个过程。Cortex-A8架构的MCU通过共享RAM的方式来实现,即在RAM中分配处一块独立的内存空间来储存一帧图像信息,包括色彩、灰度、亮度等信息。一帧图像的传输通过DMA通道实现,优点是数据吞吐量大,占用很小的主处理器单元。DMA 传输将数据从一个地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成,主CPU不参与传输过程。在实现DMA传输时,由DMA控制器直接掌管总线。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU,至此整个LCD的驱动流程结束。
3 结语
智能自助服务一体机主要针对社保类和金融类业务, 随着人们需求的不断提高,随着科技的不断进步,智能自助服务一体机会作为服务于大众的工具会得到不断提高。
参考文献
[1] 李宁.ARM Cortex-A8处理器原理与应用:基于TI AM37x/DM37x处理器[M].北京:北京航空航天大学出版社, 2012.
[2] 倪旭翔.ARM Cortex-A8嵌入式系统开发与实践:WinCE与Android平台[M].北京:中国水利水电出版社,2011.
[3] 程昌南.ARM Cortex-A8硬件设计DIY[M].北京:北京航空航天大学出版社,2012.