??? 摘? 要: 論述了基于DSP和USB2.0接口的高速偏振圖像采集處理系統的設計,詳細介紹了偏振圖像采集處理的實現方法和原理。利用TMS320VC5509和USB2.0接口芯片,實現了偏振圖像的高速采集與處理,完成了圖像的壓縮傳輸。?
??? 關鍵詞: DSP;USB;偏振圖像采集與處理;圖像壓縮?
?
??? DSP芯片憑借其強大的功能、越來越快的速度以及很高的性價比,被廣泛用于通信、雷達、生物醫學、機器人、控制、精密機械、語音和圖像處理等領域[1]。USB接口的熱插拔、速度快(速度高達480Mb/s)和外設容量大(理論上可掛接127個設備)以及便攜等特性,使其成為PC機的外圍設備擴展中應用日益廣泛的接口標準[2]。基于DSP強大的數字信號處理功能和USB接口便攜、高速和易于擴展的特點,設計并實現了基于TMS320VC5509和USB芯片的一套多功能高速偏振圖像采集處理系統,利用圖像壓縮算法實現了偏振圖像的高速采集。該系統的DSP主要負責數據的采集和偏振圖像的合成壓縮處理,采集到的圖像數據通過USB口傳到PC主機上進行顯示、計算和分析等。?
1 系統的硬件設計?
1.1 系統的總體結構?
??? 器件選擇方面,本系統在滿足系統要求的前提下,應盡可能減少系統資源的冗余,提高系統的集成度。所以本系統的數據源是即得的數字信號,忽略了由模擬信號經采集、量化編碼得到數字信號的過程。?
??? 整個偏振圖像采集處理系統的硬件部分包括偏振圖像的采集、存儲、合成壓縮和傳輸四部分。圖1是高速偏振圖像采集系統的原理框圖。?
?
?
??? 由于每幅偏振圖像達到1024×1024×8bit,所以在采集端選用了Cypress公司的CY7C68013作為偏振圖像采集端。采集到偏振圖像后存入SDRAM,圖像壓縮算法壓縮后通過DSP自帶的USB接口傳送到上位機。?
1.2 系統的主要組成部分?
1.2.1 DSP處理模塊?
??? 本系統的DSP芯片主要負責偏振圖像的采集與處理。選擇DSP處理器時主要考慮其運算速度、總線寬度和性價比。系統進行實時圖像采集與處理,要求較高的運算速度,所以選用了TI公司的TMS320VC5509。TMS320VC5509的CPU的主時鐘能夠工作在144MHz,利用雙累加器和算術邏輯單元,每個周期能執行一條指令或并行的兩條指令,具有高達288MIPS的處理能力。TMS320VC5509啟動模式可選,上電后執行駐留在低地址空間的BOOTLOADER,然后根據4個中斷輸入信號的狀態判斷啟動模式,可以從RAM、ROM或串行口啟動[3]。本系統選擇從FlashROM加載方式。DSP將采集到的圖像數據進行偏振圖像的合成壓縮后通過有線或者無線的方式傳輸出去。?
1.2.2 USB接口模塊?
??? 由于USB協議非常復雜,開發者不可能在底層基礎上進行開發。系統選用CYPRESS公司的帶單片機內核的EZ-USB FX2系列的CY7C68013。該芯片遵從USB2.0規范(480Mb/s),將8051單片機內核、智能USB接口引擎、USB收發模塊、存儲器、串行口等集成,從而減少芯片接口時序。CY7C68013有兩種接口方式,設計采用的是外部主控制器(VC33),就像對普通的FIFO一樣對FX2的多層緩沖FIFO進行讀寫。?
??? DSP與USB接口原理圖如圖2所示。USB接口芯片CY7C68013由3.3V供電,XTALIN、XTALOUT連接無源晶振,晶振選擇24MHz。DPLUS、DMINUS為USB差分數據傳輸線。EA是外部程序存儲器和片上程序存儲器選擇輸入控制位,1表示選擇外部程序存儲器方式,0表示選擇片上程序存儲器方式。PAO/INTO#選擇INTO#工作方式,其中斷級別最高。當FIFO全滿造成數據溢出導致數據采集發生嚴重錯誤時,該中斷請求發生,系統通知數據溢出錯誤,并停止數據采集。RESET#為USB接口芯片復位輸入。?
?
?
1.2.3 數據存儲模塊?
??? 在緩沖器件的選擇上,可以使用雙端口器件(如FIFO、雙口RAM等)、SDRAM等方法。首先考慮采用雙端口器件,原因是雙端口器件在軟硬件設計上很容易實現,但由于原始偏振圖像太大,遠遠超過現有技術條件下所能制造出的雙端口器件的最大容量,因此雙端口器件不適用于該設計。其次考慮SDRAM,原因是它擁有足夠的存儲深度,且價格便宜,便于采購,適合本模塊的需要。?
??? 在實時圖像數字處理器中,采用SDRAM存儲圖像數據有兩個優點:一是速度高,由于同步存儲,存取時間可達6ns~7ns;二是單片容量大,有利于減少直觀圖像處理系統的體積。?
??? 由于TMS320VC5509只支持16bit的數據寬度,因此需要將DSP的BE1、BE0分別和SDRAM的DQMH、DQML對接,實現DSP和MT48LC4M16A2的無縫連接。其A10管腳對應precharge,因此和DSP的SDA10相連,CKE需要用一個上拉電阻拉為高電平。在采用CE0、CE1片選空間合并使用,只將CE0與SDRAM的片選信號連接,在CE0的空間寄存器中,存儲器類型MTYPE=011b。DSP與SDRAM的連接圖如圖3所示。?
?
?
2 系統的軟件設計?
??? 系統的軟件設計包括DSP圖像采集和處理程序設計、Firmware固件設計、驅動程序和上層應用程序的設計。系統流程圖如圖4所示。?
2.1 Firmware固件設計?
??? Cypress公司針對其EZ-USB FX2系列的USB芯片給出了一個Firmware庫和Firmware框架,均是用KeilC51開發的。Firmware庫提供了一些常量、數據結構、宏、函數來簡化對芯片的使用。用戶只需要在源程序中包含fx2.h、fx2 regs.h和fx2 sdly.h,并把Ezusb.lib和USBJmpTb.OBJ添加到項目中即可。Firmware框架實現了初始化芯片、處理USB標準設備請求以及掛起下的電源管理功能。該框架不需添加任何代碼,編譯后產生的.HEX文件下載到芯片就能與主機進行基本的USB通信,只是不能完成用戶特定的任務。對于用戶而言,主要的工作就是選擇適當的傳輸方式,添加需要使用的端點(Endpoint),在主要關心的TD_Init()、TD_Poll()等函數中添加初始化代碼和完成特定的功能代碼即可。由于系統要求的實時性較高,且對采集到的數據的正確性有嚴格要求,故采用了具有出錯重傳機制的BULK塊傳輸模式和自動打包(AUTO IN=1),以提高數據傳輸的速度[5]。由于代碼相對簡單就不作特殊說明。?
2.2 驅動程序及主機端應用程序設計?
??? Cypress FX2開發包中提供了一個通用設備驅動程序ezusb.sys,可用于基于EZ-USB系列的芯片,且不需修改直接使用,完成基本的USB接口通信任務。開發USB設備驅動程序一般有兩種有效、快速的方法:一是根據芯片公司提供的通用設備驅動結合自己的要求,用DDK等工具修改通用驅動源碼以達到目的,例如將Cypress公司提供ezusb.sys驅動中一些不常用的讀取描述符的函數去掉,添加一些和本設計有關的函數等;二是利用第三方提供的驅動程序開發軟件如Windriver、DriverStudio等,生成USB 驅動程序基本框架,再添加一些具體函數實現設備功能。?
??? 主機端應用程序主要實現從USB 接口芯片中讀取采樣和分析數據及發送一些設置參數和DA 數據。Cypress FX2開發包提供的EZ-USB通用驅動程序為主機端的用戶態應用程序提供了USB 標準設備請求和數據傳輸的接口。所有用戶程序訪問EZ-USB通用驅動程序都是通過I/O Control調用的。用戶程序首先通過調用Win32函數CreateFile()得到設備驅動程序的句柄;然后調用Win32函數Device IOControl(),通過得到的句柄把I/O Control Code(IOCTL)和相關的輸入輸出緩沖區提交給驅動程序。EZ-USB通用驅動程序支持的IOCTLs和它們相應的輸入輸出結構都定義在開發包提供的頭文件ezusbsys.h中,用戶在使用時需要包含這個頭文件。?
2.3 系統的應用程序設計?
??? 在完成硬件和軟件的綜合調試后,用偏振圖像采集處理模塊與偏振相機連接進行了多次實驗,并對模塊的幾個重要指標進行了測試分析。?
??? 其中,偏振相機與偏振圖像采集處理模塊連接,構成任務端部分。控制端則用一臺P4計算機構成。在實際應用中,任務端與控制端之間的通信方式視具體運用環境而定,既可通過無線方式進行通信,也可通過有線方式進行通信。而在實驗測試條件下,主要目的是為了檢驗模塊工作性能。因此,用簡便可靠的有線通信代替無線通信。為與偏振圖像采集處理模接口保持一致,并保證較高的傳輸速率,有線通信采用了USB通信方式。在控制端,運行的是人機交互控制程序。?
2.4 偏振圖像的壓縮傳輸?
??? 由于系統的需要,在模塊得到原始圖像后要進行合成處理,合成處理就是通過已得到的數學公式將三幅原始偏振光強度圖像信號合成為另外五路圖像信號:強度圖像信號I、偏振度圖像信號P、偏振角圖像信號A、Q圖、U圖。?
??? 對合成處理后得到的偏振圖像要分別進行有損壓縮和無損壓縮,以增強模塊的工作效率,如圖5所示。
?
?
??? 在有損壓縮算法的選取上,選擇了目前較為常用的JPEG算法。JPEG算法的實現通常有三種方式[6],即普通PC機上的純軟件實現法,基于DSP數字信號處理器件的實現法和基本可編程邏輯器件的專用集成電路實現法。其中,基于PC機的純軟件實現法不適用于小型化的軍用裝備,基于可編程邏輯器件的專用集成電路實現法具有更好的實時性和更高的運行效率,但程序復雜。基于DSP的實現方式,由于DSP具有較高的運行效率且算法實現相對簡單。本文就是利用基于DSP的實現方式實現了JPEG壓縮算法,達到了偏振圖像的壓縮要求。?
??? 對于合成處理后得到的偏振度圖像和偏振角圖像,必須采用無信息丟失的無損壓縮,力求增強模塊的工作效率,縮短模塊響應時間。在無損壓縮算法上采用了現階段較為常用的LZW壓縮算法。其基本原理是[7]:LZW把每一個第一次出現的字符串用一個數值來編碼,在還原程序中再將這個數值還成原來的字符串。例如:用數值0x100代替字符串“abccddeee”,每當出現該字符串時,都用0x100代替,這樣就起到了壓縮作用。至于0x100與字符串的對應關系則是在壓縮過程中動態生成的,而且這種對應關系隱含在壓縮數據中,隨著解壓縮的進行,這張編碼表會從壓縮數據中逐步得到恢復,后面的壓縮數據再根據前面數據產生的對應關系產生更多的對應關系,直到壓縮文件結束為止。?
??? 實驗表明,PC機處理后的偏振度圖與系統處理后得到的偏振度圖。在不放大的情況下肉眼無法分辨壓縮圖像質量與原圖的區別。?
??? 本文介紹了基于USB2.0 接口和DSP 的高速數據采集處理系統的系統構成、硬件連接以及USB2. 0驅動程序和固件程序的開發以及模塊的圖像處理程序。經實驗驗證,本系統運行可靠,是一種比較好的高速偏振圖像采集與處理的解決方案。?
參考文獻?
[1] 王念旭.DSP基礎與應用系統設計[M].北京:北京航空航天大學出版社,2001.?
[2] 俞平,秦樹人.基于DSP和USB2.0高速數據采集處理系統[J].重慶大學學報,2005,(5).?
[3] Texas instruments Co.Using the TMS320VC5509 Bootloade.?
[4] 廖良斌.基于DSP和USB的圖像采集系統的研究[D].湖北:武漢理工大學,2005.(6).?
[5] Cypress Semiconductor Corporation.Cypress USB 2.0 Mass Storage Device Driver for Windows.2003.?
[6] JPEG 2000 Part I Final Committee Draft Version 1.0. ISO/IEC,2000.?
[7] 王平.LZW無損壓縮算法的實現與研究[J].計算機工程,2002,(7).