《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 高速OTG技術在壓縮圖像傳輸中的應用

高速OTG技術在壓縮圖像傳輸中的應用

2008-07-24
作者:姚清華1,2,張 濤1,鄧

??? 摘 要:圖像壓縮" title="圖像壓縮">圖像壓縮調試過程中,壓縮數(shù)據(jù)在實時硬盤存儲的基礎上,還要與PC機連接進行效果評估。為了解決數(shù)據(jù)壓縮板在通用串行接口(USB)高速數(shù)據(jù)傳輸" title="高速數(shù)據(jù)傳輸">高速數(shù)據(jù)傳輸中雙重角色(主機/外設" title="外設">外設)的矛盾,本文采用具有OTG功能的USB芯片ISP1761實現(xiàn)了協(xié)議轉換、主從自動切換控制以及上/下行高速數(shù)據(jù)傳輸。針對ISP1761支持PowerPC微處理器接口的高速性能,采用Xilinx公司的Virtex4系列FPGA芯片,通過其內嵌的PowerPC硬核" title="硬核">硬核處理器完成芯片初始化以及DMA數(shù)據(jù)傳輸控制。實現(xiàn)了對JPEG2000壓縮后圖像的45.5Mb/s上/下行有效數(shù)據(jù)傳輸,滿足了實時存儲和調試的要求。
??? 關鍵詞: FPGA;PowerPC;USB;OTG;數(shù)據(jù)傳輸

?

??? 在測繪、遙感等諸多圖像相關領域,需要壓縮圖像數(shù)據(jù)用以平衡數(shù)據(jù)量與傳輸帶寬之間的矛盾。隨著圖像傳感技術的進步以及對圖像質量要求的提高,對不同設備中通用標準接口之間的數(shù)據(jù)傳輸有了更高的要求。通用串行接口(USB)的熱插拔、高速特性使其成為各個系統(tǒng)數(shù)據(jù)高速連接的通用標準。選擇USB接口進行數(shù)據(jù)傳輸?shù)那疤嵯?,滿足各種設備的小型化、低功耗要求,需要脫離體積較大的PC機來實現(xiàn)系統(tǒng)的嵌入式操作。為了解決圖像壓縮調試中壓縮板傳輸數(shù)據(jù)的雙重角色矛盾——直接硬盤存儲中圖像壓縮板為主機(Host),高速USB硬盤為外設;電腦調試中PC機為主機,圖像壓縮板為外設(Peripheral)。本文采用具有USB OTG(On-the-Go)技術的協(xié)議芯片ISP1761來完成同一端口的雙重操作,并且實現(xiàn)了自動切換。
1 OTG技術及ISP1761特性分析
??? USB OTG是USB2.0規(guī)范的補充,在兼容所有USB2.0特性的前提下,結合了對嵌入式應用的新特性,其中包括低功耗、更小的USB接頭以及在同一個USB端口上實現(xiàn)主機和外設雙重角色(OTG)的功能。OTG適用于在沒有PC機(主設備)的情況下,實現(xiàn)從設備相互之間的對等連接。
??? USB2.0協(xié)議本身支持高達480Mb/s的高速數(shù)據(jù)傳輸,并且與USB1.1規(guī)范后向兼容,而后者僅支持全速12Mb/s和低速1.5Mb/s。在具有OTG技術的USB協(xié)議芯片中,Philips公司生產(chǎn)的芯片ISP1761不但在同一接口具有主機/外設雙重功能(OTG),而且實現(xiàn)主機/外設的高速傳輸(支持480Mb/s)。
??? ISP1761采用低功耗設計,正常工作時Icc<100mA,便于嵌入式應用。
??? (1)接口形式:ISP1761是單片高速USB OTG控制器,配備了一個OTG接口和兩個主機控制器接口,OTG接口可以通過控制線在主機/外設角色間隨時轉換,使得系統(tǒng)可以隨時連接PC機和USB高速硬盤進行數(shù)據(jù)傳輸調試。
??? (2)數(shù)據(jù)傳輸:集成PLL鎖相環(huán)獲得穩(wěn)定的傳輸采樣,內部FIFO進行數(shù)據(jù)緩沖,支持DMA傳輸方式,支持主機通信協(xié)議HNP(Host Negotiation Protocol)和對話請求協(xié)議SRP(Session Request Protocol)技術,采用請求/應答機制進行快速數(shù)據(jù)交換。
??? (3)控制方面:采用通用處理器接口,可以方便地連接到各種CPU單元。特別是支持PowerPC RISC處理器接口,能夠和Xilinx FPGA硬核直接相連,實現(xiàn)高速控制。
2 PowerPC系統(tǒng)結構及其ISP1761連接方法
??? Xilinx公司Virtex系列FPGA芯片廣泛采用PowerPC作為硬核。PowerPC是32位,采用IBM′ PowerPC體系結構的嵌入式微處理器。基于嵌入式設計的PowerPC系統(tǒng)如圖1所示(圖中主要列出本系統(tǒng)所用部分)。從圖1可以看出,PowerPC硬核通過設備控制寄存器總線DCR與內部總線橋連接,通過處理器局部總線PLB、片上外設總線OPB和各種外設接口連接。

