999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA 的LVDS 無時鐘數(shù)據(jù)傳輸方案設(shè)計與實現(xiàn)*

2021-06-30 07:34:28畢彥峰胡陳君
電子技術(shù)應(yīng)用 2021年6期

畢彥峰 ,李 杰 ,胡陳君

(1.中北大學(xué) 電子測試技術(shù)重點實驗室,山西 太原 030051;2.蘇州中盛納米科技有限公司,江蘇 蘇州 215123)

0 引言

常規(guī)彈藥制導(dǎo)化改造試驗過程中,事后回讀彈載數(shù)據(jù)記錄儀所記錄的各種指令參數(shù)是測試反饋中重要的方式。在靶場測設(shè)發(fā)射導(dǎo)彈之前,數(shù)據(jù)回讀也是監(jiān)測彈藥狀態(tài)的一種十分重要的方式。隨著科技的進步,數(shù)據(jù)存儲設(shè)備愈發(fā)趨近小型化、高速化,所能提供的數(shù)據(jù)回讀接口也越來越少,導(dǎo)致對采集存儲設(shè)備進行數(shù)據(jù)回讀時無法同時滿足速度快和接口少的條件[1-2]。

在采集侵徹或沖擊信號時,由于所需要的采樣頻率較高,產(chǎn)生的數(shù)據(jù)量較大,普通的低速并行接口無法進行高速數(shù)據(jù)傳輸,LVDS 接口采用高速串行差分協(xié)議,抗干擾能力強,可以滿足高速傳輸?shù)男枨骩3-4]。但是由于彈上測量設(shè)備空間有限,而傳統(tǒng)的LVDS 接口包含一路差分?jǐn)?shù)據(jù)和一路差分時鐘,系統(tǒng)中一般采用主控芯片外掛LVDS 傳輸芯片的模式[5-6],當(dāng)多路LVDS 接口同時使用時會過多占用彈內(nèi)有限的空間。因此,本文提出一種基于FPGA 的無隨路時鐘的高速數(shù)據(jù)傳輸方案,僅使用一對差分引腳傳輸一路LVDS 差分?jǐn)?shù)據(jù)就可以實現(xiàn)1 Gb/s的板間數(shù)據(jù)通信,無需外掛LVDS 芯片并將通信接口的數(shù)量減半,當(dāng)系統(tǒng)中有多路LVDS 接口時可以很大地減少接口數(shù)量。具體來說,該方案的主要內(nèi)容體現(xiàn)在以下幾個方面:(1)用板載時鐘模擬傳統(tǒng)差分時鐘實現(xiàn)無時鐘LVDS 傳輸數(shù)據(jù),以達到精簡接口的目的;(2)利用SERDES 內(nèi)部鑒相器解決每次上電時板載時鐘和差分?jǐn)?shù)據(jù)初始相位處于隨機狀態(tài)所導(dǎo)致的誤碼問題;(3)提出利用8B/10B 編碼解決傳輸連續(xù)相同電平時鑒相器失效的問題;(4)擴展SERDES 的反序列化比例至10:1 來完成8B/10B 編碼后的數(shù)據(jù)反序列化。

1 系統(tǒng)總體設(shè)計

如圖1 所示,系統(tǒng)主要由串并轉(zhuǎn)換單元、8B/10B 編碼、片內(nèi)緩存和以太網(wǎng)傳輸單元四部分組成。串并轉(zhuǎn)換單元負(fù)責(zé)模擬LVDS 隨路時鐘,參照鑒相器提供的相位關(guān)系對齊模擬時鐘和LVDS 數(shù)據(jù),并將高速串行數(shù)據(jù)轉(zhuǎn)換成為10 bit 并行數(shù)據(jù)。8B/10B 解碼模塊主要負(fù)責(zé)將接收到的10 bit 并行數(shù)據(jù)轉(zhuǎn)換成為有效的8 bit 數(shù)據(jù)。經(jīng)過片內(nèi)RAM 緩存,通過以太網(wǎng)將數(shù)據(jù)傳輸?shù)缴衔粰C。

