MicroBlaze在圖像高速雙向USB傳輸中的應(yīng)用
摘要:在空間飛行器的遙感過程中,測獲的海量數(shù)據(jù)在實時壓縮、硬盤存儲的基礎(chǔ)上,還要與PC機進行通信。為了解決數(shù)據(jù)壓縮板在通用串行接口高速數(shù)據(jù)傳輸中雙重角色(主機/外設(shè))的矛盾,本文采用具有OTG功能的USB 芯片ISP1761實現(xiàn)了協(xié)議轉(zhuǎn)換、主從自動切換控制以及上/下行高速數(shù)據(jù)傳輸。針對ISP1761支持微處理器接口的高速性能,采用Xilinx公司的Virtex4系列FPGA芯片,通過其內(nèi)嵌的MicroBlaze軟核處理器完成芯片初始化以及DMA數(shù)據(jù)傳輸控制,實現(xiàn)了對JPEG2000壓縮后圖像的45.8Mbps上/下行有效數(shù)據(jù)傳輸。
本文引用地址:http://www.ex-cimer.com/article/149594.htm1.緒言
在空間飛行器的遙感測繪過程中,由于受到有限信道帶寬的限制,數(shù)據(jù)的壓縮處理顯得 尤為重要。隨著圖像傳感技術(shù)的進步以及對圖像質(zhì)量要求的提高,對不同設(shè)備中通用標(biāo)準(zhǔn)接 口之間的數(shù)據(jù)傳輸也有了更高的要求。通用串行接口(USB)的熱插拔、高速特性使其成為各 個系統(tǒng)數(shù)據(jù)高速連接的通用標(biāo)準(zhǔn)。選擇USB 接口進行數(shù)據(jù)傳輸?shù)那疤嵯?,對各種設(shè)備的小 型化、低功耗要求,需要脫離體積較大的PC 機來實現(xiàn)系統(tǒng)的嵌入式操作。為了解決圖像壓 縮調(diào)試中壓縮板傳輸數(shù)據(jù)的雙重角色矛盾——直接硬盤存儲中圖像壓縮板為主機(Host), 高速USB 硬盤為外設(shè);電腦調(diào)試中PC 機為主機,圖像壓縮板為外設(shè)(Peripheral)。本文采 用具有USB OTG(On-the-Go)技術(shù)的協(xié)議芯片ISP1761 來完成同一端口的雙重操作,并且 實現(xiàn)了自動切換。
2.OTG 技術(shù)及ISP1761 特性分析
USB OTG 在兼容所有USB2.0 特性的前提下,結(jié)合了對嵌入式應(yīng)用的新特性,其中包 括低功耗、更小的USB 接頭以及在同一個USB 端口上實現(xiàn)了雙重角色(OTG)的功能—— 作為主機和外設(shè)的功能。OTG 適用于沒有PC 機(主設(shè)備)的情況下,實現(xiàn)從設(shè)備相互之間 的對等連接。
USB2.0 協(xié)議本身支持高達480Mbps 的高速(high speed)數(shù)據(jù)傳輸,并且與USB1.1 規(guī) 范后向兼容,而后者僅支持全速(full speed)12Mbps 和低速(low speed)1.5Mbps。在具有 OTG 技術(shù)的USB 協(xié)議芯片之中,Philips 公司生產(chǎn)的芯片ISP1761 不但在同一接口具有了主 機/外設(shè)雙重功能(OTG),而且實現(xiàn)主機/外設(shè)的高速傳輸(high speed 支持480Mbps)。
ISP1761采用低功耗設(shè)計,正常工作時Icc100mA,便于嵌入式應(yīng)用。
在接口形式上:ISP1761 是單片高速USB OTG 控制器,配備了一個OTG 接口和兩個主 機控制器接口,OTG 接口可以通過控制線在主機/外設(shè)角色間隨時轉(zhuǎn)換,使得本系統(tǒng)可以隨 時連接PC 機和USB 高速硬盤進行數(shù)據(jù)傳輸調(diào)試。
在數(shù)據(jù)傳輸上:集成PLL鎖相環(huán),可以獲得穩(wěn)定的傳輸采樣;內(nèi)部FIFO進行數(shù)據(jù)緩沖; 支持DMA傳輸方式,支持HNP (Host Negotiation Protocol主機通信協(xié)議)和SRP(Session Request Protocol)對話請求協(xié)議技術(shù),采用請求/應(yīng)答機制進行快速數(shù)據(jù)交換。
在控制方面:采用通用處理器接口,可以方便的連接到各種CPU單元。特別是支持RISC 處理器接口,能夠和Xilinx FPGA軟核MicroBlaze直接相連,實現(xiàn)高速控制。
3. MicroBlaze 系統(tǒng)結(jié)構(gòu)及其ISP1761 連接方法
MicroBlaze嵌入式軟核是一個被Xilinx公司優(yōu)化過的可以嵌入在FPGA中的RISC處理器 軟核,MicroBlaze采用的數(shù)據(jù)總線和指令總線是分開的,總線接口有LMB和IBM的OPB兩種, 其中,LMB為有效的塊RAM傳輸提供簡單的同步協(xié)議,而OPB接口提供片上、片外設(shè)備和 外設(shè)存儲器之間的連接,MicroBlaze還提供Xilinx CacheLink(XCL)的接口,XCL為Caches和 特定的外部存儲器控制器提供一個快速的從設(shè)備方仲裁流接口,MicroBlaze也支持高達8個 快速單一連接端口(FSL), FSL提供一個快速的非仲裁流通信機制,而每一個又可分主接口和 從接口。
MicroBlaze 軟核處理器與ISP1761 連接操作示意圖如圖1 所示。
內(nèi)部可尋址的主機控制器緩沖存儲器(即內(nèi)部RAM)大小為63kB,包括傳輸描述和有效載 荷PTD(Philips Transfer Descriptor)和payload兩部分,PTD區(qū)域和payload區(qū)域都被分成三個 部分,ISO(Isochronous)、INT(Interrupt)、ATL(Acknowledged Transfer List),可以進行 如圖2所示的分區(qū)管理。無論是與MicroBlaze還是與USB硬盤進行數(shù)據(jù)傳輸都需要訪問1761內(nèi)部 RAM,即數(shù)據(jù)必須通過PIO模式或DMA模式傳輸?shù)絇TD區(qū)域和payload區(qū)域才能進行協(xié)議轉(zhuǎn)換等操作,具體區(qū)域需要由ISP1761內(nèi)部的仲裁機構(gòu)來裁定。
因為ISP1761的初始化主要是對內(nèi)部寄存器賦值,因此采用PIO模式。通過CS_N、WR_N、 RD_N來訪問寄存器和存儲器。當(dāng)USB接口進行高速數(shù)據(jù)傳輸時,則采用DMA方式。通過DACK、 WR_N、RD_N來訪問。ISP1761的DMA傳輸長度支持1,4,8,16個字,在DMA傳輸開始的時 候,DREQ有效。DMA訪問時序如圖2所示.
4.調(diào)試系統(tǒng)硬件實現(xiàn)以及工作過程
4.1 調(diào)試系統(tǒng)硬件組成
本系統(tǒng)所實現(xiàn)的是測繪圖像數(shù)據(jù)壓縮以及 USB 接口的數(shù)據(jù)傳輸。如圖3 所示,由圖像 傳感器獲取的圖像數(shù)據(jù)經(jīng)過FIFO 緩存后,經(jīng)由FPGA 進行JPEG2000 標(biāo)準(zhǔn)下的圖像壓縮, 壓縮程序由Verilog HDL 硬件描述語言實現(xiàn),壓縮后的數(shù)據(jù)流在MicroBlaze 軟核處理器的控 制下,暫存到DDR RAM 中,進行連續(xù)相關(guān)圖像比較及其處理,最后將圖像數(shù)據(jù)存儲到高 速USB 硬盤中。但在調(diào)試的過程中,需要對壓縮算法進行驗證和*估,即將需要存儲到高 速USB 硬盤的數(shù)據(jù)流直接連接輸入到PC 機中,在PC 機中進行數(shù)據(jù)顯示、處理和識別等方 面的*估,因此調(diào)試中要頻繁的將同一個USB OTG 高速接口在高速USB 硬盤和PC 機USB 接口中調(diào)換。
設(shè)計中 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 的預(yù)留MicroBlaze 接口直接對其進行高速控 制,其中JPEG2000 壓縮部分為自己編制已做成用戶自定義IP 核,直接添加到MicroBlaze 軟核處理器中。
4.2 MicroBlaze 軟件配置流程
系統(tǒng)采用 ISE EDK(Embedded Development Kit)中的BaseSystem BuilderWizard 來快速構(gòu)建基于MicroBlaze 軟核處理系統(tǒng)。在XPS(Xilinx Platform. Studio)平臺下進行硬核配置。 首先定義內(nèi)部所用各種存儲器(BRAM,DDR RAM)以及應(yīng)用總線(LMB,OPB)和接口, 之后添加JPEG2000 的IP 核,對用戶IP 核進行各種導(dǎo)入操作,包括總線形式選擇、主從配 置、分配地址空間、添加端口信號、將端口信號連接到FPGA 管腳上,并且定義成外部管 腳。軟件工程設(shè)計主要包括:軟件工作環(huán)境設(shè)置,對設(shè)備驅(qū)動進行調(diào)整,添加應(yīng)用軟件,自 己編寫的應(yīng)用C 固件程序添加到軟件工程之中,最后產(chǎn)生位流文件。
4.3 OTG 芯片控制流程
OTG 引腳可以分別連接到PC 機和高速USB 硬盤,而OTG 的主機/外設(shè)作用選擇取決于 ISP1761 中的ID 引腳,引腳值由連接到USB mini-AB 插座上的插頭類型決定。如果ID 為低 (mini-A 插頭),為主機A-device。如果ID 為高(mini-B 插頭),為外圍設(shè)備B-device,這樣 就實現(xiàn)了智能主從選擇,方便隨時改變硬件進行壓縮調(diào)試。
ISP1761引腳VBUS開/關(guān)之間的時間(session)是交換數(shù)據(jù)過程。主機和外設(shè)都可以開始一 個數(shù)據(jù)傳輸過程,在一個傳輸過程里面主機的作用能夠通過HNP在A、B設(shè)備中隨時改變。如果 主機開始一個數(shù)據(jù)傳輸,通過使能電荷泵來有效VBUS。外設(shè)檢測到VBUS有效后,通過使能DP線 上的上拉電阻來確定自己外設(shè)地位。主機檢測到遠(yuǎn)程上拉電阻則也確定了自己的主機地位。主機 就可以和外設(shè)進行通信。結(jié)束通信則通過無效VBUS來實現(xiàn)。
如果外設(shè)開始一個數(shù)據(jù)傳輸,必須通過數(shù)據(jù)線脈沖或者VBUS 脈沖來初始化SRP。當(dāng)主機檢 測到SRP 事件,則有效VBUS(只有主機才能有效VBUS),這時就確定了自己的地位。SRP 初 始化過程如表1 所示。主機對兩件SRP 事件有反應(yīng):數(shù)據(jù)線脈沖或VBUS 脈沖。當(dāng)用數(shù)據(jù)線脈 沖時,ISP1761 能夠檢測DP 脈沖。這意味著僅為外圍設(shè)備必須通過DP 來初始化數(shù)據(jù)線脈沖。
當(dāng)主機通過 OTG 描述符而檢測到支持HNP 的外設(shè)時,主機就會通過使用SetFeature (b_hnp_enable)命令使能HNP hand-off,之后進入懸空狀態(tài)。外設(shè)信號就會通過無效自己的 上拉電阻來獲得主機地位。而主機則認(rèn)可了自己的外設(shè)地位。此時,外設(shè)就作為主機來進行各種 通信,直到外設(shè)結(jié)束通信,兩者又返回各自狀態(tài)。HNP 是對話時用來在默認(rèn)主機(A-device) 和默認(rèn)外設(shè)(B-device)之間傳輸主機控制。如果B-device 想利用總線,就給A-device 給發(fā)送 斷開信號。這樣,A-device 就獲得外設(shè)地位,B-device 則獲得主機地位。
5.結(jié)束語
通過將壓縮后的協(xié)議轉(zhuǎn)換前圖像、讀出高速 USB 硬盤中的圖像、連接到主機USB 接口 采集的圖像三者對比后達到完全一致,驗證了通過單片協(xié)議芯片ISP1761 實現(xiàn)了USB OTG 標(biāo)準(zhǔn)下的高速數(shù)據(jù)傳輸,實現(xiàn)了同一壓縮板端口的上/下行數(shù)據(jù)調(diào)試。 CCD 傳感器數(shù)據(jù)量 為100Mbps 的情況下,采用JPEG2000 標(biāo)準(zhǔn)對圖像數(shù)據(jù)進行無損壓縮,實測壓縮率約為2.1: 1,因此通過USB 接口實現(xiàn)了約45.8Mbps 的上/下行(OTG)有效數(shù)據(jù)傳輸,遠(yuǎn)遠(yuǎn)超過USB 低速、全速的傳輸速度,實現(xiàn)了真正意義上的高速(high speed)數(shù)據(jù)傳輸。
評論