基于DSPF28335和OV7620的實(shí)時(shí)嵌入式機器視覺(jué)裝置
摘要:為了解決機器視覺(jué)中實(shí)時(shí)性差和成本高的問(wèn)題,設計了以DSP28335芯片為核心,OV7620 CMOS彩色圖像傳感器的實(shí)時(shí)嵌入式機器視覺(jué)裝置。該裝置應用于檢測液位,設計中以彩色圖像數據作為研究對象,通過(guò)顏色識別進(jìn)行定位;利用DSP28335的浮點(diǎn)運算單元進(jìn)行處理及其支持高達1 Mb/s的數據速率CAN模塊進(jìn)行輸出定位結果。測試表明該裝置具有實(shí)時(shí)性強、精度高、體積小、成本低、設計靈活。
本文引用地址:http://dyxdggzs.com/article/201610/305798.htm0 引言
目前運用于檢測液位的嵌入式實(shí)時(shí)機器視覺(jué)裝置要么是定點(diǎn)CPU,要么研究對象是黑白圖像,且定位與測量算法的數據運算量較大,難以滿(mǎn)足嵌入式機器視覺(jué)系統定位與測量功能的實(shí)時(shí)性和準確性要求,并且價(jià)格昂貴。
鑒于定位的精確度、自適應性、實(shí)時(shí)性和成本問(wèn)題。本文設計了基于由TI公司新推出的一款具有32位單精度浮點(diǎn)運算數字信號處理器TMS320F28335和CMOS彩色圖像傳感器OV7620所構建硬件平臺的嵌入式機器視覺(jué)裝置。設計中利用主頻高達150 MHz,指令周期為6.67 ns的DSP28335對CMOS彩色圖像傳感器進(jìn)行采集控制;并提出的液位檢測算法,是以彩色圖像數據作為研究對象,對液體顏色進(jìn)行識別,大大提高了采集速度和識別速度以及精確度,同時(shí)解決了在復雜的顏色環(huán)境下難以定位液位的問(wèn)題。
1 系統硬件設計
1.1 系統硬件結構
系統硬件結構如圖1所示,包括圖像采集,圖像處理和圖像傳輸。圖像傳感器負責圖像的采集,采集的圖像數據由主控制器進(jìn)行實(shí)時(shí)的讀取和處理。主控制器總線(xiàn)接口可以把多個(gè)裝置連接起來(lái)組成一個(gè)總的系統。本文設計選用的是TI公司DSP中的TMS320F28335作為主處理器,為機器視覺(jué)裝置的CPU,用來(lái)進(jìn)行數據的采集和處理。TMS320F28335是TI公司新推出的一款浮點(diǎn)型數字信號處理器,集成32位單精度浮點(diǎn)運算單元(FPU),最高運算速度達150 MIPS。指令周期為6.67 ns,集成了256K×16 b FLASH,1路I2C通信接口,3路異步串口,2路CAN總線(xiàn)通信接口等資源。具有精度高,成本低,功耗小,外設集成度高,數據及程序存儲量大和A/D轉換更加精確快速等優(yōu)點(diǎn),為工業(yè)視覺(jué)應用提供更加優(yōu)秀的性能和更加簡(jiǎn)單的軟件設計。