圖1 系統(tǒng)總體設(shè)計

1.1 模擬隨路時鐘設(shè)計

傳統(tǒng)的LVDS 數(shù)據(jù)傳輸總線包含一路LVDS 差分?jǐn)?shù)據(jù)和一路LVDS 差分隨路時鐘。差分?jǐn)?shù)據(jù)在傳輸時需同步于差分時鐘,數(shù)據(jù)在進行反序列化時也需要參考隨路時鐘。但很多彈載數(shù)據(jù)存儲設(shè)備由于接口數(shù)量有限,無法同時提供LVDS 差分?jǐn)?shù)據(jù)和隨路時鐘。考慮到在實際數(shù)據(jù)傳輸時,鏈路雙方采用已知的固定時鐘頻率進行數(shù)據(jù)傳輸,即可以采用一種回讀系統(tǒng)自己提供時鐘的方式來模擬隨路時鐘,并將數(shù)據(jù)按照此時鐘進行串并轉(zhuǎn)換。這種時鐘需要模擬真實的隨路時鐘,為串并轉(zhuǎn)換模塊提供參考時鐘和選通脈沖STROBE。傳統(tǒng)的隨路時鐘處理方式如圖2 所示,差分隨路時鐘通過IBUFDS 和BUFIO2為ISERDES 提供CLKDIV、IOCLK 和SERDESSTROBE 3 個信號[7-8]。在模擬隨路時鐘時同樣需要產(chǎn)生這3 個信號,如圖3 所示,利用板載時鐘通過鎖相環(huán)倍頻產(chǎn)生CLKDIV,并通過BUFPLL 可以產(chǎn)生IOCLK 和SERDESSTROBE 信號。

圖2 傳統(tǒng)隨路時鐘處理方式

圖3 板載時鐘模擬隨路時鐘

1.2 相位調(diào)整技術(shù)研究

利用FPGA 內(nèi)部提供的ISERDES 對數(shù)據(jù)進行反序列化時需要參考CLKDIV 時鐘,但由于CLKDIV 時鐘是根據(jù)板載時鐘通過PLL 生成的,因此CLKDIV 時鐘的相位與板載時鐘保持一致。而每次上電時,LVDS 差分?jǐn)?shù)據(jù)與CLKDIV 的初始相位關(guān)系處于一個隨機的狀態(tài),在這個初始相位關(guān)系條件下依照CLKDIV 對數(shù)據(jù)進行反序列化,若不滿足觸發(fā)器的靜態(tài)時序要求,在高速傳輸時會產(chǎn)生極大的誤碼導(dǎo)致無法傳輸有效的數(shù)據(jù)。可以利用FPGA 內(nèi)部的IODELAY 對數(shù)據(jù)通路添加延遲并且保持時鐘的相位不變的方式來產(chǎn)生相位偏移,從而達到調(diào)節(jié)數(shù)據(jù)和時鐘相位關(guān)系的目的。但是每當(dāng)系統(tǒng)重新上電或復(fù)位時,這種數(shù)據(jù)和時鐘的初始相位狀態(tài)是隨機的,調(diào)節(jié)相位關(guān)系無法通過添加固定時間的延遲來解決,所以在設(shè)計時只能采取在傳輸數(shù)據(jù)的過程中動態(tài)地調(diào)整相位關(guān)系。FPGA 內(nèi)部的SERDES 提供的鑒相器可以檢測當(dāng)前數(shù)據(jù)相對于參考時鐘的上升沿相位超前或者滯后,可以根據(jù)鑒相器提供的相位關(guān)系動態(tài)地調(diào)節(jié)IODELAY 的延遲值,這樣系統(tǒng)復(fù)位、布線或者溫度等因素導(dǎo)致的相位偏移都可以通過這種動態(tài)調(diào)節(jié)的方式調(diào)整到最佳的相位關(guān)系,從而有效地按照板載時鐘將串行數(shù)據(jù)反序列化。

