APP下载

烟草交售系统网络节点设计与实现

2012-11-30王智芳周孟特叶玉堂

计算机工程与设计 2012年4期
关键词:交售烟农终端设备

王智芳,周孟特,刘 宁,叶玉堂,罗 颖

(电子科技大学 光电信息学院,四川 成都610054)

0 引 言

烟草交售是烟草产业链的一个重要环节,开发先进的烟草交售系统,不但能够提高烟草交售的工作效率,而且可以减少烟农的搬运负担。现有的烟草交售系统将所有的终端设备直接挂载到控制中心,由于围绕控制中心的收购点比较多,终端设备数量巨大,给控制中心的通信带来了沉重的负担,使整个烟草交售系统的稳定性不能够得到有效保证。在现有的烟草交售系统的基础上,本文提出一种新的通信结构设计方案。应用嵌入式技术设计出一种基于ARM芯片和Win CE操作系统的网络节点设备,用于管理每个收购点处的所有终端设备。通过网络节点的管理,可以有效减少直接与控制中心相连的设备的数量,减轻了控制中心的通信负担。从终端设备处采集到的烟农烟草的数据信息,可以在网络节点处完成数据打包传送,这样可以大大提高数据传送的安全性,从而提高了烟草交售系统的稳定性。网络节点收集了收购点处所有终端设备采集到的数据信息,烟农可以方便的查看所交烟草的信息,所以网络节点可以作为烟农交售烟草的最后一步,可以提供刷卡确认和票据打印功能。嵌入式技术有其独特的优点,它的操作以及维护都非常的简单,这样可以降低使用难度,其可扩展性也很强,为后期的持续开发提供了条件。

1 网络节点的功能

完整的烟草交售系统主要包括控制中心、数据中心、排号系统、网络节点和终端设备等组成部分,终端设备主要是指交烟刷卡设备、定级终端设备和磅码终端设备。完整烟草交售的系统结构如图1所示。

从功能上描述,控制中心通过网络节点管理收购点处的终端设备,并且在网络节点处实现刷卡确认和票据打印的功能。

图1 烟草交售系统结构

2 网络节点的硬件系统设计

网络节点采用ARM920T架构的S3C2410作为主控芯片,S3C2410是采用0.18um制造工艺的32位微控制器,最高工作频率为203MHz。S3C2410采用272-FBGA封装,引脚间距为0.8mm,使用8/16mil的通孔,5mil的线宽/线间距,就可以完成整个主控芯片的PCB布局走线[1]。国内的印制电路板生产厂家都可以达到这样的技术标准,避免了采用埋孔、盲孔等特殊工艺技术,降低了成本。

网络节点的硬件结构如图2所示,其中NAND flash采用一块容量为64MB的K9F1208U0C芯片,现在市场流通的大部分NAND flash芯片都存在坏块的问题,所以在读写flash芯片时一定要作坏块检测,以便避开坏块,保持数据的完整性。内存采用了两块32MB的SDRAM芯片K4S561632C,共有64MB内存提供给系统使用。当操作系统启动时,由Bootloader将操作系统和应用程序载入内存,并在内存中引导运行操作系统[2]。外部存储扩展了SD卡模块,用于临时存储数据,也可以用作断电后的数据保护。

图2 网络节点的硬件结构

以太网拥有高速、稳定的数据传输能力,所以采用以太网完成网络节点与控制中心的数据交互。采用DM9000A芯片在S3C2410的AHB总线上外扩以太网模块。在完成以太网模块硬件设计时,需要特别关注的有两点:一是在PCB布线的时候,器件的摆放位置和走线要特别注意,DM9000A的输出信号是两对差分信号,滤波电路一定要靠近DM9000A芯片一侧,布线也要尽量避免异层布线,避免影响信号质量[3];二是DM9000A芯片对滤波电路的电容和电阻有严格的要求,电容、电阻一定要采用相应的规格。如果误差较大,会大大影响信号传输质量,影响传输质量,给后期的调试带来很多困难。

