新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TMS320DM642的CCD二維碼Data Matri

基于TMS320DM642的CCD二維碼Data Matri

作者: 時(shí)間:2011-04-09 來源:網(wǎng)絡(luò) 收藏
本文提出的便攜矩陣式二維碼CCD識(shí)讀器,采用TI的高速DSP芯片TMS320DM642作為圖像處理器,使用高分辨率CCD攝像頭捕捉圖像,在DSP處理器中利用模式識(shí)別初次定位,并對(duì)Data Matrix二維碼進(jìn)行精確解碼識(shí)別,得到編碼在二維碼圖形中的字符串信息。其結(jié)果可以直接在閱讀器上顯示,且可通過通信接口與其他設(shè)備交互信息[1]。

1 硬件實(shí)現(xiàn)

硬件部分主要由CPU控制器、CCD攝像頭、圖像采集芯片TVP5150、存儲(chǔ)器SDRAM和Flash、LCD顯示器、時(shí)鐘及看門狗電路、電源及復(fù)位電路、串行通信電路等組成,硬件結(jié)構(gòu)框圖如圖1所示[2]。


主要應(yīng)用電路由DM642、視頻輸入電路、視頻輸出等電路組成,具體如下。

1.1 DM642模塊

該系統(tǒng)CPU選用TI公司專為視頻應(yīng)用開發(fā)的高性能DSP芯片TMS320DM642(簡稱DM642)。DM642基于C64x內(nèi)核,并在其基礎(chǔ)上增加了很多外圍設(shè)備和接口,因而在實(shí)際工程中的應(yīng)用更為廣泛和簡便。本系統(tǒng)使用50 MHz晶振作為DSP的外部時(shí)鐘輸入,經(jīng)過內(nèi)部鎖相環(huán)12倍頻后產(chǎn)生600 MHz的工作頻率。DM642采用了2級(jí)緩存結(jié)構(gòu)(L1和L2),大幅度提高了程序的運(yùn)行性能。片內(nèi)64位的EMIF(External Memory InterFace)接口可以與SDRAM、Flash等存儲(chǔ)器件無縫連接,極大地方便了大量數(shù)據(jù)的搬移。更重要的是,作為一款專用視頻處理芯片,DM642包括了3個(gè)專用的視頻端口(VP0~VP2),用于接收、處理視頻和音頻數(shù)據(jù),提高了整個(gè)系統(tǒng)的性能。本系統(tǒng)主要使用了TMS320DM642的外部存儲(chǔ)器擴(kuò)展接口EMIF、視頻口VP1、視頻口VP2和通用IO口GPIO。

1.2 視頻輸入接口

DM642具有3個(gè)視頻端口,支持多種分辨率和標(biāo)準(zhǔn),其位寬和輸入輸出方向軟件可控,設(shè)計(jì)中將VP2的A通道設(shè)置為視頻輸入模式,實(shí)現(xiàn)對(duì)二維碼的圖形輸入。DM642與視頻編解碼芯片之間的數(shù)據(jù)都通過這幾個(gè)專用的端口傳輸,但是對(duì)這些芯片的控制則是通過I2C總線實(shí)現(xiàn)的。

采用模擬攝像頭進(jìn)行視頻數(shù)據(jù)采集,需要使用視頻解碼芯片將采集到的模擬數(shù)據(jù)進(jìn)行數(shù)字化,然后送給DM642的視頻端口進(jìn)行處理。本設(shè)計(jì)選用TI公司生產(chǎn)的TVP5150A,這是一款具有強(qiáng)大可靠的同步檢測器的超低功耗 NTSC/PAL/SECAM 視頻解碼器,它與DM642的連接如圖2所示[3]。

圖2中,TVP5150A的YOUT口與DM642的VP2口直接連接,用于數(shù)據(jù)的傳輸。點(diǎn)陣時(shí)鐘線和DM642上VP2口的VP2_CLK1相連,用于數(shù)據(jù)傳輸?shù)臅r(shí)鐘信號(hào)。DM642通過I2C總線對(duì)TVP5150A內(nèi)部寄存器進(jìn)行讀寫,達(dá)到控制該芯片的目的。

