基于DSP的圖象采集與處理系統的設計
圖像處理系統的一個關鍵問題就是數據量龐大,數據處理相關性高,實時實現比較困難。即使采用高速單片機也無法滿足實時處理的需求,而DSP芯片則具有速度快,信號處理功能強大,實時性好等特點,因此,將DSP用于圖像處理可使這一難題得到較好的解決。
1 系統構成
本系統采用基于CameraLink接口的圖像輸出相機。DSP采用TI的TMS320C6711,這是一種高性能DSP處理器,其工作頻率為150 MHz,最大處理能力高達900MFLOps,該DSP既可滿足高速處理要求,又可滿足高精度運算時的浮點要求。
本圖像處理系統主要包括圖像采集模塊(由MDR26連接器DS90CR288A和IDT72V283組成)、圖像處理模塊(由DSP器件TMS320C6711、SDRAM圖像存儲器和FLASH程序存儲器等組成)以及圖像輸出系統(USB和FPGA)等。該系統的構成原理框圖如圖1所示。其基本工作過程是將高速CCD相機采集到的圖像數據通過電纜接入MDR26連接器,然后再接入LVDS線路接收器DS90CR288A以將其恢復成并行TTL信號,同時分離出8位圖像數據和3個控制信號。而同步FIFO作為數據緩存則不會造成數據的丟失。當其數據達到半滿時,HF有效,此時可觸發DSP中斷以通知DSP將FIFO中的數據取走,并開始進行數據處理。DSP與USB的數據傳遞建立在消息和中斷信號基礎上,當DSP或USB任何一方有數據發送時,發送方先將數據和消息送到FPGA,然后用I/O腳觸發中斷至接收方,接收方接到中斷后再到FPGA中讀取消息,然后根據消息的內容讀取數據。
?
本系統設計充分利用了TMS320C6711中EDMA的優勢,并用EDMA來進行整個系統的數據傳輸。由于EDMA可以進行背景操作,因而其整個采樣和輸出過程基本不影響操作。同時,也利用了TMS320C6711的二級緩存結構,再加上系統外圍采用高速的數據存儲器芯片,因而大大提高了整個系統的處理速度。
2 圖像采集與處理
2.1 Camera Link技術
Camera Link技術的核心是美國NS(NationalSemiconductor)提出的一種高速數據傳輸方法—Channel Link傳輸方法技術,該技術主要用于數字圖像數據的高速傳輸。該技術采用LVDS信號模式,但比先前的RS644傳輸方法具有明顯的優點。LVDS(Low Voltage Differential Signaling)是最近發展起來的一種利用低電壓差分信號模式的傳輸技術。LVDS信號是以+1.2 V為基準的300 mV差分形式,其低電壓擺幅差分模式具有高速傳輸數據時交叉干擾小,EMI干擾小等特點。ChannelLink采用LVDS方式傳輸數據,它將28位數據轉換成串行方式在4對線路上進行傳輸,然后再用另外一對線路傳輸時鐘信號,其最高傳輸率可達2.38 Gb/s。傳輸距離可達10 m。NS的LVDS發送器DS90CR287可用于完成并行TTL/CMOS信號到LVDS信號的轉換,LVDS線路接收器DS90CR288則用來將LVDS信號還原成并行TTL/CMOS信號。
2.2 TMS320C6711 DSK簡介
本系統采用美國TI公司的TMS320C6711DSK(DSP Starter Kit)開發工具。這是由TI公司提供的一套獨立的C6000開發實驗平臺,這種開發工具集成了一些基本的應用電路,它既可以幫助用戶評估和開發C6000系列DSP的功能,也可以作為DSP初學者的學習工具。它的硬件由6711 DSP構成,主頻為150 MHz,憑借其二級高速緩存及VLIW (very long instruction word)架構,每秒可執行900萬次浮點運算(MFLOPS)。DSK可以提供雙時鐘,通過設定可使CPU工作在150 MHz,而使擴展存儲器接口(EMIF)工作在100 MHz。 DSK上設計有16 M字節/100 MHz的SDRAM和128 K字節的ROM。SDRAM由TMS320C6711為其產生所需的控制信號和刷新信號。最大刷新周期可達15.625 ms。HPI接口可通過并口連接所有的DSP存儲空間,并有子卡接口所需的存儲器和外圍連接接口及嵌入式JTAG仿真功能。
2.3 圖像采集與處理接口設計
根據CameraLink標準,CCD輸出圖像數據經Camera link后,可由LVDS線路接收器DS90CR288將其恢復成并行的TTL/CMOS信號,并分離出8位圖像數據和3個控制信號(LVAL,DVAL,STROBE)接人同步FIFO(IDT72V283),再通過DSP的外部存儲器接口(EMIF)接入TMS320C6711DSK開發板進行圖像數據處理。其具體的圖像采集電路原理圖如圖2所示。
?
3 圖像輸出系統
3.1 USB芯片AN2131QC
USB芯片選用CYPRESS半導體公司的EZUSB(AN2131QC)芯片,AN2131 QC具有一個USB接口、8位數據線和16位地址線,以及3個8位I/O端口,其片內帶有增強型8051核,該8051核與傳統8051的區別在于其速度較快。傳統的8051標準指令周期是12個CLOCK,而在這里只需要4個CLOCK,因而大大提高了指令執行的時間。由于其帶有增強8051核,故可以將固件儲存在主機上,每次上電時,再將固件調用到芯片的RAM存儲器單元,這樣可使固件升級非常容易。另外,CYPRESS公司還提供了一個不需要修改就可以使用的驅動程序ezusb.Sys,這個驅動程序允許任何傳輸類型與EZ-USB芯片構建的系統進行通信。CPU的時鐘頻率為24 MHz,使用RAM作為程序存貯器,其8051程序代碼及設備描述表可以每次從主機中下載。
3.2 圖像輸出接口設計
TMS320C6711與AN2131QC采用并口方式進行通訊。DSP為32位處理器,其并行接口數據線為32根,而AN213 I QC的并行口為8位,若將DSP32根數據線中的8根數據線直接與USB并口相連,則DSP傳送一個32位數據需進行4次操作,這顯然會影響系統的效率。因此,可采用8位/32位數據線轉換和數據緩沖設備來將兩者相連??紤]到性能價格等因素,本設計采用FPGA作為兩者之間的緩沖設備,實現從DSP到USB數據傳輸緩沖以及32位數據線轉8位數據線功能。FPGA采用X ilinx公司SpartanIIE系列的XC2SSOE芯片作為轉換器。其圖像傳輸電路原理圖如圖3所示。
?
4 系統軟件設計
4.1 DSP的軟件開發
TMS320C6000軟件開發的一切過程都可在CCS集成環境下進行,包括項目的建立、源代碼的編輯以及程序的編譯和調試。圖4所示是TMS320C6000的軟件開發流程圖。其中黑體部分是開發C代碼的常規流程,其它功能可用于輔助和加速軟件開發過程。
?
該CCS能對用戶開發的源代碼進行優化。目的是縮短代碼長度并提高代碼執行效率。其中,C優化器對C源代碼進行優化,所進行的優化包括針對C代碼的一般優化和針對C6000的優化,如重新安排語句和表達式、把變量分配給寄存器、打開循環和模塊級優化(把若干個文件組成1個模塊進行優化)等。C優化器完成的最重要的優化處理是軟件流水(software pipeline)。軟件流水是專門針對循環代碼的一種優化技術,利用軟件流水可以生成非常緊湊的循環代碼,這也是C6000的C編譯器能夠達到較高編譯效率的主要原因。
匯編優化器是C6000代碼產生工具內極具特色的一部分。它在DSP業界首創了對線性匯編代碼自動進行優化的技術。線性匯編語言是為簡化C6000匯編語言程序的開發而設計的,它不是獨立的編程語言。它可用用戶編寫的線性匯編代碼作為輸入,同時產生一個標準匯編代碼作為輸出。與C6000的標準匯編語言相比,采用線性匯編不需要考慮并行指令安排、指令延遲和寄存器,而由匯編優化器自動完成,其所產生的代碼效率可以達到人工編寫代碼效率的95%-100%,同時還可以降低編程工作量,縮短開發周期。
C6000程序的調試和仿真有兩種模式:軟件仿真和硬件仿真。軟件仿真時,其程序的執行完全靠主機上的仿真軟件模擬,程序單步或者運行的結果都是仿真軟件“計算”出來的。而硬件仿真需要目標板。仿真程序利用開發系統將代碼下載到DSP,程序是在芯片上直接運行的。仿真軟件只是把運行結果讀出來顯示。軟件仿真無需目標板就可以開始軟件編程,但仿真速度較慢,而且無法仿真某些外設的功能。硬件仿真的優點是仿真速度快,仿真結果與實際結果一致。
4.2 系統的上電引導
C6711的引導裝載方式有三種:一是無引導,二是ROM/FLASH引導,三是主機引導。本設計采用FLASH引導。根據DSK開發板上EMIF與FIASH硬件電路連接設計的引導程序如圖5所示。
?
(1)FLASH存儲器的擦除
擦除FLASH存儲器的關鍵源代碼如下:
?
至此FLASH內部地址已經映射到C6711的CE1空間,其開始地址為 0X90000000H,因此其FLASH_ADR1,FLSH_ADR2的定義如下:
#define FLASH_ADR1 0X90000555
#define FLASH_ADR2 0X900002AA
(2)匯編源代碼文件
本引導代碼的主要功能是將用戶程序段從FLASH復制到DSP內部RAM中。然后再跳轉到程序的入口處開始執行主程序。這里采用的是EDMA快速實現DSP存儲空間數據搬移的方式。基于EDMA傳輸參數的設置方法如表1所列。其核心引導程序如下:
?
?
啟動EDMA復制主程序段:CPU可以通過寫事件置位寄存器(ESR)啟動一個EDMA通道,ESR中某一位寫1時,將強行觸發對應的事件。程序如下:
?
(3)鏈接命令文件
系統中的鏈接命令文件(boot.cmd)如下:
?
VEC,PMEM代表內部RAM的兩個存儲空間,而CEVEC,CEPMEM代表FLASH內的兩塊存儲空間,對目標文件中各段的加載地址和運行地址可在SECTIONS段實現:
?
引導裝載是設計DSP系統所必需的過程。本設計采用EDMA方式來實現程序的快速搬移,故可在自制的PCB板上正確地實現脫機運行。
(4)對DSP寄存器的設置
只有對相應的寄存器實現EMIF初始化,DSP才能訪問外部存儲器的數據,其源代碼如下:
?
5 結束語
本文介紹了為了在線線圈直徑的測量而開發線陣CCD圖像采集和處理設備的具體方法,該系統利用TI公司的高性能浮點DSP-TMS320C6711實現了對dalsa公司的Piranha2 P2—2x Camera輸出數據的采集與處理。給出了一種通用的實時圖像處理系統,并詳細討論了系統的具體結構。在該系統中運行一些基本的圖像處理(銳化,平滑,邊緣檢測)和壓縮算法(JPEG,H.263),都能達到實時處理的目的。但在實際應用中,由于要求進行連續采集與處理,最好能采用多個DSP并行工作方式。若物體的運動速度更快或圖像處理更復雜時,還應采用性能更強的DSP(如TI的64X系列DSP或采用多個DSP并行處理)。另外,在DSP與USB通訊設計中引人FPGA可使系統的設計更加靈活,同時也可為系統以后的擴展提供方便。
評論
查看更多