ZigBee技术是一种近距离、使用简单、低功耗、低速率、低成本的双向无线通信技术[4]。采用顺舟科技生产的SZ02系列无线通讯设备来实现,其有效传输距离为100m~2000m,其网络拓扑节点的最大支持数为65535;其数据接口支持TTL收发,可以直接与S3C2410的UART模块互连,支持串口波特率范围为1200~115200bps;它的信号调制方式采用的是直序扩频,在2.405GHz~2.480GHz范围内拥有16个无线信道,其中有4个信道可以避免与Wi-Fi(wireless fidelity)信道的冲突。在正常工作时可以将信道选择设置成自动模式,让设备自动建立最佳通信通道。网络节点和收购点终端设备都属于全功能通信设备,它们相互之间能够自由完成数据交互[5]。ZigBee模块占用S3C2410的串口1。在使用之前要进行配置,让ZigBee模块和主机的串口设置一致。

为了烟农能够查看和确认所交烟草的信息,需要在网络节点处将烟草的各项信息显示出来。基本上所有的液晶显示器都支持通用VGA接口,但是S3C2410没有集成VGA解码模块,这一功能需要在LCD显示模块基础上扩展。TI公司生产的VGA解码芯片TL5632被用于实现这一功能,这是一款低功耗、高速8位3通道D/A转换芯片,它可以实时、高速的将24BPP(bits per pixel)数字图像信号转换为通用VGA信号[6]。VGA信号主要包括RGB(红绿蓝)颜色信号、HSYNC (行同步信号)和VSYNC(场同步信号),其中RGB颜色信号是峰峰值为0.7V的模拟信号,行同步信号和场同步信号为TTL电平,在进行PCB设计时要注意区分,以消除相互之间的影响[7]。

刷卡确认模块采用高频RFID技术来实现,采用同欣智能生产的基于13.56MHz频率的 Mifare卡读写模块TX522B,它可以支持多种非接触式智能卡,并且拥有高可靠性、多种接口、小体积等优点。根据读卡器和卡片的质量、天线的大小和使用环境,通常在2~10cm内就可以完成卡片数据的读取。TX522B的工作电压为5V,与主机之间通过串口进行通信。通信协议分为两步,第一步波特率设置,第二步进行数据通信,可以通过串口调试助手来开发。TX522读卡模块占用S3C2410的串口0。主机通过串口发送命令,TX522可以设置为自动寻卡,只需要在初始化设备时,执行自动寻卡命令集下的任意一种命令即可[8]。

音频模块要在I2S总线上扩展,使用Philips生产的音频解码芯片UDA1341实现,音频模块用于操作提示,可以使整个交售流程更加规范。

打印机采用北京思普瑞特科技生产的微型热敏打印机,它的电源要求为5V/3A,使用串口实现信息传输与控制,占用S3C2410的串口2,打印机可以通过重启或者控制码进行初始化,厂家提供了专用的设置软件,可以修改打印机的各项参数。

3 WinCE操作系统定制

从系统文件的组成来看,WinCE操作系统主要由Bootloader和NK.bin两部分组成。

3.1 启动代码Bootloader

Bootloader是系统启动后的第一段执行代码。S3C2410芯片支持将Bootloader存储在NAND Flash中。为了实现这一功能,S3C2410芯片配备了一个名为 “Steppingstone”的内部SRAM。在启动时,NAND Flash中第一个4KB的内容将被加载到Steppingstone中并执行[9]。这个工作由MCU主动完成,只需将NAND Flash配置为Auto Boot模式即可。

完整的Bootloader肯定是大于4KB的,所以采用两段方式启动。第一个过程是Nboot(NandFlash Bootloader),第二个过程是Eboot(Ethernet Bootloader)。NBoot位于NandFlash的Block 0的前4KB空间,上电后会被自动加载到RAM中运行,Nboot在执行完之后,会判断是进入Eboot调试还是引导进入系统镜像。Eboot位于NandFlash的Block 2的开始处,可以有256KB,Eboot主要用于加载镜像和执行调试命令[10]。

3.2 WinCE系统定制

WinCE操作系统体系结构基本上可以分为四层,如图3所示。从下往上依次是硬件层、OEM层、操作系统层和应用层。硬件层主要指CPU等硬件设备;OEM层和操作系统层构成完整的操作系统;而应用层的内容用于完成具体的系统功能,满足客户需求[11]。

