《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > LVDS高速并口通信協(xié)議設(shè)計(jì)
LVDS高速并口通信協(xié)議設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第3期
楊 雷, 龍哲仁, 盧繼華, 孫 磊
北京理工大學(xué) 信息與電子學(xué)院, 北京100081
摘要: 提出高速數(shù)據(jù)傳輸系統(tǒng)中IEEE802.3千兆網(wǎng)卡與同步靜態(tài)存儲(chǔ)器間非對(duì)稱(chēng)點(diǎn)對(duì)點(diǎn)高速通信接口和通信協(xié)議設(shè)計(jì)方案,,接口速率不低于1 Gb/s,?;诟咚俳涌谥谐S玫牡碗妷翰罘中盘?hào)技術(shù),,電氣連接單向使用5路低擺幅差分信號(hào)對(duì),其中1路時(shí)鐘,,4路數(shù)據(jù),,雙沿采樣源同步傳輸,;基于適用于短傳播延時(shí)的停止等待自動(dòng)重復(fù)請(qǐng)求協(xié)議,,通信協(xié)議使用命令——應(yīng)答機(jī)制,;利用模256校驗(yàn)保證數(shù)據(jù)的可靠傳輸。理論分析表明,,通信接口帶寬可達(dá)1.2 Gb/s,,協(xié)議效率在99%以上,協(xié)議工作穩(wěn)定可靠,,在滿(mǎn)足千兆網(wǎng)卡全速接收轉(zhuǎn)發(fā)數(shù)據(jù)的情況下,,高速并口帶寬仍有裕量。
中圖分類(lèi)號(hào): TN919.3
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)03-0119-04
The design of high speed LVDS parallel port communication protocol
Yang Lei, Long Zheren, Lu Jihua, Sun Lei
Information and Electronic College, Beijing Institute of Technology, Beijing 100081, China
Abstract: In the high speed data transmission system, a high speed dissymmetrical point to point communication port and protocol between IEEE802.3 GENIC(Gigabit Ethernet Network Interface Card) and SDRAM are designed, while the port’s speed should not below 1 Gb/s. Port’s electrical connection are based on LVDS(Low Voltage Differential signaling), and five LVDS pairs are used in one direction, while one clock and four data. Double-edge sampling and source-synchronize are also used. Based on STOP-WAIT ARQ protocol, command and acknowledgment mechanism is used. Mode 256 checkout is used to guarantee the reliable data transmission. Analysis shows that the port’s bandwidth is 1.2 Gb/s, and the efficiency of protocol is above 99%. Finally, the protocol works steadily and trustily in system. When the GENIC receive and transmit data at fully speed, the port’s bandwidth remain nonzero.
Key words : high speed transmission system; LVDS parallel ports; communication protocol; stop-wait ARQ; IEEE802.3

    非對(duì)稱(chēng)的點(diǎn)對(duì)點(diǎn)通信在應(yīng)用中十分常見(jiàn),,非對(duì)稱(chēng)指的是某一方向的數(shù)據(jù)傳輸量明顯大于相反方向,。高速數(shù)據(jù)傳輸系統(tǒng)主要傳輸圖像數(shù)據(jù),需要完成由PC向存儲(chǔ)設(shè)備的高速傳輸,,它是非對(duì)稱(chēng)的,。針對(duì)圖像數(shù)據(jù)的高速傳輸,美國(guó)國(guó)家半導(dǎo)體公司推出了CameraLink標(biāo)準(zhǔn)[1],,美國(guó)自動(dòng)化成像協(xié)會(huì)提出了GigE Vision標(biāo)準(zhǔn)[2],。這兩個(gè)標(biāo)準(zhǔn)均整合了相機(jī),GigE Vision甚至集成了部分TCP/IP協(xié)議,而系統(tǒng)中數(shù)據(jù)傳輸是由以太網(wǎng),、高速接口級(jí)聯(lián)而成,,故不可以直接使用以上標(biāo)準(zhǔn)。對(duì)于點(diǎn)對(duì)點(diǎn)通信,,有著完備的協(xié)議和專(zhuān)用設(shè)備,,如USB3.0[3]接口。但對(duì)于本系統(tǒng)簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)高速傳輸,,其實(shí)現(xiàn)比較復(fù)雜,。高速總線(xiàn)主要有HOTLink和低擺幅差分信號(hào)LVDS(Low Voltage Differential Signaling)[4],其中LVDS可以在差分PCB線(xiàn)對(duì)或平衡電纜上以幾百兆至幾千兆比特每秒的速率傳輸數(shù)字信號(hào),,在實(shí)際中應(yīng)用較多,,Cameralink標(biāo)準(zhǔn)的電氣連接也是基于LVDS的。

    為提高帶寬,,LVDS標(biāo)準(zhǔn)提議使用提高總線(xiàn)位寬的方法[5],,三線(xiàn)同步串行傳輸已得到實(shí)現(xiàn)[6]。同樣,,使用DDR傳輸也是提高帶寬的一種方法,,也已實(shí)現(xiàn)[7]。
    本文結(jié)合增加總線(xiàn)位寬和DDR傳輸兩種方法,,提出一種基于LVDS并口通信協(xié)議:幀格式,、數(shù)據(jù)分包方法,分析協(xié)議效率和基于停止等待ARQ的差錯(cuò),、流量控制方法,,在IEEE802.3千兆以太網(wǎng)的應(yīng)用中證明該協(xié)議完全可行。
