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