摘要:μPSD32xx是一款集51内核与PSD(可编程系统器件)与一身的SoC单片机,具有许多功能部件,性价比高,广泛应用于税控收款机、税控器和微型打印机等税控设备中。文中介绍了μPSD32xx单片机的主要特性和开发环境,给出了应用该芯片实现税控器的软硬件设计方案。
关键词:μPSD3234A;税控器;模块化设计;API函数
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函数实现设置、接收和发送数据等功能。
图3
6 结束语
文中介绍了税控器的设计原理,本设计方案已通过应用功能调试,能够满足产品的基本需求。需要说明的是,在实际产品中,可考虑采用模块化设计思想,也就是说硬件采用模块+底板架构,主处理及核心硬件都集中于模块上,电源与接插件等放置在底板上;软件底层对上层可封装成API函数的形式。这样便于满足不同层次的需求,细分税控产业的市场,有利于开发商和供应商的定位选择。通过多种开发与合作的途径,来达到降低成本,提高效率和节省时间的目的。