文獻標識碼: A
文章編號: 0258-7998(2013)03-0119-04
非對稱的點對點通信在應用中十分常見,非對稱指的是某一方向的數據傳輸量明顯大于相反方向。高速數據傳輸系統主要傳輸圖像數據,需要完成由PC向存儲設備的高速傳輸,它是非對稱的。針對圖像數據的高速傳輸,美國國家半導體公司推出了CameraLink標準[1],美國自動化成像協會提出了GigE Vision標準[2]。這兩個標準均整合了相機,GigE Vision甚至集成了部分TCP/IP協議,而系統中數據傳輸是由以太網、高速接口級聯而成,故不可以直接使用以上標準。對于點對點通信,有著完備的協議和專用設備,如USB3.0[3]接口。但對于本系統簡單的點對點高速傳輸,其實現比較復雜。高速總線主要有HOTLink和低擺幅差分信號LVDS(Low Voltage Differential Signaling)[4],其中LVDS可以在差分PCB線對或平衡電纜上以幾百兆至幾千兆比特每秒的速率傳輸數字信號,在實際中應用較多,Cameralink標準的電氣連接也是基于LVDS的。
為提高帶寬,LVDS標準提議使用提高總線位寬的方法[5],三線同步串行傳輸已得到實現[6]。同樣,使用DDR傳輸也是提高帶寬的一種方法,也已實現[7]。
本文結合增加總線位寬和DDR傳輸兩種方法,提出一種基于LVDS并口的通信協議:幀格式、數據分包方法,分析協議效率和基于停止等待ARQ的差錯、流量控制方法,在IEEE802.3千兆以太網的應用中證明該協議完全可行。
1 高速數據傳輸系統
高速數據傳輸系統通過存儲設備連接顯示設備,通過IEEE802.3千兆網卡連接控制計算機,其結構如圖1所示。
千兆網卡和存儲設備分別由兩片FPGA控制,數據經FPGA通過高速接口傳輸至存儲設備,為使千兆網卡能全速工作,接口速率至少為1 Gb/s。
2 停止等待ARQ通信協議設計
2.1 協議電氣接口
由于千兆網卡和SDRAM間為超短距離傳輸,故本協議使用LVDS接口。為提高接口速率,采用并行接口[5];為減少傳輸數據冗余,采用源同步,即1路時鐘,4路數據,雙沿采樣(DDR)的源同步方式。此時當時鐘頻率為150 MHz時,總理論帶寬就可達1.2 Gb/s。
2.2 幀格式
通信協議的設計中首要問題是幀格式的設計[8]。超近距離非對稱點對點通信有源端、宿端明確、誤碼率低的特點,故幀格式設計依照減少冗余、降低校驗復雜度的原則。其由命令幀和應答幀組成,幀格式如圖2、圖3所示。傳輸數據的長度以字節為單位,上升沿發送高4位數據,下降沿發送低4位數據,每一個時鐘周期正好傳送1 B數據。
2.2.1 開始停止界定符
一幀的開始由前導碼標志,但無停止碼,數據的長度由長度字段指示。為保證每次通信開始時數據總線均發生翻轉,前導碼使用FF00;總線空閑時,保持最后發送的數據不變。
2.2.2 其他字段
命令幀由長度、類型、數據、校驗字段構成:長度字段長度為2 B,高字節先發,其表示“類型”、“數據”、“校驗”字段總長度;類型字段長度為1 B,最多可表示256種命令(例:0x10:寫寄存器,0x11:讀寄存器,0x12:寫RAM數據);數據字段長度可變,數據類型為寫寄存器時其由1 B的寫寄存器地址和1 B的寫寄存器內容組成,為讀寄存器時由1 B的讀寄存器地址組成,寫RAM時為待寫入數據(由于長度字段為2 B,所以待寫入數據最長為65 533 B);校驗字段長度為1 B,為模256校驗結果。
應答幀由長度、類型、操作結果、響應、校驗字段構成:長度、類型、校驗字段的構成同命令幀;操作結果字段長度為1 B,其表示接受端對命令的處理結果;響應字段長度可變,數據類型為寫寄存器時其為1 B長度的寄存器內容,寫RAM時為2 B的已接收數據長度,主要用于流量控制。
2.3 收發流程
由于使用源同步傳輸,系統不需要再進行同步操作[9],發送時將時鐘延遲數據90度以獲得更佳時序。每次通信由發送端發送命令幀開始,發送端收到應答幀結束。
讀寫寄存器幀格式相對固定,本文對寫RAM操作分析。每次通信發送端發送命令幀,接收端在接收、處理完數據后響應應答幀。
圖4為發送端處理流程,只要緩沖區內有數據,發送端就組幀發送,每次發送有效數據的最大值可自定義(本文中為2 048 B),發送完數據收到應答幀后再進行下幀的發送。
圖 5為接收端流程,接收端啟動后一直處在等待狀態,直到收到前導碼后啟動接收流程,通過判讀長度字段獲得幀長信息,在接收校驗完數據后應答實際接收數據長度給發送端并復位系統等待下次傳輸。
2.4 差錯和流量控制
通信中的誤碼率非零,為保證數據的可靠傳輸,協議中需包含校驗部分以進行差錯控制。為簡化設計,校驗部分只進行檢錯,不進行糾錯,放棄使用常見復雜的CRC32校驗,使用簡單的256求模校驗,即除前導碼、長度字段外所有數據字節之和為256。
當發送端數據發送速率高于接收端處理速率或通信出現錯誤時需要進行流量控制,本協議使用停止等待ARQ協議,停止等待ARQ在傳播延時較低的信道中工作良好[10]且易于實現。正常情況下發送端在收到最近發出的命令幀對應的應答幀后再發送下一命令幀,控制邏輯如下:
(1) 發送端發送命令幀并啟動延遲計數器,等待應答幀;
(2)接收端收到命令幀校驗接收后將實際寫入到緩沖區內的數據長度由應答幀響應給發送端,其間如果校驗錯誤則丟棄該幀數據;
(3) 發送端收到應答幀后根據響應字段長度決定重發、補發或繼續發送下幀數據(響應長度為0,重發數據;響應長度小于已發長度,補發剩余數據;響應長度等于已發長度,發送下幀數據),如果發送端等待應答幀超時則重新發送上幀數據。
3 協議效率分析
如圖2、圖3幀格式所示,高速并口協議在讀寫寄存器操作時命令幀長度較短,協議效率固定,而寫RAM操作參數可以配置。因此,對寫RAM操作的協議效率進行分析有較大意義。
協議效率主要受命令幀最大長度、傳輸/傳播延遲和誤碼率影響。命令幀數據字段長度最大值由人為設定,范圍為1~65 533 B,記為Lm/B;傳輸延遲由數據幀的總長度決定,記為Dt/s;傳播延遲由通信鏈路的長度所決定,記為Dp/s;收發系統工作頻率記為Fs/Hz,總傳輸有效數據長度記為Lp/B,總傳輸數據幀長度為Lt/B,誤碼率為Er,通信線路長度為Dis/m。則Dt=Lt×Fs,Dp=2×Dis/(2.8×108)。
由圖 6可見,命令幀最大長度一定的情況下,隨著通信鏈路長度的增加(即傳播延時的增加),協議效率將降低;在傳播延時一定的情況下,隨著命令幀最大長度的增加,協議效率增加,但這種增加不是線性的,長度達到2 000 B后增長趨于平緩。
最大命令幀長度直接影響到收發端的緩沖空間,綜合考慮數據最大長度為2 048 B、3 072 B或4 096 B最佳。此時在鏈路長度為20 cm時效率可達99.26%、99.51%和99.63%。
忽略傳播延時,由式(3),數據最大長度一定時,不同誤碼率下的協議效率如圖7所示。
由圖 7可見相同誤碼率下數據最大長度越大協議效率越高,當誤碼率高于10-6時誤碼率才對協議效率有較大影響。誤碼率低于10-8時,最大長度為2 048 B時效率可達99.27%,最大長度為3 072 B時效率可達99.51%,最大長度為4 096 B時效率可達99.64%.
實際應用中由于每次傳送的數據不會都按照最大數據長度傳輸以及系統組幀、解幀需要時間,故協議效率會低于理論值。相對于IEEE802.3協議98.28%的理論效率[11],本協議優勢明顯。
實際中,使用本通信協議進行千兆網卡與SDRAM間的數據傳輸,通信鏈路長度20 cm,鏈路誤碼率小于10-12,幀最大數據長度2 048 B。千兆網卡以90 MB/s連續接收電腦端發來60 MB數據,高速接口可以準確無誤地將數據傳送至SDRAM中。計算機發送1 480 000 B數據給千兆網卡,數據被分成了7 722幀,協議效率為96.96%(含傳播延時82.37%);計算機發送148 000 000 B數據給千兆網卡,數據被分成了817156幀,協議效率為96.97%(含傳播延時81.80%)。平均每幀有效數據長度低于200 B,由此可見本通信接口在應用中尚有較大裕量,系統中的速率瓶頸在千兆網絡處。
參考文獻
[1] BASLER. Camera link specifications of the camera link interface standard for digital cameras and frame grabbers[S]. October 2000.
[2] Automated Imaging Association. GigE vision 1.0[S]. May 2006.
[3] Universal Serial Bus 3.0 Specification Revision 1.0 [S]. June 6, 2011:47.
[4] 向冰.高速圖像串行總線傳輸[J].現代電子技術, 2006(24):97-100.
[5] Electrical characteristics of low voltage differential signaling(LVDS) interface circuits revision 1.2[S].May,2000:10.
[6] 王文華,何斌,任建岳.LVDS三線同步串口的傳輸速率[J].液晶與顯示,2011,26(3):344-349.
[7] 盂令軍,張國兵,王宏濤,等.基于FPGA的LVDS高速差分接口應用[J].化工自動化及儀表,2010,37(5):94-96.
[8] Zheng Qiao. An embedded short-range wireless data communication protocol design[C]. Apperceiving Computing and Intelligence Analysis, 2009:399.
[9] 陳瑩,高雙成.基于FPGA的LVDS接口應用[J].電子科技2012,25(1):10.
[10] ALBERTO L G, INDRA W.通信網-基本概念與主體結構[M].王海濤,李建華,譯.北京:清華大學出版社,2005.
[11] Carrier sense multiple access with collision detection(CSMA/ CD) access method and physical layer specifications[S].IEEE Std 802.3, 1998 Edition:76.