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