?


??? PowerPC具有5階段流水線:取指、譯碼、執(zhí)行、寫-回、裝載-寫回;分離的指令Cache和數(shù)據(jù)Cache,便于流水操作;
??? PowerPC硬核處理器" title="硬核處理器">硬核處理器與ISP1761連接操作示意圖如圖2所示。

?


??? 內部可尋址的主機控制器緩沖存儲器(即內部RAM)大小為63KB,包括傳輸描述和有效載荷PTD(Philips Transfer Descriptor)和payload兩部分。PTD區(qū)域和payload區(qū)域都被分成三個部分:ISO(Isochronous)、INT(Interrupt)、ATL(Acknowledged Transfer List),可以進行如圖2所示的分區(qū)管理。無論是與PowerPC還是與USB硬盤進行數(shù)據(jù)傳輸都需要訪問ISP1761內部RAM,即數(shù)據(jù)必須通過PIO模式或DMA模式傳輸?shù)絇TD區(qū)域和payload區(qū)域才能進行協(xié)議轉換等操作,具體區(qū)域需要由ISP1761內部的仲裁機構裁定。
??? 因為ISP1761的初始化主要是對內部寄存器賦值,因此采用PIO模式。通過CS_N、WR_N、RD_N訪問寄存器和存儲器。當USB接口進行高速數(shù)據(jù)傳輸時,則采用DMA方式。通過DACK、WR_N、RD_N來訪問。ISP1761的DMA傳輸長度支持1、4、8、16個字,在DMA傳輸開始時,DREQ有效。DMA訪問時序如圖3所示。

?


3 調試系統(tǒng)硬件實現(xiàn)以及工作過程
3.1 調試系統(tǒng)硬件組成

??? 本系統(tǒng)實現(xiàn)的是測繪圖像數(shù)據(jù)壓縮以及USB接口的數(shù)據(jù)傳輸。如圖4所示,由圖像傳感器獲取的圖像數(shù)據(jù)經(jīng)過FIFO緩存后,經(jīng)由FPGA進行JPEG2000標準下的圖像壓縮,壓縮程序由Verilog HDL硬件描述語言實現(xiàn),壓縮后的數(shù)據(jù)流在PowerPC405硬核處理器的控制下,暫存到DDR RAM中,進行連續(xù)相關圖像比較及其處理,最后將圖像數(shù)據(jù)存儲到高速USB硬盤中。但在調試過程中,需要對壓縮算法進行驗證和評估,即將需要存儲到高速USB硬盤的數(shù)據(jù)流直接連接輸入到PC機中,在PC機中進行數(shù)據(jù)顯示、處理和識別等方面的評估。因此調試中要頻繁地將同一個USB OTG高速接口在高速USB硬盤和PC機USB接口中調換。

?


