1 引言 圖像處理、瞬態信號檢測等領域要求高速度、高精度、高實時性的數據采集與處理技術,因此對高速圖像采集系統的數據傳輸提出更高要求。現在高速圖像采集系統一般采用高性能數字信號處理器(DSP)和高速總線的框架結構。DSP完成計算量巨大的實時處理算法,高速總線實現處理結果或采樣數據的快速傳輸,可采用ISA、PCI、USB等高速總線,而USB總線具有安裝方便、高帶寬、易擴展、傳輸速率高達480 b/s,已成為計算機接口的主流。因此,這里介紹一種采用USB2.0接口和高性能DSP的高速圖像采集處理系統,主要應用于井下視頻檢測,也可應用于光纖通信、雷達信號處理等領域。 2 圖像采集系統硬件設計 2.1 系統硬件設計架構 圖1為該高速圖像采集系統硬件設計架構。該系統設計選用ICX205AL型CCD傳感器來采集圖像,前端被測物體的光線經光學系統*在CCD傳感器上,然后輸出信號經低噪聲的OP37傳輸至高速、高精度的AD9220型A/D轉換器,所轉換的數據再經DSP預處理,通過USB接口器件傳輸給PC機,這樣就完成了圖像采集過程。 ICX205AL型高速面陣CCD傳感器的有效像素可達到1145 M(1 392 Hx1 040 V),水平驅動頻率141 318 MHz,并具有靈敏度高、暗電流小、分辨率高、轉移速度快、連續可調電子快門等特點。 該系統設計選用TMS320DM6437型高性能的數字媒體處理器DSI作為核心控制。TMS320DM6437通過HPI接口訪問USB接口器件。HPI接口是一個并行端口,16位數據總線寬度,8級深度內部讀寫緩存,通過HPIC、HPIA、HPID 3個寄存器組合易于實現主機對DSP的控制。主機(上位機)通過HPI接口直接訪問DSP的全部存儲空間,包括存儲映射的外圍設備。主機和DSP都可訪問HPI的控制寄存器(HPIC),此外,主機還可訪問地址寄存器(HPIA)和數據寄存器(HPID)。 USB接口器件采用Cypress公司的CY7C68033,其內部集成有USB2.0收發器、串行接口引擎(SIE)、增強型的8051內核和可編程控制的外圍接口(GPIF),可提供高速數據傳輸有效、方便的解決方案。CY7C68033的固件程序位于內部RAM中,由uSB或電子可擦寫可編程只讀存儲器(EEP-ROM)下載;具有4個可以自由編程分配控制的端點;8位或16位外部數據接口:內部具有4個集成的FIFO,對外有兩種接口模式,Master模式使用GPIF接口,Slave FIFO模式使用集成的FIFO供外部設備讀寫,很容易與外部的專用集成電路或DSP器件連接;內置增強型的8051內核時鐘最高可達48 MHz,其指令周期只需4個時鐘周期;具有2個通用異步收發器(UART)、3個定時計數器、擴展的中斷系統;內置2個I2C總線控制模塊。 2.2 USB接口設計 圖2是該高速圖像采集系統的USB接口電路連接圖。 圖2中,CY7C68033的PA3~PA2引腳作為地址線與TMS320DM6437 DSP的HCNTL[1:0]相連,用于選擇HPI的寄存器與工作模式;FD[15:0]作為16位數據總線與HPl的數據總線HD[15:0]相連,用于交換數據;CTLx引腳為GPIF的輸出控制信號,RDYO引腳為GPIF的輸入控制信號。由于訪問HPI寄存器需兩次半字傳輸,因此使用CY7C68033的CTL0引腳進行控制。TMS320DM6437的HR/W接至CTL1,用來作為讀/寫選擇標志;HDS1與CTL2相連,作為數據選通信號。HRDY與輸入信號線RDYO相連,用于查詢HPI接口狀態,GPIF通過監測該信號以控制內部存取操作。TMS320DM6437的HINT與CY7C68033的INT0引腳相連,DSP復位時HINT引腳啟用,該引腳也用于DSP向CY7C68033發送外部中斷請求。另外,TMS320DM6437的HCS3引腳接地表示可對HPI進行連續存取操作。 3 圖像采集系統軟件設計 當USB設備插入計算機時,計算機和USB設備之間產生一個枚舉過程。計算機檢測到有設備插入。自動發出查詢請求;USB設備回應該請求,發送出該設備的Vendor ID和Product ID;計算機根據這兩個ID裝載相應設備驅動程序,完成枚舉過程。然后就可以傳輸數據,接收數據,即TMS320DM6437 DSP向PC機傳輸數據時,首先向CY7C68033發送一硬件中斷信號,CY7C68033接收該中斷,并啟動接收程序,通過HPI接口設置DSP的HPIC寄存器的HINT標志位,使DSP下一次仍通過該位發出中斷:然后通過端口6將固定長度(512字節)的數據讀人FIFO:端口6讀取數據時,為了保證較高的傳輸速度,CY7C68033中的CPU不能干預數據傳輸,當FIFO中的數據達到一定數量后,CY7C68033自動將數據打包傳送給USB總線;發送數據時,它將數據包直接傳輸給CY7C68033,CY7C68033接收到數據后,按指定字節長度將數據讀到發送端口2的FIFO中,然后自動啟動GPIF,將數據傳送給DSP,接下來CY7C68033通過HPI接口設置DSP的HPIC寄存器中的DSPINT位(將其置1),向DSP發送請求中斷,通知DSP有數據包。 USB設備的軟件開發包括設備固件、設備驅動程序以及應用程序3方面設計。 3.1 設備固件 設備固件設計是由主程序和中斷處理程序2部分組成,其中,主程序負責系統外設器件的互聯以及初始化設置USB端口等。系統上電時,通過USB電纜將固件程序下載到CY7C68033的內部RAM,為了傳輸可靠,固件程序下載采用批量傳輸方式。由于系統要求快速持續傳輸大量數據,因此采用同步傳輸方式。 3.2 USB設備驅動程序 USB設備驅動程序設計一般采用Windows DDK(devicedriver kil)設計,但由于DDK的復雜性和調試難度,難以開發穩定完善的USB驅動程序。因此,這里選用NuMega公司的開發軟件DriverWorks,它是以面向對象的思想完全封裝DDK的所有庫函數。 通過DriverWorks提供的類,編寫大部分驅動程序。最重要的是DriverWorks提供對USB總線的封裝,這樣大大簡化對USB總線的操作接口。DriverWorks通過向導生成USB驅動程序的框架,并利用KDriver、KPnpDevice、KpnpLowerDe-vice等類簡化WDM(Win32 driver module)驅動程序編程,它們分別對應的封裝是WDM中的PD0、FD0、FiD0。每一個WDM驅動程序都有一個入口函數AddDevice,當PC機監測到USB接口中接入新設備時.立刻調用入口函數AddDevice并且創建設備的PD0,接著將其保存到函數參數指針中。成員函數AddDevice同時創建另外一個設備對象FD0.它被KPnpDevice封裝。對WDM總線驅動程序的上層接口通過KpnpLowerDevice類實現FD0和PD0之間的連接,同時它也提供對PD0的操作接口。對USB客戶驅動程序從KLow-erDevice類派生出的KusbLowerDevice類封裝USB的底層設備對象,通過其接口操作USB總線的驅動程序。 3.3 客戶應用程序 PC機上的應用程序使用VC++編寫。應用程序通過調用Windows API函數實現系統所要求的功能。應用程序主要采用以下3個函數:ReadFile,WriteFile和DevriceloControl。ReadFile從前端圖像采集系統讀取數據;WriteFile向圖像采集系統寫入數據:DeviceloControl在PC機中從圖形采集系統讀取數據或向圖像采集系統寫入數據前向DSP發送交換數據的請求。 4 實驗驗證 DSP系統采集圖像后將數據發送至USB端口,主機應用程序打開設備,先從設備讀取設備描述符和通道信息,接著讀取USB端口數據。采用BUS HOUND監控USB端口數據流,如圖3所示。從圖3看到:從USB端口讀取的數據包括設備描述符數據、通道信息數據,以及從USB端口寫入的數據塊。實驗測試數據傳輸率達29.5 MB/s,1 s能夠傳輸15幀未經壓縮圖像,完全滿足高速圖像傳輸要求。 5 結束語 高速圖像采集系統DSP通過CY7C68033的底層驅動以及簡單實用的編程結構,可方便建立上層PC機與DSP之間的USB通信信道。 根據DSP的HPI接口讀/寫控制時序,連接CY7C68033的GPIF接口,將HPI接口的各個寄存器映射為CY7C68033的外部地址,使得CY7C68033能夠方便讀寫DSP內部RAM,從而建立基于USB2.0接口的PC機與DSP之間的高速圖像采集通信通道。 該系統設計充分利用USB的即插即用功能,高速圖像采集設備操作方便快捷,因此具有高使用價值。 |