国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

高速LVDS接口的FPGA設(shè)計(jì)與實(shí)現(xiàn)

2018-07-27 11:28:30劉華鋒
科技視界 2018年9期
關(guān)鍵詞:碼字報(bào)文時(shí)鐘

劉華鋒

【摘 要】常規(guī)高速LVDS接口協(xié)議中,預(yù)置的同步序列會(huì)占用報(bào)文容量,且需在收端手工調(diào)整時(shí)鐘數(shù)據(jù)對(duì)齊關(guān)系,降低了開發(fā)效率及平臺(tái)間的兼容性。本文給出了一種基于8B/10B編碼的,具有自動(dòng)對(duì)齊功能的高速LVDS接口,并在Xilinx Virtex-7 FPGA平臺(tái)上進(jìn)行了接口測(cè)試,結(jié)果表明該接口可在600Mbps下穩(wěn)定、可靠地傳輸數(shù)據(jù)。

【關(guān)鍵詞】高速LVDS接口;8B/10B;FPGA

中圖分類號(hào): TP274.1 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)09-0099-002

DOI:10.19694/j.cnki.issn2095-2457.2018.09.046

Design and Implementation of High Speed LVDS Interface Based on FPGA

LIU Hua-feng

(The 20th Research Institute,CETC, Xian, Shaanxi, China)

【Abstract】In the conventional high speed LVDS interface protocol, the preset synchronization sequence will occupy the message capacity, and it is necessary to align the clock and the data manually at the receiving end, which will reduce the development efficiency and the compatibility between the platforms. In this paper, a high speed LVDS interface based on 8B/10B coding is presented, with which alignment can be accomplished automatically. The interface test on the Xilinx Virtex-7 FPGA platform shows that the interface can transmit data steadily and reliably under 600Mbps.

【Key words】High speed LVDS interface;8B/10B;FPGA

0 引言

隨著信息技術(shù)的進(jìn)步,各行各業(yè)所產(chǎn)生的數(shù)據(jù)量越來(lái)越大,對(duì)數(shù)據(jù)傳輸速率的要求也越來(lái)越高。為了保證信號(hào)的傳輸質(zhì)量及抗干擾特性,數(shù)字電路往往采用高速串行總線來(lái)傳輸高速信號(hào)。其中,現(xiàn)場(chǎng)可編程門陣列(FPGA)內(nèi)部所集成的高速收發(fā)器,速率最高可達(dá)到十幾個(gè)Gbps。然而,大部分?jǐn)?shù)字系統(tǒng)中串行總線速率達(dá)到幾百M(fèi)bps即可滿足需求,且低端系列的FPGA芯片內(nèi)部并未集成高速收發(fā)器;相比而言,低電壓差分信號(hào)傳輸(LVDS)[1]技術(shù)具有高速率、低噪聲、低功耗、低電流驅(qū)動(dòng)等特點(diǎn),且容易在FPGA中實(shí)現(xiàn),性價(jià)比高,因此在常規(guī)高速數(shù)字傳輸系統(tǒng)中得到了廣泛的應(yīng)用。

LVDS是一種總線標(biāo)準(zhǔn),在FPGA中實(shí)現(xiàn)LVDS總線時(shí),一般需要自定義傳輸協(xié)議。對(duì)于低速業(yè)務(wù)來(lái)說(shuō)(小于200Mbps),對(duì)數(shù)據(jù)進(jìn)行過(guò)采并約定自定義同步序列即可完成收端數(shù)據(jù)同步及數(shù)據(jù)解析。當(dāng)數(shù)據(jù)速率較高時(shí),需要采用FPGA內(nèi)部集成SelectIO資源來(lái)手工調(diào)整數(shù)據(jù)與時(shí)鐘的對(duì)齊關(guān)系,以確保數(shù)據(jù)的正確傳輸;該方法的不足之處在于手工調(diào)整對(duì)齊關(guān)系時(shí)會(huì)導(dǎo)致程序可移植性差,在不同的硬件電路間無(wú)法完全通用;此外,采用自定義同步序列進(jìn)行數(shù)據(jù)同步時(shí),會(huì)占用報(bào)文信息容量,報(bào)文內(nèi)部再無(wú)法傳送與同步序列相同的信息。為了解決上述的問(wèn)題,本文在傳統(tǒng)LVDS實(shí)現(xiàn)方法的基礎(chǔ)上,引入了8B/10B編碼,設(shè)計(jì)了基于8B/10B編碼的自動(dòng)對(duì)齊狀態(tài)機(jī),并在Xilinx Virtex-7平臺(tái)上設(shè)計(jì)實(shí)現(xiàn)了600Mbps的高速LVDS接口。

