基于Blackfin533的便携式QR code识别系统
2009-03-26
作者:肖 华,黎福海,杜秀伟,柳
摘 要: 一种基于Blackfin533 DSP的便携式QR code识别终端系统的设计方案。系统以Blackfin533DSP为核心处理单元,通过COMS图像传感器采集QR code条码图像信息,借助DSP的高速运算性能,对采集到的QR code图像信息进行图像预处理和QR code算法识别,然后通过TFT LCD实时显示识别结果,最后再运用Zigbee节点无线传输方式代替传统的有线和无线芯片传输技术,将识别后的条码图像数据准确可靠地向主机传输。
关键词: Blackfin533;QR code;Zigbee;条码识别
二维条码是为了克服一维条码容量小、依赖数据库、不能表示汉字等缺点而产生的。二维条码系统是非网络环境下的高安全性信息载体系统,其不仅可储存文字、声音、图像,还能储存虹膜、指纹等生物信息,是实现大容量信息高可靠性存储、携带、自动识别的理想系统。快速响应矩阵码QR code是一种矩阵式二维条码,具有信息容量大、可靠性高、超高速全方位识读、高效汉字表示等优点,被广泛应用于工商、金融、税务、物流、海关等领域。由于在线式数据采集终端在使用距离上的限制,使其不能应用在需要脱机使用的场合,如较大新库存盘点,大件物品的扫描等。为了解决在线式条码识别终端的不足,无线便携式识别终端应运而生。基于这些特征需求,本文研究设计了基于Blackfin533的便携式QR code识别系统。
1 系统硬件设计
整个ZigBee无线QR code识别系统由四部分组成:便携式QR code识别终端、Zigbee无线节电网络、主机Zigbee数据无线接收模块、HOST主机数据库管理系统。系统框图如图1所示。本文主要对便携式QR code识别终端系统进行研究与设计,其硬件电路由七部分构成[1]:Blackfin533 DSP最小系统、COMS图像传感器、Zigbee无线模块、人机交互模块、TFT LCD显示模块、USB接口模块、照明控制模块。
系统信号流程如下:COMS图像传感器采集条码图像信息,然后通过Blackfin533 PPI接口以DMA方式存入SDRAM,Blackfin533从SDRAM读取一幅QR code图像信息,进行图像数据的处理、信号纠错、码字识别。译码后的二维条码数据被送入TFTLCD进行显示,同时将译码后数据通过Zigbee无线通信模块发送,经过其通信节点网络逐步传输到主机数据管理系统,对收集到的条码数据进行管理。
1.1 Blackfin533小系统
系统采用Blackfin533作为核心处理器。Blackfin系列DSP是ADI公司与Intel公司于2003年4月联合推出的一系列基于微信号体系结构(MSA)的DSP产品[2],主要面向嵌入式音频、视频和通信等领域,除了具有强大的信号处理性能和理想的电源效率,还集成了32位的RISC精简指令集,可以运行精简的不具有MMU的操作系统,如μCLinux等,以加强系统多任务控制调度能力。Blackfin533具有600MHz主频,双16位的MAC(乘加器)和两个40位的ALU(算术逻辑单元),4个8位的视频处理单元,8个算术寄存器,10个地址寻址单元并且集成了大量的外围设备和存储器接口,每秒运算速度最高达到1 200MMAC(兆次乘法加法运算),并专门针对高速数据吞吐集成了并行外围接口(PPI),在传统的数据总线的基础上增加了一条数据吞吐通道,充分满足了系统技术指标的要求。
外围存储器包括数据存储器和指令存储器,分别采用SDRAM和Flash。
系统外扩SDRAM用以缓存动态采集到的二维条码图像数据,MICRON公司的MT48LC16M16A2与BF533的连接如图2所示。
系统外扩Flash用于存储系统软件和译码后的数据信息,ST公司的PSD4256G6V与BF533的连接如图3所示。
1.2 COMS图像传感器模块
条码图像传感器是该系统的关键器件,用来完成QR code图像采集,其成像质量直接影响整个系统的性能。CMOS传感器易于集成,接口简单,内部一般集成A/D,可直接输出灰度级数字信号,成本也较低。因此本系统采用Omni Vision公司的CMOS图像传感器OV9120[3]。OV9120是130万像素、1/2英寸的黑白COMS图像传感芯片,它采用SXGA/VGA格式。SXGA输出时,像素为1 280×1 024;VGA输出时,像素为640×480,最大帧速率可达到30S/s(VGA)。
Blackfin533通过OV9120的SCCB接口来读写其内部寄存器以设置和读取OV9120的工作状态,包括对曝光控制、亮度控制、对比度控制、窗口大小设定、帧速率设定、数据输出格式等参数的设定和修改。SCCB的接口有SCCE、SIO_C、SIO_D三条引线,其中SCCE是串行总线使能信号,SIO_C是串行总线时钟信号,SIO_D是串行总线数据信号。SCCB对总线功能的控制完全依靠SCCE、SIO_C、SIO_D三条总线上电平的状态以及三者之间的相互配合实现。OV9120与Blackfin533的接口如图4所示。
Blackfin533提供了专用的并行外设接口(PPI)用于图像数据传输,配合DMA使用可以解决数据传输的冲突问题,减少DSP的资源消耗,使DSP内核可以专注于后端的处理。
1.3 Zigbee无线通信模块
Zigbee采用IEEE802. 15.4标准,利用全球共用的公共频率2.4GHz。应用于监视、控制网络时,具有非常显著的低成本、低耗电、网络节点多、传输距离远等优势。
本系统的无线模块采用基于Zigbee技术的无线模块CC2430芯片。CC2430是Chipcon公司提供的全球首款支持Zigbee协议的SoC解决方案[4],在单个芯片上整合了ZigBee 射频(RF)前端、内存和微控制器,具有21个可编程I/O引脚,通过软件设定一组SFR寄存器的位和字 ,可使这些引脚作为通常的I/O口或作为连接ADC、计时器或USART部件的外围设备I/O口使用。本系统中将CC2430设置成SPI模式与Blackfin533进行数据传输,Blackfin533作为主设备,CC2430作为从设备,其Blackfin533与CC2430接口连接及其CC2430外围电路如图5所示。
2 系统软件设计
系统采用μClinux操作系统作为系统软件的内核来管理和维护各种硬件资源。系统主程序流程如图6所示。系统首先初始化各个模块,然后触发扫描采集条码图像,再进行条码图像传输。DSP调用数据进行图像预处理及条码译码,再将译码结果通过LCD显示,最后通过Zigbee模块将译码结果数据无线传输到HOST主机。
系统软件的核心部分就是QR code的译码识别,其流程如图7所示。
(1)中值滤波:由于摄像头本身的成像质量或者条码在使用过程中的破损、涂抹等原因,会产生盐粒噪声和毛刺噪声,从而影响条码的识别。中值滤波是一种去除噪声的非线性处理方法,可以达到既去除噪声又保护图像边缘的较满意复原的效果。中值滤波的基本原理是把数字图像或数字序列中某点的值用该点所处的一个领域中各点值的中值来代替。
(2)图像二值化[5]:系统将图像数据以YUV4:2:2的格式从Ov9120传到系统存储器SDRAM中,从中取出图像的亮度信息Y。虽然灰度图像己经简化了处理的复杂度,但是条码是典型的黑白图像,一般要通过二值化处理使背景和图像分开,同时也使黑白条码更加分明。根据点运算的阈值理论,按式(1)对图像处理可以得到二值图像。
(3)图像定位:系统采集的条码图像不可避免地会有一定角度的旋转,因此首先要确定条码图像位置,然后把条码旋转至水平方向。图像定位包括边缘检测和Radon变换。系统先采用sobel算法进行边缘检测,然后采用基于Radon变换的定位算法求解二值条码图像的旋转角度。
(4)图像旋转:求出旋转角度后就可以对条码图像旋转至水平方向,点(x0,y0)经过旋转θ角度后坐标变为(xl,y1)的转换公式如下:
(5)分割条码图像[6]:采用Canny水平和垂直方向检测算子,把单行的条码分离出来分别进行处理,在一定程度上提高条码的识别率。
(6)Fourier反模糊滤波:对分割出的条码图像进行Fouirer反模糊滤波,去除图像处理过程中的噪声影响。
(7)条码译码:图像旋转完成之后进行图像数据的读取和译码。译码流程如图8所示。首先将读取的图像数据存放在一个内存区域,从图像中读取格式信息和版本信息,并进行纠错译码,得到当前条码符号的版本、纠错等级和掩膜图形;然后将掩膜图形与条码图像的编码区域进行异或处理,去除掩膜,恢复编码数据和纠错码字,使用RS纠错算法对数据码字进行纠错以得到正确的编码数据;最后将编码数据按照编码格式进行解码,还原为原始的编码信息,并将结果保存并输出。
3 实验结果
本系统测试平台以ADSP-BF533 EZ-KIT Lite为硬件主平台,外围扩展了OV9120图像采集模块、CC2430无线通信模块、TFTLCD显示模块以及基本的人机交互模块。系统能正确采集到QR code条码图像,识别时间在1s之内。对于轻微有损或歪曲的图像基本能识别。由于测试平台的限制,总的识别率在85%左右,能正确显示识别结果。在测试CC2430无线通信模块时,采用ZigBee专用评估软件SmartRFStudio,它可以很好地对无线数据传输性能进行评估和功能测试。在测试条件良好的情况下,2.5GHz频率、50m内,数据向HOST主机传输过程中的丢码率小于2%。通过测试表明,系统基本能实现全方位快速识读QR code功能,并能通过ZigBee模块CC2430实现数据无线传输。
本文提出了一种基于Blackfin533和ZigBee技术便携式QR code识别终端系统的实现方案。系统以Blackfin533为数据处理核心,DSP内核移植μCLinux操作系统,调度和管理各种硬件资源。系统采用COMS传感器采集条码图像数据,通过DMA传输图像数据,减少了DSP内核负担,使DSP专注于图像处理和译码工作。识别结果可以通过LCD显示,并可通过ZigBee模块CC2430实现无线数据传输功能。实验证明,该系统能实现QR code的快速全方位识读,并能无线传输识读结果数据,且系统结构简单、体积小、功耗低、成本低廉。随着二维条码应用越来越广泛,该方案的实用性和推广价值日益增加。
参考文献
[1] 陈峰.Blackfin系列DSP原理与系统设计[M].北京:电子工业出版社,2004.
[2] 高同海,宋明丁,晓明.基于SoPC的嵌入式二维条码识读系统[J].电子技术应用,2005(11):33-36.
[3] 李春明,姜威,高超,等.COMS图像传感器芯片OV9620/OV9120及其运用[J].电视技术,2003(12):66-68.
[4] CHIPCON.SmartRF CC2430[EB/OL].www.chipcon.com,2005/2006.
[5] 刘东,高西全.QR码图像处理及识别算法的研究[J].信息技术,2004(1):61-63.
[6] 冈萨雷斯(美).数字图象处理(第二版)[M].北京:电子工业出版社,2003.