新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM控制器LPC2214的稅控收款機(jī)系統(tǒng)的設(shè)計

基于ARM控制器LPC2214的稅控收款機(jī)系統(tǒng)的設(shè)計

作者: 時間:2006-08-16 來源:網(wǎng)絡(luò) 收藏

引言
是指具有特定功能的電子,它是集軟硬件為一體的嵌入式,硬件考慮高性價比和高可靠性,軟件考慮的穩(wěn)定性和可靠性。根據(jù)這一原則,本文介紹了一種方案。

稅控收款機(jī)硬件的設(shè)計與實現(xiàn)
稅控收款機(jī)的硬件組成框圖如圖1所示,其硬件系統(tǒng)由中央處理模塊、顯示模塊、打印模塊、電源模塊、時鐘模塊、IC卡接口、外部通訊接口(包括RS232串行接口、網(wǎng)絡(luò)接口、USB接口等)、蜂鳴器,以及輸入鍵盤、電子鎖、條碼掃描儀和手寫板等幾部分組成。


圖1 稅控收款機(jī)硬件框圖

中央處理模塊
中央處理模塊采用飛利浦公司32位7TDMI-S內(nèi)核的低功耗處理器。該處理器是飛利浦公司為嵌入式應(yīng)用提供的高性價比微解決方案,通過在ARM7TDMI-S內(nèi)容基礎(chǔ)上擴(kuò)展一系列的通用外圍器件,使系統(tǒng)費用降至最低,增強(qiáng)了系統(tǒng)對外部設(shè)備的支持能力。由于LPC2114集成了豐富的片上資源,所以系統(tǒng)本身的擴(kuò)展大大減少,這不但減小了產(chǎn)品的體積,而且便于維護(hù)。

顯示模塊
作為人機(jī)交互的顯示模塊包括一個LCD主顯示屏和一個9位的VFD用戶顯示屏,其中LCD采用內(nèi)置KS0107/KS0108的圖形點陣式液晶,顯示分辨率為19264,可顯示165個1112點陣的漢字;VFD通過具有SPI接口的芯片HT16512進(jìn)行驅(qū)動。

打印模塊
系統(tǒng)選用EPSON公司的MU110II打印機(jī)頭,供電電壓為DC24V。電機(jī)驅(qū)動采用MTD2003F,針驅(qū)動采用MTA001M,由的通用I/O口進(jìn)行控制。

電源管理模塊
系統(tǒng)采用開關(guān)電源為LPC2214提供5V電源。由于稅控收款機(jī)對掉電保護(hù)有嚴(yán)格要求,所以在電源管理模塊中設(shè)計了掉電保護(hù)電路,可以在掉電時維持系統(tǒng)正常工作一定時間。掉電時該電路會發(fā)送給處理器一個中斷,使系統(tǒng)進(jìn)入掉電中斷處理程序,進(jìn)行相應(yīng)的掉電保護(hù)工作。

時鐘模塊
時鐘模塊采用I2C總線時鐘芯片P8563AP,在后備電池的支持下,能保證系統(tǒng)掉電后片內(nèi)時鐘繼續(xù)運行。

稅控存儲器
稅控收款機(jī)需要記錄大量的數(shù)據(jù)信息,本系統(tǒng)采用了ATMEL公司具有SPI接口的Flash存儲器AT45DB321,由于LPC2214微控制器具有SPI的接口,所以能夠方便地同它相連接。設(shè)計上采用可插拔式模塊,將數(shù)據(jù)存儲模塊與系統(tǒng)主板分離。此設(shè)計的特點是當(dāng)系統(tǒng)出錯時,能夠?qū)⒅匾獢?shù)據(jù)及時轉(zhuǎn)移,降低了數(shù)據(jù)發(fā)生錯誤的幾率,提高了數(shù)據(jù)的完整性和可靠性。在稅控卡的配合下,可以將相關(guān)的數(shù)據(jù)信息轉(zhuǎn)移到另一正常工作的機(jī)器中繼續(xù)進(jìn)行工作,保證數(shù)據(jù)存儲的時效性。另外,也可以在維護(hù)和檢修時采用替換法,這體現(xiàn)出很強(qiáng)的實用性和可操作性。

