综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章电测仪表正文
 
基于S3C44B0X微处理器税控收款机系统的设计
发布日期:2006-06-15 作者:贺安坤 陈明 郝红旗 来源:微计算机信息

摘要:嵌入式系统的应用领域越来越广泛。文章以S3C44B0X微处理器及Nucleus PLUS操作系统为核心,介绍了税控收款机系统的组成及软硬件设计。
关键词:嵌入式系统;S3C44B0X微处理器;税控收款机

1引言

税控收款机是指具有特定税控功能的电子收款机。所谓特定税控功能是指能够保证数据的正确生成、可靠存储、安全传输,并可实现税务管理和稽查等功能。税控收款机系统设计一般采用目前流行的嵌入式系统结构。硬件设计考虑高性价比和高可靠性,软件设计上,考虑系统的稳定性、实时性和可靠性。根据这一原则税控收款机系统开发可选取ARM体系结构的主芯片S3C44B0X微处理器及高性能微内核的实时操作系统(Nucleus PLUS)。Samsung S3C44B0X微处理器是三星公司为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,其CPU核采用的ARM公司16/32位ARM7TDMI RISC结构,S3C44B0X通过在ARM7TDMI内容基础上扩展一系列的通用外围器件,使系统费用降至最低,消除了增加附加配置的需要。 Nucleus PLUS 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSI C写成的,因此非常便于移植并能够支持大多数类型的处理器。以下就税控收款机系统软硬件开发的关键技术加以论述。

2硬件设计

2.1硬件组成

    税控收款机硬件除S3C44B0X微处理器外,还主要包括主存储器、RAM存储器、打印机、显示屏、键盘、及其它的通信设备等。主存储器主要是指Flash存储器,又分为NandFlash和NorFlash,如采用512K的NorFlash 39vf040(SST公司),32M的NandFlash k9f56080b(Samsung公司)。RAM存储器主要是利用它的读取速度快等特点来运行程序,即我们俗称的内存,几乎所有的嵌入式系统包括PC机都遵循这一特点,即把程序加载到SDRAM中运行。如采用8M字节的SDRAM HY57V641620HG。图1为税控收款机硬件系统框图。

图1 系统硬件组成框图

2.2 底层驱动的设计

底层驱动包含三部分内容:BOOT向量表部分,S3C44B0X监控程序部分及税控机在Nucleus下的BSP。

BOOT向量表

因系统选用的是Nucleus操作系统,对S3C44B0X的中断是向量模式。所以在boot.s(汇编语言编写)文件中主要是设置向量表的跳转地址。表1为ARM7TDMI的异常向量表。

 

地 址

异 常

进入模式

0x0000,0000

复位

管理模式

0x0000,0004

未定义指令

未定义模式

0x0000,0008

软件中断

管理模式

0x0000,000C

中止(预取指令)

中止模式

0x0000,0010

中止(数据)

中止模式

0x0000,0014

保留

保留

0x0000,0018

IRQ

IRQ

0x0000,001C

FIQ

FIQ

表1 ARM7TDMI的异常向量表

S3C44BOX把复位信号也作为中断来处理,系统复位时程序(pc)指针被置成0,使程序跳到0x00000000开始运行。在boot.s文件的开始(0地址)使用了一条跳转指令:

B 0x1000

其作用是在系统上电复位或者手动复位后系统程序指针跳到0地址执行时,系统将程序跳转到0x1000即4K地址的地方继续执行(4K地址烧入监控程序)。

44B0X的监控程序

负责初始化系统以及拷贝应用程序到内存并且运行。该部分关键的两个文件是mon.s和Main.c,mon.s(汇编语言编写)文件用来初始化中断、存储器、堆栈等,进行系统初始化,建立C程序运行环境。由于在BOOT向量表中直接跳转到了监控程序的起始处执行程序,之前并没有对44B0进行硬件上的寄存器等进行初始化,所以在这个程序中的开始是先屏蔽中断,然后配置时钟控制寄存器,再配置存储器控制寄存器,设定中断向量,设定各个模式下的堆栈,建立好C语言的运行环境,负责把自身代码从ROM中拷贝到内存中并且拷贝初始化

数据区以及初始化0数据段,最后跳到Main函数执行C语言的函数体。Main.c是监控程序的主程序入口文件,主要是进行端口的初始化,设定系统主时钟,初始化串口并且设定波特率等工作方式,并将应用程序从NandFlash上读取到内存中并运行。下面是监控程序中存储控制寄存器配置的源代码。

adr   r0, ResetHandler

         ldr     r1, =ResetHandler

         sub    r0, r1, r0             

         ldr     r1, =SMRDATA

         sub    r0, r1, r0

         ldmia   r0, {r1-r13}

         ldr     r0, =0x01c80000                    ;BWSCON Address

         stmia   r0, {r1-r13}  

SMRDATA:

         .word         0x01000000                  @ BWSCON: 总线宽度与等待状态控制寄存器

@ bank6: SDRAM 16bit; bank0: ROM 8bit; bank1:

                                                        @ peripheral at Bank 3-5 : 8bit, nBE

                                                        @ Not using UB/LB

                                                        @ WAIT disable

         .word         0x00002b50                  @ Bankcon0 boot rom 39vf040 512k NorFlash

