楊 帆, 楊曉慧*, 黃 勇
(1.長春理工大學 電子信息學院,吉林 長春 130022;2.吉林博安消防設備有限公司,吉林 長春 130000)
現(xiàn)如今附帶底層圖像處理的智能工業(yè)相機,其為了方便與PC的連接,大部分采用USB接口進行圖像數(shù)據(jù)傳輸。文中設計一個基于FPGA和USB的圖像傳輸平臺,可以將掛在FPGA外部的SDRAM中的圖像數(shù)據(jù)經(jīng)過USB總線傳到上位機。在數(shù)據(jù)傳輸過程中,使用了DMA技術,加速了圖像傳輸?shù)乃俣?,減少了圖像傳輸時對CPU的使用率。
為了驗證圖像采集的正確性,必須做出一套驗證圖像采集正確性的平臺。最為直觀的方法就是讓肉眼可以觀察到圖像。常用的方法有3種:
1)使用VGA顯示器顯示;
2)使圖像輸出為視頻信號,用監(jiān)視器顯示;
3)將圖像傳輸?shù)缴衔粰C顯示。
第1種和第2種方法在實時圖像采集的時候有很大優(yōu)勢,可以一直顯示圖像的各種變化。但是需要硬件一直在刷新操作,一旦停止刷新,圖像將會立即停止顯示。第3種方法難度較大,但可以顯示一幀圖像,也可以實時顯示。當在要求只顯示一幀圖像的時候,硬件可以在顯示完圖像后結束刷新,圖像依然可以用肉眼觀察到,為此,本研究具有很大的研究意義。
本平臺圖像暫存在外掛的SDRAM內(nèi)部,測試圖像為1 024*768的灰度圖像。FPGA內(nèi)部運行NIOS核,所有外設在AVALON總線上統(tǒng)一編址。這樣圖像存儲的地址就已知了,AVALON總線上的任意設備在AVALON總線協(xié)議的看管下,均可以對此圖像數(shù)據(jù)進行讀取。USB圖像傳輸模塊程序為IP核形式的,掛在AVALON總線上,與此模塊相連的兩個DMA控制器分別為數(shù)據(jù)的輸出和輸入通道。DMA控制器的優(yōu)點是快速且不占用CPU時間。圖像傳輸?shù)倪^程:首先,等待上位機發(fā)送圖像傳輸指令;然后,接到圖像傳輸指令后,對輸出DMA通道的參數(shù)進行配置;最后,分塊將圖像寫入USB芯片的FIFO中,由USB芯片將圖像數(shù)據(jù)進行打包發(fā)往上位機。
本系統(tǒng)所采用的FPGA為EP3C16F484C6,該芯片邏輯門豐富引腳眾多,可以同時獨立外掛兩個SDRAM后仍舊擁有多余的引腳。該平臺可以完成圖像采集、圖像處理、雙目定位等功能的研究。
系統(tǒng)結構如圖1所示。
圖1 系統(tǒng)結構圖
USB芯片外掛的EEPROM內(nèi)部存放USB芯片的固件程序,上電后CY7C68013A發(fā)起讀取信號,將固件程序讀到芯片內(nèi)部RAM中開始運行。
USB傳輸采用Cypress公司的CY7C68013A,該芯片內(nèi)部集成了USB2.0收發(fā)器、SIE、增強的8051微控制器和可編程外圍接口,主從端點FIFO結構為其它芯片提供了簡單和無縫的連接接口。高性能成熟的傳輸技術使它成為比較熱門的USB傳輸芯片。
FPGA與USB芯片接口示意圖如圖2所示。
圖2 硬件連接示意圖
Cypress公司提供了一個固件架構,實現(xiàn)了與USB兼容的外圍設備所需的基本功能,只要進行少量的功能設置就可以完成通信功能。本平臺的USB固件中,USB芯片工作在Slave FIFO接口方式上,將端點EP2配置為四緩沖的Auto-Out模式,將端點EP6配置為四緩沖的Auto-In模式,微控制器不參與數(shù)據(jù)傳輸過程。
PLLTest模塊為系統(tǒng)提供多種時鐘,SDRAM正常工作時所需要的時鐘要有一定的偏移,如果不能提供這樣的偏移,則SDRAM無法正常工作。FLASH接口與外掛的EPCS芯片相連,保證程序掉電之后可以保存。
FPGA頂層原理圖如圖3所示。
圖3 FPGA頂層原理圖
IsFLAGB()子函數(shù)為等待上位機發(fā)送的數(shù)據(jù),緊接著開始發(fā)送圖像數(shù)據(jù),圖像數(shù)據(jù)為1 024*768*8的灰度圖像,一次發(fā)送512個字節(jié)包,所以,發(fā)送一陣圖像需要發(fā)送1 536次。程序如下:
根據(jù)網(wǎng)上的一些資料,本平臺使用的驅動是直接在LabView環(huán)境下通過NI-VISA自帶的驅動向導自動生成USB驅動程序,完全避開了以前開發(fā)USB驅動程序的復雜性,大大縮短了開發(fā)周期。
一個USB設備與電腦連接以后,會分配一個VID和PID。NI-VISA驅動向導根據(jù)這兩個值生成驅動程序,運行Driver Wizard根據(jù)向導提供的步驟可以非常容易地獲取需要的驅動程序。
NI-VISA(Virtual Instrument Software Architecture)是美國國家儀器公司開發(fā)的一種用來與各種儀器總線進行通信的高級應用編程接口。在LabVIEW 上使用NI-VISA進行USB通信時,使用USB RAW設備,USB RAW設備是指除了明確符合USB TMC規(guī)格的儀器之外的任何USB設備,通信時需要進行配置。
LabView測試程序采用NI-VISA接口,可以非常容易地與USB設備連接獲得通信。NI-VISA接口通過USB設備的VID和PID的值尋址到待通信的USB設備,然后首先打開USB傳輸,先發(fā)送若干個字節(jié),接著等待下位機發(fā)送而來的數(shù)據(jù),最后關閉USB傳輸。接到的數(shù)據(jù)通過后來的轉換形成數(shù)組,最后轉成圖像,顯示非常直觀[5-8]。
上位機程序如圖4所示。
圖4 上位機程序
本平臺是以后實驗的基礎,基于本平臺可以進行下位機圖像處理及圖像采集的開發(fā)工作,也可以進行雙目視覺定位系統(tǒng)的開發(fā)工作。后期為了驗證此平臺方案的實用性,使用DSP控制器同樣利用本實驗的研究思路,又做了另一款基于DSP和USB的圖像傳輸平臺。
[1]余志榮,楊莉.基于 NI-VISA與LabVIEW 的 USB接口應用設計[J].單片機與嵌入式系統(tǒng)應用,2007(1):66-69.
[2]楊樂平,李海濤,趙勇,等.LabVIEW高級程序設計[M ].北京:清華大學出版社,2003.
[3]何維.一種高速數(shù)據(jù)采集及存儲系統(tǒng)的研究[D]:[碩士學位論文].西安:西北工業(yè)大學,2007.
[4]王文杰.USB2_0加密接口芯片的設計及其FPGA驗證[D]:[碩士學位論文].長沙:中南大學,2008.
[5]趙彥全.基于FX2的數(shù)據(jù)源設計與USB2_0高速傳輸探討[D]:[碩士學位論文].北京:中國科學院電子學研究所,2006.
[6]岡薩雷斯.數(shù)字圖像處理[M].2版.北京:電子工業(yè)出版社,2004.
[7]段雷.基于DSP+FPGA的圖像處理電路板硬件設計[D]:[碩士學位論文].成都:西南交通大學,2008.
[8]閆豐,吳川,王延杰.一種基于FPGA的實時圖像處理系統(tǒng)[J].長春工業(yè)大學學報:自然科學版,2003,24(4):50-52.