鑒相器的結(jié)構(gòu)和原理如圖4 所示,S2 和S3 相差一個時鐘周期,通過判斷S2 和S3 不相等來判定串行數(shù)據(jù)是否發(fā)生變化。通過比較S3 和E3 來指示相位關(guān)系是超前還是之后。即只有在S2≠S3 的條件下,E3 和S3 產(chǎn)生的相位檢測結(jié)果才是有效的。當(dāng)串行數(shù)據(jù)連續(xù)發(fā)送相同的數(shù)值時S2 始終等同于S3,即連續(xù)的0 或者連續(xù)的1,會使得相位檢測模塊失效,直到發(fā)生電平翻轉(zhuǎn)才可以恢復(fù)相位檢測。當(dāng)進行連續(xù)相同電平的傳輸,會導(dǎo)致鑒相器長時間失效,這種相位的校準(zhǔn)機制就會暫時停止,此時如果受到溫度等影響產(chǎn)生相位的偏移,若不滿足時序收斂的條件則會產(chǎn)生誤碼,這個問題可以通過對數(shù)據(jù)進行8B/10B 編碼解決。8B/10B 編碼一般使用在交流耦合中來實現(xiàn)直流均衡,在本設(shè)計中數(shù)據(jù)發(fā)送前端對數(shù)據(jù)進行8B/10B 編碼,數(shù)據(jù)回讀系統(tǒng)進行數(shù)據(jù)回讀時,可以通過8B/10B 解碼將數(shù)據(jù)恢復(fù)成為有效信號。通過8B/10B編碼進行擾碼的數(shù)據(jù)會保證一段時間的直流平衡,即一段時間內(nèi)的0 和1 數(shù)量相等[9]。將數(shù)據(jù)進行8B/10B 編碼傳輸時,連續(xù)的相同電平最高不會超過5 bit,即最少每5 bit 會進行一次相位檢測,可以為數(shù)據(jù)的正確恢復(fù)提供足夠的電平跳變,這樣即使有連續(xù)相同電平的8 bit數(shù)據(jù)也會被編碼為含有電平跳變的10 bit 數(shù)據(jù)。典型數(shù)據(jù)的8B/10B 編碼如表1所示,在傳輸多個連續(xù)相同的電平時,都會被插入多個電平跳變,可以防止鑒相器的長時間失效。

圖4 鑒相器電路

表1 典型的8B/10B 編碼

1.3 比例擴充設(shè)計

利用8B/10B 編碼可以解決鑒相器失效的問題,但是這種編碼傳輸?shù)姆绞接謺硪粋€新的問題,F(xiàn)PGA 內(nèi)部的SERDES 最高支持8:1 比例的數(shù)據(jù)反序列化,而對數(shù)據(jù)進行8B/10B 編碼后,數(shù)據(jù)位寬從8 位擴展到了10 位,從而無法實現(xiàn)對串行數(shù)據(jù)的反序列化。

FPGA 內(nèi)部單個SERDES 支持2:1~4:1 比例范圍的數(shù)據(jù)反序列化,將兩個相鄰的SERDES 級聯(lián)可以完成2:1~8:1 比例范圍的數(shù)據(jù)反序列化。當(dāng)需要對數(shù)據(jù)進行10:1 比例反序列化時,可以采用一種巧妙的方式,通過對數(shù)據(jù)進行2×5:1 比例反序列化來實現(xiàn)。

如圖5 和圖6 所示,當(dāng)需要對串行數(shù)據(jù)1010110001進行10:1 的數(shù)據(jù)反序列化,可以分別對前5 位10101和后5 位進行5:1 比例的反序列化,最后將兩次轉(zhuǎn)化的數(shù)據(jù)進行拼接,即可完成10:1 比例的數(shù)據(jù)反序列化。利用SERDES 進行5:1 反序列化的電路連接圖如圖7所示。

圖5 數(shù)據(jù)反序列化

圖6 比例轉(zhuǎn)換

圖7 反序列化連接圖

