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

基于FPGA 的高速串行收發器TLK2711全雙工通信協議設計

2023-10-17 08:32:48杜建鵬
電氣傳動自動化 2023年5期
關鍵詞:信號

杜建鵬

(甘肅電器科學研究院,甘肅蘭州 730900)

隨著計算機技術和通信技術的發展,系統級的互聯已達到Gbps 的傳輸速率。并行傳輸技術可以提高芯片與芯片之間、背板與背板之間的數據吞吐量,但總線數呈的增多及傳輸速率的加快會使PCB 布線的難度提高,并且增加了信號的延時和偏移[1-2]。而串行傳輸技術充分利用傳輸媒體的信道容量,可減少所需的連接器引腳數目、降低芯片外圍引腳數、設備及電纜布線更為簡單、系統抗干擾能力更強[3],因此串行傳輸技術重新返回到高速傳輸領域并迅速取代了傳統的并行傳輸技術[4]。8b/10b編碼SerDes 是目前許多高速串行總線采用的編碼機制和結構,如PCI Express、光纖通道、TLK2711等。其中TLK2711 作為高速串行總線的物理層,被廣泛用于空間遙感以及衛星圖像的數據傳輸系統中[5-7]。系統之間的數據傳輸必須制定相應的協議。雖然符合規范的標準協議(如XILINX 公司為自己FPGA 內嵌的Rocket IO 制定的AURORA 協議)傳輸速度和精度非常高,但是這些標準協議具有大量通信冗余數據和格式定義弊端,會導致通信延時和系統資源浪費。因此,為了提高系統的可靠性和節約系統資源,本文基于FPGA+TLK2711 平臺設計了一種輕量級的高速串行全雙工通信協議,該協議為點對點鏈路層串行協議,經測試可實現1.6Gbps~2.7Gbps 的可靠串行數據傳輸。

1 TLK2711 芯片簡介

TLK2711 是千兆高速收發器,可用于高速點對點的雙向數據傳輸系統。TLK2711 在發送端將并行信號轉換為高速串行信號,在接收端高速串行信號被轉換為并行信號,也被稱為SerDes(SERializer/DESerializer)收發器,其工作原理如圖1 所示。在發送端,TLK2711 將輸入的16 位數據(TXD0~TXD15)分為兩個字節,在TKLSB 和TKMSB 信號的配合下送入兩個8b/10b 編碼器進行編碼,產生的10 位數據經多路復用器進入串行器,最后通過具有預加重功能的發送器以差分信號的方式輸出。在接收端,TLK2711 接收到串行差分信號,首先通過恢復時鐘對數據進行同步,其次通過解串器進行串并轉換,利用兩個獨立的逗點檢測(Comma Detect)和8b/10b 解碼器完成數據解碼和字對齊,最后輸出16 位并行數據(RXD0~RXD15)以及RKLSB 和RKMSB 信號。圖中LOOPEN為環回使能信號,使能后可以進行環回測試;PRBSEN 為偽隨機測試使能信號,可利用芯片中的偽隨機數發生器產生偽隨機信號,進行測試;PRE 為預加重使能信號。

圖1 TLK2711 原理框圖

2 高速串行數據傳輸接口設計

高速串行數據傳輸接口如圖2 所示,TLK2711與高速連接器構成通信協議的物理層,實現收發數據的編解碼與串并轉換。FPGA 則實現數據鏈路層功能,完成通道的初始化、發送數據的幀封裝、接收數據的解封裝,同時為上層用戶提供簡單的通信接口。

圖2 高速串行數據傳輸接口

3 全雙工通信協議設計

3.1 高速串行通信協議模型

本文設計的是在FPGA 中實現的全雙工點對點鏈路層串行通信協議,不存在尋址交換和復雜的上層應用,主要功能為鏈路初始化和同步、數據幀傳輸和鏈路管理。圖3 為高速串行通信協議的模型。模型包括TLK2711_logic_ctrl 模塊、TLK2711_tx_ctrl模塊、TLK2711_rx_ctrl 模塊和FIFO 數據緩存模塊。TLK2711_logic_ctrl 模塊主要為上層用戶提供環回測試、偽隨機測試及預加重功能接口,為了簡化應用,可將這些信號設置為芯片正常工作時的狀態。數據發送功能主要由TLK2711_tx_ctrl 模塊和發送端FIFO 實現,上層應用將發送數據寫入FIFO,當寫完一幀數據后,使能tx_start_en 信號,TLK2711_tx_ctrl模塊將FIFO 中的數據讀出組幀后發送出去,數據幀長由wrcnt[10:0]信號給定。數據接收功能主要由TLK2711_rx_ctrl 模塊實現,當接收到有效數據,TLK2711_rx_ctrl 模塊對數據進行解幀,將解幀后的數據寫入接收端FIFO,供上層應用讀取,每當接收完一個完整的數據幀,TLK2711_rx_ctrl 模塊給出數據幀接收完畢信號(received_end 信號)通知上層應用,并給出接收數據幀長。

