栗鳴
摘 要:文章就基于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.