1 8B/10B編碼及總線互聯(lián)平臺(tái)

1.1 8B/10B編碼

8B/10B編碼由IBM公司于1983年發(fā)明并應(yīng)用于其200M互連系統(tǒng)中,該編碼中的“0”、“1”數(shù)量基本一致,且連續(xù)的“0”或“1”不超過(guò)5位,因此該編碼具備保持DC平衡的特性,可避免鏈路產(chǎn)生DC失調(diào)[1]。數(shù)據(jù)經(jīng)過(guò)8B/10B編碼后,在接收端能夠被正確復(fù)原;此外,10位傳送代碼可以支持所有的256種8位組合,且剩余組合中的一些編碼可以構(gòu)成K碼等特殊控制碼字,用于輔助接收端進(jìn)行還原,及早發(fā)現(xiàn)傳輸錯(cuò)誤,并抑制錯(cuò)誤繼續(xù)發(fā)生。

1.2 總線互聯(lián)平臺(tái)

在信號(hào)處理領(lǐng)域,為了同時(shí)兼顧處理速度與控制便捷性,硬件平臺(tái)往往采用CPU結(jié)合高性能FPGA的架構(gòu)[2],本文的LVDS接口設(shè)計(jì)所基于的硬件平臺(tái)架構(gòu)如圖1所示,該平臺(tái)由一片DSP及一片Xilinx Virtex-7 FPGA組成,DSP及FPGA之間采用32位EMIF總線通信,F(xiàn)PGA端雙口RAM對(duì)數(shù)據(jù)位寬進(jìn)行轉(zhuǎn)換,并通過(guò)600M LVDS高速總線通信。該平臺(tái)所設(shè)計(jì)的LVDS接口是2入2出,其中一對(duì)用于傳輸同步時(shí)鐘,另外一對(duì)用于傳輸高速串行數(shù)據(jù)。

該LVDS總線上運(yùn)行的是自定義串行協(xié)議,8bit并行數(shù)據(jù)經(jīng)過(guò)8B/10B編碼、串并轉(zhuǎn)換后,以DDR方式輸出;對(duì)于收到的串行數(shù)據(jù),要經(jīng)過(guò)串并轉(zhuǎn)換、自動(dòng)對(duì)齊、8B/10B解碼后方可轉(zhuǎn)換為用戶數(shù)據(jù)。下面對(duì)該協(xié)議的組成架構(gòu)進(jìn)行詳細(xì)介紹,包含發(fā)送單元及接收單元。

2 發(fā)送單元

發(fā)送單元的目標(biāo)是將用戶數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)并輸出,傳統(tǒng)LVDS自定義協(xié)議中,需要占用用戶數(shù)據(jù)中的特定碼字以完成收端同步,這種機(jī)制會(huì)損耗用戶報(bào)文容量,且鏈路中未含有任何編碼,無(wú)法應(yīng)對(duì)總線上產(chǎn)生的誤碼。為解決這一問(wèn)題,本文在傳輸協(xié)議中引入了8B/10B編碼,8B/10B編碼可增加鏈路的抗干擾特性[3],且編碼中空余的控制碼字可用于收端同步,發(fā)送單元的具體實(shí)現(xiàn)流程如圖2所示。

發(fā)送單元中,用戶數(shù)據(jù)輸入時(shí),要先根據(jù)數(shù)據(jù)及使能生成K碼脈沖,即在一幀數(shù)據(jù)的頭部及尾部添加K碼,并在添加K碼的地方生成K脈沖(本文中,頭部的K碼為K28.5,尾部的K碼為K29.7);隨后,將K脈沖及數(shù)據(jù)進(jìn)行8B/10B編碼,編碼后的數(shù)據(jù)需經(jīng)過(guò)串并轉(zhuǎn)換后方可輸出。