在完成WinCE操作系统定制时,主要的工作在于修改WinCE操作系统,使它能够管理所有的底层硬件设备。WinCE操作系统必须通过OEM层来实现对硬件设备的管理,具体来说与硬件功能直接相关的是OEM层的驱动模块,所以WinCE操作系统定制的主要工作是对OEM层驱动的修改,所以OEM层的驱动程序对于嵌入式操作系统非常重要,它主要是对实体硬件功能方面的描述,在需要的时候可以通过它来调用硬件设备[12]。正是因为OEM层才可以实现广泛的硬件支持。

图3 Windows CE操作系统体系结构[11]

注册表对于WinCE操作系统也是非常重要的,它包含了操作系统内部的配置、设置和使用参数。它对操作系统的启动过程、设备驱动程序以及应用程序的加载过程都非常重要[13-14]。

4 网络节点的软件系统设计

WinCE的应用程序开发环境使用VS2005IDE环境来开发托管代码和原生代码应用程序,具体是使用Visual C++来开发原生代码应用程序,用C#来开发托管代码应用程序,它与桌面Windows的应用程序开发环境非常类似[15]。网络节点的软件系统主要有两个工作状态,初始化状态和交售状态。

4.1 网络节点的初始化

网络节点终端的初始化主要发生在两种情况下:一是开机时;二是在更改设备配置后软件请求初始化。

网络节点初始化软件流程如图4所示。控制中心在接收到初始化请求后,将发送设备配置表到目标网络节点,然后网络节点对照设备配置表进行设备检测,完毕后提交设备状态表给控制中心。控制中心在接收到设备状态表后,判断设备是否异常,如果设备正常,进入 “等待交售”状态;如果设备异常,用户可对设备检查后在网络节点启动重新初始化或在控制中心再次发送初始化指令,最终进入“等待交售”状态。

4.2 网络节点的交售状态

在网络节点初始化完成后,就可以进入交售状态。正常的烟草交售流程如图5所示,包括排号、交烟刷卡、定级、磅码、确认刷卡、打印票据等5个步骤。其中交烟刷卡、定级、磅码、确认刷卡和打印票据都要通过网络节点完成。

图4 网络节点初始化流程

图5 烟草交售流程

4.2.1 交烟刷卡

当网络节点成功初始化后,网络节点和终端设备进入“等待交售”状态。烟农在交烟刷卡设备上刷卡开始交烟,读卡设备接收到卡片信息后向网络节点发送交烟申请,网络节点将判断交售点是否空闲。如果交售点繁忙,则返回“不允许交烟”;如果交售点空闲,则向控制中心提出交烟申请。控制中心将根据排号、合同等信息判断是否允许交烟,如果发现错误不允许交烟,则通过网络节点向交烟刷卡设备返回 “不允许交烟”信息;如果判断允许交烟,则在交烟队列中插入该烟农,然后激活定级键盘和磅码设备,可以开始定级和称重。网络节点在交烟刷卡过程中的软件工作流程如图6所示。

图6 网络节点在交烟刷卡过程中的软件流程

4.2.2 定级与磅码

定级人员在定级键盘处输入烟农的烟草等级,每一框输入一次等级,如果输入的等级信息没有错误,定级终端设备将申请向网络节点发送等级信息。线结点将等级信息加入到该烟农的烟草交售表,此交售表的等级信息是没有添加确认标志的。软件系统暂时只允许同时有一人在线交售,所以必须等待前一位烟农交售完毕后,才能够进行烟草交售。如果该烟农是队列首烟农,则对他的烟草交售表添加等级确认标志,之后网络节点锁定定级键盘,进入“正在磅码”状态。磅码员按定级时的烟框顺序,依次输入眼眶的重量。当确认发送磅码信息后,网络节点将接收到磅码终端发送的重量信息,该重量信息加入到队列首烟农的烟草交售表,然后启动确认刷卡设备。网络节点在定级、磅码过程中的软件工作流程如图7所示。

图7 网络节点在定级磅码过程中的软件流程