圖3 高速串行通信協議模型

3.2 協議原語及狀態切換

3.2.1 協議原語

為了保證數據的正確傳輸,需要傳輸一些控制信息,這些定義的控制信息稱為協議原語。本協議采用8b/10b 中的K 字符和D 字符組合實現數據發送與接收的控制功能。SerDes 通過掃描搜尋cmoma 字符序列實現數據對齊功能。根據技術手冊,TLK2711僅識別包含字符特征序列b0011111 或b1100000的控制字符作為識別數據邊界的comma 碼。在8b/10b中僅有K28.1、K28.5 和K28.7 包含這些字符特征序列,因此定義D5.6/K28.5 為同步字符,D12.1/K28.5 為同 步應 答 字 符,D10.2/K28.5 為 空 閑 字 符,K28.2/K27.7 為幀頭標識,K29.7/K30.7 為幀尾標識。

3.2.2 狀態切換

系統上電后需要對SerDes 進行初始化和同步來建立一個有效鏈路,這樣SerDes 才能進行正確的數據收發。鏈路同步由TLK2711_tx_ctrl 模塊和TLK2711_rx_ctrl 模塊共同完成,最終鏈路應答標志Spa_ok 和鏈路同步標志Lane_ok 均為高電平,表示鏈路同步, 可以進行數據的收發。TLK2711_tx_ctrl 模塊和TLK2711_rx_ctrl 模塊功能均由狀態機實現,具體的狀態切換如下:

(1)鏈路初始化狀態

系統上電、復位或數據在傳輸過程中發生鏈路中斷都會使鏈路重新初始化。首先發送端會不斷發送同步字符D5.6/K28.5,當接收端連續收到32 個同步字符時,會置鏈路應答標志位Spa_OK為高。

(2)鏈路同步狀態

發送端再次發送80 個連續的同步應答字符D12.1/K28.5 與176 個 連 續 的 同 步 字 符D5.6/K28.5,以保證接收端能夠有效的收到32 個同步字符D5.6/K28.5 或16 個同步應答字符D12.1/K28.5。當 接收端在應答狀態下收到了連續的16個同步應答字符D12.1/K28.5,則鏈路同步標志Lane_OK 置高,鏈路進入同步狀態。

(3)收發數據狀態

在同步狀態下,發送數據首先發送幀頭K28.2/K27.7,接下來發送數據,發送數據結束后發送幀尾K29.7/K30.7,之后進入空閑(IDEL)狀態。

(4)空閑狀態

在空閑狀態下,發送端不斷發送空閑字符D10.2/K28.5,以保持鏈路的建立。 當需要發送數據時,轉入收發數據狀態。

(5)鏈路檢測狀態

如果鏈路在一定時間內沒有收到幀頭、幀尾、空閑字符、同步字符和同步應答字符,說明收發鏈路必有一條沒有建立,重新進入鏈路初始化狀態。如果鏈路收到無效字符k0.0 和K31.7(即0x0000或0xFFFF),且RKLSB 與RKMSB 均為高,連續三次,鏈路即重新進入初始化狀態。

3.3 全雙工串行通信協議實現

協議的FPGA 邏輯實現采用VHDL 硬件描述語言,由tlk2711_logic_ctrl_ENT 模塊、tlk2711_tx_ctrl模塊、tlk2711_rx_ctrl 模塊和內置發送端TLK2711_FIFO組成,如圖4 所示。

圖4 全雙工串行通信協議

tlk2711_logic_ctrl_ENT 模塊主要對TLK2711的控制信號進行了統一管理,包括LCKREFN 信號、TESTEN 信號、LOOPEN 信號、PRBSEN 信號和PRE 信號。該模塊接收系統復位信號(rst_n),并產生整個邏輯的復位信號(rst_n),同時將ENABLE置為低電平,延時100ms,使TLK2711 芯片復位。

tlk2711_tx_ctrl 模塊主要實現數據的發送和對TLK2711 芯片發送端口的控制。當接收到tx_start_en信號的上升沿,只要發送FIFO 不為空,就讀取FIFO 中的數據組幀后進行發送,發送數據長度由tx_start_en 信號的上升沿時,wrcnt[10:0]的值決定。發送數據必須保證鏈路在初始化后同步的狀態下進行,數據幀格式如表1 所示。可以看到幀頭和幀尾只占用整個數據幀中的4 個字節,因此該協議屬于輕量級的串行數據傳輸協議。

表1 數據幀格式

tlk2711_rx_ctrl 模塊主要實現數據的接收和解幀,將解幀后的數據寫入外置接收FIFO。接收數據前需進行鏈路的初始化和同步。同時,接收端實現鏈路的檢測功能,當判斷鏈路失效后,重新進入復位模式,進行鏈路的初始化和同步。Spa_ok和Lane_ok 為鏈路應答標志和鏈路同步標志,傳輸至tlk2711_tx_ctrl 模塊,作為鏈路初始化和同步的標志信號。

4 測試與驗證

4.1 仿真測試