1.3 視頻輸出接口

對(duì)于要求進(jìn)行本地回放的設(shè)計(jì),需要將一個(gè)視頻口設(shè)置為回放模式。本設(shè)計(jì)需要通過鏡頭的焦距、視野等對(duì)所獲取的物體表面圖像質(zhì)量進(jìn)行控制,需要監(jiān)控圖像質(zhì)量,為此需要設(shè)計(jì)視頻輸出接口。在設(shè)計(jì)中使用視頻口VP1進(jìn)行視頻回放,因此將VP1端口的A通道設(shè)置為回放模式。對(duì)采集到的數(shù)據(jù)進(jìn)行回放時(shí)需要先將數(shù)字視頻信號(hào)重新轉(zhuǎn)化為模擬信號(hào),才能在監(jiān)視器上播放。本設(shè)計(jì)選用由Philips公司生產(chǎn)的SAA7104來完成信號(hào)轉(zhuǎn)換,SAA7104與DM642的電路連接如圖3所示。

圖3中,DM642的VP1端口向SAA7104的MP口輸出BT.656格式的數(shù)字視頻信號(hào),經(jīng)過SAA7104芯片內(nèi)部數(shù)據(jù)管理模塊分離出Y信號(hào)和Cb、Cr信號(hào);然后再送到片內(nèi)相應(yīng)的模/數(shù)轉(zhuǎn)換模塊將數(shù)字信號(hào)變換為模擬視頻信號(hào);最后由CVBS(復(fù)合視頻信號(hào))或者Y、C(S-端子信號(hào))引腳輸出。SAA7104的時(shí)鐘信號(hào)LLC為27 MHz,由DM642的VP2CLKI提供,而DM642的VP2CLKI則是來自于TVP5150A的SCLK引腳,這就使得視頻的采集和回放達(dá)到同步要求。DM642通過I2C接口對(duì)SAA7104芯片內(nèi)部的寄存器進(jìn)行配置,實(shí)現(xiàn)對(duì)該芯片的控制。

2 軟件實(shí)現(xiàn)

在軟件方面,主要針對(duì)視頻編碼、解碼芯片的驅(qū)動(dòng)、軟件流程設(shè)計(jì)和算法設(shè)計(jì)等3個(gè)方面。

2.1 基于DSP/BIOS的視頻驅(qū)動(dòng)模型

設(shè)計(jì)中使用TI的基于DSP/BIOS的驅(qū)動(dòng)模型,利用了CSL(Chip Support Library)芯片支持庫對(duì)TVP5150A和SAA7104進(jìn)行配置,使用FVID的API實(shí)現(xiàn)視頻信號(hào)的采集和回放?;谶@種驅(qū)動(dòng)模型的框架如圖4所示[4]。

2.2 軟件工作流程

程序上電開始運(yùn)行后,首先對(duì)各模塊進(jìn)行初始化設(shè)置,包括VP1、VP2、TVP5150A、SAA7104、McBSP等,之后在一個(gè)DSP/BIOS系統(tǒng)任務(wù)對(duì)象中進(jìn)行圖像捕捉,捕獲的圖像數(shù)據(jù)將存放在FVID提供的一個(gè)FVID_Frame結(jié)構(gòu)中,以后對(duì)于圖像的處理都是針對(duì)該結(jié)構(gòu)中的圖形數(shù)據(jù)進(jìn)行。將獲得的圖像首先進(jìn)行二維碼識(shí)別和定位,采用模式識(shí)別的方法,判斷該次采集的圖像是否含有二維碼信息,是否需要進(jìn)行二維碼識(shí)別處理。如果含有二維碼信息,則進(jìn)入二維碼識(shí)別模塊進(jìn)行識(shí)別,并輸出到LCD顯示器以及通過McBSP發(fā)送二維碼信息。

