基于DSP的便携式二维条码识别器设计

时间:2022-07-29 09:37:51

基于DSP的便携式二维条码识别器设计

摘 要:二维条码技术正在渗透到社会的各个领域,快速精准的二维条码识别器具有很好的应用前景。以TI公司的TMS320VC5416 DSP芯片为核心,采用COMS图像传感器采集二维条码数据,用CPLD实现系统整体的逻辑控制,实现了一种带有USB接口的便携式二维条码识别器的设计。识别器本身可以存储一定容量的数据,也可通过USB 2.0接口同PC连接共享数据。关键词:DSP; 二维条码; 识别器; USB

中图分类号:TN911.73-34; C931.6 文献标识码:A

文章编号:1004-373X(2010)18-0035-03

Design of Portable 2-dimensional Barcode Identifier Based on DSP

WANG Wei-ya1,2, SUN Xu-bo2, WU Jie1

(1.Department of Command, Naval Aeronautical and Astronautical University, Yantai 264001, China;

2.Graduate Students Brigade, Naval Aeronautical and Astronautical University, Yantai, 264001, China)

Abstract: Since 2-dimensional barcode has been used in many domains,the fast and precise 2-dimensional barcode identifier has a bright future. Based on TI's TMS320VC5416 DSP chip, a portable 2-dimensional barcode identifier with USB interface is designed, which uses COMS image sensor to gather 2-dimensional barcode data and adopts CPLD to realize the logic control of the whole system. The identifier can store a certain capacity of data, and share data with PC via USB 2.0 interface.Keywords: DSP; 2-dimenitonal barcode; identifier; USB

0 引 言

条形码作为一种及时、准确、可靠、经济的数据输入手段已被物流信息系统采用。在工业发达的国家已经普及应用,已成为商品独有的世界通用的“身份证”。它在交通运输业、邮电通讯业、物流行业、超市等领域有不寻常的表现[1]。

条码技术(一维条码、二维条码)是在计算机技术与信息技术基础上发展的信息存储、传递和识别技术。┒维条码是美国SYMBOL公司1991年发明的,二维条码具有高密度、高可靠性的优点,可以在有限的几何空间内表示更多的信息,其应用前景非常广阔。因此,设计快速而精准的二维条码识别器值得深入研究。

1 二维条码特性和码制

二维条码如图1所示,二维条码的特性如下[2]。

(1) 高密度。二维条码通过利用垂直方向的尺寸来提高条码的信息密度。可以把产品信息全部存储在一个二维条码中,要查看产品信息,只要用识读设备扫描二维条码即可。

(2) 具有纠错功能。二维条码的纠错算法与人造卫星和VCD等所用的纠错算法相同。这种纠错机制使得二维条码成为一种安全可靠的信息存储和识别的方法,这是一维条码无法相比的。

(3) 可以表示多种语言文字。多数二维条码都具有字节表示模式,即提供了一种表示字节流的机制。

(4) 可表示图像数据。既然二维条码可以表示字节数据,而图像多以字节形式存储,因此使图像(如照片、指纹等)的条码表示成为可能。

(5) 可引入加密机制。用二维条码表示照片时,可以先用一定的加密算法将图像信息加密,然后再用二维条码表示。在识别二维条码时,再加以一定的解密算法,就可以恢复所表示的照片。

图1 二维条码

二维条码有多种码制,常用的有:PDF417,Data Matrix,Maxi Code,Aztec,QR Code,Veri Code,Ultra Code,Code49和Code 16K码等。根据二维码的实现原理和结构形状的差异,主要分为堆积层排式、棋盘矩阵式和邮政码三类。其中PDF417目前在我国应用最为广泛[3]。

2 基于DSP的嵌入式二维条码识别器

介绍一种基于数字信号处理器(digital signal processing,DSP)的二维条码识别器的基本设计方案。该方案可将解码后的数据实时上传给上位机PC,本身也存储一定量的解码数据,可作为便携式二维条码数据采集器单独使用。