4.2.3 刷卡确认和打印票据

网络节点在启动确认刷卡之后,通过音频模块提示烟农刷卡确认。烟农在网络节点处查看所交烟草的等级、重量信息,如果无误,就可以在网络节点处刷卡确认。这时只有交烟队列首的烟农才能完成刷卡确认,避免了一些可能发生的错误操作。如果完成刷卡确认,则将该烟农的烟草交售表设为 “已确认”状态。网络节点将已确认的烟草交售信息发送到数据中心保存。数据中心将根据是否完成数据保存,将给网路节点发送返回值。如果保存成功,则将烟草交售表置成 “完成”状态,并保存到网络节点本地,然后通过打印机打印烟农交售表信息。打印之后,从交烟队列中删除该烟农,如果此时,交烟队列空,则初始化所有终端设备,进入 “等待交售”状态,如果不为空,则初始化定级、磅码终端,然后解锁定级、磅码终端,准备队列中下一个烟农提交烟草。网络节点在确认刷卡和打印票据过程中的软件流程如图8所示。

用户界面采用QT这种多平台的C++图形用户界面应用程序框架来完成。QT是完全面向对象的,易扩展,允许组件编程。它的一个显著特点是跨平台,用QT API开发出来的应用程序,可以在不同的操作系统和视窗系统上执行。

5 运行结果

正常交售状态的网络节点处的显示界面如图9所示。此时,队列首的烟农 “张广禄”已经完成烟草定级与磅码,正在等待刷卡确认。通过控制中心排号,此节点烟草交售队列中还有15人,此节点已完成交售4人。为避免混乱,同一时刻在网络节点处只能有一个烟农交售烟草。

考虑到网络节点设备的实际使用环境比较恶劣,很可能会发生高温工作环境,所以在完成机械结构的时候,加入了一些散热设计,实际测试效果相对良好。设备在40度高温下工作3小时,未见明显异常。

6 结束语

本文所设计的网络节点设备达到了设计目的,有效解决了烟草交售系统控制中心通信负担过重的问题,提高了系统的稳定性。网络节点提供的刷卡确认与票据打印功能更为烟农带来方便,避免了很多人为操作错误的产生,减轻了烟农的负担。为了追求烟草交售系统的稳定性与安全性,设计的网络节点设备的软件系统还存在一些问题。在同一时刻,在一个收购点处只能有一位烟农进行烟草交售,这无疑会大大影响烟草交售的速度,下一步的改进方案将着重于实现多人同时在线完成烟草交售。

图8 网络节点在确认刷卡和打印票据过程中的软件流程

图9 交售状态网络节点显示界面

[1]John Catsoulis.Designing embedded hardware [M].Beijing:China Electric Power Press,2007 (in Chinese).[John Catsoulis.嵌入式硬件设计 [M].北京:中国电力出版社,2007.]

[2]WANG Yagang.Analysis and transplant of embedded Bootloader mechanism [J].Computer Engineering,2010,36 (6):267-269(in Chinese).[王亚刚.嵌入式Bootloader机制的分析与移植 [J].计算机工程,2010,36 (6):267-269.]

[3]SU Yaofeng,WANG Degang,WEI Jibo.Principle and application of DM9000Ain baseband signal processing platform [J].International Electronic Elements,2007,12 (6):53-56 (in Chinese).[苏耀峰,王德刚,魏急波.DM9000A原理及其与基带信号处理平台的结合应用 [J].国外电子元器件,2007,12 (6):53-56.]

[4]GENG Meng,YU Hongyi,ZHANG Xiaoyi.Analysis and performance evaluation of ZigBee routing [J].Computer Engineering and Applications,2007,43 (26):116-120 (in Chinese).[耿萌,于宏毅,张效义.ZigBee路由协议分析与性能评估 [J].计算机工程与应用,2007,43 (26):116-120.]

[5]LI Yudong,HUANG Hongguang,XIANG Xixi.Improved ZigBee routing algorithm based on energy balance [J].Computer Engineering and Design,2011,32 (2):397-400 (in Chinese).[李予东,黄宏光,向西西.基于能量均衡的ZigBee路由算法优化 [J].计算机工程与设计,2011,32 (2):397-400.]