FPGA內(nèi)部的SelectIO資源具有強(qiáng)大的功能,因此,串并轉(zhuǎn)換可通過(guò)FPGA內(nèi)部的OSERDES資源來(lái)實(shí)現(xiàn),OSERDES可配置為SDR或DDR模式,由于協(xié)議中采用的高速時(shí)鐘為300M,而編碼后的并行數(shù)據(jù)達(dá)到了600Mbps,故將OSERDES配置為DDR模式輸出。對(duì)于Virtex- 7 系列FPGA來(lái)說(shuō),單個(gè)OSERDES僅支持8:1的數(shù)據(jù)串并轉(zhuǎn)換,為了轉(zhuǎn)換10bit的編碼后數(shù)據(jù),需將兩個(gè)OSERDES進(jìn)行級(jí)聯(lián),級(jí)聯(lián)關(guān)系通過(guò)SHIFTIN及SHIFTOUT管腳控制。經(jīng)過(guò)級(jí)聯(lián)后,可完成對(duì)編碼后數(shù)據(jù)的串并轉(zhuǎn)換,串行數(shù)據(jù)及隨路時(shí)鐘經(jīng)過(guò)單端轉(zhuǎn)差分后輸出至FPGA外部端口上。

3 接收單元

接收單元的目標(biāo)是將線上的串行數(shù)據(jù)轉(zhuǎn)換為并行用戶數(shù)據(jù)并輸出,其主要由時(shí)鐘分頻、時(shí)鐘數(shù)據(jù)對(duì)齊、串并轉(zhuǎn)換及8B/10B解碼等模塊組成,具體實(shí)現(xiàn)流程如圖3所示。

收端收到隨路時(shí)鐘后,首先通過(guò)FPGA內(nèi)部時(shí)鐘資源BUFR將其分頻為60M時(shí)鐘,并應(yīng)用該時(shí)鐘來(lái)解析數(shù)據(jù);但由于電路布線等外界因素的影響,收端的時(shí)鐘與數(shù)據(jù)往往無(wú)法對(duì)齊[4],因此,收端的串行數(shù)據(jù)需與時(shí)鐘對(duì)齊后方可解析出正確的并行數(shù)據(jù)。對(duì)于FPGA來(lái)說(shuō),應(yīng)用SelectIO中的IDELAY即可調(diào)整時(shí)鐘數(shù)據(jù)的對(duì)齊關(guān)系,IDELAY具備64 tap的延時(shí)單元,其延遲分辨率為參考時(shí)鐘周期(5ns)的1/64,可滿足本設(shè)計(jì)的延時(shí)需求。

從圖3中可知,收端串行數(shù)據(jù)直接輸入IDELAY,IDELAY的輸出經(jīng)過(guò)兩級(jí)ISERDES后轉(zhuǎn)換成了10bit并行數(shù)據(jù),并行數(shù)據(jù)不僅輸入了8B/10B解碼模塊,還輸入了Bit_align_Machine模塊。Bit_align_Machine模塊是動(dòng)態(tài)對(duì)齊的核心模塊,其輸出的bitslip信號(hào)可用于調(diào)整ISERDES輸出的并行數(shù)據(jù)順序,ice_delay和inc_delay信號(hào)可用于控制IDELAY的延時(shí)量。該模塊首先通過(guò)動(dòng)態(tài)掃眼的方式將整個(gè)通道的眼圖進(jìn)行覆蓋測(cè)試,并恢復(fù)到眼圖的中心,保證通道的傳輸質(zhì)量;隨后,檢測(cè)特定訓(xùn)練序列的同步特性,輸出bitslip信號(hào)來(lái)調(diào)整并行數(shù)據(jù)的順序,保證并行數(shù)據(jù)的正確性[5]。本設(shè)計(jì)中采用0x346作為同步序列,該碼字為8B/10B編碼表中空余部分的碼字,并未占用報(bào)文容量。

對(duì)齊完成后,Bit_align_Machine會(huì)將data_aligned信號(hào)拉高,此時(shí),將并行數(shù)據(jù)進(jìn)行8B/10B解碼、剪除K碼后即可得到正確的用戶數(shù)據(jù)。

接收單元的設(shè)計(jì)避免了因手工調(diào)整延時(shí)而導(dǎo)致的開發(fā)效率低,在不同硬件平臺(tái)間兼容性差等問(wèn)題,動(dòng)態(tài)調(diào)整了時(shí)鐘數(shù)據(jù)的延時(shí)關(guān)系,提升了通用性。

4 平臺(tái)驗(yàn)證

為對(duì)自定義LVDS高速接口協(xié)議進(jìn)行驗(yàn)證,將該協(xié)議在Vivado2015.3上進(jìn)行綜合、布局布線并生成bit文件,將bit文件在本文1.2節(jié)所述平臺(tái)上運(yùn)行,通過(guò)chipscope抓取發(fā)射接收時(shí)序,結(jié)果如圖4所示。