IC卡接口
通常的設(shè)計中會使用專用IC卡讀寫芯片為系統(tǒng)提供ISO7816的接口,如CTS56I01、WatchCore、TDA8020等。本系統(tǒng)沒有進(jìn)行硬件擴(kuò)展,充分利用LPC2214的性能特性,實現(xiàn)了符合ISO7816標(biāo)準(zhǔn)的IC卡接口功能。

智能卡芯片的接口信號包括:電源電壓(VCC)、地(GND)、復(fù)位(RST)、時鐘(CLK)、編程電壓(VPP)、輸入輸出(I/O)。如圖2所示,I/O、RST由LPC2214微控制器的通用I/O口(GPIO)來控制,通過軟件模擬數(shù)據(jù)讀寫操作時序,實現(xiàn)數(shù)據(jù)的交換,其中I/O上信號的傳輸是雙向的,所以要利用軟件根據(jù)時序不斷轉(zhuǎn)換輸入輸出的狀態(tài)。此方法具有成本低、方便靈活等特點。

其它模塊
鍵盤控制芯片采用具有SPI串行接口的ZLG7289B,該芯片可連接多達(dá)64鍵的鍵盤矩陣,可滿足本系統(tǒng)的設(shè)計要求。

由于LPC2214未集成USB控制器,因此系統(tǒng)中采用了CYPRESS公司內(nèi)含USB主/從控制器、可支持全速數(shù)據(jù)傳輸?shù)腢SB控制芯片SL811HS,以支持U盤和移動硬盤讀寫操作。此外,本系統(tǒng)采用RTL8019以太網(wǎng)控制器擴(kuò)展31個以太網(wǎng)接口,稅控收款機(jī)相互之間可以通過網(wǎng)絡(luò)接口進(jìn)行數(shù)據(jù)通信,并且可以和PC機(jī)的數(shù)據(jù)庫系統(tǒng)進(jìn)行數(shù)據(jù)交換。

稅控收款機(jī)軟件系統(tǒng)的設(shè)計與實現(xiàn)
稅控收款機(jī)軟件結(jié)構(gòu)
稅控收款機(jī)軟件采用分層次結(jié)構(gòu)化、模塊化設(shè)計,依次分為業(yè)務(wù)處理層、接口層、設(shè)備驅(qū)動層和硬件平臺等4個層次。其中業(yè)務(wù)處理層完成稅控收款機(jī)具體的業(yè)務(wù)處理;接口層作為業(yè)務(wù)處理層與設(shè)備驅(qū)動層的橋梁,提供與具體硬件平臺無關(guān)的應(yīng)用程序接口(API),其主要功能是對下層設(shè)備驅(qū)動程序進(jìn)行封裝,并提供一些公共的函數(shù)庫;設(shè)備驅(qū)動層即BSP(Board Support Package,板級支持包),包含具體硬件平臺的各種設(shè)備驅(qū)動程序。

采用如上架構(gòu)的系統(tǒng)軟件層次結(jié)構(gòu)清晰,直接相鄰的上下層之間存在依賴關(guān)系,不相鄰的上下層之間沒有依賴關(guān)系。同層各模塊之間的調(diào)用通過預(yù)定義的模塊輸出接口函數(shù)實現(xiàn),各模塊之間的耦合度低,具有良好的可移植性和可擴(kuò)充性。如果要針對不同的行業(yè)設(shè)計不同的機(jī)型或根據(jù)需要擴(kuò)充系統(tǒng)功能時,只需修改業(yè)務(wù)處理層,接口層和設(shè)備驅(qū)動層均無需修改;如果是變換了硬件平臺,則只需修改設(shè)備驅(qū)動層和接口層,業(yè)務(wù)處理層無需修改。


圖2 稅控收款機(jī)IC卡接口

業(yè)務(wù)處理層設(shè)計
業(yè)務(wù)處理層是稅控收款機(jī)軟件架構(gòu)中的最上層,與具體的硬件平臺無關(guān),作為一個應(yīng)用軟件可方便地移植到不同的硬件平臺上。該層用于實現(xiàn)商務(wù)和稅控兩大主要功能,由4個模塊組成。