其中,DSP/BIOS系統(tǒng)任務(wù)對(duì)象是被TSK模塊管理的線程。其任務(wù)的優(yōu)先級(jí)高于空閑循環(huán),低于硬件和軟件中斷。TSK模塊根據(jù)其任務(wù)的優(yōu)先級(jí)和當(dāng)前的執(zhí)行狀態(tài)動(dòng)態(tài)地調(diào)度和搶占任務(wù)。DSP/BIOS總共有15個(gè)任務(wù)優(yōu)先級(jí)可用,最低的優(yōu)先級(jí)是保留給空閑循環(huán)的。為此,在設(shè)計(jì)中使用了TI的DSP/BIOS配置工具對(duì)TSK模塊進(jìn)行配置,建立系統(tǒng)任務(wù)tskLoopback用于視頻采集和圖像分析循環(huán)。系統(tǒng)程序的流程如圖5所示。


2.3 圖像處理程序

在圖像處理程序部分,要得到準(zhǔn)確的解碼信息,必須包含兩個(gè)關(guān)鍵組成部分:二維數(shù)據(jù)矩陣碼的定位和二維碼解碼,本設(shè)計(jì)只對(duì)Data Matrix二維碼進(jìn)行解碼。

在圖像定位方面,Data Matrix二維碼自身包含了大量的定位查找信息。圖6所示為一個(gè)Data Matrix二維碼圖像,可以看出在二維碼圖像的底部有一條黑色水平條,而左邊界處有一條黑色垂直條,其寬度均為一個(gè)有效1的寬度,在圖像的右上方為數(shù)據(jù)編碼圖像區(qū)域,而整個(gè)圖像外四周還有一個(gè)寬度為一個(gè)有效1像素4倍的白色連續(xù)區(qū)域,程序中用這些信息定位二維碼圖像,確定二維碼圖像的方向。

在程序中,首先獲取一個(gè)完整的Data Matrix二維碼圖像作為以后識(shí)別和解碼實(shí)時(shí)動(dòng)態(tài)圖像的模板。對(duì)于作為模板的圖像,選擇整個(gè)二維碼圖像區(qū)作為模板的訓(xùn)練區(qū)域,通過圖像坐標(biāo)的變換將其訓(xùn)練為以后在實(shí)時(shí)圖像中定位二維碼圖像的模板。之后,設(shè)置定位時(shí)模式識(shí)別的一些參數(shù),包括旋轉(zhuǎn)角范圍、比例縮放范圍、圖像灰度級(jí)別等,當(dāng)模板和定位工具配置好時(shí),就通過CCD相機(jī)實(shí)時(shí)地獲取圖像進(jìn)行定位和識(shí)別。對(duì)于一個(gè)實(shí)時(shí)進(jìn)來的圖像,首先使用定位工具進(jìn)行二維碼圖像定位,如果定位成功則此圖像中包含二維碼圖像信息,如果定位返回不成功標(biāo)志,則不進(jìn)行下一步,直接再次申請(qǐng)圖像。對(duì)于包含二維碼信息的圖像,在定位工具給出的圖像位置,按照定位工具給出的圖像像素尺寸數(shù)值,讀取原始二進(jìn)制碼流,再根據(jù)Data Matrix的編碼規(guī)則對(duì)二進(jìn)制碼流進(jìn)行解碼,獲取相應(yīng)的字符串進(jìn)行顯示和傳輸。

本文詳細(xì)闡述了基于TMS320DM642的CCD二維碼Data Matrix讀碼器的設(shè)計(jì),包括了硬件和軟件的系統(tǒng)設(shè)計(jì)。按照此設(shè)計(jì)方案設(shè)計(jì)的讀碼器結(jié)構(gòu)簡單,實(shí)現(xiàn)簡便,二維碼識(shí)別率很高。



關(guān)鍵詞: TMS320F281

評(píng)論


技術(shù)專區(qū)

關(guān)閉