?

基于RocketIO的SATA物理層實現

2013-09-17 10:25楊佳朋
電視技術 2013年3期
關鍵詞:收發器物理層差分

楊佳朋,張 剛,郝 敏

(太原理工大學信息工程學院,山西太原 030024)

基于RocketIO的SATA物理層實現

楊佳朋,張 剛,郝 敏

(太原理工大學信息工程學院,山西太原 030024)

以Virtex-5系列FPGA內嵌的RocketIO收發器模塊為平臺,分析SATA(串行高級技術附件)協議的物理層功能,把RocketIO收發器的內部結構特點與協議要求相結合,設計了基于RocketIO收發器的SATA物理層電路。

Rocket IO;SATA協議;高速串行傳輸

隨著硬盤等存儲設備容量的增加,對數據傳輸的速度越來越高,傳統的并口硬盤(PATA)的速度已達瓶頸(133 Mbit/s),進一步提高頻率,將加大16根數據線間的干擾,使得串行數據傳輸技術應運而生。SATA(Serial Advanced Technology Attachment)[1],即一種串行數據傳輸協議,相比并傳,改用串行線路進行信號傳輸,一次只傳一位,干擾的降低可以在一定條件下大幅提高頻率,一代傳輸速率已達到150 Mbit/s,再定義更加完善的校驗措施使得SATA總線具有廣闊的應用前景。但其串并傳喚和高頻傳輸增加了實現難度,Xilinx公司在其Virtex-5 LX 系列產品中推出的 RocketIO GTP[2],速率可高達3.125 Gbit/s,是一種可靈活可配置的千兆位級高速串行收發器,為SATA協議相關的傳輸要求提供了重要參考,簡化了設計。

1 SATA協議物理層

本文參照的SATA協議是2001年由 Intel、APT、Dell、IBM、希捷、邁拓等幾大廠商組成的 Serial ATA委員會正式確立的 Serial ATA 1.0[1]規范。

協議分4層架構,又下至上依次是物理層、鏈路層、傳輸層和命令層,如圖1所示。上面3層交互通過物理層實現,故物理層的實現對上面3層的功能具有重要意義。物理層建立SATA信號傳輸的比特流通路,進行鏈路初始化、電源管理和熱插拔等操作。鏈路層和傳輸層協同進行原語的收發、幀信息結構(FIS)[3]的編解碼等工作。命令層代表大腦,向下發送讀寫命令,并接收下層的幀信息向主機端反饋。

圖1 SATA架構

物理層位于協議的最底層,用于實現最基本的數據通信環境。內部結構包括模擬前端和控制模塊,控制模塊與鏈路層進行交互,向其反饋物理層的工作狀態,把控制信號傳給模擬前端。作為最基本的傳輸層,由于各種硬件具備不同的特性和來源,使它實現起來很復雜。采用Xilinx公司Virtex5芯片中的RocketIO收發器,可以簡化設計。

2 RocketIO GTP簡介及工作原理

2.1 RocketIO GTP 簡介

如圖2所示,RocketIO GTP由物理介質附屬子層(PMA)和物理編碼子層(PCS)組成,內部結構緊湊,可根據設計需要自由配置。PMA主要實現串并變換和時鐘優化功能,另外包括發送預加重、接收均衡器等在線配置技術以實現最優信號完整性。PCS部分負責編解碼工作,包含8 bit/10 bit編解碼器和支持通道綁定和時鐘校正的彈性緩沖器[4-5],并支持 comma[3]字符檢測,確保字節的準確接收。PRBS為偽隨機二進制序列,用于測試高速串行通道傳輸的誤碼率。CDR(Clock and Data Recovery)為時鐘數據恢復電路,和接收均衡器協同負責從一個復合的信號中把時鐘和數據都正確地恢復出來。圖中CRC校驗在鏈路層實現,在本模塊并不涉及??梢?,RocketIO GTP的相關功能為SATA物理層內部關鍵模塊的實現提供了重要技術支持。

圖2 RocketIO結構

2.2 RocketIO GTP 工作原理

