3 系统软件设计
3.1 系统软件架构
税控系统软件主要由硬件驱动程序、操作系统平台相关软件和应用软件3部分组成。硬件驱动程序包括CPU初始化、Flash驱动、LCD驱动、USB驱动、以太网驱动、串口驱动等。操作系统平台相关软件包括系统引导程序(BootLoader)、操作系统内核、操作系统组件、API、交叉编译器等。硬件驱动程序为μCLinux访问底层硬件提供统一的接口。系统引导程序是针对开发板自带的BootLoader而设计的,根据税控机的实际需求进行修改而得到的。引导程序负责上电启动,硬件检测及进入μCLinux操作系统。μCLinux操作系统实现文件系统管理、任务调动、网络功能、设备驱动,并提供用户程序的运行环境等功能。最上层为应用软件。该税控系统的嵌入式Linux软件平台架构如图4所示。
3.2 应用软件设计
3.2.1 软件总体架构
超市版税控收款机应用软件有3大功能:系统管理设置功能、商业功能和税控功能。主控模块控制机器信息,包括系统设置、员丁管理、基本信息查询以及附加功能。该模块与商业管理模块和税控管理模块联系比较密切。而商业管理和税控管理两个模块相对独立,主要通过机器初始化和开票操作相关联。这3个模块的数据都存储在嵌入式数据库中。在模块化设计的同时,每个模块还采用分层设计,有分界面、数据库和基本流程3层,分别调用不同的API接口,结构清晰,为后续代码的跨平台移植奠定了基础。系统功能模块的划分如图5所示。
应用软件是超市版税控收款机的核心。由于ARM7处理器没有MMU(内存管理单元),所以在设计应用程序时一定要考虑到内存的使用情况,否则就会出错,导致程序崩溃。税控收款机的应用软件采用结构化、模块化设计。在模块划分的同时,每个模块又分层次设计,从上到下依次为界面层,数据库应用层以及流程层。
3.2.2 系统管理模块
系统管理包括员工管理、系统设置和基本信息查询。其中,员工管理主要有权限管理和单个管理两种。当机器初始化后,数据库有一个默认的管理员,操作人在注册员工之前只能以该管理员的身份登陆,然后注册新员工来进行操作;系统设置主要是设定系统的功能,实现对系统设置表的操作;基本信息查询是对数据库的操作,用户可以在这个子模块内查询机器的信息。
3.2.3 商业管理模块
商业管理包括销售和报表两个模块。其中,销售模块是超市版收款机运用最频繁的一部分,包括收款员交接班,钱箱管理,多种单品录入方式等功能。而报表子模块主要是总结一个阶段内销售及发票信息,以便用户了解一段时间内的销售量,单个项目的销售量以及员工业绩等。查看报表后,用户可以打印各种报表信息。
3.2.4 税务管理模块
税务管理模块包括发票管理和税务管理两个模块。其中,发票管理模块主要管理对税控机的发票。按常规来说,退票和废票是销售的另外两种方式,之所以将发票管理模块放在税务管理模块中,主要是因为这两个模块使用较少,没有必要和销售放在一起,每次都需选择。只有税务管理模块是税控收款机最主要的功能,因此要求安全可靠,考虑到所有异常情况的发生,才能有利于税控机的推广。税务管理包括税务初始化、开票、申报、完税、稽查等功能。
4 应用实例
经过精心设计和反复调试,目前样机已完成且通过测试和鉴定,能可靠的实现各项功能。具体功能实现为:分权限管理,支持6个管理员、99个收款员;可打印13种商业报表:支持两万个PLU,条码长度支持1~20位;最多可将商品分成50个部类进行管理;可快捷注册20个PLU;最多可保留20条销售暂挂信息;拥有输入快捷键、商品编码、商品条形码、商品拼音4种商品录入查找方式;支持现金、优惠券、信用卡、支票以及两种外币等6种付款方式,并可进行退票,废票操作;最多可同时使用6个项目,每个项目可对应不同税率;具有单张发票限额、累计发票限额、退票限额功能;可支持打印76 mm、57 mm两种发票;可存储100笔钱箱报告和记录50 000条发票明细;可保持10年日交易数据(国标要求不少于5年);能够可靠地完成报税、完税及税务部门的稽查功能。
5 结束语
在国家税控机有关标准的基础上,仔细研究目前税控收款机的不足与缺陷,根据市场需求,设计超市版税控收款机的软硬件。但由于硬件限制,单品注册数量和查找速度仍不够理想,此款税控机适用于中小型超市,在此基础上经过升级可开发网络版收款机,将其使用于大型超市。