栗鳴
摘 要:文章就基于Android/Linux平臺(tái)的智能自助服務(wù)一體機(jī)的硬件系統(tǒng)設(shè)計(jì)思路和軟件驅(qū)動(dòng)開(kāi)發(fā)進(jìn)行討論。硬件設(shè)計(jì)部分主要涉及到設(shè)計(jì)需求和硬件架構(gòu),硬件模塊部分涉及到Cortex-A8處理器、熱敏打印機(jī)、IC卡讀寫(xiě)器以及顯示部分;軟件涉及到打印類(lèi)驅(qū)動(dòng)程序接口功能、讀寫(xiě)器驅(qū)動(dòng)程序接口功能,文章中對(duì)一些模塊的指令集也作了較全面的介紹。
關(guān)鍵詞:Android 驅(qū)動(dòng) 架構(gòu) PBOC2.0
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2019)03(c)-0087-03
為了更好地方便客戶(hù),壓縮人工成本,分擔(dān)柜臺(tái)業(yè)務(wù)壓力,現(xiàn)在各大銀行、車(chē)站、醫(yī)院以及社保單位大量的使用自助服務(wù)一體機(jī)完成各種服務(wù)工作,一臺(tái)設(shè)計(jì)合理的自助服務(wù)終端可以替代一名柜臺(tái)員工,替代一個(gè)柜面窗口。智能自助服務(wù)一體機(jī)以小體積、低成本、功能全面著稱(chēng)。本文就基于智能服務(wù)一體機(jī)的系統(tǒng)硬件設(shè)計(jì)思路和軟件驅(qū)動(dòng)開(kāi)發(fā)進(jìn)行討論。
1 硬件架構(gòu)
智能自助服務(wù)一體機(jī)硬件架構(gòu)的選擇有X86(Windows/Linux軟件平臺(tái))或以ARM為核心的MCU(Linux/Android軟件平臺(tái))。以X86(ATOM處理器方案)的整機(jī)成本會(huì)比ARM核心(Cortex-A8方案)的整機(jī)成本高,因此ARM平臺(tái)方案為最佳選擇。
如圖1整套系統(tǒng)以Cortex-A8為核心,帶4路獨(dú)立UART,一路經(jīng)過(guò)MAX232將通信電平從CMOS 5V轉(zhuǎn)化為RS232電平,用以直插9針串口進(jìn)行軟件調(diào)試。其他三路(UART1~UART3)分別通過(guò)上拉至CMOS 5V水平保證輸出信號(hào)的電平水準(zhǔn),分別驅(qū)動(dòng)熱敏打印機(jī)、接觸式IC卡讀寫(xiě)器、非接觸式IC卡讀寫(xiě)器。市面上的USB接口3G上網(wǎng)卡,其本質(zhì)是一塊USB轉(zhuǎn)串口芯片+基帶調(diào)制解調(diào)器的解決方案,WCDMA/CDMA2000不同制式之間只是基帶調(diào)制解調(diào)器的解決方案不同。
2 硬件模塊
2.1 Cortex-A8處理器
ARM Cortex-A8處理器是基于ARMv7架構(gòu)的應(yīng)用處理器,Cortex-A8處理器的速率可以在600MHz到超過(guò)1GHz的范圍內(nèi)調(diào)節(jié),能夠滿(mǎn)足那些需要工作在300mW以下的功耗優(yōu)化的移動(dòng)設(shè)備的要求;以及滿(mǎn)足那些需要2000 Dhrystone MIPS的性能優(yōu)化的消費(fèi)類(lèi)應(yīng)用的要求。早在2010年,Cortex-A8方案就已經(jīng)是一款成熟的消費(fèi)類(lèi)電子解決方案。
系統(tǒng)級(jí)芯片已經(jīng)使用Cortex-A8內(nèi)核的包括,全志A1X、蘋(píng)果A4、飛思卡爾半導(dǎo)體的MX51、三星的SP5V110/SP5V210,TI的OMAP3系列以及高通的Snapdragon系列處理器。系統(tǒng)芯片除了集成Cortex-A8內(nèi)核以外,還有板載MMU,NAND Flash控制器、DDRRAM控制器、四路UART接口、觸摸擴(kuò)展引腳、一路USB主從OTG、一路USB Host、I2C、SPI以及豐富的IO擴(kuò)展接口。
2.2 熱敏打印機(jī)
2.2.1 熱敏打印機(jī)硬件特性
熱敏打印機(jī)的工作原理是打印頭上安裝有半導(dǎo)體加熱元件,打印頭加熱并接觸熱敏打印紙后就可以打印出需要的圖案,其原理與熱敏式傳真機(jī)類(lèi)似。圖象是通過(guò)加熱,在膜中產(chǎn)生化學(xué)反應(yīng)而生成的。這種熱敏打印機(jī)化學(xué)反應(yīng)是在一定的溫度下進(jìn)行的。高溫會(huì)加速這種化學(xué)反應(yīng)。最普遍的熱敏打印機(jī)使用一種帶加熱點(diǎn)陣的固定打印頭,打印頭設(shè)有320個(gè)方點(diǎn),每一點(diǎn)為0.25mm×0.25mm。利用這種點(diǎn)陣,打印機(jī)可把打印點(diǎn)在熱敏紙的任意位置上。
以常用的58mm小票熱敏打印機(jī)為例,其核心為打印頭和熱敏打印機(jī)控制板,通信接口分為USB/RS232接口,5V電壓供電,打印峰值電流在3A左右??刂瓢宀捎肎B2312或者GB18030字庫(kù)??蛇\(yùn)行于Windows、Windows CE、Linux/Android平臺(tái)。
熱敏打印機(jī)采用EPSON精簡(jiǎn)的針式打印機(jī)指令集,常用指令如表1。
2.2.2 打印類(lèi)驅(qū)動(dòng)程序接口功能
熱敏打印機(jī)只提供指令集,具體的驅(qū)動(dòng)程序需要在針對(duì)不同的操作系統(tǒng)進(jìn)行驅(qū)動(dòng)程序開(kāi)發(fā)。如表2是驅(qū)動(dòng)程序接口功能說(shuō)明。
2.3 接觸式IC卡讀寫(xiě)器
隨著中國(guó)銀行PBOC3.0規(guī)范的出臺(tái),使用磁條卡保存用戶(hù)個(gè)人信息的時(shí)代已經(jīng)成為過(guò)去,現(xiàn)在乃至將來(lái)幾年內(nèi)將會(huì)是芯片卡大行其道的時(shí)代。與磁條卡相比,IC芯片卡在容量、安全性乃至體積上都有無(wú)可比擬的有事。SIM卡、SLE4442、SLE4428乃至我們使用的新市民卡,芯片卡充斥著我們生活的方方面面。常見(jiàn)的IC芯片卡讀寫(xiě)器IO接口為USB和DB9串口,DB9串口通信方便穩(wěn)定,已成為讀寫(xiě)器行業(yè)的重要行業(yè)標(biāo)準(zhǔn),POS機(jī),嵌入式系統(tǒng)的讀寫(xiě)器模塊都是基于串口實(shí)現(xiàn)。
2.3.1 讀寫(xiě)器驅(qū)動(dòng)程序接口功能
接觸式IC卡讀寫(xiě)器機(jī)只提供指令集,具體的驅(qū)動(dòng)程序需要在針對(duì)不同的操作系統(tǒng)進(jìn)行驅(qū)動(dòng)程序開(kāi)發(fā)。如表3是驅(qū)動(dòng)程序接口功能說(shuō)明。
2.3.2 驅(qū)動(dòng)流程
首先通過(guò)握手方式收到打印機(jī)回復(fù)的設(shè)備ID,確認(rèn)無(wú)誤后設(shè)置通信比特率、設(shè)置需要訪問(wèn)的卡座、設(shè)置卡型、經(jīng)過(guò)上電復(fù)位就可以對(duì)卡片進(jìn)行操作。
2.4 非接觸式芯片卡讀寫(xiě)器
非接觸式IC卡又稱(chēng)射頻卡,由IC芯片、感應(yīng)天線組成,封裝在一個(gè)標(biāo)準(zhǔn)的PVC卡片內(nèi),芯片及天線無(wú)任何外露部分。非接觸性IC卡與讀卡器之間通過(guò)無(wú)線電波來(lái)完成讀寫(xiě)操作。二者之間的通訊頻率為13.56MHZ。非接觸性IC卡本身是無(wú)源卡,當(dāng)讀寫(xiě)器對(duì)卡進(jìn)行讀寫(xiě)操作 時(shí),讀寫(xiě)器發(fā)出的信號(hào)由兩部分疊加組成:一部分是電源信號(hào),該信號(hào)由卡接收后,與本身的L/C產(chǎn)生一個(gè)瞬間能量來(lái)供給芯片工作。另一部分則是指令和數(shù)據(jù)信號(hào),指揮芯片完成數(shù)據(jù)的讀取、修改、儲(chǔ)存等,并返回信號(hào)給讀寫(xiě)器,完成一次讀寫(xiě)操作。讀寫(xiě)器則一般由MCU,專(zhuān)用智能模塊和天線組成,通訊接口為USB或者RS232。
2.4.1 驅(qū)動(dòng)程序接口功能
見(jiàn)表4所示。
2.4.2 驅(qū)動(dòng)流程
首先通過(guò)握手方式收到非接讀寫(xiě)器回復(fù)的設(shè)備ID,確認(rèn)無(wú)誤后設(shè)置通信比特率、設(shè)置非接卡類(lèi)型,設(shè)置要激活的扇區(qū),通過(guò)密鑰認(rèn)證后就可以對(duì)該扇區(qū)進(jìn)行讀寫(xiě)操作了。
2.5 LCD顯示驅(qū)動(dòng)
讓一塊LCD正常的顯示文字或圖像,不僅需要LCD驅(qū)動(dòng)器,而且還需要相應(yīng)的LCD控制器。生產(chǎn)廠商會(huì)把LCD驅(qū)動(dòng)器以COF/COG的形式與LCD玻璃基板制作在一起,LCD控制器則通過(guò)外部電路實(shí)現(xiàn)。從ARM9時(shí)代起,很多的的MCU內(nèi)部都集成了LCD控制器。Cortex-A8時(shí)代,LCD控制器不僅支持更大的屏幕,也支持更高的像素分辨率和更高的色彩。
2.5.1 LCD驅(qū)動(dòng)需要用到的外部信號(hào)
見(jiàn)表5所示。
2.5.2 常見(jiàn)TFT屏工作時(shí)序分析
一幀圖像的刷新從上到下,從左到右。如圖2、表6一幀的刷新以VSYNC的一個(gè)上升沿脈沖作為幀起始,每一個(gè)HSYNC脈沖刷新一行像素點(diǎn)。第二個(gè)HSYNC脈沖會(huì)迎來(lái)行切換,并刷新第二行的像素點(diǎn),以此類(lèi)推直到刷新到最后一行,迎來(lái)第二個(gè)VSYNC上升沿脈沖,開(kāi)始第二幀的刷新。在行刷新期間,VDEN端使能,會(huì)把VD[23:0]上的像素色彩,灰度信息傳輸給LCD驅(qū)動(dòng)器。設(shè)置好下表中的6個(gè)參數(shù),LCD的驅(qū)動(dòng)等于完成了一半。
2.5.3 幀緩沖
圖像信息是以幀的形式存儲(chǔ)在顯存當(dāng)中,LCD圖像顯示則是不停從顯存中取數(shù)據(jù),不停刷新顯存內(nèi)容的一個(gè)過(guò)程。Cortex-A8架構(gòu)的MCU通過(guò)共享RAM的方式來(lái)實(shí)現(xiàn),即在RAM中分配處一塊獨(dú)立的內(nèi)存空間來(lái)儲(chǔ)存一幀圖像信息,包括色彩、灰度、亮度等信息。一幀圖像的傳輸通過(guò)DMA通道實(shí)現(xiàn),優(yōu)點(diǎn)是數(shù)據(jù)吞吐量大,占用很小的主處理器單元。DMA 傳輸將數(shù)據(jù)從一個(gè)地址空間復(fù)制到另外一個(gè)地址空間。當(dāng) CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器來(lái)實(shí)行和完成,主CPU不參與傳輸過(guò)程。在實(shí)現(xiàn)DMA傳輸時(shí),由DMA控制器直接掌管總線。即DMA傳輸前,CPU要把總線控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即把總線控制權(quán)再交回給CPU,至此整個(gè)LCD的驅(qū)動(dòng)流程結(jié)束。
3 結(jié)語(yǔ)
智能自助服務(wù)一體機(jī)主要針對(duì)社保類(lèi)和金融類(lèi)業(yè)務(wù), 隨著人們需求的不斷提高,隨著科技的不斷進(jìn)步,智能自助服務(wù)一體機(jī)會(huì)作為服務(wù)于大眾的工具會(huì)得到不斷提高。
參考文獻(xiàn)
[1] 李寧.ARM Cortex-A8處理器原理與應(yīng)用:基于TI AM37x/DM37x處理器[M].北京:北京航空航天大學(xué)出版社, 2012.
[2] 倪旭翔.ARM Cortex-A8嵌入式系統(tǒng)開(kāi)發(fā)與實(shí)踐:WinCE與Android平臺(tái)[M].北京:中國(guó)水利水電出版社,2011.
[3] 程昌南.ARM Cortex-A8硬件設(shè)計(jì)DIY[M].北京:北京航空航天大學(xué)出版社,2012.