1 高速數(shù)據(jù)傳輸系統(tǒng)
    高速數(shù)據(jù)傳輸系統(tǒng)通過(guò)存儲(chǔ)設(shè)備連接顯示設(shè)備,,通過(guò)IEEE802.3千兆網(wǎng)卡連接控制計(jì)算機(jī),其結(jié)構(gòu)如圖1所示,。

    千兆網(wǎng)卡和存儲(chǔ)設(shè)備分別由兩片FPGA控制,數(shù)據(jù)經(jīng)FPGA通過(guò)高速接口傳輸至存儲(chǔ)設(shè)備,,為使千兆網(wǎng)卡能全速工作,,接口速率至少為1 Gb/s。

 


2 停止等待ARQ通信協(xié)議設(shè)計(jì)
2.1 協(xié)議電氣接口

    由于千兆網(wǎng)卡和SDRAM間為超短距離傳輸,,故本協(xié)議使用LVDS接口,。為提高接口速率,采用并行接口[5],;為減少傳輸數(shù)據(jù)冗余,,采用源同步,即1路時(shí)鐘,,4路數(shù)據(jù),,雙沿采樣(DDR)的源同步方式,。此時(shí)當(dāng)時(shí)鐘頻率為150 MHz時(shí),總理論帶寬就可達(dá)1.2 Gb/s,。
2.2 幀格式
    通信協(xié)議的設(shè)計(jì)中首要問(wèn)題是幀格式的設(shè)計(jì)[8],。超近距離非對(duì)稱(chēng)點(diǎn)對(duì)點(diǎn)通信有源端、宿端明確,、誤碼率低的特點(diǎn),,故幀格式設(shè)計(jì)依照減少冗余、降低校驗(yàn)復(fù)雜度的原則,。其由命令幀和應(yīng)答幀組成,,幀格式如圖2、圖3所示,。傳輸數(shù)據(jù)的長(zhǎng)度以字節(jié)為單位,,上升沿發(fā)送高4位數(shù)據(jù),下降沿發(fā)送低4位數(shù)據(jù),,每一個(gè)時(shí)鐘周期正好傳送1 B數(shù)據(jù),。

2.2.1 開(kāi)始停止界定符
   一幀的開(kāi)始由前導(dǎo)碼標(biāo)志,但無(wú)停止碼,,數(shù)據(jù)的長(zhǎng)度由長(zhǎng)度字段指示。為保證每次通信開(kāi)始時(shí)數(shù)據(jù)總線(xiàn)均發(fā)生翻轉(zhuǎn),,前導(dǎo)碼使用FF00,;總線(xiàn)空閑時(shí),保持最后發(fā)送的數(shù)據(jù)不變,。