1.4 幀格式設(shè)計

當(dāng)傳輸串行數(shù)據(jù)時,LVDS 總線前端將并行數(shù)據(jù)序列化進行傳輸,串并轉(zhuǎn)換單元需要將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),此時需要對數(shù)據(jù)進行對齊,即確定哪一位才是這一幀的第一位。通過LVDS 鏈路雙方約定固定幀的方式來確定當(dāng)前總線是否空閑和數(shù)據(jù)是否對齊完成。若當(dāng)LVDS 總線初始化或空閑時,總線上的數(shù)據(jù)不為約定好的固定幀,則需要使能SERDES 的BITSLIP 信號[10],每使能一次,則相當(dāng)于串行數(shù)據(jù)的起始位置向后順延一位,直到并行數(shù)據(jù)與約定的固定幀一致時則表示數(shù)據(jù)對齊。固定幀首先考慮的0x55(0b0101010101)和0xAA(0b10101010),在經(jīng)過8B/10B 編碼后變成 0b1010101010和0b0101010101,雖然完美地實現(xiàn)了直流均衡和電平跳變,但是進行數(shù)據(jù)對齊時無法確定哪一位才是數(shù)據(jù)的起始位。本系統(tǒng)采用不斷發(fā)送0xA9(0b1010100110),數(shù)據(jù)0xA9 進行8B/10B 編碼后會變成0b1010100110,能夠滿足LVDS 傳輸時要求的直流均衡以及提供了足夠的電平翻轉(zhuǎn)。

相位校準(zhǔn)的基本流程如圖8 所示,校準(zhǔn)相位需要周期性地使能CAL,每使能一次,會經(jīng)過28 個周期的校準(zhǔn)時間,即每次校準(zhǔn)最少需要28 個時鐘周期。SPARTAN-6系列FPGA 內(nèi)部IODELAY2 最多支持255 個TAP 的校準(zhǔn),一般調(diào)整相位只需要調(diào)整128 個TAP,所以最多只需要3 584 個時鐘周期即可完成校準(zhǔn)。在校準(zhǔn)完成之前,LVDS 總線前端需要持續(xù)發(fā)送空閑數(shù)據(jù)。由于INCDEC信號只能指示當(dāng)前數(shù)據(jù)和時鐘的上升沿相位超前或者滯后,因此當(dāng)校準(zhǔn)成功后,INCDEC 會持續(xù)保持電平翻轉(zhuǎn)的狀態(tài)。所以當(dāng)相位校準(zhǔn)完成前,LVDS 總線需要一直發(fā)送空閑數(shù)據(jù)0x2A6,當(dāng)完成校準(zhǔn)后,才可以發(fā)送有效數(shù)據(jù)。

圖8 相位校準(zhǔn)的基本流程

1.5 以太網(wǎng)傳輸

以太網(wǎng)傳輸采用UDP(用戶數(shù)據(jù)報協(xié)議)傳輸,UDP是傳輸層的協(xié)議,是一種無連接的傳輸,在基本的IP 數(shù)據(jù)報服務(wù)至上增加了差錯檢測。相比于TCP 傳輸,UDP傳輸不需要在端系統(tǒng)維護連接狀態(tài),減少了不必要的開銷,增大了傳輸速度[11-13]。UDP 通信的幀格式如圖9所示。

圖9 UDP 幀格式

PHY 芯片采用RTL8211EG,可以實現(xiàn)GMII 接口傳輸。FPGA 與PHY 芯片的連接如圖10 所示,使用FPGA充當(dāng)MAC 側(cè),控制PHY 芯片進行UDP 協(xié)議傳輸。在實際傳輸時將控制好的UDP 數(shù)據(jù)幀依次發(fā)送,F(xiàn)PGA 驅(qū)動TXC、TXD 和TXEN 向PC 端發(fā)送數(shù)據(jù),數(shù)據(jù)格式必須滿足UDP 通信數(shù)據(jù)格式,數(shù)據(jù)才能被PC 接收到,否則就會被網(wǎng)卡物理層丟棄[14-16]。

