吳 旋福建聯(lián)迪商用設(shè)備有限公司,福建福州 350003
?
用于支付終端的配置表技術(shù)
吳旋
福建聯(lián)迪商用設(shè)備有限公司,福建福州350003
摘要本文提出一種用于支付終端的配置表技。該技術(shù)讓軟件能獲取各外設(shè)模塊的硬件配置信息,有助于實現(xiàn)底層軟件的通用性和可維護性,從而提高生產(chǎn)、維護、新產(chǎn)品推出和老產(chǎn)品升級的效率和質(zhì)量。
關(guān)鍵詞支付終端;配置表;模塊板
隨著國內(nèi)對交易的便利性和安全性要求的不斷提高,以及O2O模式[1]的發(fā)展,電子支付終端在國內(nèi)的銷量逐年擴大。支付終端產(chǎn)品在硬件設(shè)計時有下面特點:
1)外設(shè)模塊數(shù)量多,各種通訊方式(MODEM、以太網(wǎng)、無線通訊、WIFI、藍牙)、電子支付方式(磁卡、接觸式智能卡、非接觸式智能卡/NFC[2]、二維碼[3]、聲波[4]等)和人機交互方式(鍵盤、觸摸屏)發(fā)展,使得外設(shè)模塊數(shù)量日益增多。
2)產(chǎn)品型號多,每個型號使用的外設(shè)組合不同。比如:有的終端有打印機,通訊方式是以太網(wǎng)和MODEM;有的終端沒有打印機,通訊方式是無線通訊和WiFi。
3)受成本、設(shè)計限制,一個外設(shè)可能使用了不同解決方案。比如:USB接口和串口的無線模塊。
4)大量使用專用外設(shè),這些外設(shè)沒有使用標準總線(USB、SDIO、PCI等),無法自動識別其解決方案。比如:熱敏打印機芯、智能卡控制芯片。
5)在支付終端技術(shù)平臺的生命周期內(nèi),會不斷推出新產(chǎn)品。
6)已經(jīng)上市的產(chǎn)品,需要更換一個或多個外設(shè)模塊的解決方案。
上述問題,都降低了軟件的通用性和可維護性,給支付終端的生產(chǎn)、維護、新產(chǎn)品開發(fā)和老產(chǎn)品升級時的軟件系統(tǒng)維護帶來了較大工作量,并產(chǎn)生質(zhì)量問題。所以,解決問題的關(guān)鍵是要解決軟件如何識別終端上一個外設(shè)模塊是否存在,以及外設(shè)模塊使用了那種解決方案,即外設(shè)模塊的硬件配置信息。本文提供了一種軟硬件結(jié)合的設(shè)計方案,實現(xiàn)了對外設(shè)模塊硬件配置信息的獲取。
1.1內(nèi)部配置表
現(xiàn)在的支付終端,都有一片大容量的非易失性存儲器,用來存放軟件和數(shù)據(jù)。該存儲器通常使用NAND FLASH或EMMC,稱為主存儲器。我們可以在主存儲器中專門劃出一塊區(qū)域存放各外設(shè)模塊的硬件配置信息,這些信息的集合稱為內(nèi)部配置表,存放這些信息的分區(qū)稱為配置表分區(qū)。
內(nèi)部配置表由兩部分組成:基本配置表和模塊配置表。二者都是由一系列配置項組成。每個配置項包含了名稱和值兩個域。
基本配置表用于存放各外設(shè)模塊的硬件配置信息。每個配置表項對應(yīng)外設(shè)模塊的一個硬件配置信息。比如:配置表項名稱為“PRT_TYPE”,值為“LP24M”;表示打印機芯型號。
模塊配置表存放終端上存在的所有外設(shè)名稱,每個配置表項名稱為外設(shè)模塊名稱;比如:“printer”表示打印模塊。在模塊配置表中,配置表項排列順序決定了對應(yīng)的外設(shè)的初始化順序。比如:配置項“printer”位于“input”之后,表示輸入模塊初始化先于打印模塊。
1.2模塊板和擴展配置表
有些外設(shè)模塊只用于部分產(chǎn)品型號,或者有多種解決方案,比如:無線通訊在臺式終端上很少使用;而且有多個品牌;接口有串口、USB兩種。這些外設(shè)模塊在硬件設(shè)計上會放在單獨的模塊板上;模塊板引出一系列信號,通過接插件與主板相連。
對于模塊板上使用USB接口的外設(shè)模塊,軟件可以自動識別[5]。對于非標準總線接口模塊,比如使用串口的外設(shè),則需要通過在模塊板上增加一片串行接口(比如i2c)小容量非易失性存儲器來實現(xiàn),用于存放該外設(shè)的硬件配置信息,即擴展配置表。這個存儲器稱為擴展配置存儲器。以常見的AT24C02[6]為例,它是I2C接口的EEPROM,容量128字節(jié),可分配8個i2C地址。所以技術(shù)平臺設(shè)計時,就規(guī)定好每個24C02地址對應(yīng)的外設(shè)模塊。比如:地址0x50用于MODEM模塊,0x51用于無線模塊等。
1.3系統(tǒng)初始化
引入配置表后,終端上軟件系統(tǒng)的初始化過程如圖1所示。每個外設(shè)模塊的初始化,都是按照獲取模塊配置表->獲取基本配置表->自動識別的過程來進行的。此外,在應(yīng)用程序執(zhí)行過程中,這些驅(qū)動也可以根據(jù)外設(shè)模塊配置進行相應(yīng)分支處理。
這樣,在同一個技術(shù)平臺上,系統(tǒng)軟件以及各模塊軟件在不同產(chǎn)品類型上都能保持一致,使得一套底層軟件用于技術(shù)平臺所有產(chǎn)品型號。這樣,軟件在日后維護過程中只需要維護一個主線版本即可,不需要針對不同型號維護不同的軟件分支;這樣不但減少了維護工作量,也使得軟件代碼在多個型號上得以驗證,提高了軟件質(zhì)量。
圖1
2.1生產(chǎn)過程
基于上述方案實現(xiàn)的支付終端,在生產(chǎn)時,需要分別對主板上的存儲器和模塊板上的存儲器進行燒入,所以提供給生產(chǎn)用于燒入的軟件包括:
1)主板燒片包:包含了要燒錄到主存儲中的所有軟件,包括主存儲器的分區(qū)表以及各分區(qū)鏡像。其中,基本配置表作為一個燒片鏡像包含在燒片包中。
2)模塊板上各擴展配置存儲器燒片鏡像:包含了各模塊的擴展配置表
在上述預(yù)裝軟件中,由于底層軟件是通用的,所以與代碼相關(guān)的分區(qū)鏡像(比如引導(dǎo)區(qū)、操作系統(tǒng)內(nèi)核、文件系統(tǒng)分區(qū)鏡像)對所有產(chǎn)品都是相同的。只有內(nèi)部配置表和擴展配置表是根據(jù)要生產(chǎn)產(chǎn)品的型號進行準備的,不同產(chǎn)品型號可能不同。
在生產(chǎn)中,主板和模塊板可以分別預(yù)裝軟件,分別生產(chǎn)和測試并入庫。在有明確客戶訂單時,只需要將該型號對應(yīng)的主板和模塊板進行簡單裝配測試即可出廠,加快了生產(chǎn)效率,并能適應(yīng)多變的市場需求。
2.2產(chǎn)品升級和新設(shè)計
在一個支付終端技術(shù)平臺生命周期內(nèi),會基于該平臺不斷推出各種新產(chǎn)品,或更換一些外設(shè)模塊。
大部分的新產(chǎn)品都使用了已有的外設(shè)模塊,只是組合不同。如果只是模塊板上外設(shè)不同,則需要在生產(chǎn)時選用不同的模塊板即可。如果是其他外設(shè)不同,則軟件上只需要生成一個內(nèi)部配置表即可。
如果新產(chǎn)品或已上市產(chǎn)品需要使用新的外設(shè),或者原有外設(shè)模塊更換解決方案,則新設(shè)計驅(qū)動或原有驅(qū)動升級時,只有遵循上面規(guī)則進行開發(fā)即可。內(nèi)部配置表和擴展配置表也需要進行簡單升級,增加新外設(shè)和解決方案對應(yīng)配置表項即可。
本文針對支付終端產(chǎn)品設(shè)計存在的問題,使用配置表技術(shù),有效的實現(xiàn)了軟件對外設(shè)模塊的硬件配置信息的識別,從而實現(xiàn)了底層軟件的通用性和可維護性,從而極大提升了軟件質(zhì)量,以及開發(fā)、生產(chǎn)和維護效率。
基于該解決方案,支付終端設(shè)計廠商可以快速響應(yīng)市場需求,推出新產(chǎn)品來滿足市場需要;或是能高效解決因為成本或供應(yīng)鏈等原因而導(dǎo)致的老產(chǎn)品升級問題。
值得一提的是,該方案并沒有和具體使用的軟件平臺綁定。所以,不論支付終端使用了Linux、Android或是別的操作系統(tǒng)等,都可以使用該技術(shù)。
參考文獻
[1]關(guān)穎,許評,王聞環(huán).O2O的特點及模式探析[J].現(xiàn)代商業(yè),2015,30:27-28.
[2]申瑋.NFC移動支付運營模式研究[D].北京郵電大學,2008.
[3]陸睿敏,劉南君,莫曉賢,裴愛瑄. 二維碼支付技術(shù)的應(yīng)用現(xiàn)狀及其對策研究[J]. 電子商務(wù),2015,9:65-67.
[4]賽迪顧問電子信息產(chǎn)業(yè)研究中心鄭昊. NFC、聲波等支付模式引關(guān)注[N].中國計算機報,2014-03-31002.
[5]高強,冉全,羅媛媛,高民.USB總線協(xié)議層的研究[J].軟件導(dǎo)刊,2010,10:28-30.
宋德杰. AT24C02在單片機中的應(yīng)用[J].電子制作,2005,4:17-19.
作者簡介:吳旋,系統(tǒng)分析師、工程師,工學碩士,工作單位為福建聯(lián)商用設(shè)備有限公司,研究方向為嵌入式系統(tǒng)軟件架構(gòu)設(shè)計
中圖分類號G2
文獻標識碼A
文章編號1674-6708(2015)155-0129-02