张熙玲,施伟斌
(上海理工大学 光电信息与计算机工程学院,上海 200090)
随着计算机、信息及通信技术的发展,信息的处理能力、储存能力、传输通信能力日益增强。全面、有效的信息采集和输入成为信息系统的关键。
条码读取系统可应用与库存控制及商品追溯等场合[1-2]。条码符号制作容易,扫描操作简单易行,信息采集速度快采集信息量大,设备结构简单,成本低[3]。在大型超市、物流系统和身份识别中应用广泛。传统的在线采集终端与计算机之间由电缆连接传输数据,不能脱机使用[4],现场操作不方便,将条码识别技术与无线通信技术相结合,可以实现对物品信息快速、准确、实时录入,并且能够在一定程度上降低设备成本,加快仓库管理信息化。
本文设计的条码扫描系统是基于无线传感网络的,其主要采用CC2430 芯片为无线发射芯片。通信协议为基于无线传感网操作系统TinyOS 的汇聚树协议。TinyOS 系统以其能耗低、可靠性高、成本低、组网快、网络容量大的特点成为该智能条码采集系统的首选。
本文设计的基于WSN(Wireless Sensor Network)的智能条形码识别系统由硬件和软件两部分组成,其中硬件负责数据的采集和发送,主要包括无线条码扫描终端、中继节点、网关接点、PC 机部分。软件负责数据收发的协议、算法和操作界面设计。系统总体结构如图1 所示。
图1 系统总体结构图
1.1.1 扫描器终端设计
扫描器终端主要扫描模块、电源模块、无线射频收发模块组成。其中扫描模块又包括光源、光学扫描系统、光接收系统、光电转换、信号放大及整形部分、译码部分等。光源发出的光通过光学扫描系统照射到黑白相间的条形码上被散射,由光接收系统接收足够多的散射光,接收到的光信号需要经过光电转换器转换成电信号,电信号经过整形滤波,所得电信号经过量化,由译码单元译出其中所含有的条码信息。所含条码信息通过串口与基于CC2430 芯片设计的无线射频收发模块相连[5]。
图2 扫描器内部结构图
1.1.2 无线射频节点硬件设计
传感器节点是无线传感器网络的基本单元,它负责传感和信息预处理,响应监控主机的指令,发送数据等[6]。本系统中的节点主要有三种,分别是集中在扫描器中的无线发射节点,作为路由的中继节点还有具有信息汇聚作用的网关节点。
扫描器中的无线发射节点主要由CC2430 芯片及其外围电路组成,节点与扫描模块通过串口进行通信,负责对条码信息的无线传输。芯片的外围电路包括电源、晶振、阻抗匹配网络、天线等,其中天线与CC2430之间采用巴伦电路,来完成双端口到单端口的转换[7]。
中继节点也是主要由CC2430 芯片及其外围电路组成。除了和无线发射节点一样的外围电路,还增加调试接口与复位按钮,以方便程序更新和软件调试。
网关节点该节点除了CC2430 芯片及其外围设备外,新增了串口和USB 接口,方便了与现有PC 终端设备的匹配,另外也有负责调试程序的接口。电源由USB 接口连接PC 设备来提供,节点主要负责接收无线发射节点或中继节点发出的条码信息,并将其传给上位机。各节点的硬件框图结构如图3 所示。
系统的下位机程序是由nesC 编程语言编写的。上位机软件是由C#编程语言编写,其通信过程是条码扫描模块采集条码信息,然后将条码信息发送至射频模块,射频模块将信息汇总根据链路状态,通过中继节点转发至网关节点或直接发送至网关节点。应用基于CTP 协议的多跳自组网络,动态链路更加灵活、拓扑结构更加稳定。基于TinyOS 操作系统的2.4 GHz 的无线通信方式具有低功耗,传输范围广、自组网的特点。多个扫描器同时工作,网关节点将数据通过USB 接口传给PC 机,数据经过处理在上位机界面上显示商品所需详细信息。工作软件有出库、入库、查询、智能提醒等功能,更具有人性化和智能化,可广泛应用于大型超市物流的收货、入库、出库、查寻商品详细信息、智能提醒、销售状况等,还可以应用于仓储物流、食品安全、医疗卫生、服装、建材、资产管理等方面。
图3 节点硬件结构示意图
1.2.1 下位机程序设计
nesC 语言是对C 语言的扩展,是无线传感器网络操作系统TinyOS 的实现语言,它体现了TinyOS 的结构化概念和执行模型。TinyOS 是美国加州大学伯克利分校特别为无线传感器网络节点设计的一款事件驱动型的开源操作系统,并采用nesC 语言重新编写,以适应传感器节点资源有限的特点。
nesC 语言把组件化、模块化的思想和基于事件驱动的执行模型结合了起来,并通过组织、命名和连接组件形成一个嵌入式网络系统,能较好地支持TinyOS 的并发运行模式[8]。
1.2.2 CTP 通信协议的原理
系统节点之间的通信协议为CTP 协议。CTP(Collection Tree Protocol,汇聚树协议)是TinyOS 中一种基于无线传感器网络应用的数据汇聚协议。
CTP 是一种基于树状结构的汇聚协议,通过将网络中的一些节点设为根节点,其他节点根据路由梯度形成到根节点的路由,从而形成到根节点的汇聚树网络。而在本系统中,网关节点相当于汇聚根节点,经条码扫描模块处理后的条码信息经过无线发射节点直接或通过中继节点转发至网关节点。CTP 提供了到根节点尽可能多跳的数据传输,具有保证传输可靠性的路由选择机制。此外,CTP 检查包重复,抑制重复传输和路由循环。
通过使用CTP 的多跳网络协议,使得条码扫描器的通信距离,大幅增加,从而使得使用范围得到扩展。
1.2.3 CTP 汇聚算法
CTP 协议使用期望传输值(Expected Transmissions,ETX)作为路由梯度。根节点的ETX 值为0,其它节点的ETX 值等于其父节点的链路ETX 值加上其到父节点的链路ETX 值。这种加法机制需要假设节点使用了链路层重传。如果要对有效的路由进行选择,CTP 协议应当选择ETX 值最小的路由[8]。
在程序初始化阶段,网络中每个节点广播自己到汇聚节点的路径的ETX 值。每个节点收到广播包之后,依据邻居节点广播的路径ETX 值,动态选择父节点,使得自己到汇聚节点的路径ETX 尽量小。通过不断广播路由帧来更新节点的路由信息,从而使得网络中的每个节点都能够选择到一条道汇聚节点ETX 之和最小的路径,即最佳路由。
1.2.4 上位机程序设计
C#是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。
本文所介绍的智能条码扫描系统主要用于大型仓库、超市、物流等方面。其上位机界面中包括商品的出库、入库、查询商品详细信息、智能提醒等功能,其软件界面如图4 所示。
软件的出库功能主要用于商品运出仓库是的清点,选择出库功能,扫描条码信息,会自动进行计数并存储在数据库当中。入库功能中商品分两种情况:一种是在数据库中的商品;另一种是不在从数据库中的商品。在数据库中的商品录入直接进行计算并保存在数据库中,对于不在数据库中的新商品入库时软件会提示“这是新物品,请补充商品信息后再入库”。查询功能主要用于了解商品的详细信息或商品的溯源。点击查询功能,扫描条码则会自动弹出窗口显示商品的条码、名称、产地、库存、供应商等详细的产品信息。另外软件还具有自动识别商品的库存位置,方便管理货物。软件根据对商品的销量分析,得出商品的进货阈值,通过设置阈值,可以及时提醒商家进货,促进货物的高效流通。
图4 上位机界面
系统测试选择多个实验场景进行测试,主要分为室内和室外两种场景。室内选择楼宇内100 m 长廊,室外选择室外学校望江台走道。在上位机上面选择入库功能,分别测试在室内和室外点对点的数据收发情况,以及室外点对点和多跳协议的数据收发情况。具体实验场景如图5 所示。
图5 试验场景
数据的采集分室内室外,通信方式为点对点和多跳两类。其中室内的采集地点在100 m 楼宇走廊,通信方式为点对点。点对点通信方式的的采集距离分为50 m、75 m、100 m。多跳的通信方式距离选择为50 m、75 m、100 m、150 m、200 m、250 m、300 m,每15 m 分布一个转发节点。在每个距离点上每次连续扫描100次,累计进行5 次重复性实验,计算丢包率。具体数据如下表所示。
表1 室内走廊点对点实验数据
表2 室外走道点对点实验数据
表3 室外走道多跳协议实验数据
由表1 和表2 对比可以看出,对于点对点通信,室内走廊比室外走道的丢包率要高,室外150 ~200 m 之间误码率显著提高。由表2 和表3 对比可以看出相对于点对点通信,基于CTP 的多跳传输可以使丢包率显著下降,丢包率相同的条件下,多跳传输使传输距离大幅增加,原理上来说多跳传输可以达到几千米甚至更远。
至于在实际应用中数据丢失的问题,可以通过在扫描器中增加Flash,将当日扫描的条码信息依次保存在Flash 中。上位机根据数据库中收到的数据包来判断接收到的数据包是否完整,如果没有发送成功,上位机软件通过控制网关给扫描器发送指令,请求重新发送丢失的数据包。
本智能条形码识别系统传感器节点设计采用低功耗、低成本的CC2430 芯片。无线通信协议采用CTP 汇聚树协议,节点之间组成多跳的无线传感器网络,大幅增加了条码扫描系统的通信范围。智能而友好的人机交互界面使得该系统更具有广泛的应用价值。可广泛应用于大型的仓库、物流、超市等行业,具有良好的应用前景。
[1] 张成海,张铎.现代自动识别技术与应用[M].北京:清华大学出版社,2003.
[2] 易昌惠.条码识别技术的发展[J].企业标准化,2004(2):62-64.
[3] 崔更申,黄廷辉,彭建.基于嵌入式的ZigBee 无线条码扫描仪系统的设计[J].电子器件,2007,30(5):1971-1974.
[4] 齐华,王秋娟,刘军.基于CC2430 的无线条码数据采集器的设计[J].电子技术与应用,2011,37(2):120-122,126.
[5] 李俊宏,湛邵斌.条码技术的发展及应用[J].计算机与数字工程,2009,37(12):115-118.
[6] 穆虹,陈向东,刘胜,等.基于CC2430 无线传感器网络监控系统设计[J].通信技术,2011(11):107-109.
[7] 梁光胜,刘丹娟,郝福珍.基于CC2430 的ZigBee 无线网络节点设计[J].电子设计工程,2010,18(2):16-18.
[8] 潘浩,董齐芬,张贵军,等.无线传感器网络操作系统TinyOS[M].北京:清华大学出版社,2011.