圖10 FPGA 與PHY 連接圖

PC 接收端上位機采用Qt 框架C++語言編寫,緩沖區(qū)設(shè)計采用4K 對齊,有效地提高存儲速度。為了提高以太網(wǎng)接口的傳輸速度,上位機采用多個線程并設(shè)置了兩個大容量緩沖區(qū),緩沖區(qū)的設(shè)計如圖11 所示,其中一個線程讀取以太網(wǎng)中的數(shù)據(jù)并將數(shù)據(jù)保存在其中一個緩沖區(qū)中,當(dāng)一個緩沖區(qū)存滿之后,繼續(xù)將數(shù)據(jù)保存在另一個緩沖區(qū),另一個線程負(fù)責(zé)將存滿數(shù)據(jù)的緩沖區(qū)寫到文件中。兩個線程同時工作,讀取以太網(wǎng)的數(shù)據(jù)與寫文件同時進行,有效地提高了傳輸速度。

圖11 緩沖區(qū)設(shè)計

2 硬件測試

首先,使用Xilinx 公司提供的ICON 和ILA 兩個IP 核進行測試,驗證整個相位校準(zhǔn)的流程。如圖12 所示抓取的真實波形,根據(jù)圖中標(biāo)記①,當(dāng)鑒相器VALID 信號拉高時,INCDEC 指示的相位狀態(tài)有效。獲取到當(dāng)前數(shù)據(jù)和時鐘的相位關(guān)系后,開始進行相位校準(zhǔn),使能IODELAY的CE 信號,并根據(jù)INCDEC 指示的狀態(tài)控制IODELAY的INC 信號將信息傳遞給IODELAY,IODELAY 接收到相位信息則會進入BUSY 狀態(tài),當(dāng)BUSY 拉低時,即可使能IODELAY 的CAL 信號,此時IODELAY 再次進入BUSY狀態(tài)開始調(diào)整延遲,當(dāng)BUSY 再次拉低時表示延遲調(diào)整完成。緊接著進入標(biāo)記②的狀態(tài),延遲調(diào)整完成后鑒相器會再次指示調(diào)整之后的相位關(guān)系。從圖中可以看到,在VALID 信號有效時,INCDEC 處于高低電平的跳變狀態(tài),此時相位的校準(zhǔn)已然完成,實際的相位校準(zhǔn)流程與圖8 相符。

圖12 相位校準(zhǔn)的實際過程

接下來對系統(tǒng)進行硬件測試,連接時線纜采用雙絞線。測試時LVDS 前端發(fā)送真實數(shù)據(jù),首先需要發(fā)送空閑數(shù)據(jù)0xA9,當(dāng)相位校準(zhǔn)完成后再發(fā)送有效數(shù)據(jù),保證LVDS 數(shù)據(jù)回讀設(shè)備完成相位校準(zhǔn)后再進行數(shù)據(jù)接收。由于數(shù)據(jù)回讀設(shè)備內(nèi)部的狀態(tài)機首先進行相位校準(zhǔn),因此最開始的空閑數(shù)據(jù)不會被傳輸,如圖13 所示,當(dāng)有效數(shù)據(jù)傳輸開始時,LVDS 發(fā)送端數(shù)據(jù)的產(chǎn)生速度小于總線的傳輸速度,所以在傳輸?shù)倪^程中會有等待填充數(shù)據(jù)產(chǎn)生。

圖13 實際工程數(shù)據(jù)

3 結(jié)論