??? 設計中CCD傳感器采用2200萬像素(4008×5344)的超大分辨率全幀CCD圖像傳感器FTF4052M。FIFO采用IDT公司的IDT72V2113,容量為512K×9bit。FPGA采用Xilinx公司的Virtex4 FX12,它集成PowerPC405硬核處理器和MicroBlaze軟核處理器,可以通過IP核方便地連接SRAM 和DDR SDRAM進行數(shù)據(jù)暫存或高速緩沖存儲,DDR RAM采用HYB25D256160BT,硬核也可以針對ISP1761的預留PowerPC接口直接對其進行高速控制,其中JPEG2000壓縮部分為自己編制的已做成用戶自定義IP核,直接添加到PowerPC硬核處理器中。
3.2 PowerPC硬件配置流程
??? 系統(tǒng)采用ISE EDK(Embedded Development Kit)中的BaseSystem BuilderWizard來快速構建基于PowerPC405的硬核處理系統(tǒng)。在XPS(Xilinx Platform Studio)平臺下進行硬核配置。首先定義內部所用各種存儲器(BRAM,DDR RAM)以及應用總線(PLB,OPB)和接口,之后添加JPEG2000的IP核,對用戶IP核進行各種導入操作,包括總線形式選擇、主從配置、分配地址空間、添加端口信號、將端口信號連接到FPGA管腳上,并且定義成外部管腳。軟件工程設計主要包括:軟件工作環(huán)境設置,對設備驅動進行調整,添加應用軟件,自己編寫的應用C固件程序添加到軟件工程之中,最后產(chǎn)生位流文件。
3.3 OTG芯片控制流程
??? OTG引腳可以分別連接到PC機和高速USB硬盤,而OTG的主機/外設作用選擇取決于ISP1761中的ID引腳,引腳值由連接到USB mini-AB插座上的插頭類型決定。如果ID為低(mini-A插頭),則為主機A-device;如果ID為高(mini-B插頭),則為外圍設備B-device。這樣就實現(xiàn)了智能主從選擇,方便隨時改變硬件進行壓縮調試。
??? ISP1761引腳VBUS開/關之間的時間(session)是交換數(shù)據(jù)過程。主機和外設都可以開始一個數(shù)據(jù)傳輸過程,在一個傳輸過程中主機的作用能夠通過HNP在A、B設備中隨時改變。如果主機開始一個數(shù)據(jù)傳輸,通過使能電荷泵來有效VBUS。外設檢測到VBUS有效后,通過使能DP線上的上拉電阻確定自己外設地位。主機檢測到遠程上拉電阻,則也確定了自己的主機地位,主機就可以和外設進行通信。結束通信則通過無效VBUS來實現(xiàn)。
??? 如果外設開始一個數(shù)據(jù)傳輸,必須通過數(shù)據(jù)線脈沖或者VBUS脈沖來初始化SRP。當主機檢測到SRP事件,則有效VBUS(只有主機才能有效VBUS),這時就確定了自己的地位。SRP初始化過程如表1所示。主機對兩件SRP事件有反應:數(shù)據(jù)線脈沖或VBUS脈沖。當用數(shù)據(jù)線脈沖時,ISP1761能夠檢測DP脈沖。這意味著僅為外圍設備必須通過DP初始化數(shù)據(jù)線脈沖。

?


??? 當主機通過 OTG描述符而檢測到支持HNP的外設時,主機就會通過使用SetFeature(b_hnp_enable)命令使能HNP hand-off,之后進入懸空狀態(tài)。外設信號就會通過無效自己的上拉電阻來獲得主機地位,而主機則認可了自己的外設地位。此時,外設就作為主機來進行各種通信,直到外設結束通信,兩者又返回各自狀態(tài)。HNP是對話時用來在默認主機(A-device)和默認外設(B-device)之間傳輸主機控制。如果B-device想利用總線,就給A-device發(fā)送斷開信號。這樣,A-device就獲得外設地位,B-device則獲得主機地位。
??? 通過將壓縮后的協(xié)議轉換前圖像、讀出高速USB硬盤中的圖像、連接到主機USB接口采集的圖像,三者對比后達到完全一致,驗證了通過單片協(xié)議芯片ISP1761實現(xiàn)了USB OTG標準下的高速數(shù)據(jù)傳輸,實現(xiàn)了同一壓縮板端口的上/下行數(shù)據(jù)調試。CCD傳感器數(shù)據(jù)量為100Mb/s的情況下,采用JPEG2000標準對圖像數(shù)據(jù)進行無損壓縮,實測壓縮率約為2.2:1,因此通過USB接口實現(xiàn)了約45.5Mb/s的上/下行(OTG)有效數(shù)據(jù)傳輸,遠遠超過USB低速、全速的傳輸速度,實現(xiàn)了真正意義上的高速數(shù)據(jù)傳輸。
參考文獻
[1] ISP1761Hi-Speed Universal Serial Bus On-The-Go controller.www.nxp.com.
[2] ISP1761 Hi-Speed USB Host/On-The-Go Demo Board for BSQUARE DevIDP PXA255.www.nxp.com.
[3] 宋宇寧,周兆英,趙煥軍,等.USB OTG擴展子板的實現(xiàn),電子技術應用,2006,32(5):112-114.
[4] 魏春鳳.基于USB接口的OTG應用技術開發(fā),世界電子元器件,2005,(11):52-55.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。