SATA速率協商
HOST D10.2
D10.2 Pattern:1010 1010 1010 1010 1010b
在Speed Negotiation
中,一旦HOST鎖定設備COMWAKE,便會以HOST支持的最低速率傳輸D10.2,而不一定是HOST支持的最高速率,因而設備無法通過HOST的D10.2來確定HOST通訊速率。HOST使用D10.2用來抑制串擾和提供參考時鐘。
Power-On Sequence時序圖
-
HOST/設備關機;
-
HOST和設備供電,HOST端通過信號調理使得TX和RX的電平出於中間狀態(共模電壓);
-
HOST發送COMRESET;
-
HOST釋放COMRESET;一旦完成Power-On Reset,HOST釋放COMRESET信號,使總線出於靜止條件;
-
設備發出COMINIT;如果設備檢測到HOST釋放掉COMRESET,那麼設備就會發出COMINIT作爲應答;COMINIT是設備啓動的入口點,設備可以在任何時候通過發出COMINIT啓動通信;
-
HOST校正完成後發出COMWAKE信號;
-
設備在接收端檢測到COMWAKE信號後,校正它的發送器(可選)。設備完成校正後發出6個Burst COMWAKE序列,隨後發送以設備支持的最大速率發送一個連續的ALIGN序列。設備在發出ALIGN原語後,如果在54.6us內設備沒有收到來自HOST端的應答,即沒有收到來自HOST反饋的ALIGN原語序列,那麼設備就會認爲HOST不能支持當前設備發送ALIGN原語的速率;如果設備還支持更低的速率,那麼設備會嘗試以更低的速率依次發送ALIGN原語,當然,如果54.6us內沒有接到HOST的應答,同樣設備會認爲HOST不支持該速率;這種嘗試會依次進行,直到設備支持的最低速率;如果最低速率,HOST依然不響應,那麼設備就會進入錯誤狀態;
-
HOST檢測到COMWAKE信號後進行鎖定。HOST鎖定後,以HOST支持的最低速率發送D10.2字符。與此同時,HOST接收器準備鎖定ALIGN序列,一旦接收端接收到來自設備端的ALIGN原語,HOST將以接收到的ALIGN原語速率發送ALGIN原語到設備。HOST應該具備在任何給定速率的情況下在54.6us內鎖定ALIGN原語。HOST應當允許從檢測到設備釋放COMWAKE信號後到接收第一個ALIGN信號的時間間隔至少873.8us。如果在873.8us內沒有接收到ALIGN原語,HOST重啓Power-On Sequence,反覆嘗試Speed Negotiation過程,直到應用層終止這一行爲;
-
一旦設備接收到HOST返回的ALIGN原語,設備發送SYNC原語,通知HOST端設備已經可以準備正常操作。一旦接收到3個緊挨着的Non-Align原語,通信鏈路建立,正常操作開始;
-
設備和HOST已經上電,並且已經正常工作;
-
HOST端的一些因素導致HOST發出了COMRESET信號;
-
一旦導致HOST發出COMRESET信號的條件消失或被釋放,那麼HOST釋放COMRESET信號,並使得總線處於不活動狀態;
-
如果設備檢測到信號COMRESET被釋放,設備發送COMINIT進行響應。設備可以在任何時候通過發送OCMINIT信號啓動通信;
-
HOST校正併發送COMWAKE信號;
-
設備在RX信號對檢測到COMWAKE序列,校正它的發送器(可選)。完成校正後,設備發送6個COMWAKE序列,然後以設備支持的最高速率發送一連串ALIGN原語數據流。在設備發出ALIGN原語後54.6us內,如果沒有接收到來自HOST的應答,那麼設備認爲HOST不支持當前通信速率;設備嘗試降低速率發送ALIGN,直到最低速率;如果最低速率也無響應,那麼設備就會進入到錯誤狀態。
-
HOST在檢測到COMWAKE信號後鎖定,HOST以其支持的最低速率發送D10.2字符。與此同時,鎖定ALIGN原語序列,如果檢測到ALIGN原語,那麼HOST將會以接受到的ALIGN原語速率發送ALIGN原語到設備。HOST應當可以任何速率情況下在54.6us內鎖定ALIGN原語。從檢測到COMWAKE信號釋放到接收到第一個ALIGN信號HOST應該允許的時間間隔爲873.8us。如果在873.8us內沒有接收到ALIGN原語,HOST重啓Power-On Sequence,直到被應用層終止。HOST SATA工作速率高於或等於設備時,HOST有能力檢測輸入的低速率ALIGN序列。HOST發起COMRESET序列允許HOST調整速率以匹配較低速率的設備,恢復speed negotiation序列,減少speed negotiation過程時間;
-
設備鎖定ALIGN序列,如果就緒,設備發送SYNC信號,表示設備端已經開始正常工作;
-
一旦設備接收到3個連續的Non-ALIGN原語,那麼通信鏈路就會被建立,同時開始正常操作。