基于DSP技术的手持式二维条码扫描器Word下载.docx
- 文档编号:6310621
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:17
- 大小:148.56KB
基于DSP技术的手持式二维条码扫描器Word下载.docx
《基于DSP技术的手持式二维条码扫描器Word下载.docx》由会员分享,可在线阅读,更多相关《基于DSP技术的手持式二维条码扫描器Word下载.docx(17页珍藏版)》请在冰点文库上搜索。
2002年9月
内容目录
1.引言
2.二维条码PDF417编码原理
3.二维条码扫描器应用范围
4.系统概述
4.1特性
4.2系统综述
4.3MotorolaDSP56F826简介
5.系统硬件
5.1条码图象采集电路
5.2DSP主控电路
5.3存储器扩展电路
5.4输出接口电路
5.5复位与时钟电路
5.6电源控制电路
5.7照明控制电路
6.系统软件
6.1软件原理描述
6.2软件模块结构说明
6.2.1降噪处理
6.2.2图象校正
6.2.3图象二值化
6.2.4检测起始符与码字分割
6.2.5码字识别与信号纠错
6.2.6数据输出
7.结语
附图
(1)
陈亚杰王建华纪震
深圳大学信息工程学院深圳(518060)
摘要:
本文介绍了一种基于DSP技术的二维条码扫描器。
该扫描器以MOTOROLA的DSP56F826为核心,采用CMOS图象传感器以逐行扫描方式采集条码数据,并利用高速存储器扩展芯片,配合先进的译码算法,实现了高效准确的实时处理。
文中阐明了系统工作原理、功能以及软硬件实现方法。
同时,简述了PDF417码的编码原理及二维条码系统的发展前景。
关键词:
二维条码PDF417DSPRS码CMOS
1.引言
目前,在市场上通常使用的条形码是一维条形码,它含有的信息量很小,一般需要后台数据库支持。
二维条形码则有很大的数据容量,在一定情况下不需要后台数据库的支持,并且可以形成便携式数据文件进行离线传输,它的纠错能力极强,文件的局部破损、污染不会影响数据的准确读出。
二维条码可对字符、汉字、图像、签字等进行编码,应用范围十分广阔。
现在应用最为广泛的二维条码是PDF417码,它由美国SYMBOL公司发明。
PDF(PortableDataFile)意思是“便携数据文件”,组成条码的每一个条码字符由4个条和4个空共17个模块构成,故称为PDF417条码。
它的最大优势在于其庞大的数据容量和极强的纠错能力。
一个PDF417条码最多可容纳1850个字符或1108个字节的二进制数据,如果只表示数字则可容纳2710个数字。
PDF417的纠错能力分为9级,级别越高,纠错能力越强。
由于这种纠错功能,使得污损的417条码也可以正确读出。
PDF417条码需要有417解码功能的条码阅读器才能识别。
可是,目前国内的二维条码市场存在很大的空缺,研制一套完整高效的二维条码识别系统将会有很广阔的前景,故本课题组将对此项技术进行硬件开发和实现:
实现手持式二维条码扫描器。
我们选择CMOS数字成像芯片采集二维条码数据,并利用DSP芯片进行数据的译码识别,最终将数据通过RS-232接口传送至PC机进行显示处理,完成对二维条码所包含的信息的获取。
以长远的发展眼光来看,我国乃至全球都在大力推行二维条码技术,我国已经制定了PDF417码的国家标准GB/T17172-1997。
随着二维条码技术的普及,二维条码识别系统的需求量将不断上升。
目前,一台普通的一维条码识别机的价格在500元人民币上下,本课题组高效地利用芯片资源,选择价格适当的芯片,使手持识别机的价格不超过1000元人民币。
由此看来,本系统实行产业化,将会有很好的经济效益和广阔的市场前景。
PDF417条码是一种线性堆叠式二维码,它是在一维条码编码原理的基础上,将多个一维码在纵向堆叠而形成的。
PDF417条码有三种数据压缩模式:
文本压缩模式(TC)、字节压缩模式(BC)、数字压缩模式(NC)。
通过应用模式锁定/转移码字,可在一个417条码符号中应用多种模式表示数据。
PDF417符号字符集由三个簇构成,每一簇包括以不同的条、空形式表示的所有929个四一七条码码字。
在每一簇中,每一符号字符对应唯一的码字,其范围为0~928。
对于给定的数据码字,错误纠正码字根据Reed-Solomon错误控制码算法计算。
对于给定的数据流,默认当前压缩模式为TC模式,并设定一个指向数据流起始位置的指针P,从P开始计算连续数字位的数目N,若N≥13,则锁定为NC模式;
若N<13,则从P开始向右计算数据流中TC模式字符序列的长度T,直到遇到非TC模式字符,若T≥5,则锁定为TC模式,若T<5,则锁定为BC模式,这样就可求得字符序列值。
然后选定纠错等级进行纠错码字的计算,把字符序列值和纠错码字合在一起即为该数据流的PDF417编码。
如图
(1)所示,这是一幅二维条码图象,它包含了本文摘要中的所有内容。
图
(1)PDF417条码
该扫描器操作简单、使用方便。
使用时,扫描器与计算机连接,用户手持扫描器,扫过印有二维条码的标签,计算机就能立即显示出该条码内所包含的各种信息。
如果构建多用户系统或网络系统,则需在微型机上挂接数台终端或建立文件服务器和工作站。
该扫描器适用于对各种证件、票证、票据、电子商务、报表、档案、报关单等加密二维条码信息的判别识读,尤其是在国防、交通运输、海关、邮政、工业、商业、公共安全、医疗保险及政府管理等领域应用十分广泛。
a.以MOTOROLA公司生产的DSP56F826芯片为核心控制模块。
b.使用CMOS数字图像传感芯片,图像采集分辨率可达640×
480像素。
当需要进行高分辨率的图象采集时,我们将改用1024×
1024像素的芯片(成本将随之增加)。
c.译码可靠性高。
目前得到的误码率不超过6万分之一,并且还在不断改进,期望误码率
不超过2000万分之一。
d.采用RS-232通讯接口,将获取的二维条码信息实时上传给计算机显示处理。
e.纠错等级达到8级,纠错能力强。
f.与国内外同类产品相比,价格合理,性能价格比高,每一台手持扫描器价格低于1000
元人民币。
4.2系统综述
二维条码扫描器系统原理框图如图
(2)所示。
CMOS图像传感芯片为光电转换元件,用与采集二维条码图像,直接输出为数字信号。
由外部扩展SRAM存储该数据,再送到DSP,进行图像处理、码字分割、码字识别、信号纠错等,当一组二维条码信息的识别完成以后,服务程序控制I/O接口给出中断申请信号,DSP响应此中断申请,进入中断服务程序。
译码后的二维条码数据从I/O口经SCIRS-232传送至计算机,并在屏幕上显示。
软件程序和PDF417码本都储存在DSP芯片中的FLASH内,而动态采集到的二维条码图象数据则储存在SRAM内。
图像传感驱动
CameralLens
图
(2)二维条码扫描器原理图
4.3MotorolaDSP56F826简介
该型号DSP芯片拥有强大的内置功能,满足对条码图像数据进行实时处理的要求,故选其作为扫描器系统的处理核心。
a.采用高效的16-bitDSP56800内核,每秒种可处理4千万条指令,共有3条内部地址总线、1条外部地址总线、4条内部数据总线、1条外部数据总线。
b.内置31.5K字的ProgramFlash,2K字的DataFlash,512字的ProgramRAM,4K
字的DataRAM,2K字的BootFlash。
用来存储采集到的条码数据、程序及二维条码码本。
c.片外可扩展到64K字的数据存储和64K字的程序存储。
需要扩展128K字的SRAM。
d.2个串行通讯口(SCI0和SCI1),共提供4条管脚,可以方便地与计算机进行数据传输。
e.内置COP模块,方便完成watchdog功能。
f.指令系统支持C/C++编译,更方便调试,可以编写功能更强大、更优化的程序。
系统硬件电路主要包括以下七个部分:
条码图象采集电路、DSP主控电路、存储器扩展电路、输出接口电路、复位与时钟电路、电源控制电路、照明控制电路。
该电路采用OmniVision公司生产的OV7120黑白图像传感芯片为核心,该芯片分辨率达到640×
480像素,成像速度为30帧/秒,采取逐行扫描方式,输出为数字信号。
且功耗低,价格便宜,虽然CCD芯片在信噪比、灵敏度、成像质量等方面优于CMOS芯片,但在本系统设计中,采用CMOS芯片较为合适。
工作原理如图
(2)所示,Y0-Y7为总线数字输出,HREF为水平参考信号,即行扫描信号;
VSYN为垂直同步信号,即场同步信号。
PCLK为像素时钟输出。
该电路使用5V直流电,由电源控制电路提供。
虽然该芯片使用5V工作电压,但它提供3.3V的I/O口,所以它可以与I/O电压为3.3V的DSP直接相连接,不需要电平转换。
当DSP接收到VSYN信号时,表示芯片开始采集第一帧条码图像数据,随后接收到HREF信号,芯片开始进行第一行的数据采集,每来一个PCLK信号,芯片就采集一个像素点的信号,当DSP接收到下一个HREF信号,芯片就进行第二行的数据采集,直到采集完640行的数据,芯片停止采集。
当DSP收到下一个VSYN信号时,表示芯片采集下一帧的数据。
VSYN
HREF
PCLK
InitialSignal
SerialCameraControlBus
ADDRESS
DATA(Y0-Y7)
DATA
图
(2)条码图象采集电路工作原理图
如附图
(1)所示,该电路以MOTOROLA公司生产的DSP56F826为核心。
当OV7120图像传感芯片准备采集条码图像数据时,DSP发出一个初始信号,控制SRAM重新分配地址块,同时图像传感芯片开始采集条码图象数据。
采集完数据并送到SRAM中储存后,DSP开始调用处理程序对数据进行译码,译码完成后,通过SCIRS-232将数据传输到计算机。
由于DSP56F826片内提供的RAM只有4.5K字,而RAM中需存放大量动态采集到的条码图象数据,从条码采集电路传送过来的数据按如下计算:
我们采用4-bit量化,640×
480×
4-bit=1228800bits
所以我们选用128K×
16-bit的IS61LV12816作为外部扩展,来满足系统需要。
如附图
(1)所示,DSP56F826为外部地址总线和外部数据总线分别提供了16个管脚,为总线控制提供了4个管脚,给扩展外围电路提供了方便。
我们采用分开程序区和数据区的接口方法,采用程序选通线(/PS)接SRAM的A0地址线来实现。
因此,数据区为SRAM的前64K(0000H~FFFFH),程序区为SRAM的后64K(10000H~1FFFFH)。
对DSP而言,数据区和程序区的地址均为0000H~FFFFH。
该电路使用异步串口RS-232,选用Maxim公司生产的MAX202E芯片作为电平转换收发器。
该芯片使用5V直流电源,最高数据处理速率可达120Kbps,满足传送二维条码数据的要求。
电路图如附图
(1)所示。
经过DSP译码后的数据信号TXD0通过T1IN管脚进入MAX202E,信号的电平被提高后,经T1OUT管脚输出,再通过SCIRS-232接口中的TXD口,将译码后数据传送给计算机。
R1IN为接收输入信号,R1OUT为接收输出信号。
虽然DSP内置了COP模块,可以完成watchdog功能,当DSP内核电压VDD低于2.2V或者I/O口电压VDDIO低于2.7V,系统自动复位。
我们还专门加了外部RESET,防止系统受到外界干扰或电源波动时出现死机现象。
DSP56F826的系统时钟由晶振提供。
我们利用DSP芯片内部提供的晶振电路,在EXTAL和XTAL之间接一外部晶体(4MHz)。
输入5V的直流电作为整个系统的电源。
由于图像传感芯片OV7120使用5V直流电,MAX202E芯片使用5V直流电,外部SRAM使用3.3V直流电,DSP56F826Core使用2.5V直流电,而DSP56F826的I/O口使用的是3.3V直流电,所以电源分三路输出。
Supply5VVDDIO3.3V
VDD2.5V
5V
图(3)电源控制原理图
采用主动光源,用三个发光二极管给条码采集提供照明,便于二维条码图象的定标。
当开始采集图象数据时,DSP输出一控制信号,驱动发光二极管工作。
采集结束后,在DSP控制下停止工作。
二维条码扫描器开始工作时,首先采集二维条码图象数据,由于实际工作中条码图象会出现污损等情况,对码字的正确译出造成影响,所以必须对采集到的图象进行降噪、校正等处理。
条码图象为灰度图象,对其进行二值化才能进行码字识别。
在将PDF417码的所有码字正确分割后,以查表方式在码本中查找与码字相对应的值,将编码数据译出。
为确认扫描的有效性,必须进行前向错误校验。
如出错,则进行纠错。
最后,将译码的正确数据传输到上位计算机或直接进行处理显示。
软件原理框图如图(4)所示。
图(4)软件原理框图
6.2软件模块结构说明:
采用多帧图象平均降噪方法。
图象采集芯片OV7120成像速度为30帧/秒,但是在实际操作过程中,会有人手抖
动、条码图象移动等情况产生,采集时间过长,就会导致每帧图象之间的差别相当大,进而造成很大的识别误差,所以在每一次扫描时,我们只取三帧图象,所用时间为:
(1/30)×
3=0.1s,可以忽略人手抖动等影响。
设采集到的三帧图象为I1(x,y)、I2(x,y)、I3(x,y),每帧的噪声方差为σ2,
取平均可得到:
I(x,y)=
I(x,y)的噪声方差为σ2/3。
可见此方法可以有效降噪。
我们不采用常见的中值滤波、Butterworth滤波等方法,是因为一个码字占有3、4个像素点,用中值或Butterworth滤波处理污损的图象,将对图象造成结构性的破坏。
实际操作中,二维条码的成像不一定是水平的,而图象的倾斜肯定会给图象数据的
采集和处理带来很大误差,所以需要对二维条码图象进行校正。
首先,检测条码区域,采用hough变换检测二维条码图象边界线,估计出条码区域的角度,然后进行角度校正。
首先统计出图象的直方图,然后用Bayesian最佳分类器,确定最佳二值化门限电平,
实现对图象的二值化处理。
此二值化门限电平必须是动态调整的,因为每次的光照等外界条件是不同的,每扫描一次条码,就必须确定一个新的二值化门限电平。
动态采集到的条码图象有300K像素点,但只需要取图象中间区域进行统计直方图,取中间的64×
64个像素点,平均每统计一个像素点需要2个指令周期,可算得统计直方图总共需要64×
64×
2=8192个指令周期。
确定二值化门限电平需要约2000个指令周期,由此可计算所用时间约为:
(8192+2000)/40000000=0.00025s。
每个PDF417条码的构成从左至右依次是:
起始符、左行指示符、数据码字、右行指示符、终止符。
每个码字都由4个条4个空共17个模块构成。
首先检测起始符位置,然后开始分割码字,每17个模块就确定为一个码字,直到检测完所有码字,即码字分割完成。
在码字分割完成之后,采用模板匹配方式,在固定的码本中查找与码字相对应的值,
将码字译出。
这里不需要用到神经网络,因为PDF417码字模式非常标准,用简单的模板匹配即可完成,不需复杂化。
对一个码字进行模板匹配需要8000个指令周期,平均每个二维条码包含500个码字,则进行模板匹配总共需要时间为:
8000×
500/40000000=0.1s。
为确保译码的有效性,使用R-S错误控制码对码字进行检错和纠错,每个码字的检错和纠错需要用100个指令周期,所以总共需要100×
500/40000000=0.00125s的时间来完成二维条码数据纠错。
二维条码数据全部识别完以后,DSP控制输出一个中断申请信号,开始执行中断服
务程序。
首先选定数据传输口地址,然后译码结果通过RS-232接口被送至计算机,计算机接收该译码数据后,中断结束。
重复该过程,直至全部译码结果输出结束。
计算数据输出所需时间,一个二维条码码字约占4个像素,平均每个二维条码包含500个码字,采用4-bit量化,MAX202E芯片最高数据处理速率可达120Kbps,可得:
(500×
4×
4-bit)/120Kbps=0.0667s
由此可得软件处理时间如下表所示。
(DSP56F826的处理速度为40MIPS)
软件模块
读入图象数据及降噪处理
图象校正及图象分割
图象二值化
码字识别
信号纠错
数据输出
所需时间
0.1s
≦0.025s
0.00025s
0.00125s
0.0667s
整个软件处理过程控制在0.3秒以内,完全可以满足系统实时性要求。
7.结语
本方案设计的手持式二维条码扫描器采用MOTOROLADSP56F826芯片为系统核心,采用优化算法,可以快速高效地对二维条码进行识别处理。
目前,我们还在不断改善该扫描器的性能,提高性价比,延长其使用寿命。
随着二维条码越来越广泛的应用,本二维条码扫描器方案有很广阔的推广前景,实行产业化,将带来巨大的社会经济效益。
附图
(1)部分硬件原理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP 技术 手持 二维 条码 扫描器