@:Tacs=1; Tcos=1; Tacc=4; Toch=1; Tcah=1

         .word         0x00001f00                  @ Bankcon1网口控制芯片 16bit: Tacs=0; Tcos=4; Tacc=14; Toch=0; Tcah=0

         .word         0x00001f00                  @ Bankcon2权限锁 N/A

         .word         0x00001f00                  @ Bankcon3 NandFlash   : Tacs=0; Tcos=4; Tacc=14; Toch=0; Tcah=0

         .word         0x00001f00                  @ Bankcon4键盘数据口    : Tacs=0; Tcos=4; Tacc=14; Toch=0; Tcah=0

         .word         0x00001f00                  @ Bankcon5 8bit 外接数据口      : Tacs=0; Tcos=4; Tacc=14; Toch=0; Tcah=0

         .word         0x00018008                  @ Bankcon6 SDRAM;   Trcd=2clocks; column addr 8-bit

         .word         0x00001f00                  @ Bankcon7液晶以及16C554(扩展串口)

@: Tacs=0; Tcos=4; Tacc=14; Toch=0; Tcah=0

         .word         0x008005fe                   @ REFRESH 15.6us

         .word         0x00000000                  @ Bank 6/7 size: 32M/32/8M

         .word         0x00000020                  @ MRSRB6  CAS latency = 2clocks

         .word         0x00000020                  @ MRSRB7  CAS latency = 2clocks

@Tacs      在nGCSn 有效之前地址建立时间

@Tcos      在nOE上芯片选择建立时间

@Tacc      存取周期

@Toch      在nOE上芯片选择保持时间

@Tcah      在nGCSn有效地址保持时间

@Trcd      RAS 到 CAS 延时y

Nucleus下的BSP驱动

   BSP驱动部分可以分为两大部分:一是直接操作外设的驱动,包括串口打印机驱动,flash驱动,led驱动,vfd驱动等几部分,这些驱动跟44B0X内部寄存器没有直接关系;另外一大类驱动则是直接配置44B0内部寄存器的驱动,包括设置gpio,配置中断寄存器,rtc时钟读写,timer的设置,uart的配置等等。另外键盘的扫描也是直接操作44B0X内部寄存器实现的。所有这些驱动均用c语言编写。

3软件设计

  应用软件的设计体现在税控收款机两大主要功能的实现上,即商业功能和税控功能。商业功能包括模式管理、权限管理、PLU管理、项目管理、收款管理、各种报表管理功能,这里不作详细介绍;税控功能主要有如下几个方面:

初始化操作

初始化需要税控卡与用户卡,完成购票与录票操作,否则税控机不能进行开票。

开票(包括废票、退票)操作

在购票和录入发票之后,税控收款机就可以进行开票操作了。税控卡负责对开票数据进行合法性检查,并根据税种税目索引号对开票金额进行分类累计,更新日交易记录,最后生成发票税控码。税控收款机保存发票明细,更新日累计,打印发票。

报税、完税操作

    在税务机关规定的期限内,纳税人可以进行报税,完税操作。若超过规定的期限还没有进行报税,完税操作,税控收款机将不能继续开具发票。只有进行报税,完税操作更新税控收款机内的监控信息后,税控收款机才能继续开具发票。

税务核查操作

当税务机关要想检查税控收款机内的交易情况时,可以通过税务管理系统发行管理卡来核查税控收款机上的发票明细,日交易数据,申报数据是否和申报带给税务管理系统的数据一致。

4结束语

考虑到软件的安全性,用户权限分级管理,税控收款机用户级别可分为三级,分别为:超级管理员、管理员、收款员。进入相应的用户模式都得要有相对应的密码校验,才能够登录税控收款机,执行本用户级的相应操作。税控收款机具有掉电保护功能,当掉电发生时,后备电源同时开始工作,系统也检测到掉电中断的发生,中断服务保存数据的任务变为最高优先级任务,它在瞬间抢占其他低优先级任务的时间片执行。执行完该保存数据的任务后,自动关闭后备电源。

参考文献

ARM体系结构与编程 杜春雷编著 清华大学出版社

嵌入式系统设计与实例开发 王田苗 著 清华大学出版社

S3C44B0X微处理机外围与嵌入式系统实验北京恒锐科技有限公司(2005)


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
基于嵌入式S3C44B0X家用抄表智能系统的设计 (10-20)
血流检测仪的动态电源管理模块设计 (11-11)
μC/OS-Ⅱ在S3C44B0X上的移植 (09-07)
S3C44B0X微处理器在汽车防抱死控制系统中的应用 (06-23)
ARM CPU S3C44B0X与C54X DSP的接口设计 (01-03)
基于S3C44B0X的PDA核心设计 (04-18)
基于ARM的嵌入式MPEG-4远程网络监控系统的设计与实现 (02-28)
嵌入式图形用户界面在S3C44B0X上的移植 (07-03)
基于S3C44B0X的Microwindows在远程红外抄表器中的应用 (12-20)
基于S3C44B0X的心电血压监测仪USB接口设计 (12-26)
基于S3C44B0X的大型LED显示系统设计 (09-12)
基于S3C44B0X的I2C总线设计 (08-08)
Microwindows在基于S3C44B0X的嵌入式系统中的移植 (07-19)
基于S3C44B0X的嵌入式Socket通信设计 (01-17)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号