主程序(主控模塊)進(jìn)行系統(tǒng)自檢、軟硬件的初始化、調(diào)度運行業(yè)務(wù)處理層的其它模塊以及處理掉電數(shù)據(jù)恢復(fù)、數(shù)據(jù)整理,并控制整個軟件的流程;稅控功能模塊實現(xiàn)GB18240-2003國家標(biāo)準(zhǔn)中的稅控功能,負(fù)責(zé)機(jī)器初始化和注冊、發(fā)票的購買分發(fā)、開發(fā)票(包括退票、廢票處理)、稅控數(shù)據(jù)申報、監(jiān)控數(shù)據(jù)回送、稅務(wù)核查等;商務(wù)功能模塊由銷售子模塊、統(tǒng)計分析(報表)子模塊、設(shè)置管理子模塊以及其它一些功能子模塊組成;通訊模塊負(fù)責(zé)與運行在上位機(jī)(PC)上的稅控收款機(jī)管理系統(tǒng)進(jìn)行數(shù)據(jù)通信。

接口層設(shè)計
接口層作為一個抽象層僅提供應(yīng)用程序接口,不對具體硬件操作,也不處理具體業(yè)務(wù),是針對復(fù)雜設(shè)備設(shè)計的管理程序,主要包括IC卡管理、存儲器管理、USB通訊管理等。以下詳細(xì)介紹存儲器管理中的發(fā)票存儲管理模塊。
稅控收款機(jī)要求能夠可靠存儲大量發(fā)票數(shù)據(jù),因此發(fā)票存儲管理模塊是本系統(tǒng)的一個關(guān)鍵模塊。為了節(jié)約存儲空間,本系統(tǒng)中發(fā)票存儲系統(tǒng)采用了變長滾動存儲方法。

變長即指發(fā)票長度因各發(fā)票頭部和其所含明細(xì)的不同,占用的存儲空間大小也不同。本系統(tǒng)中發(fā)票頭部分別可能占用32、64、96字節(jié),發(fā)票最大明細(xì)數(shù)為8,每筆明細(xì)占用32字節(jié)。這樣,每張發(fā)票所占存儲空間為1個~11個32字節(jié)。發(fā)票在存儲器中的存儲位置也是以32字節(jié)為單位對齊的,兩張發(fā)票之間位置首尾相連,沒有冗余空間。

滾動存儲即指在存儲空間固定的情況下,循環(huán)利用這部分存儲空間,當(dāng)所存儲的發(fā)票占用到了足夠大的空間時,新的發(fā)票可能會覆蓋掉最早存儲的發(fā)票位置。
由于發(fā)票變長存儲,所占空間大小不一,為了達(dá)到隨機(jī)訪問的目的,需要建立一張位置索引表,表中的每項指明發(fā)票的實際存儲位置,比如,位置索引表中的第n項就是第n張發(fā)票在存儲器中的位置。同時,為了加快通過發(fā)票號查找發(fā)票詳細(xì)信息的查找速度,要最大可能地減少對存儲器的訪問次數(shù),這是提高查找速度的關(guān)鍵。本系統(tǒng)采用Hash索引表來快速定位所要查找的發(fā)票,為了解決該算法的Hash值計算沖突,另外建立了一張Hash鏈接表,此表的長度和位置索引表相同,表中每個值代表Hash值沖突的下一張發(fā)票的位置。

設(shè)備驅(qū)動層設(shè)計
設(shè)備驅(qū)動層包括直接操作外設(shè)的驅(qū)動,如IC卡、Flash、LCD、VFD、打印機(jī)、USB、鍵盤、時鐘等外設(shè)的驅(qū)動;另外還包括LPC2214內(nèi)部配置驅(qū)動,如內(nèi)部寄存器配置、UART配置、GPIO設(shè)置、RTC讀寫、TIMER設(shè)置等。其中ISO7816標(biāo)準(zhǔn)IC卡驅(qū)動是一個關(guān)鍵部分,它包含插卡檢測、卡上下電、卡復(fù)位和卡命令等功能。

IC卡與LPC2214微控制器的數(shù)據(jù)傳輸方式為異步半雙工字符傳輸模式,本系統(tǒng)使用軟件實現(xiàn)該功能。利用LPC2214的GPIO來軟件模擬IC卡的讀寫操作時序,進(jìn)行數(shù)據(jù)交換:接收數(shù)據(jù)時將LPC2214的GPIO設(shè)置為輸入模式,使用中斷程序?qū)/O數(shù)據(jù)線進(jìn)行采樣;發(fā)送數(shù)據(jù)時將LPC2214的GPIO設(shè)置為輸出模式,在中斷程序中直接輸出需要發(fā)送的數(shù)據(jù)位。