并行數據進入RocketIO GTP發送端經過8 bit/10 bit編碼,寫入到發送端FIFO,再轉換成串行差分數據發送給設備。接收端的串行數據信號要首先經過均衡器處理,寫入到接收端緩沖,恢復出接收時鐘,在時鐘的驅動下轉換成并行數據,再次經過10 bit/8 bit解碼,被寫入彈性緩沖區,并做CRC檢驗后并行輸出。簡而言之,就是將輸入的并行數據經過編碼,轉化為高速的差分串行信號;同時接收高速串行信號,進行時鐘和數據恢復,轉換成并行數據輸出。

3 系統設計

SATA1.0協議[1]規定物理層的數據傳輸速率為1.5 Gbit/s,每個時鐘周期傳輸一位,考慮8 bit/10 bit編碼,故實際速率為150 Mbit/s,參考時鐘設為150 MHz。OOB[6]信號為帶外控制信號,分別為 COMWAKE,COMRESET,COMINIT,相對于數據傳輸具有優先級,實現初始化和電源管理模塊。COMRESET只由主機發送,開始復位,COMWAKE雙方都可以發送,交互中喚醒對方,COMINIT只由設備發送,表示初始化連接。配置過程中,每2個GTP0和1共用1個鎖相環(PLL),構成1個 GTP_DUAL,根據開發板 Datasheet選用了 GTP_DUAL_X0Y0。RocketIO GTP端口參數配置如表1所示。

表1 GTP配置參數

并行數據位寬INTDATAWIDTH信號設置為10 bit。當選擇SATA時,接收狀態控制信號RXSTATUS[0]表示OOB信號操作完成,RXSTATUS[1]表示收到COMWAKE信號,RXSTATUS[2]表示收到 COMRESET或 COINIT信號。RX Termination配置終端,VTTRX表示參考內部電壓擺幅。RXLOSSOFSYNC為0代表8bit/10bit錯誤,1代表彈性緩沖中的通道綁定序列。TXENOOB用于發送,RXSIGDET用于接收共同管理OOB控制信號,通過配置的RocketIO GTP作為SATA物理層[7]的模擬前端電路。

3.1 時鐘控制

為提高時鐘精度,降低抖動,滿足GTP的高速運作,需要配置高精度的時鐘。首先參考時鐘分頻產生鎖相環時鐘,借助于內嵌在GTP_DUAL中的共享PMA鎖相環,驅動GTP收發器的發送和接受通路。參考時鐘有3種方式提供:

1)使用外部振蕩器驅動專用時鐘布線;

2)通過專用時鐘布線使用相鄰 RocketIO模塊的時鐘;

3)使用 FPGA 內部時鐘(GREFCLK[2])。

由于GREFCLK數據傳輸率低于1 Gbit/s,不予考慮。綜合前兩種時鐘方式,本文采用以下解決方案:150 MHz的參考時鐘經過差分時鐘輸入緩存(IBUFDS)生成REFCLK作為GTP的參考時鐘;根據RocketIO GTP內部四通道綁定,把TXOUTCLK用作發送時鐘,RXREFCLK用作接收時鐘,兩個時鐘信號經全局時鐘緩沖(BUFG)輸出到TX_CLK和RX_CLK,同時作為 TXUSRCLK和 RXUSRCLK的時鐘源,如圖3所示。BUFG為Xilinx用戶提供的全局時鐘輸入緩存,IBUFDS為差分時鐘輸入緩存,用于外部差分時鐘信號的輸入,可提高時鐘信號的驅動能力。

圖3 時鐘分布圖

3.2 復位模塊

復位分為發送部分和接收部分,分別維護系統的穩定。以發送模塊為例,如圖4所示,為了抑制外部復位信號輸入時的抖動情況,對GTP_RESET信號進行兩級移位寄存器與操作,產生2個時鐘周期的延遲,保證足夠的復位時間,這樣該信號使能時的抖動就基本被濾除,配合時鐘信號從而保證整個系統邏輯的穩定可靠。

3.3 數據通路

