1 引 言
本文從實時性和大容量兩方面介紹了在某型導彈景象匹配制導系統中通用計算機上加入DSP加速卡實現的圖像采集系統。利用DSP芯片的高速處理特性完成大部分的圖像處理工作,上位機只完成輔助操作和存儲系統。這種方法發揮了DSP的高速性能又具有相當大的靈活性,而且開發工具比較完善。導彈景象匹配制導系統在傳輸實時景物圖像時要求足夠的傳輸速度,PCI總線速度最高可達528MB/S(66MHz、64位)。這是其他總線無法比擬的速度,如ISA總線速度只有5MB/S。另外,該系統中DSP的可擴展存儲空間高達1GB。這完全可以滿足導彈景象匹配制導系統中圖像處理的需要。
2 基于PCI總線的DSP圖像采集系統
本系統主要用于敏感導彈飛行航線下面或目標地區的實時景物圖像,系統拍下敏感到的圖像數據并傳送到DSP進行處理,然后經PCI總線把處理后的數據上傳到上位機,與預存在相關器中的基準景物圖像比較,以獲取誤差信號,形成導引指令,控制導彈飛向目標。當然這套系統也可用于其他的視頻會議、視頻點播以及監控系統,如大型超市監控、寫字樓監控等,其硬件系統基本一致,只是軟件功能有所區別。
系統采用了TI公司C6000系列DSP中的TMS320C6211[1] [2]作為系統的CPU。圖像數據通過光學成像或微波成像裝置采集并輸出模擬圖像信號。這些信號經視頻解碼芯片轉換為數字信號;再經FIFO輸入DSP進行圖像的增強、分割、特征提取和數據壓縮等;然后輸出信號經PCI解碼芯片轉換為符合PCI總線規范的標準信號,通過PCI總線接口傳到上位機。系統的控制邏輯由EPLD(Erasable Programmable Logic Device)控制器實現。系統結構圖如圖1所示:
(1)視頻解碼芯片
系統中采集的圖像信號采用Philips公司的SAA7111A[3]完成A/D轉換。SAA7111A允許四路模擬視頻輸入,具有兩個模擬處理通道,支持四路CVBS模擬信號或二路Y/C模擬信號或二路CVBS信號和一路Y/C信號。SAA7111A對攝像頭輸入的標準PAL格式的模擬圖像信號進行A/D轉換,然后輸出符合CCIR601格式的4:2:2的16位YUV數據到FIFO。其中亮度信號Y為8位、色度信號Cr和Cb合為8位數據。FIFO采用IDT公司的IDT72V215LB芯片,FIFO的深度為512×18bit,支持STANDARD(標準)和FWFT(First Word Fall-Through,首字直接通過)兩種工作模式。按照CCIR601[4]格式,YUV圖像分辨率為720×576象素,當按行輸出時,SAA7111A輸出數據流大小為:720×16=1440bit。因為DSP通過32位的SBSRAM接口與FIFO通信,故YUV數據寫入FIFO時需要在FIFO之間實現乒乓切換。這時一行720×16bit的數據在兩片FIFO中存儲變為360×32bit。兩片FIFO可以滿足上述要求。FIFO的初始化及時序由
EPLD實現。
(2)DSP圖像處理模塊
TMS320C6211是TI公司發布的面向視頻處理領域的新款高速數字處理芯片,適用于移動通信基站、圖像監控、雷達系統等對速度要求高和高度智能化的應用領域。存儲空間分兩部分:
運行過程的臨時數據存在Winbond公司的兩片128Mbit的W981216BH[5]中;系統程序則固化在FLASH存儲器中,該存儲器選用AMD公司生產的8Mbit的AM29LV800B。Flash存儲器具有在線重寫入功能。這對系統啟動程序的修改和升級都帶來了很大的方便。基于TMS320C6211的圖像處理系統框圖如圖2所示:
TMS320C6211 DSP的高速性能主要體現在以下方面:
①TMS320C6211的存儲空間最大可擴展到1GB,完全可以滿足各種圖像處理系統所需的內存空間,而且其最高時鐘可達200MHz,峰值性能可達1600MIPS(百萬條指令/秒)、2400MOPS(百萬次操作/秒)。
②并行處理結構。TMS320C6211芯片內有8個并行處理單元,分為相同的兩組,并行結構大大提高芯片的性能。
③芯片體系采用VelociTI結構。VelociTI是一種高性能的甚長指令字(VLIW)結構,單指令字字長為32bit,8個指令組成一個指令包,總字長為256bit。即每秒鐘可以執行8條指令。VelociTI結構大大提高了DSP芯片的性能。
④采用流水線操作實現高速度、高效率。TMS320C6211只有在流水線充分發揮作用的情況下,才能達到最高的峰值性能。與其他系列DSP相比,優勢在于簡化了流水線的控制以消除流水線互鎖,并增加流水線的深度來消除傳統流水線的取指、數據訪問和乘法操作上的瓶頸。
本系統DSP主要完成從FIFO讀出數據的處理以及壓縮等。數據處理由自行編寫的算法實現,數據壓縮算法采用JPEG(Joint Photographic Expert Group)標準。當光學成像或微波成像裝置采集速度為每秒25幀圖像時,它留給DSP處理的時間最多為每幀40ms。如果考慮系統有一定的延時以及處理后圖像的存儲時間,那么DSP處理一幅圖像時間不能超過30ms。按照C6211的處理速度,在30ms內可以處理48M(0.03×1600MIPS)條指令。DSP讀出FIFO中的行數據并存入SDRAM,一幀圖像有576行,在最后一行時會收到系統的幀中斷,這時SDRAM中的圖像數據總共有1440×576=810KB。讓C6211用36M條指令周期的時間處理810KB的數據顯然綽綽有余。粗略的計算過程如下:
系統采用快速DCT(離散余弦變換),每8×8矩陣需要11次乘法、29次加法,因此一幀圖像的FDCT,共需要(11+29)×720×576×2/64=518400個指令周期;對于量化模塊,每8×8矩陣需要64個量化指令周期,一幀需要64×720×576×2/64=829440個指令周期;對于編碼部分,假設編碼后非0元素占25%,對每8×8矩陣進行Zig-Zag掃描、編碼估計需要120個指令周期,則共需120×720×576×2/64=1555200個指令周期。按以上計算,在系統中進行JPEG編碼大約需要2903040個指令周期,耗時19.3536ms(TMS320C6211工作在150MHz時)。可以看出,實際需要的指令遠小于36M條,而時間也遠小于30ms,DSP完全可以實時處理從FIFO傳過來的數據。
(3)PCI總線模塊
PCI總線規范吸引人的地方不僅是其高速度,更在于它適應了現代I/O設備對系統的要求,對PCI擴展卡及器件能進行全自動配置,并且只需很少的接口邏輯就可以實現并支持其他總線系統。TMS320C6211的HPI口不支持PCI總線的無縫接口。
本系統采用TI公司的PCI2040實現DSP的HPI與PCI總線的連接。DSP處理后的數據經HPI口輸出到PCI2040進行解碼,然后輸出到PCI總線上。其邏輯結構如圖3所示:
PCI2040是TI公司設計的專門用來完成C5000系列和C6000系列DSP與PCI總線進行接口的專用芯片。PCI2040符合PCI局部總線2.2規范[6],能夠方便地實現PCI總線與TMS320C54X或TMS320C6X DSP的HPI接口的無縫連接。PCI2040可以兼容3.3V和5V,以適應不同的PCI總線電壓。PCI2040與C6211之間不需要信號的電平轉換,也不需要額外的控制邏輯電路,接口電路十分簡單。
在本系統中,PCI2040上存在兩種電壓:5V和3.3V。其中3.3V是HPI口電壓,5V是PCI總線電壓。PCI2040啟動時需要對其PCI總線寄存器和HPI寄存器參數進行預加載。系統中PCI解碼模塊包括一塊配置ROM—AT24C08A,屬于EEPROM型ROM,便于對配置參數修改和升級。當系統啟動時,存儲在AT24C08A的數據下載到PCI2040的寄存器中并進行配置。
3 系統的軟件設計
本嵌入式圖像采集系統軟件包括兩部分:底層軟件和系統軟件。
底層軟件主要是DSP圖像處理算法以及啟動等運行程序。這些程序主要在CCS環境下由C語言編寫并進行匯編優化。CCS即Code Composer Studio,是TI公司發布的DSP軟件運行環境。
系統軟件方面,在Windows操作系統下,可以充分利用Windows的窗口特性,一方面,因為Windows技術成熟,軟件編寫相對比較簡單;另一方面,在Windows平臺下,PCI驅動無需開發,可以直接利用Windows的PCI驅動程序實現圖像卡的驅動。但是Windows操作系統比較龐大,而且無法依照系統的需要進行自由裁減,不適合做成嵌入式系統。因而本系統采用了VxWorks[7]操作系統。相對于Windows操作系統,VxWorks的優點表現在:
●VxWorks系統具有較好的可裁減性,可裁剪的組件超過80個,用戶可根據自己系統的功能目標通過交叉開發環境方便地配置。
●VxWorks支持應用程序的動態鏈接和動態下載,開發者省去了每次調試都將應用程序與操作系統內核進行鏈接和下載的步驟,縮短了編輯/調試周期。
●VxWorks具有較好的兼容性,它是最早兼容POSIX1003.1b標準的嵌入式實時操作系統之一。
●VxWorks具有很高的可靠性和穩定性。
●VxWorks具有很好的實時性,實時性的強弱以完成規定功能和做出響應時間的長短來衡量。VxWorks的多任務機制對任務的控制采用了優先級搶占(Preemptive Priority Scheduling)和輪轉調度(Round-Robin Scheduling)機制。這充分保證了可靠的實時性,使同樣的硬件配置能滿足更強的實時性要求,為應用的開發留下更大的余地。
PCI設備的驅動過程主要包括下面幾個步驟:
首先,PCI設備的查找。在嵌入式操作系統中一般提供相應的API函數查找。在VxWorks操作系統中通過函數pci FindDevice (PCI_VENDOR_ID,PCI_DEVICE,index, &pci Bus,&pci Device,&pci Func_可以找到供應商代碼為PCI_VENDOR_ID、設備標識為PCI_DEVICE的第n(index+1)個設備,并且返回總線號、設備號以及功能號,分別保存于&pci Bus、&pci Device、&pci Func中。
其次,PCI設備的配置。通過操作系統提供的API函數訪問PCI設備的配置空間,配置PCI設備基址寄存器的配置、中斷配置、ROM基地址寄存器的配置等,這樣可以得到PCI的存儲器空間和I/O地址空間映射、設備的中斷號等。在VxWorks操作系統中訪問PCI設備配置空間的API函數有pciConfigOutLong、pciConfigInLong等,它們分別完成對PCI設備配置空間的讀寫操作。
最后,根據PCI設備的配置參數,對不同的設備編寫初始化程序、中斷服務程序以及對PCI設備存儲空間的訪問程序。
很顯然,用VxWorks操作系統實現雖然有一定的難度,但是系統具有很大的靈活性,系統比較小、適應性強,并且可以在工業控制計算機上運行。
5 結束語
圖像采集系統的關鍵在于如何對大容量的信息進行暫存、壓縮和傳輸等問題進行處理。本文作者的創新點是在某型導彈景象匹配制導系統中通用計算機上加入DSP加速卡實現的圖像采集系統實現了實時圖像采集、傳輸以及處理功能,解決了以往導彈景象匹配制導系統中圖像采集不穩定、數據傳輸速度慢、暫時緩存處理能力低等問題。本系統既可以作為視頻圖像采集使用,也可以進行視頻壓縮、匹配跟蹤等圖像處理的算法驗證,具有使用靈活的特點。