sata接口 图解 定义_SATA协议简介
SATA協(xié)議簡介
1、概述
本文檔主要介紹SATA的發(fā)展歷程以及SATA相關(guān)協(xié)議,為后續(xù)SATA驅(qū)動框架分析做基礎(chǔ)知識準備。
2、SATA簡介
2.1 SATA發(fā)展歷程
2.1.1 PATA硬盤
PATA硬盤叫做并行ATA硬盤(Parellel ATA)。為了限制其信號放大系統(tǒng)產(chǎn)生的高噪聲,常采用高達5V的電壓來傳輸正常信號,但是采用大電壓導(dǎo)致生產(chǎn)成本上升,同時也不利于高速傳輸系統(tǒng)的設(shè)計和制造。由于數(shù)據(jù)是并列傳輸所以它的傳輸速率受到并行限制,故總體傳輸率最快能達到133MB/s。
2.1.2 SATA硬盤
SATA硬盤,即SATA(Serial ATA)又被稱為串口硬盤。SATA采用差分信號系統(tǒng),該系統(tǒng)能有效將噪聲濾除,因此SATA就不需要使用高電壓傳輸去抑制噪聲,只需要使用低電壓操作即可。
在數(shù)據(jù)傳輸這一方面,SATA的速度比PATA更加快捷,并支持熱插拔。另一方面,SATA總線使用了嵌入式時鐘頻率信號,具備了比以往更強的糾錯能力,能對傳輸指令(不僅是數(shù)據(jù))進行檢查,如果發(fā)現(xiàn)錯誤會自動矯正,提高了數(shù)據(jù)傳輸?shù)目煽啃浴2贿^,SATA和PATA最明顯的分別,是用上了較細的排線,有利機箱內(nèi)部的空氣流通,某程度上增加了整個平臺的穩(wěn)定性。
目前SATA接口主要有SATA1.0、SATA2.0、SATA3.0這三個版本,三種主流規(guī)范的帶寬與傳輸速度的對比如圖 2.1所示。
2.1.3 拓撲結(jié)構(gòu)
SATA是用來取代大容量存儲設(shè)備并行ATA鏈接方式的高速串行鏈接方式。
對于并行ATA設(shè)備,多個設(shè)備通過主/從(master/slave)通信技術(shù)鏈接到并行ATA總線上,其鏈接方式如圖 2.2所示。
而SATA的拓撲結(jié)構(gòu)是點對點式的,主機可以通過多個鏈接支持多個設(shè)備,每個設(shè)備百分百占用總線帶寬,并且一個設(shè)備的鏈接出錯不會影響其他設(shè)備的鏈接,其鏈接方式如圖 2.3所示。
2.2 SATA協(xié)議
2.2.1 SATA接口結(jié)構(gòu)
SATA接口使用4根電纜傳輸數(shù)據(jù),其結(jié)構(gòu)圖如圖 2.4所示。Tx+、Tx-表示輸出差分數(shù)據(jù)線,對應(yīng)的,Rx+、Rx-表示輸入差分數(shù)據(jù)線。
2.2.2 協(xié)議模型
SATA接口協(xié)議借鑒TCP/IP模型,將SATA接口劃分為四個層次來實現(xiàn),包括物理層、鏈路層、傳輸層、應(yīng)用層,其體系結(jié)構(gòu)如圖 2.5所示。
2.2.3 物理層分析
物理層采用全雙工串行傳輸方式,主要功能是進行信號的串并及并串轉(zhuǎn)化。物理層接收來自鏈路層的數(shù)據(jù)信息,將接收到的并行的數(shù)字邏輯信號轉(zhuǎn)換為串行的差分物理信號,發(fā)送到主機端。相應(yīng)的物理層能將來自主機端的串行差分物理信號轉(zhuǎn)化為并行的邏輯信號傳送到鏈路層。
為了提高 SATA 接口的擴展能力和響應(yīng)能力, SATA 協(xié)議還引進了帶外信號(Out Of Band,OOB)來協(xié)助物理層進行上電初始化以及復(fù)位操作。2.2.4 鏈路層分析
鏈路層的主要功能是通過控制原語的傳遞來控制信息幀的整個傳輸過程,保證幀信息能夠正確的發(fā)送與接收并能進行流量的控制,防止數(shù)據(jù)發(fā)送過快或接受過多。
1)接收來自物理層的信息,對信息幀進行編碼、解碼、校驗和擾碼,然后給傳輸層發(fā)送 SOF 原語,通知傳輸層接收數(shù)據(jù),當數(shù)據(jù)發(fā)送完成后,給傳輸層發(fā)送EOF原語,通知傳輸層該幀傳輸完成。
2)接收來自傳輸層的信息,給接收的信息頭封裝上SOF原語和EOF原語,然后對信息幀進行編碼、解碼、校驗、擾碼,傳送給物理層。
鏈路層的控制原語是用來控制和維持串行鏈路數(shù)據(jù)傳輸狀態(tài)。它們是以32位數(shù)據(jù)為單位的信息包,控制原語一共有18種,它們都有各自的功能,如:ALIGN原語用來做物理層中數(shù)據(jù)對齊;SOF、EOF原語用來做數(shù)據(jù)傳輸時信息幀的邊界定義等。2.2.5 傳輸層分析
傳輸層主要負責(zé)FIS幀信息結(jié)構(gòu)的封裝與解封。
1)傳輸層接收到來自應(yīng)用層的數(shù)據(jù)傳輸操作請求后,將相關(guān)寄存器中信息按SATA協(xié)議規(guī)定的標準格式封裝為FIS傳遞給鏈路層。當鏈路層正確接收完成后,能給傳輸層反饋成功完成本次傳輸?shù)男盘枴?br />2)傳輸層接收到來自鏈路層的SOF信號后,能接收FIS信息幀,并能判斷該FIS的類型,根據(jù)FIS類型,判斷該FIS是否是有效的FIS。如果是則將該FIS中的命令和數(shù)據(jù)等按照SATA協(xié)議規(guī)定進行解析,映射到各個寄存器中,然后能通知應(yīng)用層接收相應(yīng)寄存器的值。如果該FIS無效,則丟棄。2.2.6 應(yīng)用層分析
應(yīng)用層能夠進行接受來自主機端的命令,根據(jù)命令的要求將自身的信息發(fā)送給主機端,或是接收來自主機端的以PIO或DMA方式傳輸?shù)臄?shù)據(jù),同時寫入閃存中,也能從閃存中以PIO或DMA的方式讀出數(shù)據(jù),傳送給主機端。
在應(yīng)用層采用兩個FIFO對數(shù)據(jù)進行緩沖,一個為讀FIFO,一個為寫FIFO。應(yīng)用層能接收來自傳輸層的數(shù)據(jù)幀送入寫FIFO中或?qū)碜钥偩€的數(shù)據(jù)保存在讀FIFO中,然后通知傳輸層構(gòu)造數(shù)據(jù)幀。
3、參考資料
1、《Serial ATA Revision 3.0》
總結(jié)
以上是生活随笔為你收集整理的sata接口 图解 定义_SATA协议简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c# url传参不能包含html标签,c
- 下一篇: python类和oop基础知识