一款基于DSP的實(shí)時(shí)嵌入式機(jī)器視覺系統(tǒng)設(shè)計(jì)
摘要:為了解決機(jī)器視覺中實(shí)時(shí)性差和成本高的問題,設(shè)計(jì)了以DSP28335芯片為核心,OV7620 CMOS彩色圖像傳感器的實(shí)時(shí)嵌入式機(jī)器視覺裝置。該裝置應(yīng)用于檢測(cè)液位,設(shè)計(jì)中以彩色圖像數(shù)據(jù)作為研究對(duì)象,通過顏色識(shí)別進(jìn)行定位;利用DSP28335的浮點(diǎn)運(yùn)算單元進(jìn)行處理及其支持高達(dá)1 Mb/s的數(shù)據(jù)速率CAN模塊進(jìn)行輸出定位結(jié)果。測(cè)試表明該裝置具有實(shí)時(shí)性強(qiáng)、精度高、體積小、成本低、設(shè)計(jì)靈活。
本文引用地址:http://www.ex-cimer.com/article/234976.htm0 引言
目前運(yùn)用于檢測(cè)液位的嵌入式實(shí)時(shí)機(jī)器視覺裝置要么是定點(diǎn)CPU,要么研究對(duì)象是黑白圖像,且定位與測(cè)量算法的數(shù)據(jù)運(yùn)算量較大,難以滿足嵌入式機(jī)器視覺系統(tǒng)定位與測(cè)量功能的實(shí)時(shí)性和準(zhǔn)確性要求,并且價(jià)格昂貴。
鑒于定位的精確度、自適應(yīng)性、實(shí)時(shí)性和成本問題。本文設(shè)計(jì)了基于由TI公司新推出的一款具有32位單精度浮點(diǎn)運(yùn)算數(shù)字信號(hào)處理器和CMOS彩色圖像傳感器OV7620所構(gòu)建硬件平臺(tái)的嵌入式機(jī)器視覺裝置。設(shè)計(jì)中利用主頻高達(dá)150 MHz,指令周期為6.67 ns的DSP28335對(duì)CMOS彩色圖像傳感器進(jìn)行采集控制;并提出的液位檢測(cè)算法,是以彩色圖像數(shù)據(jù)作為研究對(duì)象,對(duì)液體顏色進(jìn)行識(shí)別,大大提高了采集速度和識(shí)別速度以及精確度,同時(shí)解決了在復(fù)雜的顏色環(huán)境下難以定位液位的問題。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)如圖1所示,包括圖像采集,圖像處理和圖像傳輸。圖像傳感器負(fù)責(zé)圖像的采集,采集的圖像數(shù)據(jù)由主控制器進(jìn)行實(shí)時(shí)的讀取和處理。主控制器總線接口可以把多個(gè)裝置連接起來組成一個(gè)總的系統(tǒng)。本文設(shè)計(jì)選用的是TI公司DSP中的TMS320F28335作為主處理器,為機(jī)器視覺裝置的CPU,用來進(jìn)行數(shù)據(jù)的采集和處理。TMS320F28335是TI公司新推出的一款浮點(diǎn)型數(shù)字信號(hào)處理器,集成32位單精度浮點(diǎn)運(yùn)算單元(FPU),最高運(yùn)算速度達(dá)150 MIPS。指令周期為6.67 ns,集成了256K×16 b FLASH,1路I2C通信接口,3路異步串口,2路CAN總線通信接口等資源。具有精度高,成本低,功耗小,外設(shè)集成度高,數(shù)據(jù)及程序存儲(chǔ)量大和A/D轉(zhuǎn)換更加精確快速等優(yōu)點(diǎn),為工業(yè)視覺應(yīng)用提供更加優(yōu)秀的性能和更加簡(jiǎn)單的軟件設(shè)計(jì)。
選用OV7620作為圖像傳感器,其是CMOS黑白/彩色圖像傳感器。傳感器包括一個(gè)640x480分辨率的圖像陣列,內(nèi)置10位雙通道A/D轉(zhuǎn)換器,輸出8位圖像數(shù)據(jù);具有自動(dòng)白平衡和自動(dòng)增益控制,能進(jìn)行對(duì)比度、亮度、γ校正、飽和度等多種調(diào)節(jié)功能;OV7620支持隔行和連續(xù)兩種掃描方式,QVGA與VGA兩種圖像格式;幀速率為30 f/s;數(shù)據(jù)格式包括RGB,YcrCb和YUV三種;內(nèi)部有I2C可編程,可以調(diào)整攝像頭的參數(shù),比如最大灰度,對(duì)比度,曝光率控制等等。其本質(zhì)是SCCB協(xié)議的寄存器寫入,需要對(duì)攝像頭做跳線處理,并用MCU的I/O口模擬SCCB協(xié)議。本設(shè)計(jì)采用的是分辨率為640x480,RGB格式,8 b的數(shù)據(jù)輸出格式。OV7620圖像傳感器提供信號(hào)包括:VSYNC(垂直同步脈沖幀信號(hào))、HREF(水平有效數(shù)據(jù)輸出)、PCLK(像素時(shí)鐘)、16 b數(shù)據(jù)總線。
SRAM和FLASH分別選用IS61LV51216和SST39VF160,分別用作數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,采用FIFO模式對(duì)緩存數(shù)據(jù)進(jìn)行讀取。由于系統(tǒng)運(yùn)行時(shí),需要對(duì)SRAM進(jìn)行頻繁讀/寫操作,因此SRAM選用ISS的一個(gè)快速存儲(chǔ)器件IS61LV51216,它是一個(gè)8 Mb容量功耗低、集成度高,結(jié)構(gòu)為512K×16 b字長的高速率SRAM。SST39VF160是SST公司的一個(gè)多功能FLASH存儲(chǔ)器,存儲(chǔ)容量為1M×16 b,工作電壓為2.7~3.6 V,14 MHz時(shí)等待電流為4μA,有效電流為12mA,自動(dòng)低功耗模式為4μA;字編程時(shí)間14μs,讀訪問時(shí)間90ns,芯片擦除時(shí)間70ms,扇區(qū)擦除時(shí)間18ms。
1.2 DSP28335與OV7620的硬件連接
通用I/O口GPIO71、GPIO70分別與SDA、SCL連接,作為I2C通信;通用I/O口GPIO67作為PCLK的I/O查詢;GPIO69捕抓HREF的上升沿;GPIO68捕抓VSYNC的下降沿;通用I/O口GPIO66作為OV7620的硬件復(fù)位;通用I/O口GPIO72~GPIO79作為OV7620的數(shù)據(jù)輸入。DSP28335與OV7620的連接圖如圖2所示。OV7620要連接相當(dāng)?shù)耐鈬骷拍苷9ぷ?。需? V電源供電,27 MHz晶振,工作時(shí)功耗<120 mW,待機(jī)時(shí)功耗<10 μW;其中,晶振電路的設(shè)計(jì)中需要注意一個(gè)問題:必須在OV7620的XCLK1和XCLK2之間串聯(lián)一個(gè)1 MΩ的反饋電阻。否則OV7620有時(shí)會(huì)出現(xiàn)不能正常工作的現(xiàn)象,原因是OV7620不能正常起振。
2 機(jī)器視覺裝置的軟件設(shè)計(jì)
2.1 機(jī)器視覺采集設(shè)計(jì)
如圖3為機(jī)器視覺裝置的采集程序流程圖。首先進(jìn)行系統(tǒng)的初始化工作,當(dāng)檢測(cè)到VYSN下降沿時(shí),發(fā)出幀開始信號(hào),檢測(cè)到HREF上升沿時(shí),發(fā)出行開始信號(hào)。通過逐行掃描的方式,從y0~y7端口接收像素?cái)?shù)據(jù)信息,其順序?yàn)锽-G-R-G。其中GPIO68檢測(cè)到下降沿時(shí)意味著一幅圖像的開始,而GPIO69用于執(zhí)行一行圖像數(shù)據(jù)的開始。
STMF28335通過對(duì)OV7620的PCLK計(jì)數(shù),當(dāng)計(jì)數(shù)值到達(dá)640時(shí),GPIO69計(jì)數(shù)溢出中斷發(fā)生,表示一行圖像數(shù)據(jù)采集時(shí)間到。而GPIO69用于對(duì)OV7620的HREF信號(hào)進(jìn)行計(jì)數(shù),確定一幅圖像是否采集完畢。OV7620的輸出分辨率可設(shè)置為640x480,DSP28335需要接收的數(shù)據(jù)就是307 200個(gè)8位的數(shù)據(jù),為了提高實(shí)時(shí)性且不影響圖像處理數(shù)據(jù)和檢測(cè)要求。DSP28335選擇性地接收數(shù)據(jù),利用程序編寫,每行每隔4個(gè)數(shù)據(jù)作為有效數(shù)據(jù)接收,因此每行的數(shù)據(jù)個(gè)數(shù)變?yōu)?40/4=160,然后每隔4行作為有效行接收,因此行數(shù)變?yōu)?80/4=120行,其分辨率變?yōu)?60x120,總數(shù)據(jù)為19 200;并且采用了FIFO模式對(duì)數(shù)據(jù)進(jìn)行緩存和讀取。這樣的做法既能達(dá)到圖像的清晰要求,同時(shí)很好地提高了實(shí)時(shí)性。
評(píng)論