[6]XIE Xiaoli,JIANG Tao,LIU Liang,et al.Design and research of VGA Interface based on ARM embedded system [J].Chinese Journal of Liquid Crystals and Displays,2007,27(6):761-764 (in Chinese).[谢昭莉,蒋涛,刘亮,等.基于ARM嵌入式系统的VGA接口的研究与设计 [J].液晶与显示,2007,27 (6):761-764.]

[7]LIU Zhengyao.Efficient multi-channel switching VGA signal distribution module design [J].Computer Engineering and Design,2010,31 (21):4583-4586 (in Chinese).[刘正尧.基于高效切换的多路VGA信号分配模块设计 [J].计算机工程与设计,2010,31 (21):4583-4586.]

[8]LI Zhenxiang,LI Guo,LI Dexing.Design and implementation of intelligent security management system of RFID based on ARM [J].Computer Engineering and Design,2010,31(12):2744-2748 (in Chinese). [李珍香,李国,李德兴.基于ARM的RFID智能安全管理系统设计与实现 [J].计算机工程与设计,2010,31 (12):2744-2748.]

[9]LIU Yuhua,ZHANG Zhe,ZHANG Meng.Design and optimization of Bootloader based on “steppingstone”[J].Modern Electronics Technique,2008,31 (16):98-102 (in Chinese).[刘裕华,张哲,张萌.基于 “steppingstone”的Bootloader的设计与优化 [J].现代电子技术,2008,31 (16):98-102.]

[10]ZHANG Zhi,JIANG Zhinong.Implementation of boot logo in Bootloader based on Windows CE and S3C2410 [J].Electronic Measurement Technology,2010,33 (2):87-90 (in Chinese).[张智,江志农.基于S3C2410和Windows CE的Bootloader启动图片的实现 [J].电子测量技术,2010,33 (2):87-90.]

[11]ZHOU Yulin.Windows CE.net kernel customization and application development [M].Beijing:Publishing House of Electronic Industry,2005 (in Chinese). [周毓林.Windows CE.net内核定制及应用开发 [M].北京:电子工业出版社,2005.]

[12]WANG Liming,CHEN Shuangqiao,YAN Xiaoling.Development and practice of ARM9embedded system [M].Beijing:Beihang University Press,2008(in Chinese). [王黎明,陈双桥,闫晓玲,等.ARM9嵌入式系统开发与实践 [M].北京:北京航空航天大学出版社,2008.]

[13]Samuel Phung.Professional Windows embedded CE 6.0 [M].ZHANG Dongsong,CHENG Fangyuan,transl.Beijing:Tsinghua University Press,2009 (in Chinese). [Samuel Phung.Windows CE 6.0嵌入式高级编程 [M].张冬松,陈芳园,译.北京:清华大学出版社,2009.]

[14]LUO Jianfei,WU Zhongcheng,SHEN Chunshan,et al.Design and implementation of device interface driver based on ARM and WinCE [J].Automation and Instrumentation,2009,27 (3):1-3 (in Chinese). [罗健飞,吴仲城,沈春山,等.基于ARM和WinCE下的设备接口驱动设计与实现[J].自动化与仪表,2009,27 (3):1-3.]

[15]Christian Nagel,Bill Evjen,Jay Glynn.Professional C#2008[M].LI Ming,transl.6th ed.Beijing:Tsinghua University Press,2008 (in Chinese). [Christian Nagel,Bill Evjen,Jay Glynn.C#高级编程 [M].李铭,译.6版.北京:清华大学出版社,2008.]

猜你喜欢

交售烟农终端设备
影响巫溪县烟农队伍稳定的因素分析
视频监视系统新型终端设备接入方案
130团加工厂保质保量收购籽棉
预计全国棉花总产量为550.42万吨同比增长11.5%
配电自动化终端设备在电力配网自动化的应用
车站信号系统终端设备整合及解决方案
新疆新棉采摘交售基本结束
基于手持终端设备中软件通信架构的应用
福建烟农种植规模效率实证研究
关于烟农合作社发展的几点思考