基于DSP56F826芯片的二维条码扫描器系统

系统框图
系统以dsp56f826芯片为核心控制模块, 使用cmos数字图像传感芯片,图像采集分辨率可达640×480像素。当需要进行高分辨率的图象采集时,可改用1024×1024像素的芯片(成本将随之增加)。译码可靠性高。目前得到的误码率不超过6万分之一,并且还在不断改进,期望误码率不超过2000万分之一。采用rs-232通讯接口,将获取的二维条码信息实时上传给计算机显示处理。纠错等级达到8级,纠错能力强。
二维条码扫描器系统框图如图(1)所示。cmos图像传感芯片为光电转换元件,用与采集二维条码图像,直接输出为数字信号。由外部扩展sram存储该数据,再送到dsp,进行图像处理、码字分割、码字识别、信号纠错等,当一组二维条码信息的识别完成以后,服务程序控制i/o接口给出中断申请信号,dsp响应此中断申请,进入中断服务程序。译码后的二维条码数据从i/o口经sci rs-232传送至计算机,并在屏幕上显示。软件程序和pdf417码本都储存在dsp芯片中的flash内,而动态采集到的二维条码图象数据则储存在sram内。
图1 二维条码扫描器框图
系统硬件设计
系统硬件电路主要包括以下七个部分:条码图象采集电路、dsp主控电路、存储器扩展电路、输出接口电路、复位与时钟电路、电源控制电路、照明控制电路。
条码图象采集电路
该电路以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信号时,表示芯片采集下一帧的数据。
图2 条码图象采集电路框图
dsp主控电路
如图1所示,该电路以dsp56f826为核心。当ov7120图像传感芯片准备采集条码图像数据时,dsp发出一个初始信号,控制sram重新分配地址块,同时图像传感芯片开始采集条码图象数据。采集完数据并送到sram中储存后,dsp开始调用处理程序对数据进行译码,译码完成后,通过sci rs-232将数据传输到计算机。
存储器扩展电路
由于dsp56f826片内提供的ram只有4.5k字,而ram中需存放大量动态采集到的条码图象数据,从条码采集电路传送过来的数据按如下计算:
640×480×4-bit = 1228800 bits
所以我们选用128k×16-bit 的is61lv12816作为外部扩展,来满足系统需要。
dsp56f826为外部地址总线和外部数据总线分别提供了16个引脚,为总线控制提供了4个引脚,给扩展外围电路提供了方便。我们采用分开程序区和数据区的接口方法,采用程序选通线(/ps)接sram的a0地址线来实现。因此,数据区为sram的前64k(0000h_ffffh),程序区为sram的后64k(10000h_1ffffh)。对dsp而言,数据区和程序区的地址均为0000h_ffffh。
输出接口电路
该电路使用异步串口rs-232,选用max202e芯片作为电平转换收发器。该芯片最高数据处理速率可达120kbps,满足传送二维条码数据的要求。经过dsp译码后的数据信号txd0通过t1in引脚进入max202e,信号的电平被提高后,经t1out引脚输出,再通过sci rs-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电源,dsp56f826 core用2.5v电源,而dsp56f826 的i/o口用3.3v电源,所以电源分三路输出。
照明控制电路
采用主动光源,用三个发光二极管给条码采集提供照明,便于二维条码图象的定标。当开始采集图象数据时,dsp输出一控制信号,驱动发光二极管工作。采集结束后,在dsp控制下停止工作。
系统部分电路图示于图3。
图3 部分硬件电路图
系统软件设计
二维条码扫描器开始工作时,首先采集二维条码图象数据,由于实际工作中条码图象会出现污损等情况,对码字的正确译出造成影响,所以必须对采集到的图象进行降噪、校正等处理。条码图象为灰度图象,对其进行二值化才能进行码字识别。在将pdf417码的所有码字正确分割后,以查表方式在码本中查找与码字相对应的值,将编码数据译出。为确认扫描的有效性,必须进行前向错误校验。如出错,则进行纠错。最后,将译码的正确数据传输到上位计算机或直接进行处理显示。软件框图如图4所示。
降噪处理
图象采集芯片ov7120成像速度为30帧/秒,但是在实际操作过程中,会有人手抖动、条码图象移动等情况产生,采集时间过长,就会导致每帧图象之间的差别相当大,进而造成很大的识别误差,所以在每一次扫描时,我们只取三帧图象,所用时间为 :(1 / 30 ) × 3 = 0.1 s ,可以忽略人手抖动等影响。设采集到的三帧图象为i1 (x , y) 、i2 (x , y) 、i3 (x , y) , 每帧的噪声方差为σ2,取平均可得到:
i (x , y) = i (x , y)的噪声方差为σ2/3 。
可见此方法可以有效降噪。我们不采用常见的中值滤波、butterworth滤波等方法,是因为一个码字占有3、4个像素点,用中值或butterworth滤波处理污损的图象,将对图象造成结构性的破坏。
图象二值化
首先统计出图象的直方图,然后用bayesian最佳分类器,确定最佳二值化门限电平,实现对图象的二值化处理。此二值化门限电平必须是动态调整的,因为每次的光照等外界条件是不同的,每扫描一次条码,就必须确定一个新的二值化门限电平。动态采集到的条码图象有300k像素点,但只需要取图象中间区域进行统计直方图,取中间的64×64个像素点,平均每统计一个像素点需要2个指令周期,可算得统计直方图总共需要64×64×2=8192个指令周期。确定二值化门限电平需要约2000个指令周期,由此可计算所用时间约为:(8192+2000)/ 40000000 = 0.00025 s。
码字识别与信号纠错
在码字分割完成之后,采用模板匹配方式,在固定的码本中查找与码字相对应的值,将码字译出。这里不需要用到神经网络,因为pdf417码字模式非常标准,用简单的模板匹配即可完成,不需复杂化。对一个码字进行模板匹配需要8000个指令周期,平均每个二维条码包含500个码字,则进行模板匹配总共需要时间为:8000×500 / 40000000 = 0.1 s 。为确保译码的有效性,使用r-s错误控制码对码字进行检错和纠错,每个码字的检错和纠错需要用100个指令周期,所以总共需要100×500 / 40000000 = 0.00125 s的时间来完成二维条码数据纠错。
结语
所设计的二维条码扫描器用dsp56f826芯片为系统核心,采用优化算法,可以快速高效地对二维条码进行识别处理。

以人为本 智慧城市建设要关注实际
无线耳机什么牌子好,xisem西圣凭什么荣登性价比之王的宝座
大屏幕拼接显示墙选购指南
综合布线产品选型
墨西哥将对该国的数字货币和金融行业进行法律管制
基于DSP56F826芯片的二维条码扫描器系统
PIC单片机该如何选型?PIC单片机选型参考
深入解读人工智能概念,它将如何影响制造业/教育/医疗/金融业?
多模态中NLP与CV融合的方式有哪些?
异步电动机如何实现转速调节
MAX917 - MAX920可不带电压基准的超摆幅功率比较
潍坊打造“北方机器人小镇”;2018动力电池单笔投资最高达500亿
物联网对黑客来说是个好的东西吗
微控制器模拟移相器电路设计图
氧化锆如何在氧传感器上施展身手
区块链手机将成为趋势?HTC已经在布局
家中的必备神器,荣泰RT8630迪士尼大白联名款按摩椅
发布全球首款LED全息屏,美矽微推动透明屏行业进入元宇宙时代
高压科学研究团队发现压力可抑制自陷态激子的非辐射复合速率
艾迈斯半导体基于AS7341L光谱传感器专门开发了一款传感器模块