盧 貺
(武漢軟件工程職業(yè)學(xué)院,湖北武漢 430205)
稅控收款機(jī)(簡稱稅控機(jī))指在交易過程中,具有記錄、計算、打印、顯示、分類、斷電保護(hù)等功能,同時具有稅控功能,能保證經(jīng)營數(shù)據(jù)的正確生成、可靠存儲和安全傳遞,并可實現(xiàn)稅務(wù)機(jī)關(guān)管理和數(shù)據(jù)核查等要求的電子設(shè)備。
稅控收款機(jī)根據(jù)嵌入式系統(tǒng)設(shè)計的基本方法,滿足安全性、方便性和經(jīng)濟(jì)性,采用稅控IC卡為核心的安全機(jī)制。充分考慮了可靠性、維修性、安全性和電磁兼容性設(shè)計。通過稅控卡正確生成稅控數(shù)據(jù),稅控數(shù)據(jù)分別可靠地存儲在稅控卡和稅控存儲器中;采用用戶卡或其他方式將稅控數(shù)據(jù)安全傳遞到稅務(wù)機(jī)關(guān)的稅控收款機(jī)管理系統(tǒng)中。稅控收款機(jī)和稅控IC卡分別遵循統(tǒng)一的技術(shù)規(guī)范,實現(xiàn)稅控收款機(jī)及稅控IC卡的設(shè)計、生成、測試和驗收的分別實施。稅控收款機(jī)管理系統(tǒng)將納稅人相關(guān)信息寫入稅控卡中,并通過稅控卡對稅控收款機(jī)進(jìn)行初始化處理,即建立稅控卡和稅控收款機(jī)的唯一對應(yīng)關(guān)系,稅控收款機(jī)能防范應(yīng)用在各行各業(yè),各種領(lǐng)域,并對稅務(wù)數(shù)據(jù)進(jìn)行實時高效監(jiān)控[1]。
一般有兩種:IC卡報稅方式和遠(yuǎn)程聯(lián)網(wǎng)報稅及稅務(wù)稽查系統(tǒng)。前一種方式較簡單,主要使用稅控收款機(jī)、IC卡及手持POS;后一種方式在企業(yè)端不通過IC卡收集數(shù)據(jù),通過電話線等網(wǎng)絡(luò)方式聯(lián)網(wǎng),將稅務(wù)數(shù)據(jù)上報。
稅控收款機(jī)在硬件設(shè)計上考慮了稅控、金融等對資源的要求,將涉及到的各種要求羅列成硬件總體設(shè)計方案,說明如下:
金融稅控收款機(jī)選用CIRRUS LOGIC公司的EP7312作為控制芯片,采用32位數(shù)據(jù)總線方式[2~3]。
稅控收款機(jī)需要記錄5000到10000條發(fā)票明細(xì),同時還要記錄5年中每天的交易匯總,作為金融終端時需要記錄至少300條記錄,考慮到這些交易記錄數(shù)據(jù)量與稅控機(jī)對發(fā)票的存儲容量要求相近,這些交易數(shù)據(jù)能存儲到5000條以上。因此,設(shè)計時CPU可支持最大32M字節(jié)外部擴(kuò)展FLASH芯片地址空間。
終端上有四個卡座,具體是1個用戶卡、1個工作卡、2個SAM卡,能夠完成對卡的各種操作;對卡上電和去電,判斷卡的種類等功能。通過約定的卡操作流程,完成對卡的認(rèn)證、讀寫等操作。分配一個串口給卡座電路,其中用戶卡部分和CPU的GIPO引腳連接,能對異步卡和同步卡進(jìn)行操作。其他的3個卡座電路也共用該串口,每個卡座電路的電源、時鐘、復(fù)位信號分離,保證這些卡能分時工作??娐飞线€有3.3 V和5 V供電電源選擇電路[4~5]。
采用MF RC531射頻模塊處理方案,對符合ISO 14443 Type A的射頻卡進(jìn)行操作。由于射頻卡模塊最大電流有200多毫安,因此通常射頻卡模塊不工作,其指示燈不亮。當(dāng)操作人員將該功能選定后,就能使用射頻卡模塊,相應(yīng)的指示燈點亮。射頻卡模塊與CPU是并口連接。
由于終端上的許多設(shè)備使用的是串口連接,使用TI公司的16C554擴(kuò)展串口,一共擴(kuò)展出4個串口。分配給打印機(jī)、擴(kuò)展功能串口、密碼鍵盤等。在主板上預(yù)留2個串口作為通用通訊模塊的接口和卡讀寫數(shù)據(jù)口。
時鐘芯片有單獨的鈕扣電池,在沒有外電和電池不足的情況下能維持時鐘。時鐘芯片鈕扣電池一般不用更換,用電池扣固定。時鐘芯片與主機(jī)為I2C接口。時鐘芯片內(nèi)部存放的是稅控機(jī)的時間,終端在上電后將該時間讀出,CPU內(nèi)部的RTC進(jìn)行計時。當(dāng)作為金融終端使用時,在簽到后,將金融時間和內(nèi)部時間比較,得到一個時間偏移量,這樣就能解決金融和稅控對時間的不同要求。
終端上還配備了PS/2接口,能外擴(kuò)標(biāo)準(zhǔn)鍵盤,并能連接帶PS/2接口的條碼閱讀器。主板上鍵盤接口支持5×5掃描鍵盤。
顯示模塊使用320X240單色16級灰度顯示模塊,水平放置。該顯示模塊具有較強(qiáng)的背光,背光可以控制開啟和關(guān)閉。使用外部電源時,背光不關(guān)閉,背光使用冷光管。背光的亮度可以分5級調(diào)整[6]。
主控硬件電路原理框圖如圖1。由圖1可以看出系統(tǒng)由 CPU 、Flash memory、SDRAM 、卡控制電路、鍵盤接口電路、顯示電路、CS8900網(wǎng)卡電路、蜂鳴器電路、磁卡電路、RC531射頻卡電路、CF卡電路、TL16C554串口擴(kuò)展電路、時鐘電路、觸摸屏控制電路等組成。CPU通過總線對Flash memory、SDRAM、CS8900進(jìn)行控制,通過擴(kuò)展地址和數(shù)據(jù)總線對 TL16C554、RC531、CF卡電路和磁卡電路進(jìn)行控制[7]。
圖1 主控硬件電路原理框圖
2.2.1 主控處理器介紹
EP7312中央處理器核心邏輯功能以ARM720T處理器為基礎(chǔ),ARM720T處理器帶8K字節(jié)CACHE和寫緩沖器,并集成了內(nèi)存管理單元(MMU)。EP7312處理器具有數(shù)字音頻解碼功能,內(nèi)置一個48K字節(jié)的片上SRAM,并有一個LCD控制器件。
2.2.2 觸摸屏接口電路
主板上的觸摸屏接口芯片采用ADS7846,該芯片支持工業(yè)標(biāo)準(zhǔn)的四線電阻式觸摸屏。其功耗低,通信速率快。
CPU通過ADCCLK時鐘信號、nADCCS片選信號、ADCOUT、ADCIN數(shù)據(jù)信號及 nPIRQ中斷信號與ADS7846連接,同時采集nPIRQ信號的狀態(tài)來判斷觸摸屏中斷的狀態(tài),更準(zhǔn)確、有效的完成觸摸屏數(shù)據(jù)的采集。主板通過EP7312芯片ADC接口和該芯片相連,連接圖如圖2所示。
2.2.3 TL16C554接口電路
T L16C554是TI公司生產(chǎn)的串口擴(kuò)展芯片,相當(dāng)于增強(qiáng)型的由4個TL16C550異步通信單元(ACE)組成。每個異步通信單元(ACE)都有自己的可編程波特率發(fā)生器。它能夠完成外設(shè)端的串口數(shù)據(jù)向并口數(shù)據(jù)的轉(zhuǎn)換和CPU向外設(shè)傳送的并口數(shù)據(jù)向串口數(shù)據(jù)的轉(zhuǎn)換。TL16C554內(nèi)部有16字節(jié)的FIFO,可以對串口接收和發(fā)送的數(shù)據(jù)做緩沖。在FIFO模式,可以通過對 RTS和CTS兩信號線的控制來實現(xiàn)串口數(shù)據(jù)的自動流控制。這樣可以顯著減少軟件代碼量和提高系統(tǒng)的工作效率。
圖2 ADS7846接口圖
主板通過擴(kuò)展總線同T L16C554芯片相連,電路原理見圖3,讀寫信號的接口見圖4。
稅控收款機(jī)軟件采用分層次結(jié)構(gòu)化、模塊化設(shè)計,依次分為業(yè)務(wù)處理層、接口層、設(shè)備驅(qū)動層。其中業(yè)務(wù)處理層完成稅控收款機(jī)具體的業(yè)務(wù)處理;接口層作為業(yè)務(wù)處理層與設(shè)備驅(qū)動層的橋梁,提供與具體硬件平臺無關(guān)的應(yīng)用程序接口;設(shè)備驅(qū)動層包含具體的硬件平臺的各種設(shè)備驅(qū)動程序。
采用上述架構(gòu)設(shè)計的系統(tǒng)軟件,層次清晰,不相鄰的上下層沒有依賴關(guān)系,各模塊之間的耦合度低,具有良好的可移植性和可擴(kuò)充性[9~10],系統(tǒng)工作狀態(tài)轉(zhuǎn)化見圖5。
終端可以劃分為如下7個狀態(tài):
1)初始化INIT狀態(tài)
2)IDLE狀態(tài)
3)工作SERVICE狀態(tài)
4)演示交易狀態(tài)
5)管理狀態(tài)(主管操作員)
6)維護(hù)MNTN狀態(tài)(系統(tǒng)管理員)
圖3 4 TL16C554接口圖
圖4 5 TL16C554接口電路
7)退出EXIT狀態(tài)數(shù)文件更新、數(shù)據(jù)文件上傳、程序升級的功能。并將操作結(jié)果報告給瀏覽器。通訊模塊應(yīng)該保證在文件傳輸過程中的數(shù)據(jù)完整性;如果不能在規(guī)定時間內(nèi)不能完成傳輸過程,應(yīng)當(dāng)能夠及時退出。本模塊是一個單獨的任務(wù),長期駐留內(nèi)存,通過消息管道接收瀏覽器的請求消息,根據(jù)消息類型進(jìn)行相應(yīng)的動作(上傳/下載),如果沒有請求消息,該模塊被掛起。該模塊是不可重入的,也就是說只有一次操作完成以后,才能進(jìn)行下一次操作,當(dāng)操作完成后,會將結(jié)果返回給瀏覽器。
3.2.2 模塊處理流程與狀態(tài)說明
1)通訊主控子模塊負(fù)責(zé)與其他模塊通訊,其功能包括:接收外部的消息,調(diào)用FTP函數(shù)進(jìn)行文件傳輸,報告文件傳輸結(jié)果,強(qiáng)制退出通訊過程。
圖5 狀態(tài)轉(zhuǎn)化圖
3.2.1 模塊功能
通訊模塊要求能正常傳送、接收文件,實現(xiàn)參
2)FTP子模塊實現(xiàn)FTP協(xié)議的主要功能,實現(xiàn)傳輸命令,控制文件傳輸?shù)倪^程。
3)文件處理子模塊對下載后的文件進(jìn)行處理。或簡單存盤,或交給其他模塊處理,通訊子模塊分層見圖6。
圖6 通訊子模塊分層圖
當(dāng)機(jī)器交流電源出現(xiàn)故障時,此時會收到掉電消息,如果稅控模塊發(fā)現(xiàn)處于空閑狀態(tài),立即向監(jiān)控模塊發(fā)送退出消息;如果正在處理數(shù)據(jù),在處理完一個完整的最小過程后發(fā)送退出消息,從而保證數(shù)據(jù)的完整性。
本系統(tǒng)充分利用EP7312芯片的硬件資源,通過軟件實現(xiàn)了符合ISO7816和ISO14443標(biāo)準(zhǔn)的智能IC卡和射頻卡接口,系統(tǒng)設(shè)計符合稅控收款機(jī)國家標(biāo)準(zhǔn)GB/T 18240.1-2003。整個系統(tǒng)設(shè)計簡潔,可靠性高[11],能與各種外設(shè)連接,具有很強(qiáng)的競爭優(yōu)勢。
1 夏建營.井噴在即的中國稅控收款機(jī)市場[J].金卡工程,2005(2)
2 David Seal.ARM Architecture Reference Manual.Second Edition[M].Pearson Education Limited(Addsion-Wesley),2001
3 李 巖.基于S3C44BOX嵌入式 uClinux系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
4 王愛英.智能卡技術(shù)(第二版)[M].北京:清華大學(xué)出版社,2000.
5 王卓人.王鋒.智能卡大全-智能卡的結(jié)構(gòu)?功能?應(yīng)用[M].北京:電子工業(yè)出版社,2002.
6 李維諟.液晶顯示應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2000.
7 曹丙霞.Protel99SE原理圖與PCB設(shè)計[M].北京:電子工業(yè)出版社,2007.
8 張國云.基于 USB接口的IC卡讀寫器設(shè)計[J].電子技術(shù),2002(1)
9 譚浩強(qiáng).C程序設(shè)計(第三版)[M].北京:清華大學(xué)出版社,2005.
10 李 宏.使用A RM標(biāo)準(zhǔn)C庫進(jìn)行嵌入式應(yīng)用程序開發(fā)[J].單片機(jī)與嵌入式系統(tǒng),2005(11)
11 楊克俊.電磁兼容原理與設(shè)計技術(shù)[M].北京:人民郵電出版社,2004.