2.1 系统处理的流程

系统处理的流程如图2所示。系统的工作过程如下,通过图像传感器获取二维条码图像。获取的图像首先进行图像降噪、图像校正和二值化等预处理。降噪处理可通过多帧图像平均降噪或递归滤波的方法,图像校正通过Hough变换,二值化可采用最小均方根误差的方法确定门限。经过二值化的图像通过不同条空的比例进行码字分割,分割出的码字和码本中的码字进行模板匹配来确定解码数据。解码后的数据一方面可以写入系统自带的大容量FLASH中,也可以通过USB接口实时将解码数据上传给PC。

图2 系统处理的流程

2.2 二维条码识别器的硬件设计

识别器的硬件结构图如图3所示,下面对主要部件的选择和功用逐一介绍。

图3 识别器的硬件结构图

2.2.1 DSP芯片的选择

数字信号处理器(DSP)在该系统中主要负责图像的预处理和识别匹配。由于二维条码解码算法比较复杂,对硬件系统的要求比较高,选用TI公司的TMS320VC5416,该款芯片具有很高的性价比。它功耗低,运算速度达160 MIPS。采用模板匹配方式进行码字识别,对一个码字进行匹配需要8 000个指令周期,如果平均每个二维条码包含500个码字,则可计算所需时间为:8 000×500/160 000 000=0.03 s,可满足系统实时性要求[4]。

2.2.2 图像传感器的选择

条码图像传感器的作用是将二维条码读入系统,其成像质量的好坏直接影响整个系统的性能。现在常用的图像传感器一般有2种:CCD(charge coupled device)和CMOS(complementary metal-oxide-semiconductor transistor)[2]。

CCD又分为线阵CCD和面阵CCD。用线阵CCD时进行二维条码扫描需要扫描电动机。在扫描电动机的带动下CCD逐行扫描条码,因而速度较慢,但其成本较低。面阵CCD扫描速度块,成像质量好,但控制电路复杂,成本高。

CMOS是最近几年发展起来的一种图像传感器,CMOS对光照强度的要求比CCD的要求高,但CMOS传感器易于集成,接口简单,内部一般集成A/D,可直接输出灰度级数字信号,成本也较低,因而CMOS的应用越来越普及。

该系统中选用Omni Vision公司的黑白CMOS图像传感器OV7120。OV7120为单电源+5 V工作,分辨率为640×480像素,成像速度可达30帧/s,信噪比大于48 dB,有逐行和隔行两种扫描方式,并内置伽马校正功能,输出为8 b灰度信号。

2.2.3 USB接口设计

通用串行总线(universal serial bus,USB)是1994年底由Intel为首的7家公司共同开发的PC外设接口标准。它的主要优点如下:数据传输速率明显快于一般的串口;支持控制传输、中断传输、块传输和同步传输4种传输方式;支持热拨插和即插即用;占用的系统资源少;USB 2.0数据传输速度可达480 Mb/s[5-6]。

Philips公司的ISP1581是一种价格低、功能强的高速通用串行总线(USB)接口器件,它完全符合USB 2.0规范,并为基于微控制器或微处理器的系统提供了高速USB通信能力。此外,ISP1581内部还集成了许多特性,包括Soft Connect、低频晶体振荡器和集成的终止寄存器。使USB功能很容易地用于PC机的外设。

2.2.4 逻辑控制

整个系统的逻辑控制由一片CPLD(complex programmable logic device)完成,主要完成复位、中断和地址译码功能。在此选用Xilinx公司的XC95144XL,其单电源3.3 V工作,有144个宏单元,81个用户I/O引脚。DSP的数据空间、程序空间、I/O空间的寻址是由DS,PS,IS,MSTRB,IOSTRB等控制信号完成,将这些控制信号连入CPLD,由CPLD来完成译码,选通相应器件。在项目的实际设计过程,采用VHDL硬件描述语言来描述时序控制电路。使用CPLD可以给硬件实现带来极大便利,可将扩展的按键、LCD等设备,由CPLD接入DSP,并由CPLD实现基本的控制功能。

