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