從圖4中可以看出,發(fā)端用戶數(shù)據(jù)添加K碼后生成了K脈沖及K碼數(shù)據(jù),經(jīng)過(guò)8B/10B編碼后形成10bit編碼數(shù)據(jù);收端data_align信號(hào)拉高,且(下轉(zhuǎn)第115頁(yè))(上接第100頁(yè))正確的進(jìn)行了解碼、恢復(fù)了用戶數(shù)據(jù)。此外,在DSP端加載測(cè)試程序,通過(guò)大量隨機(jī)數(shù)對(duì)該接口協(xié)議進(jìn)行了測(cè)試,結(jié)果如圖5所示。從圖5中可以看出,經(jīng)過(guò)2000多萬(wàn)包的隨機(jī)數(shù)測(cè)試后,未出現(xiàn)丟包、錯(cuò)包的情況;

FPGA抓包及DSP測(cè)試結(jié)果表明:本文所設(shè)計(jì)的高速LVDS接口傳輸速率可達(dá)到600Mbps且功能穩(wěn)定、正常。

5 結(jié)論

本文在FPGA平臺(tái)上設(shè)計(jì)實(shí)現(xiàn)了一種基于8B/10B編碼的可自動(dòng)對(duì)齊LVDS高速接口協(xié)議。該協(xié)議應(yīng)用編碼表中剩余控制碼字進(jìn)行收端同步,避免了同步序列占用報(bào)文容量;且自動(dòng)對(duì)齊功能能夠提升開發(fā)效率及接口協(xié)議在各平臺(tái)間的兼容性。測(cè)試結(jié)果表明:本文所設(shè)計(jì)的高速LVDS接口協(xié)議能夠穩(wěn)定、可靠的傳輸數(shù)據(jù),速率可達(dá)到600Mbps。

【參考文獻(xiàn)】

[1]Widmer A X, Franaszek P A. A DC-balanced, partitioned-block, 8B/10B transmission code[J]. Ibm J.res.develop, 1983, 27(5):440-451.

[2]王戰(zhàn)江. 基于DSP和FPGA為核心的通信信號(hào)處理硬件平臺(tái)設(shè)計(jì)[D]. 電子科技大學(xué), 2011.

WANG Zhan-jiang. Design of communication signal processing hardware platform based on DSP and FPGA[D].University of Electronic Science and Technology of China,2011.

[3]馬建國(guó), 張禹, 劉紀(jì)洲. 圖像采集系統(tǒng)中LVDS信號(hào)交流耦合傳輸設(shè)計(jì)[J]. 激光與紅外, 2016, 46(11):1404-1407.

MA Jian-guo, ZHANG Yu, LIU Ji-zhou. Design of LVDS AC coupling data transmission in image collection system[J].LASER & INFRARED, 2016, 46(11):1404-1407.

[4]李向陽(yáng). 多通道LVDS的實(shí)現(xiàn)及傳輸錯(cuò)誤處理[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2005, 26(8):1436-1440.

LI Xiang-yang. Multi-Channel LVDS and Transmission Error Handling[J].MINI-MICRO SYSTEMS, 2005, 26(8):1436-1440.

[5]李大鵬, 李雯, 王曉華. 基于FPGA的高速LVDS接口的實(shí)現(xiàn)[J]. 航空計(jì)算技術(shù), 2012, 42(5):115-118.

LI Da-peng, LI Wen, WANG Xiao-hua. Implementation of High Speed LVDS Interface Based on FPGA[J].Aeronautical Computing Technique, 2012, 42(5):115-118.

猜你喜歡
碼字報(bào)文時(shí)鐘
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
別樣的“時(shí)鐘”
古代的時(shí)鐘
CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
淺析反駁類報(bào)文要點(diǎn)
放 下
數(shù)據(jù)鏈系統(tǒng)中軟擴(kuò)頻碼的優(yōu)選及應(yīng)用
放下
有趣的時(shí)鐘
ATS與列車通信報(bào)文分析
西乌珠穆沁旗| 梁平县| 靖安县| 柳江县| 江西省| 庄河市| 景东| 长沙县| 石景山区| 遂平县| 高雄市| 开鲁县| 博白县| 姚安县| 兰坪| 乌兰察布市| 嵊州市| 交口县| 迁安市| 巩留县| 察雅县| 泽普县| 皮山县| 开远市| 奇台县| 宜良县| 三门峡市| 明水县| 永登县| 邵武市| 清水河县| 拜城县| 寿宁县| 东莞市| 辛集市| 龙海市| 开平市| 塔城市| 本溪| 安康市| 江达县|