2.2.2 其他字段
    命令幀由長(zhǎng)度,、類(lèi)型、數(shù)據(jù),、校驗(yàn)字段構(gòu)成:長(zhǎng)度字段長(zhǎng)度為2 B,,高字節(jié)先發(fā),其表示“類(lèi)型”,、“數(shù)據(jù)”,、“校驗(yàn)”字段總長(zhǎng)度;類(lèi)型字段長(zhǎng)度為1 B,,最多可表示256種命令(例:0x10:寫(xiě)寄存器,,0x11:讀寄存器,0x12:寫(xiě)RAM數(shù)據(jù)),;數(shù)據(jù)字段長(zhǎng)度可變,,數(shù)據(jù)類(lèi)型為寫(xiě)寄存器時(shí)其由1 B的寫(xiě)寄存器地址和1 B的寫(xiě)寄存器內(nèi)容組成,為讀寄存器時(shí)由1 B的讀寄存器地址組成,寫(xiě)RAM時(shí)為待寫(xiě)入數(shù)據(jù)(由于長(zhǎng)度字段為2 B,所以待寫(xiě)入數(shù)據(jù)最長(zhǎng)為65 533 B);校驗(yàn)字段長(zhǎng)度為1 B,,為模256校驗(yàn)結(jié)果,。
    應(yīng)答幀由長(zhǎng)度,、類(lèi)型、操作結(jié)果,、響應(yīng),、校驗(yàn)字段構(gòu)成:長(zhǎng)度、類(lèi)型,、校驗(yàn)字段的構(gòu)成同命令幀,;操作結(jié)果字段長(zhǎng)度為1 B,其表示接受端對(duì)命令的處理結(jié)果,;響應(yīng)字段長(zhǎng)度可變,,數(shù)據(jù)類(lèi)型為寫(xiě)寄存器時(shí)其為1 B長(zhǎng)度的寄存器內(nèi)容,寫(xiě)RAM時(shí)為2 B的已接收數(shù)據(jù)長(zhǎng)度,,主要用于流量控制,。
2.3 收發(fā)流程
    由于使用源同步傳輸,系統(tǒng)不需要再進(jìn)行同步操作[9],發(fā)送時(shí)將時(shí)鐘延遲數(shù)據(jù)90度以獲得更佳時(shí)序,。每次通信由發(fā)送端發(fā)送命令幀開(kāi)始,,發(fā)送端收到應(yīng)答幀結(jié)束。
    讀寫(xiě)寄存器幀格式相對(duì)固定,,本文對(duì)寫(xiě)RAM操作分析,。每次通信發(fā)送端發(fā)送命令幀,接收端在接收,、處理完數(shù)據(jù)后響應(yīng)應(yīng)答幀,。
    圖4為發(fā)送端處理流程,只要緩沖區(qū)內(nèi)有數(shù)據(jù),發(fā)送端就組幀發(fā)送,,每次發(fā)送有效數(shù)據(jù)的最大值可自定義(本文中為2 048 B),,發(fā)送完數(shù)據(jù)收到應(yīng)答幀后再進(jìn)行下幀的發(fā)送。

    圖 5為接收端流程,,接收端啟動(dòng)后一直處在等待狀態(tài),,直到收到前導(dǎo)碼后啟動(dòng)接收流程,通過(guò)判讀長(zhǎng)度字段獲得幀長(zhǎng)信息,,在接收校驗(yàn)完數(shù)據(jù)后應(yīng)答實(shí)際接收數(shù)據(jù)長(zhǎng)度給發(fā)送端并復(fù)位系統(tǒng)等待下次傳輸,。

