隨著金稅工程的推廣,稅控市場將得到迅猛發(fā)展,稅控器" title="稅控器">稅控器作為四大稅控產(chǎn)品之一,其市場份額不容小覷,稅控廠家需要為產(chǎn)品的性能、成本做多方面考量。之前各個廠家的稅控器方案,可能因為成本的考慮選擇了8位單片機,也有因為性能擴展的需要選擇16位、32位MCU作為稅控器主控芯片。今天,ST(意法半導(dǎo)體公司)延續(xù)了其之前基于STR7的稅控器體系架構(gòu),并借鑒在STR9銀稅一體機方案中的經(jīng)驗,推出了一款采用STM32" title="STM32">STM32這一高性能、低成本芯片的稅控器方案。
方案介紹
與以往方案(圖1)對比,STM32方案(圖2)結(jié)構(gòu)簡單,模塊功能化,減少了外部數(shù)據(jù)總線的數(shù)量,有效減小制板面積,很好地保證了系統(tǒng)的可靠性及安全性。ST還提供詳細的設(shè)計報告,無論是軟件還是硬件的開發(fā)都大大縮短了廠家的開發(fā)時間。在正式生產(chǎn)時,ST可以提供方案中大部分芯片,避免了采購時可能出現(xiàn)供應(yīng)商多、采購渠道混亂的情況,保障其產(chǎn)品快速推向市場。
● 開發(fā)工具
開發(fā)工具推薦兩家:IAR和KEIL(國內(nèi)部分工程師可能習(xí)慣ADS,但ARM公司已不再對ADS軟件進行維護更新,故無法支持新的IC,如STM32)。IAR的ISO/ANSI C/C++編譯器能產(chǎn)生精簡、快速的代碼,并能支持擴展的嵌入式C++特性,包括模板和標準模板庫(STL)。KEIL是用過51單片機的工程師都很熟悉的工具,被ARM公司收購之后,在IDE中可以直接使用ARM的工具鏈,具有強大的軟件仿真功能,對于習(xí)慣用ADS的工程師來說,KEIL是個不錯的選擇,因為代碼基本不需要修改,只需要在KEIL中重建工程即可實現(xiàn)平臺的轉(zhuǎn)換移植。
● 主控制芯片
ST的STM32系列32位閃存微控制器基于ARM Cortex-M3" title="Cortex-M3">Cortex-M3內(nèi)核,這是一款專為嵌入式應(yīng)用而開發(fā)的內(nèi)核。STM32在Cortex-M3架構(gòu)上進行了多項改進,包括提升性能的同時又提高了代碼密度的Thumb-2指令集、大幅度提高的中斷響應(yīng),而且所有新功能都同時具有優(yōu)異的功耗水平,結(jié)構(gòu)見圖3。
相較于8位、16位單片機,ARM核的好處是低功耗、高性能,相同的軟件在不同的核之間可以兼容。相較于ARM系列其他芯片,STM32運行速度更快,性能也得到很大提高,在核上設(shè)計了單周期乘法制定的硬件觸發(fā)。在代碼的密度上,比普通32位單片機省30%~45%;與16位單片機相比,代碼空間可以節(jié)省50%;如果拿8位單片機作比較,代碼空間可以節(jié)省70%左右。功耗方面,STM32工作在1MHz頻率下為0.15mW,只有ARM7的一半,所以在相同的工作模式下面,STM32可以減少30%的功耗,內(nèi)核電壓是1.8V,芯片電壓是3.3V,可以選擇睡眠模式、待機模式,保證低功耗應(yīng)用的要求。
系統(tǒng)的外圍控制非常豐富: 最大256kB FLASH(相當于ARM7的450kB空間)、最大20kB RAM、2個I2C接口、2個SPI接口、3個智能IC卡接口(與UART復(fù)用)符合ISO7816協(xié)議、USB 2.0接口、80個快速I/O口、16通道的12位A/D轉(zhuǎn)換器、7個定時器(包含一個RTC)、支持通過UART實現(xiàn)IAP功能、IC卡讀寫器。
STM32的3個UART口可以通過內(nèi)部寄存器配置成智能卡模式,符合ISO7816-3標準所定義的異步協(xié)議。另外,方案中設(shè)計了硬件保護電路,隨時監(jiān)測電路狀況,為系統(tǒng)提供完善的IC卡短路保護。
● USB通信
STM32的USB接口符合USB2.0全速設(shè)備的技術(shù)規(guī)范,軟件設(shè)計遵循CDC(Communication Device Class)規(guī)范,虛擬成一個模擬串口與上位機通訊。使用時,無需改變上位機程序,只需要在第一次使用時安裝虛擬串口驅(qū)動stmcdc.inf,之后聯(lián)機時選擇USB虛擬的串口號即可,并且可以與另一標準串口“同時”連接,不會造成通訊異常。
● 日歷時鐘
M41T83" title="M41T83">M41T83結(jié)構(gòu)圖" border="0" height="384" hspace="0" src="http://files.chinaaet.com/images/20100816/cbd653e9-8092-441c-a24f-b33004c85a16.jpg" width="500" />
M41T83是一款提供出廠前校準的串行實時時鐘(RTC)芯片(圖4),包括一個400kHz的I2C接口、模擬校準、一個可編程的自動重載計數(shù)器/計時器和兩個鬧鈴。它采用內(nèi)建晶體的封裝,提前校準精度大約為5ppm,利用一個一次性可編程(OTP)寄存器,可以在工廠測試期間微調(diào)片上32.768kHz振蕩器的內(nèi)部負載電容,確保這些產(chǎn)品每月計時精確度在12s內(nèi)。另外,當電源電壓VCC斷開時,芯片會自動轉(zhuǎn)接備用電源,備用電流低至450nA(典型值),還有一個內(nèi)置電池監(jiān)控器負責(zé)檢查備用電源電壓,當需要更換電池時發(fā)出提示信號。在電源恢復(fù)后產(chǎn)生200ms的復(fù)位信號,這個上電復(fù)位/低壓檢測功能可以為設(shè)計工程師節(jié)省一個獨立的板上復(fù)位IC。ST還應(yīng)不同客戶應(yīng)用的需要,提供M41T82的低價解決方案:去掉了看門狗、方波信號發(fā)生器和鬧鈴提醒功能,但是保留了400kHz I2C總線接口、模擬用戶校準、電源切換高精度電壓參考管、電池監(jiān)控器、12字節(jié)的NVRAM和復(fù)位輸出,并采用占位很小的8引腳SOIC低價封裝。
● 電源管理
整個系統(tǒng)可以通過USB連接PC供電或通過板上的插座外接電源供電。另外設(shè)計了專用的電壓檢測電路對外部供電進行監(jiān)控,并采用一個2.7V、3.3F的電容作為外部供電停止后的備用電源,保證當前稅控流程的完整,防止操作中數(shù)據(jù)丟失,其保護時間可達15s。
● 數(shù)據(jù)存儲
FLASH M25P64通過SPI串行接口與MCU連接,大大簡化了系統(tǒng)設(shè)計,減少了封裝的引腳數(shù)量及總線干擾。FLASH采用優(yōu)質(zhì)的CMOS制造工藝,數(shù)據(jù)保存期限至少20年,每扇區(qū)擦寫次數(shù)保證10萬次,其中包括整體擦除和扇區(qū)擦除指令。它的數(shù)據(jù)傳輸時鐘頻率可達50MHz,數(shù)據(jù)讀取吞吐量最高50Mbps,并設(shè)計有深節(jié)能模式(power-down),僅消耗1mA電流,從而大幅度降低了系統(tǒng)功耗。在設(shè)計中,為了迎合不同用戶的需求,從2MB~16MB容量型號的芯片軟硬件完全兼容,其中軟件被分為兩層:底層API是以頁面和扇區(qū)為對象的讀寫和擦除操作;高層API是以整個統(tǒng)一存儲空間為對象的讀寫透明操作,完全無需顧及因為硬件的特殊性而產(chǎn)生的各種限制(如跨頁編程、跨扇區(qū)編程、在已經(jīng)有內(nèi)容的區(qū)域更新內(nèi)容、跨頁更新內(nèi)容、跨扇區(qū)更新內(nèi)容等等)。FLASH的寫操作流程見圖5。
● U盤讀寫
CH375是一個帶UART接口的USB總線通用接口芯片,內(nèi)部集成了PLL倍頻器、主從USB接口SIE、數(shù)據(jù)緩沖區(qū)、被動并行接口、異步串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器和通用的固件程序等;串行接口速度可達460800bps,利用其動態(tài)鏈接庫實現(xiàn)USB-HOST主機方式讀寫U盤。支持常用的FAT12、FAT16和FAT32文件系統(tǒng),支持U盤最大容量100GB。在讀寫操作中,不需要考慮文件系統(tǒng),只需要了解文件名、文件長度等基本資料。
● 軟件流程
STM32稅控器適用于PC開具稅控發(fā)票的場所,通過稅控IC卡的相互認證,可連接外部稅控打印機打印稅控防偽發(fā)票,存儲相關(guān)稅控數(shù)據(jù),并完成申報完稅及核查的所有稅控應(yīng)用。其軟硬件設(shè)計均通過國家電子計算機質(zhì)量監(jiān)督檢驗中心的稅控檢測,完全符合國家稅控標準。
結(jié)束語
本方案與其他廠家稅控器方案比較,在生產(chǎn)和研發(fā)成本大大降低的條件下,安全性、功耗和性能方面還有很大的提升。
參考文獻
1. STM32F103xx、M25P64、M41T83、CH375數(shù)據(jù)手冊
2. ST Tax Box Application Note
3.《GB 18240稅控收款機國家標準》