[發明專利]基于FPGA的SATA接口鏈路層功能實現方法在審
| 申請號: | 201911078439.5 | 申請日: | 2019-11-06 |
| 公開(公告)號: | CN110941577A | 公開(公告)日: | 2020-03-31 |
| 發明(設計)人: | 杜鵑;胡茂海 | 申請(專利權)人: | 南京理工大學 |
| 主分類號: | G06F13/16 | 分類號: | G06F13/16 |
| 代理公司: | 南京理工大學專利中心 32203 | 代理人: | 朱沉雁 |
| 地址: | 210094 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 fpga sata 接口 鏈路層 功能 實現 方法 | ||
1.一種基于FPGA的SATA接口鏈路層功能實現方法,其特征在于:SATA3.0協議鏈路層負責數據編碼、數據驗證、添加幀邊界以及為來自傳輸層的幀數據提供流量控制,鏈路層是在上層控制下執行要傳輸的原始數據或幀數據,鏈路層在SATA通訊中參與的過程如下:傳輸層模塊(2)傳送FIS數據包給鏈路層(1),鏈路層(1)計算FIS數據包的CRC值、加擾碼并加上原語封裝成frame傳遞給物理層(3),在物理層(3)進行8b/10b編碼;
鏈路層(1)插入各種原語進行流量控制,在成功傳遞完有效數據后,鏈路層(1)等待對方的應答,并把結果傳給傳輸層(2);
鏈路層(1)從物理層(3)接收到已經過10b/8b編碼的有效數據時,將數據剝離原語,并將剝離原語的數據進行解擾以及CRC校驗后,保持一幀緩存入一個FIFO模塊,下一幀緩存入另一個FIFO模塊,交替緩存幀數據,并將FIFO模塊中數據交替傳遞給傳輸層(2)。
2.根據權利要求1所述的基于FPGA的SATA接口鏈路層功能實現方法,其特征在于:所述的鏈路層(1)包括發送模塊和接收模塊,發送模塊包括FIS緩存器(101)、擾碼器(102)、原語發生器(103)、雙端口RAM(106)和總線控制器(105);接收模塊包括接收控制器(107)、原語剝離器(108)和數據緩存器(109);
FIS緩存器(101):將傳輸層(2)發送來的各類FIS數據包進行封裝放入保存;
擾碼器(102):產生擾碼,在總線控制器(105)控制下,將擾碼通過總線(104)寫入雙端口RAM(106);
原語發生器(103):產生原語,在總線控制器(105)控制下,將原語通過總線(104)寫入雙端口RAM(106);
總線控制器(105):控制FIS緩存器(101)將各種FIS數據包通過總線(104)寫入雙端口RAM(106);
雙端口RAM(106):讀、寫時鐘相同,寫入時,第一個Word到第四個Word初始化為兩個ALIGN原語,從第5個Word到第512個Word寫入FIS數據包、擾碼、原語;讀出時,從第一個Word到第512個Word依次循環讀出并發送至物理層(3);
接收控制器(107):從物理層(3)接收到已經進行過10b/8b編碼的有效數據時,控制原語剝離器(108)和數據緩存器(109)解擾以及CRC校驗后,將數據傳遞給傳輸層(2);
原語剝離器(108):對在物理層(3)已進行10b/8b編碼的數據,捕捉完整的一幀數據,并將數據剝離原語;
數據緩存器(109):設置有兩塊FIFO模塊,將數據剝離原語,并將剝離原語的數據進行解擾以及CRC校驗后,保持一幀緩存入一個FIFO模塊,下一幀緩存入另一個FIFO模塊,交替緩存幀數據,并將FIFO模塊中數據交替傳遞給傳輸層(2)。
3.根據權利要求2所述的基于FPGA的SATA接口鏈路層功能實現方法,其特征在于:所述的CRC校驗均采用CRC-32位模式,計算公式符合SATA協議規范要求的CRC計算公式,
即:G(x)=x32+x26+x23+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1,并且計算初始值設定為0x52325032。
4.根據權利要求2所述的基于FPGA的SATA接口鏈路層功能實現方法,其特征在于:所述的擾碼器(102)產生擾碼以及原語剝離器(108)中的解擾都采用了符合SATA協議規范要求的擾碼計算公式,即:G(x)=x16+x15+x13+x4+1,并且計算初始值設定為0xF0F6。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京理工大學,未經南京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911078439.5/1.html,轉載請聲明來源鉆瓜專利網。