2.4 差錯(cuò)和流量控制
    通信中的誤碼率非零,為保證數(shù)據(jù)的可靠傳輸,,協(xié)議中需包含校驗(yàn)部分以進(jìn)行差錯(cuò)控制,。為簡(jiǎn)化設(shè)計(jì),校驗(yàn)部分只進(jìn)行檢錯(cuò),,不進(jìn)行糾錯(cuò),,放棄使用常見(jiàn)復(fù)雜的CRC32校驗(yàn),使用簡(jiǎn)單的256求模校驗(yàn),,即除前導(dǎo)碼,、長(zhǎng)度字段外所有數(shù)據(jù)字節(jié)之和為256,。
    當(dāng)發(fā)送端數(shù)據(jù)發(fā)送速率高于接收端處理速率或通信出現(xiàn)錯(cuò)誤時(shí)需要進(jìn)行流量控制,本協(xié)議使用停止等待ARQ協(xié)議,,停止等待ARQ在傳播延時(shí)較低的信道中工作良好[10]且易于實(shí)現(xiàn),。正常情況下發(fā)送端在收到最近發(fā)出的命令幀對(duì)應(yīng)的應(yīng)答幀后再發(fā)送下一命令幀,控制邏輯如下:
    (1) 發(fā)送端發(fā)送命令幀并啟動(dòng)延遲計(jì)數(shù)器,,等待應(yīng)答幀,;
    (2)接收端收到命令幀校驗(yàn)接收后將實(shí)際寫(xiě)入到緩沖區(qū)內(nèi)的數(shù)據(jù)長(zhǎng)度由應(yīng)答幀響應(yīng)給發(fā)送端,其間如果校驗(yàn)錯(cuò)誤則丟棄該幀數(shù)據(jù),;
    (3) 發(fā)送端收到應(yīng)答幀后根據(jù)響應(yīng)字段長(zhǎng)度決定重發(fā),、補(bǔ)發(fā)或繼續(xù)發(fā)送下幀數(shù)據(jù)(響應(yīng)長(zhǎng)度為0,重發(fā)數(shù)據(jù),;響應(yīng)長(zhǎng)度小于已發(fā)長(zhǎng)度,,補(bǔ)發(fā)剩余數(shù)據(jù);響應(yīng)長(zhǎng)度等于已發(fā)長(zhǎng)度,,發(fā)送下幀數(shù)據(jù)),,如果發(fā)送端等待應(yīng)答幀超時(shí)則重新發(fā)送上幀數(shù)據(jù)。