選用OV7620作為圖像傳感器,其是CMOS黑白/彩色圖像傳感器。傳感器包括一個(gè)640x480分辨率的圖像陣列,內置10位雙通道A/D轉換器,輸出8位圖像數據;具有自動(dòng)白平衡和自動(dòng)增益控制,能進(jìn)行對比度、亮度、γ校正、飽和度等多種調節功能;OV7620支持隔行和連續兩種掃描方式,QVGA與VGA兩種圖像格式;幀速率為30 f/s;數據格式包括RGB,YcrCb和YUV三種;內部有I2C可編程,可以調整攝像頭的參數,比如最大灰度,對比度,曝光率控制等等。其本質(zhì)是SCCB協(xié)議的寄存器寫(xiě)入,需要對攝像頭做跳線(xiàn)處理,并用MCU的I/O口模擬SCCB協(xié)議。本設計采用的是分辨率為640x480,RGB格式,8 b的數據輸出格式。OV7620圖像傳感器提供信號包括:VSYNC(垂直同步脈沖幀信號)、HREF(水平有效數據輸出)、PCLK(像素時(shí)鐘)、16 b數據總線(xiàn)。
SRAM和FLASH分別選用IS61LV51216和SST39VF160,分別用作數據存儲器和程序存儲器,采用FIFO模式對緩存數據進(jìn)行讀取。由于系統運行時(shí),需要對SRAM進(jìn)行頻繁讀/寫(xiě)操作,因此SRAM選用ISS的一個(gè)快速存儲器件IS61LV51216,它是一個(gè)8 Mb容量功耗低、集成度高,結構為512K×16 b字長(cháng)的高速率SRAM。SST39VF160是SST公司的一個(gè)多功能FLASH存儲器,存儲容量為1M×16 b,工作電壓為2.7~3.6 V,14 MHz時(shí)等待電流為4μA,有效電流為12mA,自動(dòng)低功耗模式為4μA;字編程時(shí)間14μs,讀訪(fǎng)問(wèn)時(shí)間90ns,芯片擦除時(shí)間70ms,扇區擦除時(shí)間18ms。
1.2 DSP28335與OV7620的硬件連接
通用I/O口GPIO71、GPIO70分別與SDA、SCL連接,作為I2C通信;通用I/O口GPIO67作為PCLK的I/O查詢(xún);GPIO69捕抓HREF的上升沿;GPIO68捕抓VSYNC的下降沿;通用I/O口GPIO66作為OV7620的硬件復位;通用I/O口GPIO72~GPIO79作為OV7620的數據輸入。DSP28335與OV7620的連接圖如圖2所示。OV7620要連接相當的外圍器件才能正常工作。需要5 V電源供電,27 MHz晶振,工作時(shí)功耗120 mW,待機時(shí)功耗10 μW;其中,晶振電路的設計中需要注意一個(gè)問(wèn)題:必須在OV7620的XCLK1和XCLK2之間串聯(lián)一個(gè)1 MΩ的反饋電阻。否則OV7620有時(shí)會(huì )出現不能正常工作的現象,原因是OV7620不能正常起振。

2 機器視覺(jué)裝置的軟件設計
2.1 機器視覺(jué)采集設計
如圖3為機器視覺(jué)裝置的采集程序流程圖。首先進(jìn)行系統的初始化工作,當檢測到VYSN下降沿時(shí),發(fā)出幀開(kāi)始信號,檢測到HREF上升沿時(shí),發(fā)出行開(kāi)始信號。通過(guò)逐行掃描的方式,從y0~y7端口接收像素數據信息,其順序為B-G-R-G。其中GPIO68檢測到下降沿時(shí)意味著(zhù)一幅圖像的開(kāi)始,而GPIO69用于執行一行圖像數據的開(kāi)始。

STMF28335通過(guò)對OV7620的PCLK計數,當計數值到達640時(shí),GPIO69計數溢出中斷發(fā)生,表示一行圖像數據采集時(shí)間到。而GPIO69用于對OV7620的HREF信號進(jìn)行計數,確定一幅圖像是否采集完畢。OV7620的輸出分辨率可設置為640x480,DSP28335需要接收的數據就是307 200個(gè)8位的數據,為了提高實(shí)時(shí)性且不影響圖像處理數據和檢測要求。DSP28335選擇性地接收數據,利用程序編寫(xiě),每行每隔4個(gè)數據作為有效數據接收,因此每行的數據個(gè)數變?yōu)?40/4=160,然后每隔4行作為有效行接收,因此行數變?yōu)?80/4=120行,其分辨率變?yōu)?60x120,總數據為19 200;并且采用了FIFO模式對數據進(jìn)行緩存和讀取。這樣的做法既能達到圖像的清晰要求,同時(shí)很好地提高了實(shí)時(shí)性。
評論