随着金税工程的推广,税控市场将得到迅猛发展,税控器作为四大税控产品之一,其市场份额不容小觑,税控厂家需要为产品的性能、成本做多方面考量。之前各个厂家的税控器方案,可能因为成本的考虑选择了8位单片机,也有因为性能扩展的需要选择16位、32位MCU作为税控器主控芯片。今天,ST(意法半导体公司)延续了其之前基于STR7的税控器体系架构,并借鉴在STR9银税一体机方案中的经验,推出了一款采用STM32这一高性能、低成本芯片的税控器方案。
方案介绍
与以往方案(图1)对比,STM32方案(图2)结构简单,模块功能化,减少了外部数据总线的数量,有效减小制板面积,很好地保证了系统的可靠性及安全性。ST还提供详细的设计报告,无论是软件还是硬件的开发都大大缩短了厂家的开发时间。在正式生产时,ST可以提供方案中大部分芯片,避免了采购时可能出现供应商多、采购渠道混乱的情况,保障其产品快速推向市场。
● 开发工具
开发工具推荐两家:IAR和KEIL(国内部分工程师可能习惯ADS,但ARM公司已不再对ADS软件进行维护更新,故无法支持新的IC,如STM32)。IAR的ISO/ANSI C/C++编译器能产生精简、快速的代码,并能支持扩展的嵌入式C++特性,包括模板和标准模板库(STL)。KEIL是用过51单片机的工程师都很熟悉的工具,被ARM公司收购之后,在IDE中可以直接使用ARM的工具链,具有强大的软件仿真功能,对于习惯用ADS的工程师来说,KEIL是个不错的选择,因为代码基本不需要修改,只需要在KEIL中重建工程即可实现平台的转换移植。
● 主控制芯片
ST的STM32系列32位闪存微控制器基于ARM Cortex-M3内核,这是一款专为嵌入式应用而开发的内核。STM32在Cortex-M3架构上进行了多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集、大幅度提高的中断响应,而且所有新功能都同时具有优异的功耗水平,结构见图3。
相较于8位、16位单片机,ARM核的好处是低功耗、高性能,相同的软件在不同的核之间可以兼容。相较于ARM系列其他芯片,STM32运行速度更快,性能也得到很大提高,在核上设计了单周期乘法制定的硬件触发。在代码的密度上,比普通32位单片机省30%~45%;与16位单片机相比,代码空间可以节省50%;如果拿8位单片机作比较,代码空间可以节省70%左右。功耗方面,STM32工作在1MHz频率下为0.15mW,只有ARM7的一半,所以在相同的工作模式下面,STM32可以减少30%的功耗,内核电压是1.8V,芯片电压是3.3V,可以选择睡眠模式、待机模式,保证低功耗应用的要求。
系统的外围控制非常丰富: 最大256kB FLASH(相当于ARM7的450kB空间)、最大20kB RAM、2个I2C接口、2个SPI接口、3个智能IC卡接口(与UART复用)符合ISO7816协议、USB 2.0接口、80个快速I/O口、16通道的12位A/D转换器、7个定时器(包含一个RTC)、支持通过UART实现IAP功能、IC卡读写器。
STM32的3个UART口可以通过内部寄存器配置成智能卡模式,符合ISO7816-3标准所定义的异步协议。另外,方案中设计了硬件保护电路,随时监测电路状况,为系统提供完善的IC卡短路保护。
● USB通信
STM32的USB接口符合USB2.0全速设备的技术规范,软件设计遵循CDC(Communication Device Class)规范,虚拟成一个模拟串口与上位机通讯。使用时,无需改变上位机程序,只需要在第一次使用时安装虚拟串口驱动stmcdc.inf,之后联机时选择USB虚拟的串口号即可,并且可以与另一标准串口“同时”连接,不会造成通讯异常。
● 日历时钟
M41T83是一款提供出厂前校准的串行实时时钟(RTC)芯片(图4),包括一个400kHz的I2C接口、模拟校准、一个可编程的自动重载计数器/计时器和两个闹铃。它采用内建晶体的封装,提前校准精度大约为5ppm,利用一个一次性可编程(OTP)寄存器,可以在工厂测试期间微调片上32.768kHz振荡器的内部负载电容,确保这些产品每月计时精确度在12s内。另外,当电源电压VCC断开时,芯片会自动转接备用电源,备用电流低至450nA(典型值),还有一个内置电池监控器负责检查备用电源电压,当需要更换电池时发出提示信号。在电源恢复后产生200ms的复位信号,这个上电复位/低压检测功能可以为设计工程师节省一个独立的板上复位IC。ST还应不同客户应用的需要,提供M41T82的低价解决方案:去掉了看门狗、方波信号发生器和闹铃提醒功能,但是保留了400kHz I2C总线接口、模拟用户校准、电源切换高精度电压参考管、电池监控器、12字节的NVRAM和复位输出,并采用占位很小的8引脚SOIC低价封装。
● 电源管理
整个系统可以通过USB连接PC供电或通过板上的插座外接电源供电。另外设计了专用的电压检测电路对外部供电进行监控,并采用一个2.7V、3.3F的电容作为外部供电停止后的备用电源,保证当前税控流程的完整,防止操作中数据丢失,其保护时间可达15s。
● 数据存储
FLASH M25P64通过SPI串行接口与MCU连接,大大简化了系统设计,减少了封装的引脚数量及总线干扰。FLASH采用优质的CMOS制造工艺,数据保存期限至少20年,每扇区擦写次数保证10万次,其中包括整体擦除和扇区擦除指令。它的数据传输时钟频率可达50MHz,数据读取吞吐量最高50Mbps,并设计有深节能模式(power-down),仅消耗1mA电流,从而大幅度降低了系统功耗。在设计中,为了迎合不同用户的需求,从2MB~16MB容量型号的芯片软硬件完全兼容,其中软件被分为两层:底层API是以页面和扇区为对象的读写和擦除操作;高层API是以整个统一存储空间为对象的读写透明操作,完全无需顾及因为硬件的特殊性而产生的各种限制(如跨页编程、跨扇区编程、在已经有内容的区域更新内容、跨页更新内容、跨扇区更新内容等等)。FLASH的写操作流程见图5。
● U盘读写
CH375是一个带UART接口的USB总线通用接口芯片,内部集成了PLL倍频器、主从USB接口SIE、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器和通用的固件程序等;串行接口速度可达460800bps,利用其动态链接库实现USB-HOST主机方式读写U盘。支持常用的FAT12、FAT16和FAT32文件系统,支持U盘最大容量100GB。在读写操作中,不需要考虑文件系统,只需要了解文件名、文件长度等基本资料。
● 软件流程
STM32税控器适用于PC开具税控发票的场所,通过税控IC卡的相互认证,可连接外部税控打印机打印税控防伪发票,存储相关税控数据,并完成申报完税及核查的所有税控应用。其软硬件设计均通过国家电子计算机质量监督检验中心的税控检测,完全符合国家税控标准。
结束语
本方案与其他厂家税控器方案比较,在生产和研发成本大大降低的条件下,安全性、功耗和性能方面还有很大的提升。
参考文献
1. STM32F103xx、M25P64、M41T83、CH375数据手册
2. ST Tax Box Application Note
3.《GB 18240税控收款机国家标准》