卢 贶
(武汉软件工程职业学院,湖北武汉 430205)
税控收款机(简称税控机)指在交易过程中,具有记录、计算、打印、显示、分类、断电保护等功能,同时具有税控功能,能保证经营数据的正确生成、可靠存储和安全传递,并可实现税务机关管理和数据核查等要求的电子设备。
税控收款机根据嵌入式系统设计的基本方法,满足安全性、方便性和经济性,采用税控IC卡为核心的安全机制。充分考虑了可靠性、维修性、安全性和电磁兼容性设计。通过税控卡正确生成税控数据,税控数据分别可靠地存储在税控卡和税控存储器中;采用用户卡或其他方式将税控数据安全传递到税务机关的税控收款机管理系统中。税控收款机和税控IC卡分别遵循统一的技术规范,实现税控收款机及税控IC卡的设计、生成、测试和验收的分别实施。税控收款机管理系统将纳税人相关信息写入税控卡中,并通过税控卡对税控收款机进行初始化处理,即建立税控卡和税控收款机的唯一对应关系,税控收款机能防范应用在各行各业,各种领域,并对税务数据进行实时高效监控[1]。
一般有两种:IC卡报税方式和远程联网报税及税务稽查系统。前一种方式较简单,主要使用税控收款机、IC卡及手持POS;后一种方式在企业端不通过IC卡收集数据,通过电话线等网络方式联网,将税务数据上报。
税控收款机在硬件设计上考虑了税控、金融等对资源的要求,将涉及到的各种要求罗列成硬件总体设计方案,说明如下:
金融税控收款机选用CIRRUS LOGIC公司的EP7312作为控制芯片,采用32位数据总线方式[2~3]。
税控收款机需要记录5000到10000条发票明细,同时还要记录5年中每天的交易汇总,作为金融终端时需要记录至少300条记录,考虑到这些交易记录数据量与税控机对发票的存储容量要求相近,这些交易数据能存储到5000条以上。因此,设计时CPU可支持最大32M字节外部扩展FLASH芯片地址空间。
终端上有四个卡座,具体是1个用户卡、1个工作卡、2个SAM卡,能够完成对卡的各种操作;对卡上电和去电,判断卡的种类等功能。通过约定的卡操作流程,完成对卡的认证、读写等操作。分配一个串口给卡座电路,其中用户卡部分和CPU的GIPO引脚连接,能对异步卡和同步卡进行操作。其他的3个卡座电路也共用该串口,每个卡座电路的电源、时钟、复位信号分离,保证这些卡能分时工作。卡电路上还有3.3 V和5 V供电电源选择电路[4~5]。
采用MF RC531射频模块处理方案,对符合ISO 14443 Type A的射频卡进行操作。由于射频卡模块最大电流有200多毫安,因此通常射频卡模块不工作,其指示灯不亮。当操作人员将该功能选定后,就能使用射频卡模块,相应的指示灯点亮。射频卡模块与CPU是并口连接。
由于终端上的许多设备使用的是串口连接,使用TI公司的16C554扩展串口,一共扩展出4个串口。分配给打印机、扩展功能串口、密码键盘等。在主板上预留2个串口作为通用通讯模块的接口和卡读写数据口。
时钟芯片有单独的钮扣电池,在没有外电和电池不足的情况下能维持时钟。时钟芯片钮扣电池一般不用更换,用电池扣固定。时钟芯片与主机为I2C接口。时钟芯片内部存放的是税控机的时间,终端在上电后将该时间读出,CPU内部的RTC进行计时。当作为金融终端使用时,在签到后,将金融时间和内部时间比较,得到一个时间偏移量,这样就能解决金融和税控对时间的不同要求。
终端上还配备了PS/2接口,能外扩标准键盘,并能连接带PS/2接口的条码阅读器。主板上键盘接口支持5×5扫描键盘。
显示模块使用320X240单色16级灰度显示模块,水平放置。该显示模块具有较强的背光,背光可以控制开启和关闭。使用外部电源时,背光不关闭,背光使用冷光管。背光的亮度可以分5级调整[6]。
主控硬件电路原理框图如图1。由图1可以看出系统由 CPU 、Flash memory、SDRAM 、卡控制电路、键盘接口电路、显示电路、CS8900网卡电路、蜂鸣器电路、磁卡电路、RC531射频卡电路、CF卡电路、TL16C554串口扩展电路、时钟电路、触摸屏控制电路等组成。CPU通过总线对Flash memory、SDRAM、CS8900进行控制,通过扩展地址和数据总线对 TL16C554、RC531、CF卡电路和磁卡电路进行控制[7]。
图1 主控硬件电路原理框图
2.2.1 主控处理器介绍
EP7312中央处理器核心逻辑功能以ARM720T处理器为基础,ARM720T处理器带8K字节CACHE和写缓冲器,并集成了内存管理单元(MMU)。EP7312处理器具有数字音频解码功能,内置一个48K字节的片上SRAM,并有一个LCD控制器件。
2.2.2 触摸屏接口电路
主板上的触摸屏接口芯片采用ADS7846,该芯片支持工业标准的四线电阻式触摸屏。其功耗低,通信速率快。
CPU通过ADCCLK时钟信号、nADCCS片选信号、ADCOUT、ADCIN数据信号及 nPIRQ中断信号与ADS7846连接,同时采集nPIRQ信号的状态来判断触摸屏中断的状态,更准确、有效的完成触摸屏数据的采集。主板通过EP7312芯片ADC接口和该芯片相连,连接图如图2所示。
2.2.3 TL16C554接口电路
T L16C554是TI公司生产的串口扩展芯片,相当于增强型的由4个TL16C550异步通信单元(ACE)组成。每个异步通信单元(ACE)都有自己的可编程波特率发生器。它能够完成外设端的串口数据向并口数据的转换和CPU向外设传送的并口数据向串口数据的转换。TL16C554内部有16字节的FIFO,可以对串口接收和发送的数据做缓冲。在FIFO模式,可以通过对 RTS和CTS两信号线的控制来实现串口数据的自动流控制。这样可以显著减少软件代码量和提高系统的工作效率。
图2 ADS7846接口图
主板通过扩展总线同T L16C554芯片相连,电路原理见图3,读写信号的接口见图4。
税控收款机软件采用分层次结构化、模块化设计,依次分为业务处理层、接口层、设备驱动层。其中业务处理层完成税控收款机具体的业务处理;接口层作为业务处理层与设备驱动层的桥梁,提供与具体硬件平台无关的应用程序接口;设备驱动层包含具体的硬件平台的各种设备驱动程序。
采用上述架构设计的系统软件,层次清晰,不相邻的上下层没有依赖关系,各模块之间的耦合度低,具有良好的可移植性和可扩充性[9~10],系统工作状态转化见图5。
终端可以划分为如下7个状态:
1)初始化INIT状态
2)IDLE状态
3)工作SERVICE状态
4)演示交易状态
5)管理状态(主管操作员)
6)维护MNTN状态(系统管理员)
图3 4 TL16C554接口图
图4 5 TL16C554接口电路
7)退出EXIT状态数文件更新、数据文件上传、程序升级的功能。并将操作结果报告给浏览器。通讯模块应该保证在文件传输过程中的数据完整性;如果不能在规定时间内不能完成传输过程,应当能够及时退出。本模块是一个单独的任务,长期驻留内存,通过消息管道接收浏览器的请求消息,根据消息类型进行相应的动作(上传/下载),如果没有请求消息,该模块被挂起。该模块是不可重入的,也就是说只有一次操作完成以后,才能进行下一次操作,当操作完成后,会将结果返回给浏览器。
3.2.2 模块处理流程与状态说明
1)通讯主控子模块负责与其他模块通讯,其功能包括:接收外部的消息,调用FTP函数进行文件传输,报告文件传输结果,强制退出通讯过程。
图5 状态转化图
3.2.1 模块功能
通讯模块要求能正常传送、接收文件,实现参
2)FTP子模块实现FTP协议的主要功能,实现传输命令,控制文件传输的过程。
3)文件处理子模块对下载后的文件进行处理。或简单存盘,或交给其他模块处理,通讯子模块分层见图6。
图6 通讯子模块分层图
当机器交流电源出现故障时,此时会收到掉电消息,如果税控模块发现处于空闲状态,立即向监控模块发送退出消息;如果正在处理数据,在处理完一个完整的最小过程后发送退出消息,从而保证数据的完整性。
本系统充分利用EP7312芯片的硬件资源,通过软件实现了符合ISO7816和ISO14443标准的智能IC卡和射频卡接口,系统设计符合税控收款机国家标准GB/T 18240.1-2003。整个系统设计简洁,可靠性高[11],能与各种外设连接,具有很强的竞争优势。
1 夏建营.井喷在即的中国税控收款机市场[J].金卡工程,2005(2)
2 David Seal.ARM Architecture Reference Manual.Second Edition[M].Pearson Education Limited(Addsion-Wesley),2001
3 李 岩.基于S3C44BOX嵌入式 uClinux系统原理及应用[M].北京:清华大学出版社,2005.
4 王爱英.智能卡技术(第二版)[M].北京:清华大学出版社,2000.
5 王卓人.王锋.智能卡大全-智能卡的结构◦功能◦应用[M].北京:电子工业出版社,2002.
6 李维諟.液晶显示应用技术[M].北京:电子工业出版社,2000.
7 曹丙霞.Protel99SE原理图与PCB设计[M].北京:电子工业出版社,2007.
8 张国云.基于 USB接口的IC卡读写器设计[J].电子技术,2002(1)
9 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.
10 李 宏.使用A RM标准C库进行嵌入式应用程序开发[J].单片机与嵌入式系统,2005(11)
11 杨克俊.电磁兼容原理与设计技术[M].北京:人民邮电出版社,2004.