異常情況處理
當(dāng)異常情況(如斷電、拔卡等)發(fā)生時,稅控收款機(jī)應(yīng)保證數(shù)據(jù)不丟失、無差錯。本系統(tǒng)從兩方面保證了數(shù)據(jù)的可靠性。一方面,在初始化、分發(fā)發(fā)票、錄入發(fā)票、開票、報稅及完稅等關(guān)鍵步驟前先檢測電源是否正常,如已經(jīng)發(fā)生掉電,系統(tǒng)停止工作;否則置標(biāo)志,開始正常的步驟操作,步驟完成后,清除標(biāo)志。如果步驟未完成前發(fā)生斷電或IC卡意外拔出等事件,則在下一次上電或重新操作該步驟時系統(tǒng)會檢測到標(biāo)志,軟件將自動調(diào)用恢復(fù)機(jī)制,完成剩余操作,恢復(fù)丟失的數(shù)據(jù)。

另一方面,在發(fā)票打印的過程中如果出現(xiàn)掉電的情況,則需做掉電續(xù)打處理。在發(fā)票開始打印前先保存發(fā)票明細(xì)數(shù)據(jù),置“打印未完成”標(biāo)志;在打印一行數(shù)據(jù)過程中若發(fā)生掉電,掉電保護(hù)電路發(fā)出一個中斷,調(diào)用中斷例程,利用掉電保護(hù)電路所維持的工作時間保存當(dāng)前打印位置,系統(tǒng)停止工作;待重新上電后檢測到“打印未完成”標(biāo)志,則讀出最后一張發(fā)票明細(xì)數(shù)據(jù),從斷電時記錄的位置繼續(xù)打印出一張完整的發(fā)票,并清除標(biāo)志。

數(shù)據(jù)安全性處理
稅控收款機(jī)集商務(wù)、稅控、管理等功能于一體,對數(shù)據(jù)的傳輸和存儲要求相當(dāng)高,需要能夠正確地傳輸、存儲、生成及反饋數(shù)據(jù),因此,對安全性的要求也相當(dāng)高。本系統(tǒng)的安全性設(shè)計從以下幾個方面來體現(xiàn)。

系統(tǒng)中采取了用戶權(quán)限分級管理的方法,設(shè)置了三種具有不同操作權(quán)限的角色:系統(tǒng)管理員、收款員、稅務(wù)稽查員。用戶與角色關(guān)聯(lián),用戶密碼采用6位~8位數(shù)字,密碼以密文形式存儲在Flash內(nèi)。進(jìn)入相應(yīng)的用戶模式都要通過對應(yīng)的密碼校驗,才能夠登錄稅控收款機(jī),執(zhí)行本用戶級的相應(yīng)操作。

系統(tǒng)會對Flash的數(shù)據(jù)寫入操作做讀校驗,在讀寫存儲器中的關(guān)鍵數(shù)據(jù)時比較、保存校驗和;在開機(jī)自檢和使用稅控數(shù)據(jù)時對稅控數(shù)據(jù)作數(shù)據(jù)完整性校驗。
另外,在執(zhí)行關(guān)鍵操作、外部通訊、代碼維護(hù)等操作前系統(tǒng)要對用戶進(jìn)行身份鑒別,并對操作對應(yīng)的事件產(chǎn)生審計記錄。

結(jié)語
本系統(tǒng)充分利用LPC2214本身的硬件資源,通過軟件實現(xiàn)了符合ISO7816標(biāo)準(zhǔn)的智能IC卡接口,系統(tǒng)設(shè)計符合稅控收款機(jī)國家標(biāo)準(zhǔn)GB18240-2003。整個系統(tǒng)設(shè)計結(jié)構(gòu)簡潔,便于提高性能和與各種外設(shè)的連接擴(kuò)展,極具競爭優(yōu)勢,產(chǎn)品得到了市場的認(rèn)可。

參考文獻(xiàn):
1.Cpc2114/2124/2212/2214 Vser Manual.philips Semicondudor,2004
2.杜春雷編著,ARM體系結(jié)構(gòu)與編程,北京清華大學(xué)出版社,2002



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