由于只是模擬物理層,沒有上層架構發送數據,故在發送時鐘tileo_txusrclk0_i的驅動下,由計數器發數、由RAM存儲。在接收時鐘的觸發下,由接收端接收、由串口模塊顯示。構成GTP_DUAL的0和1兩端口復用相同資源,只列舉0端口重要的參數,如表2所示。

圖4 復位模塊

表2 端口配置

4 驗證及總結

整個流程采用VHDL語言編寫,基于Xilinx公司的Vritex-5系列XC5VLX110T芯片在ISE10.1設計平臺上完成綜合、仿真和布局布線。如圖5所示,txdata在計數器的驅動下發送數據,rxdata0和rxdata1為2條接收通道,經過系統預設的20,65,85,6B后從BC開始接收數據,與發送端數據一致,實現了正確接收。通過驗證,本文對時鐘部分的設計可以正確接收發送的數據,同時符合SATA1.0協議,集成度高、穩定性強。

圖5 仿真圖(截圖)

5 小結

高速串行傳輸技術把時鐘與數據合并發送,再利用同步檢測正確恢復出時鐘,解決了高速數據傳輸過程中的抖動問題,降低設計復雜性和成本。本文基于Xilinx公司的Virtex 5 LX系列FPGA器件中內嵌的Rocket IO IP核具有配置靈活、集成度高等優點,把它用于SATA物理層,實現了高效穩定的數據傳輸,具有重要的現實意義。

:

[1]Serial ATA:High Speed Serialized ATAttachment Rev.1.0a[EB/OL].[2012-06-01].http://www.doc88.com/p-015901791536.html.

[2]Xilinx.Virtex-5 FPGA RocketIO GTP Transceiver User Guide[EB/OL].[2012-06-01].http://wenku.baidu.com/view/f76b533210661 ed9ad51f34f.html.

[3]鄧焰,戎蒙恬.基于FPGA的3.125Gbit/s串行通道設計實驗[J].電子工程師,2004,30(11):16-18.

[4]李江濤.RocketIO高速串行傳輸原理與實現[J].雷達與對抗,2004,23(4):48-50.

[5]武榮偉,蘇濤,梁中英.RocketIO在高速數據通信中的應用[J].通信技術,2010,43(11):9-11.

[6]歐陽科文,黎福海,唐純杰.基于RocketIO的SATA物理層高速串行傳輸實現[J]. 計算機測量與控制,2009,17(5):937-938.

[7]胡錦,彭成,譚明.基于RocketIO的高速串行協議設計與實現[J].微計算機信息,2008,24(18):196-197.

Implementation of SATA Physical Layer on RocketIO

YANG Jiapeng,ZHANG Gang,HAO Min

(College of Information Engineering,Taiyuan University of Technology,Taiyuan 030024,China)

The functional requirements of SATA(Serial Advanced Technology Attachment)protocol physical layer is analyzed in this paper.On the Virtex-5 family of FPGA embedded RocketIO transceiver platform,it combines the characteristics of the internal structure with the protocol demand and designs the physical layer circuit based on the RocketIO.

RocketIO;SATA protocol;high-speed serial transmission

TP393.04

A

【本文獻信息】楊佳朋,張剛,郝敏.基于RocketIO的SATA物理層實現[J].電視技術,2013,37(3).

國家自然科學基金項目(60772101)

楊佳朋(1988— ),碩士生,主研嵌入式與通信;

張 剛(1953— ),教授,博士生導師,主研視頻編碼與嵌入式系統;

郝 敏(1988— ),碩士生,主研視頻監控。

責任編輯:魏雨博

2012-06-29

猜你喜歡
收發器物理層差分
RLW-KdV方程的緊致有限差分格式
基于K-ML-MPWFRFT的物理層安全傳輸技術
數列與差分
光纖收發器故障排除經驗談
公路聯網電子不停車收費系統路側單元物理層自動測試軟件研發
Virtex5 FPGA GTP_DUAL硬核兩個收發器獨立使用的實現
多天線物理層安全傳輸系統性能分析
基于差分隱私的大數據隱私保護
相對差分單項測距△DOR
1Gbps電力線載波通信物理層算法設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合