μPSD 32XX單片機(jī)在稅控器開(kāi)發(fā)中的應(yīng)用
引言
---稅控設(shè)備是國(guó)家稅務(wù)部門(mén)實(shí)施稅收管理信息化的必然手段之一,稅控器作為稅控設(shè)備之一,它是在計(jì)算機(jī)等電子設(shè)備的配合下實(shí)現(xiàn)稅控功能的電子裝置,保證經(jīng)營(yíng)數(shù)據(jù)的正確生成、可靠存儲(chǔ)和安全傳輸,能滿足稅務(wù)機(jī)關(guān)的管理和數(shù)據(jù)核查等要求。稅控器是集軟硬件于一體的嵌入式系統(tǒng),為了提高開(kāi)發(fā)效率和通用性,采用模塊化設(shè)計(jì),劃分層次結(jié)構(gòu),盡可能實(shí)現(xiàn)硬件的靈活性和軟件的可移植性要求。
μPSD32XX單片機(jī)特點(diǎn)
---μPSD32XX系列單片機(jī)是意法半導(dǎo)體(ST)公司推出得一款新型單片機(jī),它采用增強(qiáng)型MCS-51內(nèi)核,是MCU+PSD的SoC單片機(jī),具有2片F(xiàn)lash存儲(chǔ)器、可選擇備電保護(hù)的大容量SRAM、地址譯碼DPLD和組合邏輯CPLD兩種可編程邏輯電路、6組通用I/O提供多達(dá)37或46個(gè)I/O引腳、4或5路脈寬調(diào)制單元PWM、4路8位ADC、主從方式的I2C、獨(dú)立的顯示數(shù)據(jù)通道DDC、USB 1.1接口、2路串行通道UART、內(nèi)部看門(mén)狗定時(shí)器、在系統(tǒng)編程的JTAG口、可編程的加密安全技術(shù)、零功耗技術(shù)等豐富的功能和外設(shè)。
---軟件可在KEIL公司的KEIL 51集成開(kāi)發(fā)環(huán)境μVision2中進(jìn)行設(shè)計(jì)、編譯和仿真,運(yùn)用ST公司的PSDsoft Express軟件進(jìn)行編程下載和內(nèi)部配置。該軟件可以對(duì)μPSD32XX系列單片機(jī)的片內(nèi)FLASH、SRAM和PLD進(jìn)行配置,將編譯生成的程序代碼文件(.HEX)和配置文件融合生成.OBJ文件,下載到單片機(jī)中。下載時(shí)還需使用FlashLINK編程電纜連接PC的標(biāo)準(zhǔn)并口和單片機(jī)的JTAG口。
稅控器應(yīng)用方案設(shè)計(jì)
---稅控器平臺(tái)應(yīng)具備一些基本功能:具有實(shí)時(shí)時(shí)鐘和記錄稅控?cái)?shù)據(jù)的大容量存儲(chǔ)器,符合ISO 7816標(biāo)準(zhǔn)的IC卡讀寫(xiě)器,支持稅控卡、用戶卡和稅務(wù)管理卡,通過(guò)USB或串口與主機(jī)通信,具有在掉電后可保存存儲(chǔ)器數(shù)據(jù)和時(shí)鐘運(yùn)行的備份電池。稅控器作為外掛設(shè)備,其連接關(guān)系如圖1所示,內(nèi)部的硬件系統(tǒng)結(jié)構(gòu)見(jiàn)圖2。
---
主控模塊MCU采用ST公司的 μPSD3234A單片機(jī),它內(nèi)部具有256KB的主FLASH,32KB的次FLASH和32KB SRAM,工作電壓為5V,晶振選用24MHz。其中SRAM由片外的備用電池保護(hù)數(shù)據(jù),可存放一些長(zhǎng)期保存的數(shù)據(jù),維持電流1μA。通過(guò)USB或UART與主機(jī)相連,通過(guò)I2C與RTC相連,通過(guò)通用I/O與ICC及MEM相連。
---時(shí)鐘模塊RTC采用ST公司的M41T0M6,提供實(shí)時(shí)時(shí)鐘/日歷功能,在系統(tǒng)掉電以后由片外的備用電池供電。
---存儲(chǔ)器采用ST公司的串行FLASH M25P16,容量為2MB,主要用來(lái)存儲(chǔ)發(fā)票數(shù)據(jù)和稅控?cái)?shù)據(jù)。SPI總線接口的最大傳輸速率50MHz,工作電壓為3.3V。
-IC卡模塊ICC采用安森美公司的NCN6004A,雙路卡接口,符合ISO 7816-3和EMV標(biāo)準(zhǔn),MCU通過(guò)I/O線與其通信。為了節(jié)省I/O資源,可選擇復(fù)用連線方式,兩個(gè)卡共享一路通道,由選卡信號(hào)區(qū)分,分別實(shí)現(xiàn)稅控卡和用戶卡的訪問(wèn)功能。
---USB通信采用安森美公司的STF202作為終端匹配、濾波和ESD保護(hù),通信速率1.5Mbps。由于MCU內(nèi)部具有SIE、FIFO和收發(fā)器,SIE可以將傳輸信號(hào)變成字節(jié)存入寄存器,所以通過(guò)事先對(duì)SIE的配置,然后訪問(wèn)已定義的地址和端口,來(lái)實(shí)現(xiàn)通信的控制、中斷、收發(fā)等操作。
---UART的電平轉(zhuǎn)換芯片采用Intersil公司的HIN202,MCU內(nèi)部具有2路UART,均可選作RS232通信。
---外部供電電源分為兩路,一路可用AC/DC適配器直接提供+5V;另一路由主機(jī)通過(guò)USB接口線輸入(5V/500mA)。用戶可任選一路,直接提供給5V的器件工作。
---為了實(shí)現(xiàn)電保護(hù),采用安森美公司的升壓芯片NCP1402SN50T1,當(dāng)正常工作時(shí),為大電容充電,一旦斷電,大電容仍可維持該芯片工作一段時(shí)間,此時(shí)可完成一些重要的任務(wù),避免意外斷電產(chǎn)生錯(cuò)誤。大電容采用了2個(gè)串聯(lián)3.3F/2.5V的卷繞型電容,當(dāng)充滿時(shí)可維持供電30s以上。
---采用安森美公司的NCP500SN33T1作為5V至3.3V電壓轉(zhuǎn)換器,輸出電流150mA,提供給3.3V器件工作。備用電池采用的是2節(jié)3V/210mAh鋰電池,至少可用10年以上。
---監(jiān)控模塊采用安森美公司的MAX708,實(shí)現(xiàn)上電復(fù)位和手動(dòng)復(fù)位的功能。MAX708還具有電壓監(jiān)控功能,在PFI端選用適當(dāng)?shù)姆謮弘娮?,?dāng)主電源掉電時(shí),就可產(chǎn)生掉電中斷信號(hào)。
---狀態(tài)指示采用發(fā)光二級(jí)管,分別用于指示電源接通,卡插入指示、JATG程序下載等狀態(tài)。在MCU的I/O上還可連接自定義的狀態(tài)指示,如出錯(cuò)、運(yùn)行、自檢測(cè)等狀態(tài)。
軟件設(shè)計(jì)方案
---
稅控器軟件總體上應(yīng)包含兩大部分:主機(jī)端軟件和設(shè)備端軟件。主機(jī)端與設(shè)備端之間進(jìn)行的數(shù)據(jù)通信采用“命令—應(yīng)答”方式,由主機(jī)端發(fā)送命令,設(shè)備端應(yīng)答。
---主機(jī)端軟件可分為四層:應(yīng)用層、稅控函數(shù)層、通信管理層和設(shè)備驅(qū)動(dòng)層;設(shè)備端軟件也可分為四層:主控層、稅控函數(shù)層、設(shè)備管理層、硬件驅(qū)動(dòng)層。這里主要介紹設(shè)備端軟件。
---主控函數(shù)負(fù)責(zé)系統(tǒng)和設(shè)備的初始化,與主機(jī)間的通信監(jiān)控、協(xié)議管理、稅控命令包的解釋和任務(wù)的調(diào)度等事務(wù)。
---稅控函數(shù)是按照國(guó)標(biāo)對(duì)稅控器的要求設(shè)計(jì),負(fù)責(zé)機(jī)器初始化和注冊(cè)、分發(fā)發(fā)票、開(kāi)發(fā)票、退票、廢票、上傳發(fā)票,日交易和卷匯總數(shù)據(jù)、申報(bào)、核查等稅控應(yīng)用事務(wù)。
---設(shè)備管理層是針對(duì)復(fù)雜的設(shè)備所設(shè)計(jì)的管理程序,主要包括IC卡管理、存儲(chǔ)器管理、USB通信管理。
---IC卡管理程序是按照[GB 18240.2-2003]稅控IC卡規(guī)范的要求,設(shè)計(jì)對(duì)卡的操作命令程序,命令分為基本命令和擴(kuò)展命令?;久钣形募僮鳌⒆x寫(xiě)記錄、產(chǎn)生隨機(jī)數(shù)、內(nèi)外部認(rèn)證、取響應(yīng)、應(yīng)用鎖定等功能;稅控卡專用命令有卡注冊(cè)、開(kāi)票、日交易簽名等功能;用戶卡專用命令有注冊(cè)簽名、分發(fā)發(fā)票、報(bào)稅數(shù)據(jù)匯總等功能。
---存儲(chǔ)器管理程序是對(duì)Flash存儲(chǔ)空間進(jìn)行地址分配管理,以及按循環(huán)記錄的方式設(shè)計(jì),完成對(duì)發(fā)票明細(xì)、日交易和卷匯總記錄的格式化、讀寫(xiě)、查找等事務(wù),同時(shí)還管理存儲(chǔ)在SRAM的地址分配表,記錄指針等數(shù)據(jù)。
---USB通信管理程序是按照低速USB1.1的規(guī)范,人機(jī)接口設(shè)備(HID)類別的要求設(shè)計(jì),完成總線枚舉和數(shù)據(jù)通信的事務(wù)。主要采用了Endpoint 0(IN/OUT)控制傳輸方式,使用輸入輸出報(bào)表格式來(lái)與主機(jī)交換數(shù)據(jù)。
---硬件驅(qū)動(dòng)層主要是各個(gè)硬件設(shè)備的實(shí)現(xiàn)底層操作的驅(qū)動(dòng)程序,包括時(shí)鐘、IC卡、FLASH、UART和USB等API庫(kù)函數(shù)。時(shí)鐘函數(shù)實(shí)現(xiàn)設(shè)置、讀、寫(xiě)時(shí)鐘和日歷等功能;IC卡函數(shù)實(shí)現(xiàn)IC卡的插卡檢測(cè)、卡上下電、卡復(fù)位和卡命令等功能;FLASH函數(shù)實(shí)現(xiàn)外部FLASH存儲(chǔ)器的擦除、讀、寫(xiě)數(shù)據(jù)等功能;UART和USB函數(shù)實(shí)現(xiàn)設(shè)置,接收和發(fā)送數(shù)據(jù)等功能。
總結(jié)
---按照模塊化思想,硬件采用的是模塊+底板架構(gòu),主處理及核心硬件都集中于模塊上,電源與接插件等放置在底板上。軟件底層對(duì)上層都采用API函數(shù)的形式。通過(guò)包括器件、軟硬件開(kāi)發(fā)平臺(tái)、解決方案和全功能模塊等形式在內(nèi)的產(chǎn)品和服務(wù),構(gòu)建多種開(kāi)發(fā)與合作的模式,有助于促進(jìn)整機(jī)廠商的大規(guī)模生產(chǎn),降低成本和節(jié)省時(shí)間。
評(píng)論