3 協(xié)議效率分析
    如圖2,、圖3幀格式所示,,高速并口協(xié)議在讀寫(xiě)寄存器操作時(shí)命令幀長(zhǎng)度較短,協(xié)議效率固定,,而寫(xiě)RAM操作參數(shù)可以配置,。因此,對(duì)寫(xiě)RAM操作的協(xié)議效率進(jìn)行分析有較大意義,。
    協(xié)議效率主要受命令幀最大長(zhǎng)度、傳輸/傳播延遲和誤碼率影響,。命令幀數(shù)據(jù)字段長(zhǎng)度最大值由人為設(shè)定,,范圍為1~65 533 B,記為L(zhǎng)m/B,;傳輸延遲由數(shù)據(jù)幀的總長(zhǎng)度決定,,記為Dt/s;傳播延遲由通信鏈路的長(zhǎng)度所決定,,記為Dp/s,;收發(fā)系統(tǒng)工作頻率記為Fs/Hz,總傳輸有效數(shù)據(jù)長(zhǎng)度記為L(zhǎng)p/B,,總傳輸數(shù)據(jù)幀長(zhǎng)度為L(zhǎng)t/B,,誤碼率為Er,通信線(xiàn)路長(zhǎng)度為Dis/m,。則Dt=Lt×Fs,,Dp=2×Dis/(2.8×108),。

    由圖 6可見(jiàn),命令幀最大長(zhǎng)度一定的情況下,,隨著通信鏈路長(zhǎng)度的增加(即傳播延時(shí)的增加),,協(xié)議效率將降低;在傳播延時(shí)一定的情況下,,隨著命令幀最大長(zhǎng)度的增加,,協(xié)議效率增加,但這種增加不是線(xiàn)性的,,長(zhǎng)度達(dá)到2 000 B后增長(zhǎng)趨于平緩,。
    最大命令幀長(zhǎng)度直接影響到收發(fā)端的緩沖空間,綜合考慮數(shù)據(jù)最大長(zhǎng)度為2 048 B,、3 072 B或4 096 B最佳,。此時(shí)在鏈路長(zhǎng)度為20 cm時(shí)效率可達(dá)99.26%、99.51%和99.63%,。
    忽略傳播延時(shí),,由式(3),數(shù)據(jù)最大長(zhǎng)度一定時(shí),,不同誤碼率下的協(xié)議效率如圖7所示,。

    由圖 7可見(jiàn)相同誤碼率下數(shù)據(jù)最大長(zhǎng)度越大協(xié)議效率越高,當(dāng)誤碼率高于10-6時(shí)誤碼率才對(duì)協(xié)議效率有較大影響,。誤碼率低于10-8時(shí),,最大長(zhǎng)度為2 048 B時(shí)效率可達(dá)99.27%,最大長(zhǎng)度為3 072 B時(shí)效率可達(dá)99.51%,,最大長(zhǎng)度為4 096 B時(shí)效率可達(dá)99.64%.
   實(shí)際應(yīng)用中由于每次傳送的數(shù)據(jù)不會(huì)都按照最大數(shù)據(jù)長(zhǎng)度傳輸以及系統(tǒng)組幀,、解幀需要時(shí)間,故協(xié)議效率會(huì)低于理論值,。相對(duì)于IEEE802.3協(xié)議98.28%的理論效率[11],,本協(xié)議優(yōu)勢(shì)明顯。
    實(shí)際中,,使用本通信協(xié)議進(jìn)行千兆網(wǎng)卡與SDRAM間的數(shù)據(jù)傳輸,,通信鏈路長(zhǎng)度20 cm,鏈路誤碼率小于10-12,,幀最大數(shù)據(jù)長(zhǎng)度2 048 B,。千兆網(wǎng)卡以90 MB/s連續(xù)接收電腦端發(fā)來(lái)60 MB數(shù)據(jù),高速接口可以準(zhǔn)確無(wú)誤地將數(shù)據(jù)傳送至SDRAM中,。計(jì)算機(jī)發(fā)送1 480 000 B數(shù)據(jù)給千兆網(wǎng)卡,,數(shù)據(jù)被分成了7 722幀,協(xié)議效率為96.96%(含傳播延時(shí)82.37%);計(jì)算機(jī)發(fā)送148 000 000 B數(shù)據(jù)給千兆網(wǎng)卡,,數(shù)據(jù)被分成了817156幀,,協(xié)議效率為96.97%(含傳播延時(shí)81.80%),。平均每幀有效數(shù)據(jù)長(zhǎng)度低于200 B,由此可見(jiàn)本通信接口在應(yīng)用中尚有較大裕量,,系統(tǒng)中的速率瓶頸在千兆網(wǎng)絡(luò)處,。
參考文獻(xiàn)
[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] 向冰.高速圖像串行總線(xiàn)傳輸[J].現(xiàn)代電子技術(shù), 2006(24):97-100.
[5] Electrical characteristics of low voltage differential signaling(LVDS) interface circuits revision 1.2[S].May,2000:10.
[6] 王文華,何斌,任建岳.LVDS三線(xiàn)同步串口的傳輸速率[J].液晶與顯示,2011,26(3):344-349.
[7] 盂令軍,張國(guó)兵,,王宏濤,等.基于FPGA的LVDS高速差分接口應(yīng)用[J].化工自動(dòng)化及儀表,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接口應(yīng)用[J].電子科技2012,25(1):10.
[10] ALBERTO L G, INDRA W.通信網(wǎng)-基本概念與主體結(jié)構(gòu)[M].王海濤,李建華,譯.北京:清華大學(xué)出版社,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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。