利用ModelSim 工具對高速串行通信協議進行仿真測試,上電后發送端通過先后發送同步字符和同步應答字符,接收端連續收到相應字符后,最終置鏈路應答標志位Spa_OK 和鏈路同步標志Lane_OK 為高電平,鏈路進入同步狀態。

在鏈路同步狀態下,當接收到tx_start_en 信號,發送模塊將FIFO 中的數據讀出,并增加幀頭0x5CFB 和幀尾0xFCFE 后進行發送。

當接收到幀頭0x5CFB,將后續接收數據寫入FIFO,直到接收到幀尾0xFCFE,發出接收完畢信號received_end 信號。接收數據期間計數接收到的數據個數,接收數據完畢將數據長度通過data_length輸出。

4.2 實物測試

利用Microsemi 公司的SmartFusion2 SOC 平臺構建多通道數據獲取系統,采集到的數據通過由TLK2711 構建的串行數據通道輸出。系統有兩路TLK2711 構建的串行數據通道和一路千兆以太網接口,測試時將兩路串行數據通道的收發接口通過同軸線纜互聯,即采集數據由一路串行數據通道發送,再由另一路串行數據通道接收,最后數據通過千兆以太網上傳至上位機。通過測試系統能夠實現高速可靠數據全雙工傳輸,設置系統時鐘為80MHz~135MHz 的范圍,系統數據傳輸速率能夠達到1.6Gbps~2.7Gbps。在FPGA 中進行了誤碼計數設計,通過接收端進行監控收到的數據是否為所發送的數據。測試時發送時鐘為135MHz,串行數據率為2.7Gbps,發送數據量為1000Gb,將數據分為10000 個數據幀,發送完畢沒有出現誤碼。所以誤碼率BER=出錯位數/總傳輸位數<1/1012=10-12。

5 結論

本文以SerDes 器件TLK2711 作為串行數據傳輸的物理層,在FPGA 中設計串行數據通信協議的鏈路層,實現了一種輕量級的高速高可靠串行數據通信協議。進行了功能仿真和實物測試,經測試該通信協議在TLK2711 硬件的基礎上能夠實現最高2.7Gbps 的數據傳輸速率,誤碼率小于10-12。本設計將為高速數據系統的設計和驗證提供重要參考。

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: 日韩午夜福利在线观看| 国产本道久久一区二区三区| 精久久久久无码区中文字幕| 日韩无码真实干出血视频| 好紧太爽了视频免费无码| 日韩国产黄色网站| 无码视频国产精品一区二区| 久久精品欧美一区二区| 男女精品视频| A级全黄试看30分钟小视频| 一区二区在线视频免费观看| 潮喷在线无码白浆| 日韩国产无码一区| 国产成人精品18| 久久黄色毛片| 中文字幕无码av专区久久| 亚洲欧洲天堂色AV| 免费看黄片一区二区三区| 国产精品久久久精品三级| 国产精品一区二区国产主播| 国产欧美日韩一区二区视频在线| 国产成人精品一区二区免费看京| 国产1区2区在线观看| 亚洲欧美日韩另类| 香蕉久人久人青草青草| 欧美三级自拍| 国产黄在线观看| 毛片手机在线看| 99这里只有精品在线| 欧美福利在线播放| 54pao国产成人免费视频| 日韩麻豆小视频| 亚洲日本韩在线观看| 91久久偷偷做嫩草影院免费看| 日韩欧美国产综合| 欧美中日韩在线| 免费人成又黄又爽的视频网站| 人妻中文字幕无码久久一区| 在线毛片网站| 国产精品美乳| av无码久久精品| 精品五夜婷香蕉国产线看观看| 在线观看视频99| 日韩人妻无码制服丝袜视频| 日韩精品一区二区深田咏美| 国产成人亚洲欧美激情| 久夜色精品国产噜噜| 伊人久久综在合线亚洲91| 手机在线免费不卡一区二| 亚洲国产日韩一区| 91青青草视频| 亚洲自拍另类| 456亚洲人成高清在线| 亚洲欧美日韩高清综合678| 国产精品主播| 国产幂在线无码精品| 综合亚洲色图| 欧美成人看片一区二区三区| 波多野结衣一区二区三区四区| 国产va欧美va在线观看| 99人妻碰碰碰久久久久禁片| 91麻豆精品国产高清在线| 色哟哟国产精品一区二区| 蜜臀AV在线播放| 久久久亚洲国产美女国产盗摄| 伊人蕉久影院| 91久久性奴调教国产免费| 免费jizz在线播放| 91国内视频在线观看| 亚洲日韩精品伊甸| 免费jizz在线播放| 国产永久在线观看| 国产内射一区亚洲| 精品一区二区三区水蜜桃| 亚洲码一区二区三区| 国产美女免费| 亚洲AV电影不卡在线观看| 亚洲国产成人无码AV在线影院L| 美女无遮挡免费视频网站| 国产精品毛片一区| 91精品福利自产拍在线观看| 国产chinese男男gay视频网|