本文分別從硬件總體設(shè)計、模擬隨路時鐘的實現(xiàn)過程、校準(zhǔn)數(shù)據(jù)和時鐘相位關(guān)系的原理和實現(xiàn)過程以及通過提高SERDES 反串行化比例實現(xiàn)8B/10B 編碼解決鑒相器失效的問題4 方面介紹了基于LVDS 的無隨路時鐘高速數(shù)據(jù)回讀系統(tǒng)的設(shè)計與實現(xiàn)。通過對FPGA 內(nèi)部信號的抓取可以直觀地觀察到校準(zhǔn)模擬時鐘和串行數(shù)據(jù)相位關(guān)系的過程,整個校準(zhǔn)過程符合IODELAY 調(diào)整延遲的固有流程。通過對整個數(shù)據(jù)回讀系統(tǒng)進行整體測試,讀取碼率為1 Gb/s 的LVDS 總線數(shù)據(jù),前端數(shù)據(jù)為真實的工程數(shù)據(jù),結(jié)果與程序設(shè)計一致。經(jīng)過驗證,通過數(shù)據(jù)回讀設(shè)備板載時鐘模擬LVDS 隨路時鐘、提高SERDES 反串行化比例實現(xiàn)8B/10B 編碼和利用鑒相器將數(shù)據(jù)和時鐘對齊的方式能有效地將無隨路時鐘的高速串行數(shù)據(jù)反序列化,去除掉LVDS 隨路時鐘,減少LVDS 總線的接口線纜數(shù)量,實現(xiàn)了一種接口數(shù)量少并且傳輸速度快的數(shù)據(jù)傳輸系統(tǒng),為離線式數(shù)據(jù)存儲系統(tǒng)的回讀提供了一種傳輸速度快、靈活可靠和可移植性強的方案。

主站蜘蛛池模板: 亚洲综合第一页| 久久伊伊香蕉综合精品| 久久夜色精品国产嚕嚕亚洲av| 一级毛片免费观看久| 中文字幕亚洲精品2页| 亚洲V日韩V无码一区二区 | 欧美国产精品不卡在线观看| 国产成人高清精品免费5388| 日本黄色不卡视频| 色成人综合| 午夜日b视频| 成年人久久黄色网站| аⅴ资源中文在线天堂| 毛片免费在线视频| 国模视频一区二区| 欧美激情视频一区| 二级特黄绝大片免费视频大片| 色妞www精品视频一级下载| 久久综合干| 久久久久亚洲AV成人网站软件| 中文纯内无码H| 国产乱人乱偷精品视频a人人澡| 亚洲成人动漫在线| 激情综合网激情综合| 日韩第九页| 日本国产在线| 国产精鲁鲁网在线视频| 亚洲精品无码在线播放网站| 日韩成人高清无码| 国产尤物视频网址导航| 国产日本一区二区三区| 久久精品中文字幕少妇| 久爱午夜精品免费视频| 中文字幕人妻av一区二区| 亚洲第一成年人网站| 一区二区自拍| 亚洲高清国产拍精品26u| 久久精品这里只有精99品| 免费A∨中文乱码专区| 精品无码一区二区在线观看| 最新无码专区超级碰碰碰| 九九热免费在线视频| 国产精品尤物在线| 国产成人综合久久精品下载| 狠狠色成人综合首页| 香蕉视频在线观看www| 一区二区三区四区日韩| 欧美成人免费一区在线播放| 久久久久国产精品嫩草影院| 国产一级一级毛片永久| 91美女视频在线观看| 欧美色综合网站| 免费啪啪网址| 国产精品蜜臀| 亚洲欧洲国产成人综合不卡| 最新国语自产精品视频在| 亚洲综合第一区| 国产农村妇女精品一二区| 欧美啪啪一区| 亚洲中文字幕精品| 91青青草视频在线观看的| 在线看国产精品| 亚洲成a人在线播放www| 婷婷六月综合网| 18禁黄无遮挡网站| 国产精品女人呻吟在线观看| 亚洲免费三区| 欧美一级大片在线观看| 97色伦色在线综合视频| 国产成人福利在线| 欧美中日韩在线| 老司国产精品视频91| 国产成人免费手机在线观看视频 | 日本高清免费不卡视频| h网站在线播放| 九九这里只有精品视频| 在线欧美a| 国产v精品成人免费视频71pao| 91麻豆国产精品91久久久| 欧美成人免费一区在线播放| 欧美啪啪视频免码| 欧美不卡在线视频|