基于STM32的税控器方案

发布者:Delightful789最新更新时间:2013-02-04 来源: 21ic关键字:STM32  税控器  国家税控标准 手机看文章 扫描二维码
随时随地手机看文章

随着金税工程的推广,税控市场将得到迅猛发展,税控器作为四大税控产品之一,其市场份额不容小觑,税控厂家需要为产品的性能、成本做多方面考量。之前各个厂家的税控器方案,可能因为成本的考虑选择了8位单片机,也有因为性能扩展的需要选择16位、32位MCU作为税控器主控芯片。今天,ST(意法半导体公司)延续了其之前基于STR7的税控器体系架构,并借鉴在STR9银税一体机方案中的经验,推出了一款采用STM32这一高性能、低成本芯片的税控器方案。

方案介绍
 图1常见的税控器方案图2STM32税控器方案

与以往方案(图1)对比,STM32方案(图2)结构简单,模块功能化,减少了外部数据总线的数量,有效减小制板面积,很好地保证了系统的可靠性及安全性。ST还提供详细的设计报告,无论是软件还是硬件的开发都大大缩短了厂家的开发时间。在正式生产时,ST可以提供方案中大部分芯片,避免了采购时可能出现供应商多、采购渠道混乱的情况,保障其产品快速推向市场。

图3STM32F103模块框图
开发工具

开发工具推荐两家: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虚拟的串口号即可,并且可以与另一标准串口“同时”连接,不会造成通讯异常。

日历时钟
 

表1性能比较[page]

图4M41T83结构图

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。

数据存储
 

图5FLASH写操作流程图

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税控收款机国家标准》

关键字:STM32  税控器  国家税控标准 引用地址:基于STM32的税控器方案

上一篇:STM32的便携式手机蓝牙考勤机系统设计
下一篇:基于H桥控制的移动机器人系统方案

推荐阅读最新更新时间:2024-03-16 13:17

stm32 exti 5~9 中断源区分
void EXTI9_5_IRQHandler(void) { u32 Temp = 0x00; PEout(2) = ~PEout(2); Temp = EXTI- PR; //取读是那个引脚的中断 switch(Temp) { case Exti_From_Pin8: EXTI_ClearITPendingBit(EXTI_Line8); break; case Exti_From_Pin9: if(Sys_Status MAX_STATUS) { Sys_Status ++; } EXTI_ClearITPendingBit(EXTI_Line9)
[单片机]
<font color='red'>stm32</font> exti 5~9 中断源区分
STM32外部中断控制LED
单片机源程序如下: #include stm32f10x.h #include button.h #include led.h #include delay.h #include exti_config.h #define key GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0) int main() { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0) ; button_init(); led_init(); exti_config(); nvic_config(); while(1) {
[单片机]
意法半导体为 STM32 开发人员提供免费的专业音频软件
为协助产品研发人员在便携和家庭音频产品中开发STM32微控制器的全部潜能,意法半导体(纽约证券交易所代码:STM)与知名音频软件供应商Spirit DSP携手,为客户提供免费的专业音频软件,其功能和性能较普遍的开放原始码音频解决方案更高。 STM32 Spirit音频引擎拥有许多优势,包括高品质编解码功能、丰富的音频系统功能、低内存使用量、长效电池使用寿命以及完整的技术支持。这些优势不但使专业开发的随插即用解决方案从众多的开放原始码软件中脱颖而出。同时,STM32 Spirit音频引擎与所有开放原始码软件相同,完全免费无需额外成本。 此外,针对意法半导体先进STM32微控制器架构全面优化的STM32 S
[单片机]
意法半导体为 <font color='red'>STM32</font> 开发人员提供免费的专业音频软件
STM32实战八 DAC/ADC
这一章编写DAC和ADC程序,即数模/模数转换。程序中封装了两个DAC,各1个独立通道,对应输出脚为PA4和PA5,提供两个方法,ADDA::daDMA(Timer & tim)成员方法以DMA方式按预定数据生成两个正弦波,通道1(PA4)是半幅波形,通道2(PA5)是全幅波形。 ADDA::da()成员方法把指定内存的数据转换成模拟信号,未使用DMA,因为已经是一一对应。 模数转换使用ADC1转换器,共有10个通道,采用硬件存储DMA,不占用CPU时间,包括8个端口通道,对应输入为PA0-7,其中PA4和PA5与DAC共用,可以从内部检测DA/AD的正确性。还有两个内部通道,CPU温度和基准电压。 值得一提的是,参考代码
[单片机]
<font color='red'>STM32</font>实战八 DAC/ADC
STM32单片机开发中的RTOS
很多STM32单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品。但是,作为一个嵌入式软件工程师,况且用的并不是51那种低端单片机,如果只会用裸机开发产品,那肯定是不够的。 要从裸机的思维转变到RTOS(Real Time Operating System)的思维,其实需要一个过程,而且开始的一段时间会很痛苦。但过一段时间理解了一些内容,能写一些Demo之后,你会发现其实RTOS也不难。 现在FreeRTOS在CubeMX工具中可以直接配置并使用,相当方便。 为什么需要RTOS 为什么我们需要RTOS?就像最开始学C编程时,老师告诉我们,指针很重要,那时你肯定有一个大的疑问,指针到底有什么好? 心里一直犯嘀咕着:不用指针
[单片机]
STM32-一文读懂EXTI外部中断/事件系统
STM32的外部中断/事件系统简介 注意这里的外部中断指的是EXTI,是芯片的外部中断,主要是由芯片外部事件触发的中断,不是内核的外部中断!在《STM32-异常与中断》中提到的外部中断均是相对于内核而言的,比如串口中断、定时器中断等等都是(内核的)外部中断。 大部分的STM32外部中断/事件控制器由19个产生事件/中断请求的边沿检测器组成,支持 19 个外部中断/事件请求,这19 个外部分别中断为: (互联型 )产品有20个) 线 0~15:对应外部 IO 口的输入中断。 线 16:连接到 PVD 输出。 线 17:连接到 RTC 闹钟事件。 线 18:连接到 USB 唤醒事件。 每个中断设有状态位,每个中断/事件都有独
[单片机]
STM32-一文读懂EXTI外部中断/事件系统
STM32——如何配置外部中断
中断服务函数列表 IO口外部中断在中断向量表中只分配了7个中断向量,也就是只能使用7个中断服务函数 EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler EXTI9_5_IRQHandler EXTI15_10_IRQHandler 外部中断一般步骤 1、开启IO口时钟,初始化IO口为输入。调用函数:GPIO_Init(); 2、开启IO口复用时钟。调用函数:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,EN
[单片机]
<font color='red'>STM32</font>——如何配置外部中断
怎么使用C语言控制硬件
C语言的应用编程在单片机的领域占了很大一部分,使用的比较多的51单片机和STM32单片机都可以使用MDK软件编写固件。 单片机烧写了固件后可以点亮LED灯,可以驱动ADC检测电压,也可以驱动蜂鸣器发声,这就是简单地控制硬件。稍微复杂一点的,可以驱动NRF2401进行无线的连接,也可以使用ESP8266这类wifi芯片连接网络。 接下来,简单地讲讲如何使用C语言控制硬件。 1、电路连接 简单的模块可以直接使用高低电平来控制,比如红外线发射模块,当你在驱动引脚上的电压达到3.3v,就能发出红外线;然后将电平设置为0v,红外线发射就停止了。 一般而言,单片机的引脚输出电压能够达到3.3v,也是可以点亮红外线LED,但是可能会导致
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved