趙文達,趙 建,曲 鋒,續志軍
(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100049)
隨著科技的發展,人們對視頻的清晰度要求越來越高,高清視頻的傳輸需要較高的帶寬。隨著CCD等成像器件工藝的不斷進步完善,相機不論幀頻速度、分辨率還是動態范圍和靈敏度都有了較大的提高,從而圖像數據的傳輸也需要高的帶寬。另一方面,短距離的數據傳輸已不能滿足工程的需要,人們開始研究快速、高效的遠距離數據傳輸。針對上述問題,本文設計了嵌入式千兆網高清視頻傳輸系統[1-4]。
目前常用的高清視頻傳輸方法是:首先應用視頻壓縮編碼來減小傳輸帶寬;然后,采用計算機上的10M/100M以太網,將壓縮視頻傳到另一端的計算機上;最后,在另一端計算機上將壓縮視頻解碼并顯示。此種方法可以較快速地實現高清視頻的遠程傳輸,但系統復雜,成本高,使用不便。本文設計的系統將視頻數據的采集、傳輸和處理集成在一起,這樣整個系統集成度高、小巧、使用方便、成本低。在數據的高速遠程傳輸方面,本設計采用千兆以太網技術。千兆以太網在原有百兆以太網的技術規范上改進得到的,它與10M/100M以太網兼容,使用方便。并且,它的數據傳輸最高可以達到1 000M/s的帶寬,可以滿足高清視頻數據對傳輸帶寬的要求[5-7]。
本文設計的系統采用Camera Link接口的紫外相機進行視頻圖像數據采集,在FPGA的控制下,經千兆以太網高速傳輸至上位機進行圖像的緩存與顯示。其中,網絡協議的處理和千兆網底層驅動的設計是本系統實現的難點。
該系統需滿足以下需求:(1)傳輸圖像的分辨率在720×1 020以上,數據位寬為8位,圖像最高幀頻為40Hz;(2)支持RJ45接口的千兆以太網,采用TCP/IP網絡傳輸協議;(3)視頻圖像數據采集接口支持CameraLink接口。根據以上系統需求,設計千兆網系統的組成如圖1所示。

圖1 系統總體結構框圖Fig.1 Overall structure of the system
(1)Camera Link相機數據采集:相機產生的標準Camera Link信號經過專用接收芯片DS90CR288解碼成LVTTL信號輸入給FPGA內部的圖像采集模塊[8]。圖像采集模塊根據行有效、數據有效等信號對有效的行和像素計數,將有用的像素數據傳給數據處理模塊。
(2)圖像數據處理:數據處理模塊參照像素時鐘對圖像數據進行串并轉換處理,然后將轉換后的并行數據緩存到FIFO中。
(3)數據傳輸的千兆網驅動:在FPGA的千兆網驅動中實現精簡的TCP/IP協議和數據包的收發。媒體訪問控制(MAC)層采用AX88180芯片,以太網物理層(PHY)采用M88E1111芯片。
其中,網絡協議的處理和千兆網底層驅動的設計是本系統實現的重點也是難點,下面主要從這兩方面介紹。
TCP/IP 協議(Transmission Control Protocol/Internet Protocol)即傳輸控制/網際協議,也被稱為網絡通訊協議。互聯網中各主機進行通信使用的標準都是由它規定的[9]。TCP/IP是由應用層、運輸層、網絡層和數據鏈路層組成的。應用層是體系結構中的最高層,它直接為用戶的應用進程提供服務。運輸層主要包括傳輸控制TCP協議和用戶數據報UDP協議,它負責向兩個主機中進程之間的通信提供服務。網絡層主要為不同主機在分組交換網上提供通信服務。IP協議(網絡協議)是TCP/IP在網絡層上的主要協議。數據鏈路層將網絡層數據組裝成幀,并提供透明、可靠的數據傳送基本服務。
本文設計的視頻圖像傳輸系統的網絡協議的處理由FPGA實現,考慮到效率與復雜性的問題,需要對TCP/IP協議進行相應的化簡。本文設計的系統的網絡協議特點為:(1)端對端通信環境。數據交換僅僅在采集前端和計算機之間進行,在這種情況下可以忽略因為網絡堵塞、延時等導致數據丟失的可能性,因此系統不需要任何復雜的可靠性控制協議,使用UDP協議即可。(2)通訊雙方信息固定。如UDP端口號、IP地址和MAC地址等可以事先確定,不需要再實現相關的尋址協議。(3)數據格式固定。由于前端千兆以太網主要用來傳輸圖像數據包,數據包格式及長度可以事前確定,并且采集前端從計算機接收命令數據包的數量及類型也都是固定的,直接丟棄相關的協議信息,僅根據數據就可以確定命令種類。這樣對于數據采集前端來說,就可以把各層協議的首部事先準備好,發送時直接以常量形式封裝在有效數據包前面,將封裝后的數據包直接交給協議芯片發送,而不用再由系統實時計算產生。試驗采用的各層協議格式[10]如表1所示。

表1 各層協議格式Tab.1 Levels of agreement format
要通過千兆網以太網傳輸數據,至少需要實現開放系統互聯模型(OSI)中物理層和數據鏈路層的功能。數據鏈路層主要承擔數據幀的構建、傳輸控制、差錯檢查工作,物理層主要負責數據編解碼、時鐘基準、線路狀態監測等工作。目前的以太網設計,常用的方法是將繁瑣的以太網通訊協議編寫在主控制器中,然后外連物理層接口芯片。以太網協議由軟件實現較為復雜,不夠穩定,并且不方便調試。為了簡化設計系統的復雜度和節約成本,本設計選擇了獨立的數據鏈路層控制芯片AX88180,對數據進行封裝,并構建頂層傳輸控制協議[11]。M88E111作為千兆以太網物理層芯片,完成數據的信道編解碼、傳輸時鐘的生成以及控制碼元在物理信道上的傳輸。
AX88180是一款適用于千兆以太網的數據鏈路層(MAC)芯片,與主機通信采用16/32位的直接總線方式,1 000M模式下支持全雙工操作,兼容IEEE802.3、802.3u、802.3ab網絡標準,支持SRAM-LIKE主機接口,可以非常方便地與FPGA、ARM、DSP等控制器連接。M88E1111是MARVELL公司推出的適用于1000BASE-T應用的千兆物理層芯片,它采用標準的CMOS工藝制 造,支 持 IEEE 802.3、IEEE 802.3u、IEE E802.3ab標準,向下兼容10BASE-T、100BASET 應用,支持 GMII、RGMII、SGMII、TBI、RTBI與MAC接口標準。FPGA、AX88180與 M88E1111之間的連接電路如圖2所示。

圖2 FPGA、AX88180與 M88E1111之間連接電路圖Fig.2 Connection circuit between the FPGA,AX88180and M88E1111
由于FPGA具有充足的管腳與AX88180連接,為了實現較高的數據傳輸速率,選擇了32位的接口和異步操作的工作方式。AX88180主機接口共包括32位數據總線HD[31:0]、16位地址總線 HA[15:0]、片選信號CSN、讀信號OEN、寫信號 WEN、中斷信號INTN、硬件復位信號RST_N。AX88180采用RGMII(Reduced GMII)接口與PHY連接。RGMII接口主要包括發送數據TXD[0:3]、發送時鐘 TXCX、發送時能 TXEN、接收數據RXD[0:3]、接收時鐘RXCX、接收使能RXDV以及沖突信號COL和傳輸感應信號CRS、參考時鐘信號CLK125以及PHY中斷信號PHYINTN等。另外,AX88180輸入時鐘與FPGA輸入時鐘由同一100MHz晶振提供,AX88180和M88E1111的復位信號都由FPGA控制,M88E1111將25MHz的時鐘信號倍頻成125MHz時鐘給AX88180提供發送參考時鐘。
千兆網驅動的設計主要包括系統的初始化、數據包的接收發送和收發的仲裁。系統的初始化在系統上電時運行,主要工作是根據網絡芯片說明手冊對芯片寄存器進行適當的設置,使網絡處于一個穩定的初始狀態。設計中需要注意的是根據M88E1111數據手冊的規定,M88E1111硬件復位至少需要持續15ms以上的復位時間,并且復位信號結束5ms以后才能訪問PHY寄存器。發送模塊的主要工作是將數據從FPGA片內緩沖區中移出來,為其加上合適的協議首部后寫入AX88180的內部發送緩沖區中,之后通過控制AX88180的發送寄存器將其通過千兆以太網發送出去。數據的發送是在FPGA中編程實現的,編程的技巧采用狀態機的思想[12]。發送過程是首先在原始狀態等待,等到FIFO中緩存的圖像數據大于一行時,將數據包頭寫入AX88180的發送緩沖區,包頭寫完后,FPGA將FIFO中的一行圖像數據寫入AX88180的發送緩沖區,寫完成后,配置與AX88180發送相關的寄存器,將一個完整的數據包通過PHY芯片88EE1111發送出去,發送結束進入到原始狀態等待下一行新數據的發送。數據包的接收主要接收上位機發過來的命令,對于本系統僅包括開始采集、停止采集等。AX88180接收到有效的數據包后,通過中斷通知FPGA。仲裁模塊在數據發送空閑時檢測并判斷中斷的狀態,如果當前有效的是接收中斷,總線就會交給接收模塊。上位機傳輸過來的數據幀包括相應的協議頭,為了降低系統設計復雜度,設計中規定長度為100字節的數據幀為系統命令使用的幀長度,并且僅根據其中的1個字節判斷命令種類,對于長度不等于100字節的數據幀直接做丟棄處理。
數據收發仲裁的作用是根據系統運行狀態為系統初始化、發送數據、接收數據分配FPGA的總線使用權,避免因為數據混亂造成系統工作不正常,同時還捕獲MAC的接收中斷。工作流程如圖3所示。

圖3 數據收發仲裁流程圖Fig.3 Data transceiver arbitration flowchart
上電時,FPGA先對系統初始化即總線被初始化占用,等到初始化完成后交出總線,等待MAC接收中斷,中斷有效時接收上位機發來的命令數據包,此時總線由接收模塊占用。若命令發送數據,則發送模塊占用總線將圖像數據發送到上位機,發送間隔時期再判斷MAC接收中斷狀態以判斷是否存在接收數據,若有則接收模塊要在發送間隔內將數據接收完畢,繼續判斷上位機命令,若為停止發送,則回到等待MAC中斷狀態,否則繼續發送數據。
實驗采用分辨率為1 392×1 040,幀頻為16Hz,8位像素,像素時鐘主頻為33.75MHz的紫外相機。由于發送模塊發送數據的效率直接影響數據的高速傳輸,本文做了數據發送過程的仿真,發送模塊在FPGA中通過狀態機編程實現,波形如圖4所示(利用Altera的SignaltapII獲得)。

圖4 數據發送過程的仿真波形Fig.4 Simulation waveforms of data transmission process
為了完整地觀察到發送數據過程中狀態機的變化,將采集的兩幅圖拼接來看。sendHA和sendHD分別代表AX88180的地址總線和數據總線,st0、st1、st2、st3分別代表狀態機中的等待、給數據添加包頭、將數據寫入AX88180的發送緩沖區、配置與發送有關的寄存器4個狀態,高電平有效。wradd表示發送一個網絡數據包的圖像數據數,在st2為高電平時,wradd從0到347共348個32位寬的數據,即為1 392個8位寬的圖像數據寫入AX88180的發送緩沖區,正好為一行圖像。
上位機測試程序用VC++編寫,start表示開始采集圖像,stop表示停止采集圖像。上位機測試程序如圖5所示。

圖5 上位機測試程序效果圖Fig.5 Computer test program effect diagram
可以看出圖像存儲完整,無丟失數據現象,并且測得系統可以穩定的工作在最高數據傳輸速度為607.8Mbit/s。
設計實現了無損視頻高速傳輸的嵌入式千兆網系統。介紹了硬件電路的基本組成,重點介紹了網絡協議的處理和千兆網底層驅動的設計,包括網絡接口芯片的連接、數據包的接收發送和數據收發的仲裁。上位機采用VC++6.0編寫的應用程序實現了網絡通訊和高速網絡數據流的實時存儲與顯示。最后在實驗室完成了圖像采集顯示及傳輸速率的測試,最高傳輸速度達到607.8 Mbit/s,與已有的千兆網系統數據傳輸速率為300Mbit/s[4]相比,速率提高了一倍多,在實際應用中取得了良好效果。
[1] 羅通頂,李斌康,郭明安,等.科學級CCD遠程圖像采集系統 [J].光學精密工程,2013,21(2):496-502.Luo T D,Li B K,Guo M A,et al.Remote image acquisition system with scientific grade CCD [J].Opt.Precision Eng.,2013,21(2):496-502.(in Chinese)
[2] 李進,呂增明,陶宏江,等.適于高速CCD圖像數據光纖傳輸的糾錯技術[J].光學精密工程,2012,20(11):2548-2558.Li J,Lv Z M,Tao H J,et al.Error correction technology for CCD image using high speed optical fiber transmission[J].Opt.Precision Eng.,2012,20(11):2548-2558.(in Chinese)
[3] 田園,任國強,吳欽章.基于SSD硬盤的嵌入式高速圖像存儲技術[J].光電工程,2009,36(12):138-142.Tian Y,Ren G Q,Wu Q Z.Embedded technology of high-speed image storage based on SSD [J].Opto-Electronic Engineering,2009,36(12):138-142.(in Chinese)
[4] 李艷霞.千兆以太網接口高速圖像采集系統設計[D].大連:大連理工大學,2010.Li Y X.High-speed image acquisition system based on gigabit ethernet interface[D].Dalian:Dalian University of Technology,2010.(in Chinese)
[5] 馬建設,李合銀,程雪岷,等.嵌入式自動聚焦攝像模組控制系統的設計[J].光學精密工程,2012,20(10):2222-2228.Ma J S,Li H Y,Cheng X M,et al.Control system for embedded auto-focusing camera module[J].Opt.Precision Eng.,2012,20(10):2222-2228.(in Chinese)
[6] 樊光輝,孫國強,向健勇.基于千兆以太網技術的大型實時傳輸系統[J].電子科技,2009,22(3):37-40.Fan G H,Sun G Q,Xiang J Y.Large-scale real-time transmission system based on gigabit ethernet technology[J].Electronic Sci.& Tech.,2009,22(3):37-40.(in Chinese)
[7] 狄旭明.遠程高清視頻采集系統設計[D].成都:成都理工大學,2010.Di X M.The design of remote HD video acquisition system [D].Chengdu:Chengdu University of Technology,2010.(in Chinese)
[8] 呂耀文,王建立,曹景太,等.移動便攜圖像存儲系統的設計[J].液晶與顯示,2012,27(5):697-702.Lv Y W,Wang J L,Cao J T,et al.Design of portable image storage system [J].Chinese Journal of Liquid Crystals and Displays,2012,27(5):697-702.(in Chinese)
[9] 謝喆.基于FPGA的TCP/IP數據通信的設計與應用[D].武漢:武漢科技大學,2011.Xie Z.The design and implementation of TCP/IP communication based on FPGA [D].Wuhan:Wuhan University of Science and Technology,2011.(in Chinese)
[10] 馬騰飛,高世杰,吳志勇.基于千兆以太網的圖像采集系統設計[J].微型機與應用,2010(9):72-74.Ma T F,Gao S J,Wu Z Y.Synchronized frame acquisition system based on gigabit ethernet[J].Micro Computer and Application,2010(9):72-74.(in Chinese)
[11] 李爽,鄭喜鳳,嚴飛.千兆以太網介質轉換器在LED顯示屏傳輸系統中的應用[J].液晶與顯示,2012,27(1):75-80.Li S,Zheng X F,Yan F.Gigabit etherent media converter used in LED display transmission system [J].Chinese Journal of Liquid Crystals and Displays,2012,27(1):75-80.(in Chinese)
[12] 薛盼盼,王曉東,劉文光,等.空間遙感儀器便攜式數據采集試驗系統研究[J].液晶與顯示,2012,27(2):257-262.Xue P P,Wang X D,Liu W G,et al.Portable data acquisition test system for space remote sensing instrument[J].Chinese Journal of Liquid Crystals and Displays,2012,27(2):257-262.(in Chinese)