2.3 二维条码识别器的软件设计

该系统的软件包括DSP中的软件、USB同PC通信软件。下面给出软件的设计方法。

DSP中软件的设计如图4所示,其核心是二维条码解码算法。在DSP上的软件由图像数据接收模块、条码解码模块、串口数据发送模块3个功能模块组成。使用TI公司的嵌入式操作系统DSP/BIOS,以上功能模块可以作为操作系统的几个中断,算法程序作为标准子程序,这样使程序结构清晰,降低了程序的复杂性,并改善了系统的可靠性与可维护性[7-8]。

图4 DSP主程序流程图

USB接口通信的结构体系如图5所示,包括硬件驱动层、设备枚举、USB事物层、Mass storage 命令层、文件系统、应用层等。

图5 USB与PC通信结构体系

其中驱动层的固件设计是整个通信模块的中心。固件是Fireware对应的中文词,它是与USB芯片相连的CPU执行的代码,负责两项任务:一是作为驻留在设备中的内应,相应主机的列举请求;二是作为智能设备的控制中心[9-10]。固件的开发一般采用前台主循环与后台的ISR之间的通信结构,这两个全局变量的结构如下:

Typedef union_event_flags

{

Struct_flags

{

Unsigned char timer :1;//时间溢出

Unsigned char bus_reset:1;//总线复位标志

Unsigned char suspend:1;//挂起改变标志

Unsigned char setup_packet :1;//收到setup包

Unsigned char remote_wakeup :1;//远程唤醒标志

Unsigned char in_isr :1;//USB中断服务标志

Unsigned char control_state :2;//

//0:IDEL空闲状态;1:TRANSMIT数据发送状态;

//2:RECEIVE数据接收状态

Unsigned char configuration :1;//配置标志(0:未配置;1:已经配置)

Unsigned char ep1_rxdone :1;//端点1收到数据标志

Unsigned char ep2_rxdone :1;//端点2收到数据标志

Unsigned char ep1buf_full :1;//端点1输出双缓冲区满标志

Unsigned char ep2buf_full :1;//端点2输出双缓冲区满标志

}bits;

Unsigned short value;

}EVENTFLAGS;

EVENTFLAGS bEVENflags;

3 结 语

该系统可以对二维条码进行快速识别、存储和上传PC。当今信息化的趋势使得人们不得不考虑数据的实时共享,比如将识别器得到的信息通过网络实时共享更新。可以通过连接PC来实现,也可以通过在识别器上加装通信模块来实现,使得信息传递的速度加快,提高物流系统或是资源管理系统的效率。

参考文献

[1]阮李英.如何应用二维码[J].中国质量技术监督,2009(5):60-61.

[2]邓链,吴晓兵,王克涌,等.信息识别技术[M].北京:机械工业出版社,2006.

[3]徐常凯,郑金忠.新型条码在军事物流中的应用研究[J].物流技术,2006 (7):236-238.

[4]Texas Instruments. DSP selection guide[M]. Texas, USA: Texas Instruments, 2004.

[5]刘青丽.基于USB 2.0接口技术的数据采集系统的设计与实现[D].成都:西南交通大学,2004.

[6]段军.基于USB的数据采集和控制系统的开发与研究[D].南京:南京理工大学,2004.

[7]陈兴刚,刘振华,郭宝华.FRID技术与条码技术在军事物流领域的联合应用[J].包装工程,2006,27(1):87-89.

[8]郭颖.基于DSP的新型图形发生器主控制器的研究[D].北京:中国科学院电工研究所,2004.

[9]张剑.基于USB总线的便携式数据采集系统设计[D].南京:南京理工大学,2004.

[10]王其华.面向数字化的军事物资保障体系构架[J].中国物流与采购,2006(3):29.

上一篇:变风量空调系统多参数测量方法 下一篇:一种基于DFT滑动窗的实时FSK解调算法