• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于DSP56F826芯片的二维条码扫描器系统

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

录入:edatop.com     点击:

复位与时钟电路

虽然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。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劌銈搁弻鐔兼儌閸濄儳袦闂佸搫鐭夌紞渚€銆佸鈧幃娆撳箹椤撶噥妫ч梻鍌欑窔濞佳兾涘▎鎴炴殰闁圭儤顨愮紞鏍ㄧ節闂堟侗鍎愰柡鍛叀閺屾稑鈽夐崡鐐差潻濡炪們鍎查懝楣冨煘閹寸偛绠犻梺绋匡攻椤ㄥ棝骞堥妸鈺傚€婚柦妯侯槺閿涙稑鈹戦悙鏉戠亶闁瑰磭鍋ゅ畷鍫曨敆娴i晲缂撶紓鍌欑椤戝懘鎮樺┑瀣€垫い鎾跺枍缁诲棝鏌曢崼婵堢闁告帊鍗抽弻娑㈡偆娴i晲绨界紓渚囧枦椤曆囧煡婢跺á鐔荤疀閹惧墎楔闂佽桨鐒﹂崝娆忕暦閵娾晩鏁婇悹渚厛閺€銊х磽閸屾艾鈧绮堟笟鈧、鏍礋椤栨稑娈戦梺鍛婃尫閻掞箓锝為弴銏$厵闁硅鍔﹂崵娆戠棯閹冩倯闁逛究鍔岄~婊堝幢濡も偓楠炲姊虹粙娆惧剱闁圭懓娲獮鍐ㄢ堪閸喎娈熼梺闈涱槶閸庮噣宕戦幘璇查敜婵°倓鑳堕崣鍡涙⒑閸濆嫭澶勬慨妯稿姂瀹曟繂顓兼径瀣幍闂佸憡鍔樼亸娆撴倿閸涘﹥鍙忓┑鐘插鐢盯鏌熷畡鐗堝殗鐎规洏鍔嶇换婵嬪磼濞戞瑧鏆梻鍌氬€峰ù鍥х暦閻㈢ǹ绐楅柛鈩冪☉绾惧潡鏌熼幆鐗堫棄缂佺姵鐓¢弻鏇$疀閺囩儐鈧本绻涚粭鍝勫闁哄苯绉烽¨渚€鏌涢幘瀵告噰妞ゃ垺宀搁弫鎰板幢濞嗘垹妲囨繝娈垮枟閿曗晠宕㈤崗鑲╊洸婵犲﹤鎳愮壕濂告煟閹伴潧澧い搴㈢矊椤啰鈧稒蓱閸婃劗鈧鍠楅悡锟犮€佸Δ鍛妞ゆ垼濮ょ€氬ジ姊绘担鍛婅础閺嬵亝绻涢幘顕呮缂侇喖顭烽獮妯尖偓闈涙憸椤旀洟鏌i悩鍙夊巶闁告侗鍘奸悡鍌炴⒑鏉炴壆顦﹂柣妤€锕ョ粚杈ㄧ節閸ヮ灛褔鏌涘☉鍗炴灈婵炲懌鍊濆铏圭矙濞嗘儳鍓梺鍛婃尰缁诲嫰骞戦姀鐘斀闁搞儮鏅濋惁鍫ユ⒑缁嬫寧婀扮紒瀣灥閳诲秹鏁愰崪浣瑰瘜闂侀潧鐗嗙换鎺楀礆娴煎瓨鐓忛柛顐ゅ枑閸婃劖顨ラ悙鎻掓殲缂佸倹甯為埀顒婄到閻忔岸寮查鈧埞鎴︽倷閺夋垹浠搁柦鍐憾閹綊宕堕埡浣锋濠殿喖锕ㄥ▍锝夊箯閻樿鐏抽柧蹇e亞娴滃爼姊绘担钘夊惞闁革綇闄勬穱濠囧炊椤掆偓缁犳煡鏌曡箛鏇炐涢柡鈧禒瀣€甸柨婵嗙凹缁ㄤ粙鏌涙繝鍕槐婵﹥妞藉Λ鍐归妶鍡欐创鐎规洘锕㈡俊鎼佸Ψ椤旇棄鏋犳繝鐢靛Х閺佸憡鎱ㄩ悜钘夋瀬闁告稑锕ラ崣蹇涙煟閹达絾顥夐柡瀣╃窔閺岀喖姊荤€靛壊妲紒鐐礃椤濡甸崟顖氬唨妞ゆ劦婢€缁爼姊虹紒妯虹瑨闁诲繑宀告俊鐢稿礋椤栨氨顔婇梺鐟扮摠缁诲秵绂掗懖鈺冪<闁绘劦鍓欓崝銈嗐亜椤撶姴鍘寸€殿喖顭烽幃銏ゆ偂鎼达綆妲堕柣鐔哥矊缁绘帡寮灏栨闁靛骏绱曢崢浠嬫⒑鐟欏嫬鍔ゆい鏇ㄥ幖鐓ら柟缁㈠枟閻撴瑦銇勯弮鍌滄憘婵炲牊绮撻弻鈩冩媴閻熸澘顫嶉梺璇″灡濡啴宕规ィ鍐╁殤妞ゆ帊鐒﹀▍锕€鈹戦悩鍨毄濠殿噮鍙冮獮蹇涘礃椤旇偐顦ㄥ銈呯箰閸熺増銇欓幎鑺モ拻濞撴埃鍋撻柍褜鍓氱粙鎾诲煘閹烘鐓曢柡鍌濇硶鑲栭梺鐟扮畭閸ㄥ綊鍩為幋鐘亾閿濆簼绨荤紒鎰☉椤啴濡堕崱妯碱槬闂佺懓鍟跨粔鐟扮暦椤愨懡鏃堝川椤旇瀚藉┑鐐舵彧缁蹭粙骞夐敍鍕闁跨喓濮甸悡娆撴煣韫囷絽浜濋悘蹇曟暬閺屽秷顧侀柛鎾磋壘椤繈濡搁敂鑺ョ彿濠德板€撻懗鍫曞煘瀹ュ應鏀介柣妯哄级閹兼劗绱掗悩鍨殌闂囧鏌ㄥ┑鍡欏闁逞屽厸缁瑦淇婇幖浣哥厸闁稿本绮屽鎶芥⒒娴e憡鎯堥柛鐔哄█瀹曟垿骞樼紒妯煎幈闁硅壈鎻槐鏇㈡晬瀹ュ洨纾奸弶鍫氭櫅娴犺鲸顨ラ悙鏉戠瑨閾绘牕霉閿濆懎绾ч悗姘矙濮婄粯鎷呴崨闈涚秺瀵敻顢楅崟顒€浠梺闈浥堥弲娑氱矆閸屾壕鍋撻崗澶婁壕闂佸憡娲﹂崜娑㈠储閻㈠憡鈷戦柟顖嗗嫮顩伴梺绋款儏閹冲酣鎮惧畡鎵殕闁逞屽墴閸┾偓妞ゆ帒鍠氬ḿ鎰箾閸欏鐭掔€殿噮鍋嗛幏鐘差啅椤斿吋顓垮┑鐐差嚟婵挳顢栭幇鏉挎瀬闁搞儺鍓氶悡鐔兼煙闁箑寮鹃柛鐔风箻閺屾盯鎮欓崹顐f瘓濠殿喖锕︾划顖炲箯閸涘瓨鍤嶉柕澹讲鍋撴繝鍥ㄢ拺闂傚牃鏅濈粔鍓佺磼閻樿櫕宕岄柣娑卞枦缁犳稑鈽夊▎鎰仧闂備浇娉曢崳锕傚箯閿燂拷...

图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芯片为系统核心,采用优化算法,可以快速高效地对二维条码进行识别处理。

来源:电子发烧友

上一篇:利用C++程序获取网卡的相关信息
下一篇:电信IPv6网络安全保障体系研究

闂傚倸鍊风粈浣虹礊婵犲倴缂氱憸鏃堛€侀弽顓炲耿婵$偟绮弫鐘绘⒑闁偛鑻晶顔姐亜椤撶偞鍋ョ€规洜鎳撻埥澶娾枎閹邦喖绲块梻鍌欑劍閹爼宕愰弴鐏诲綊鎮滈挊澶岊唵闁诲函缍嗛崰鏍不閺屻儲鐓欏ù鐓庣摠濞懷囨煙椤旇崵绐旀慨濠呮閸栨牠寮撮悢鍝ュ絿婵$偑鍊戦崹褰掓晝椤忓牄鈧礁鈻庨幘宕囶槹濡炪倖鐗楃喊宥夋倵椤掆偓閳规垿鎮欓崣澶樻!闂佹悶鍔庨崰鏍ь嚕婵犳碍鏅搁柨鐕傛嫹 | More...
手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图