3多对一嵌入式税务控制器的功能及数据处理流程
3.1 一般嵌入式税务控制器的功能: 在大型超市或卖场,顾客在购买商品时,需到收银台交款,对于某个具体终端,顾客购买的商品被一笔笔地录入到计算机中并通过线路传给嵌入式税务控制器,嵌入式税务控制器在收到该顾客的全部所购商品数据后进行总金额计算、生成流水号、为该数据附加税控码、查询税控数据库获得相关税种税目、计算税后总金额并将数据传给收款机进行打印等。
3.2 多对一嵌入式税务控制器的数据处理流程:
对于多对一嵌入式税务控制器,由于它要同时处理多个终端的数据,因此,它必须轮循每个终端中每个顾客每笔商品的数据输入。同时,为使某个终端一旦已将顾客所购商品全部录入后,能尽快打印小票给顾客,我们在控制器中运行多线程程序以保证数据处理的时效性。控制器共运行4个线程:线程1:轮循接收每个终端(收款机)的数据,将每个收款机的每笔数据排队到相应队列;线程2:将已完成数据录入(收款)的队列号登记到有关表中; 线程3:将已完成数据录入(收款)的队列进行计算;将计算结果写入数据库; 线程4、将已完成数据累加(求和)的顾客数据由嵌入式设备附加税控码及其它税控数据后,返回对应终端进行打印。
4 多对一嵌入式税务控制器的实现方案
对于单处理器的多对一嵌入式税务控制器而言,无论是有线连接还是无线连接,都存在嵌入式设备的处理能力有限这一瓶径问题,当终端较多时,瓶径矛盾会更加突出,甚至有可能出现控制器因“不堪重负”而“罢工”的局面。为此,我们提出了 3个解决该问题的办法
4.1 通过增加单处理器嵌入式税务控制器的数量实现“多对一”: 该办法是通过减少终端与嵌入式税务控制器的连接数量来实现商场税控的“多对一”,比如商场有 20台 POS机,我们就用 4-5个嵌入式税务控制器而不是一个来连接这些终端。这样,在收款机(终端)数量一定的情况下,单个嵌入式税务控制器连接的终端数减少,从而降低了负载计算量。但这样做存在两个问题:一是没有从根本上解决商家所关心的最大限度降低采购成本问题;二是由于嵌入式税务控制器的增加,每月在为税务局进行嵌入式税务控制器上的数据汇总及常规维护等方面都增加了不少负担;
4.2 利用并行计算分担嵌入式税务控制器上的任务载荷来实现“多对一”:
该办法是通过将一部分单处理器嵌入式税务控制器上的数据处理转移到与之能进行并行计算的 PC机上,嵌入式税务控制器与终端的连接数量会明显增加,从而提高多对一的实际效益。其多对一数据处理架构如图三所示:
此时,在该嵌入式税务控制器上的处理流程变动如下: 线程1、2与前相同; 线程3、嵌入式税务控制器执行MPI_PROC_NULL(空进程),PC机作为 slave执行嵌入式税
务控制器的计算任务:对某个已完成数据输入的队列计算金额总和及将该结果写入数据库服务器中; 线程4、嵌入式税务控制器负责收集 PC机的计算结果信息,对 PC机的计算结果附加税控码,通知对应终端打印带有税控码的小票。 此办法的优点是架构设计简单,缺点是需对税控软件增加并行计算,编程及维护难度增加。