1 引言 稅控設備是國家稅務部門實現稅收管理信息化的必然手段之一,稅控器作為稅控設備之一,是在計算機等電子設備的配合下實現稅控功能的電子裝置,它可保證經營數據的正確生成、可靠存儲和安全傳輸,能滿足稅務機關的管理和數據核查等要求。稅控器通常與一臺普通收款機(主機)相連,共同完成經營和稅控的功能,連接關系見圖1。 稅控器是集軟硬件于一體的嵌入式系統,為了更有效地使用單片機并提高開發的通用性,可采用平臺思想和模塊化設計,劃分層次結構,以盡可能實現硬件的靈活性和軟件的可移植性。 2 μPSD32xx單片機簡介 2.1 主要特性 μPSD32xx系列是ST(意法半導體)公司推出的新型單片機,它采用增強型MCS-51內核,是MCU+PSD的SoC單片機,該器件具有如下特點: ●2片Flash存儲器,用于存儲程序或數據,易于實現在應用編程(IAP)功能。 ●可選擇備電保護的大容量SRAM。 ●2種可編程邏輯電路,分別為地址譯碼DPLD和組合邏輯CPLD。 ●6組通用I/O提供多達37或46個I/O引腳。●主從方式的I2C。 ●低速模式的USB 1.1。 ●2路串行通道UART。 ●在系統編程的JTAG口。 2.2 開發環境 系統軟件可在KEIL公司的KEIL 51集成開發環境μVision2中進行設計、編譯和仿真,并運用ST公司的PSDsoft Express軟件進行編程下載和內部配置。該軟件可以對μPSD32xx系列單片機的片內Flash、SRAM和PLD進行配置,并將編譯生成的程序代碼文件(.HEX)和配置文件融合生成.OBJ文件下載到單片機中。下載時還需使用FlashLINK編程電纜連接PC機的標準并口和單片機的JTAG口。 3 硬件設計方案 3.1 硬件需求 稅控器應具備的基本功能如下:具有實時時鐘和記錄稅控數據的大容量存儲器;帶有符合ISO7816標準的IC卡讀寫器,支持稅控卡、用戶卡和稅務管理卡;可通過USB或串口與主機通訊;具有在掉電后可保存存儲器數據和時鐘運行的備份電池;允許異常斷電而不破壞任何有效數據。 3.2 硬件系統組成 稅控器內部的硬件系統結構見圖2。 (1) 主控模塊MCU 主控模塊MCU采用ST公司的μPSD3234A單片機,它內部具有256kB的主Flash、32kB的次Flash和8kB SRAM,工作電壓為5V,選用24MHz晶振。其中SRAM由片外的備用電池供電,可存放一些長期保存的數據,維持電流僅需1μA。 主控模塊通過USB或UART與主機相連,通過I2C與RTC相連,通過I/O與ICC及MEM相連。 (2) 時鐘模塊RTC 時鐘模塊RTC采用ST公司的M41T0M6,該芯片具有實時時鐘/日歷功能,可計時毫秒、秒、分鐘、小時、星期、日、月、年、世紀。在系統掉電以后可由片外的備用電池供電,以保持片內時鐘的繼續運行。采用32.768kHz晶振,工作電壓5V,工作電流130~200μA,備用電池電壓3V,維持電流僅需1uA。I2C的最大傳輸速率為400kHz。 (3)存儲器MEM 存儲器MEM采用ST公司的2MB串行Flash芯片M25P16,共有32個扇區,每個扇區256頁,每頁256字節,頁編程時間為1.4ms。M25P16采用SPI總線接口,最大傳輸速率50MHz,低工作電壓3.3V。為了實現5V-3.3V邏輯電平轉換,可使用Onsemi公司的三路非反相施密特觸發器NL37WZ17,它兼容5V和3V邏輯電平,輸出驅動可達24mA。Flash存儲器主要用來存儲發票數據和稅控數據。 (4)IC卡模塊ICC IC卡模塊ICC采用Onsemi公司的NCN6004A。NCN6004A具有雙路卡接口,符合ISO 7816-3和EMV標準。工作電壓5V,電流150mA,內置DC/DC,能為每個卡提供65mA/5V電源,外部晶振14.28MHz,內置可編程的卡通信總線時鐘。 MCU通過I/O線與NCN6004A進行串行通信。為了節省I/O資源,可選擇復用連線方式,即兩個卡共享一路通道,由選卡信號區分,分別實現稅控卡和用戶卡的訪問功能。 (5)USB接口 MCU內部帶有USB通訊控制器,為了濾波和ESD保護,接口部分采用Onsemi公司的STF202。STF202的工作電壓為3.3V,DIN2腳內部帶1.5kΩ上拉電阻。由于MCU僅支持低速USB設備,所以它的USB_D_必須要連接STF202的DIN2,通訊速率1.5Mb/s。 (6) UART接口 UART轉換芯片采用Intersil公司的HIN202,MCU內部具有2路UART,均可選用RS232通訊。HIN202的工作電壓為5V,具有2路收發驅動。 (7)電源模塊PWR 系統的外部供電電源分為兩路,一路用AC/DC適配器直接提供+5V;另一路由主機通過USB接口線輸入(5V/500mA)。用戶可任選一路直接提供給5V器件工作。 為了實現電保護功能,采用Onsemi公司的升壓芯片NCP1402SN50T1,其最低輸入啟動電壓為0.8V,輸出電壓5V,輸出電流200mA。當系統正常工作時,NCP1402SN50T1可為大電容充電,一旦斷電,大電容仍可維持該芯片工作一段時間,此時可完成一些重要的任務,以避免異常斷電產生錯誤。大電容采用了兩個串聯的3.3F/2.5V卷繞型電容,當充滿時可維持供電30秒以上。 5V至3.3V電壓轉換器采用Onsemi公司的NCP500SN33T1,該芯片輸出電流為150mA,可為3.3V器件提供工作電壓。 備用電池采用的是兩節3V/210mAh鋰電池,供電至少可維持10年以上。 (8)監控模塊MON 監控模塊采用Onsemi公司的MAX708,MAX708可實現上電復位和手動復位,還具有電壓監控功能,設計時在其PFI端連接適當的分壓電阻,這樣當主電源掉電時,MAX708就可產生掉電中斷信號,用以完成重要的任務或備份重要的數據。 MAX708工作電壓5V,復位的門限值4.38V,復位時間200ms,低壓監控輸入門限值1.25V。 (9) 狀態指示SIC 狀態指示采用發光二級管,分別用于指示電源接通、卡插入、JATG程序下載等狀態。在MCU的I/O上還可連接出錯、運行、自檢測等狀態指示。 4 實際應用電路 稅控器中MCU與其它核心硬件的連接電路圖如圖3所示。圖中給出了時鐘、Flash存儲器和IC卡模塊與MCU的連接方式。 5 軟件設計方案 稅控器軟件總體上包含兩大部分:主機端軟件和設備端軟件。主機端與設備端之間采用“命令—應答”方式進行數據通訊。由主機端發送命令,設備端應答。 主機端軟件可分為四層:應用層、稅控函數層、通訊管理層和設備驅動層;設備端軟件也可分為四層:主控層、稅控函數層、設備管理層、硬件驅動層。以下主要介紹設備端軟件架構。 5.1 主控層 主控函數負責系統和設備的初始化、與主機間的通訊監控、協議管理、稅控命令包的解釋和任務的調度等事務。 5.2 稅控函數層 稅控函數按照國標對稅控器的要求設計,負責機器初始化和注冊、分發發票、開發票、退票、廢票、上傳發票、日交易和卷匯總數據、申報、核查等事務。 5.3 設備管理層 設備管理層是針對復雜設備設計的管理程序,主要包括IC卡管理、存儲器管理、USB通訊管理。 IC卡管理程序是按照GB18240.2-2003對稅控IC卡的要求設計的操作命令程序,可分為基本命令和擴展命令。基本命令有文件操作、讀寫記錄、產生隨機數、內外部認證、取響應、應用鎖定等;稅控卡專用命令有卡注冊、開票,日交易簽名等功能;用戶卡專用命令有注冊簽名、分發發票、報稅數據匯總等功能。 存儲器管理程序用來對Flash存儲空間進行地址分配管理。該程序按循環記錄的方式設計,主要完成發票明細、日交易和卷匯總記錄的格式化、讀寫、查找等事務。同時還負責存儲在SRAM中地址分配表的管理,指針等數據的記錄。 USB通訊管理程序是按照低速USB1.1規范以及人機接口設備(HID)類別的要求設計的,用來完成總線枚舉和數據通信的事務。該程序主要采用Endpoint 0(IN/OUT)控制傳輸方式,并使用輸入輸出報表(Report)格式來與主機交換數據。 5.4 硬件驅動層 硬件驅動層是使各個硬件設備實現底層操作的驅動程序,包括時鐘、IC卡、Flash MEM、UART和USB等API庫函數。其中時鐘函數實現設置、讀、寫時鐘和日歷等功能。IC卡函數實現IC卡的插卡檢測、卡上下電、卡復位和卡命令等功能。Flash MEM函數實現外部Flash存儲器的擦除、讀、寫等功能。UART和USB函數實現設置、接收和發送數據等功能。 6 結束語 文中介紹了稅控器的設計原理,本設計方案已通過應用功能調試,能夠滿足產品的基本需求。需要說明的是,在實際產品中,可考慮采用模塊化設計思想,也就是說硬件采用模塊+底板架構,主處理及核心硬件都集中于模塊上,電源與接插件等放置在底板上;軟件底層對上層可封裝成API函數的形式。這樣便于滿足不同層次的需求,細分稅控產業的市場,有利于開發商和供應商的定位選擇。通過多種開發與合作的途徑,來達到降低成本,提高效率和節省時間的目的。 |