SATA協(xié)議學(xué)習(xí)課程_第1頁
SATA協(xié)議學(xué)習(xí)課程_第2頁
SATA協(xié)議學(xué)習(xí)課程_第3頁
SATA協(xié)議學(xué)習(xí)課程_第4頁
SATA協(xié)議學(xué)習(xí)課程_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第一部分 物理層qSATA PSATA Protocolrotocol第1頁/共41頁第一頁,編輯于星期六:十九點 五十三分。qSATA PSATA Protocolrotocol第2頁/共41頁第二頁,編輯于星期六:十九點 五十三分。物理層的功能物理層的功能 以以1.5Gbps、3.0Gbps或者或者6Gbps的速率傳輸?shù)乃俾蕚鬏擠NRZ串行數(shù)據(jù)流;串行數(shù)據(jù)流;發(fā)送端和接收端提供發(fā)送端和接收端提供100歐姆的終端匹配電阻;歐姆的終端匹配電阻;將鏈路層接收的并行數(shù)據(jù)進(jìn)行串行化之后發(fā)送;將鏈路層接收的并行數(shù)據(jù)進(jìn)行串行化之后發(fā)送;接收高速串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),包括從串行數(shù)據(jù)流中進(jìn)行數(shù)據(jù)提取和時鐘

2、恢復(fù);接收高速串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),包括從串行數(shù)據(jù)流中進(jìn)行數(shù)據(jù)提取和時鐘恢復(fù);檢測檢測ALIGN原語,進(jìn)行數(shù)據(jù)對齊;原語,進(jìn)行數(shù)據(jù)對齊;帶外信號的接收和發(fā)送;帶外信號的接收和發(fā)送;使用帶外信號進(jìn)行使用帶外信號進(jìn)行SATA接口初始化和主從之間速率協(xié)商;接口初始化和主從之間速率協(xié)商;向鏈路層發(fā)連接狀態(tài)(已連接、未連接、已連接但是速率協(xié)商失?。?;向鏈路層發(fā)連接狀態(tài)(已連接、未連接、已連接但是速率協(xié)商失敗);qSATA PSATA Protocolrotocol第3頁/共41頁第三頁,編輯于星期六:十九點 五十三分。物理層的主要狀態(tài)物理層的主要狀態(tài)l Resetl COMINITl AwaitCOM

3、WAKEl AwaitNoCOMWAKEl Calibratel COMWAKEl SendAlignl Readyl Parity、Slubmberl Reduce SpeedqSATA PSATA Protocolrotocol第4頁/共41頁第四頁,編輯于星期六:十九點 五十三分。物理層上電初始化物理層上電初始化qSATA PSATA Protocolrotocol第5頁/共41頁第五頁,編輯于星期六:十九點 五十三分。電源管理電源管理Partial模式:模式: 物理層部分電路進(jìn)入休眠模式,能夠在物理層部分電路進(jìn)入休眠模式,能夠在10us之內(nèi)被喚醒。之內(nèi)被喚醒。qSATA PSATA P

4、rotocolrotocolSlumber模式:模式: 與與Partial模式相比可以關(guān)閉更多的電路,能夠在模式相比可以關(guān)閉更多的電路,能夠在10ms之內(nèi)被喚醒。之內(nèi)被喚醒。第6頁/共41頁第六頁,編輯于星期六:十九點 五十三分。第二部分 鏈路層qSATA PSATA Protocolrotocol第7頁/共41頁第七頁,編輯于星期六:十九點 五十三分。鏈路層的功能鏈路層的功能與對方的鏈路層相互協(xié)商傳送幀和原語;與對方的鏈路層相互協(xié)商傳送幀和原語;接收傳輸層傳送的數(shù)據(jù)(接收傳輸層傳送的數(shù)據(jù)(Dword),計算數(shù)據(jù)的),計算數(shù)據(jù)的CRC校驗值,給數(shù)據(jù)加上幀校驗值,給數(shù)據(jù)加上幀頭、幀尾和頭、幀尾和

5、CRC校驗信息;校驗信息;接收對方鏈路層的數(shù)據(jù)信息,進(jìn)行接收對方鏈路層的數(shù)據(jù)信息,進(jìn)行CRC校驗,移除數(shù)據(jù)中的幀頭、幀尾和校驗,移除數(shù)據(jù)中的幀頭、幀尾和CRC校驗校驗信息;信息;幀流量控制;幀流量控制;向傳輸層報告?zhèn)鬏敔顟B(tài);向傳輸層報告?zhèn)鬏敔顟B(tài);8b/10b編解碼;編解碼;對數(shù)據(jù)加擾、解擾;對數(shù)據(jù)加擾、解擾;qSATA PSATA Protocolrotocol第8頁/共41頁第八頁,編輯于星期六:十九點 五十三分。鏈路層數(shù)據(jù)結(jié)構(gòu)鏈路層數(shù)據(jù)結(jié)構(gòu)qSATA PSATA Protocolrotocol第9頁/共41頁第九頁,編輯于星期六:十九點 五十三分。鏈路層原語鏈路層原語 ALIGNp物理層依

6、靠ALIGN原語進(jìn)行數(shù)據(jù)對齊,成對發(fā)送CONTp避免連續(xù)發(fā)送長串重復(fù)原語DMATp用于通知發(fā)送方提前終止DMA數(shù)據(jù)發(fā)送EOFp表示數(shù)據(jù)幀的結(jié)束HOLDp發(fā)送方發(fā)送HOLD表示數(shù)據(jù)未準(zhǔn)備好,接收方發(fā)送HOLD表示接受FIFO將滿HOLDAp用于響應(yīng)HOLD原語PMACKp用于響應(yīng)PMREQ_Pp和PMREQ_Sp,接收方收到這個原語之后進(jìn)入電源管理狀態(tài)PMNAKp拒絕電源管理模式原語PMREQ_Pp請求進(jìn)入Parity模式PMREQ_Sp請求進(jìn)入Slumber模式R_ERRp接收錯誤R_IPp表示正常接收數(shù)據(jù)R_OKp接收數(shù)據(jù)正確R_RDYp用于回應(yīng)X_RDY原語,表示接收端準(zhǔn)備就緒SOFp表示

7、數(shù)據(jù)幀的開始SYNCp同步原語WTRMp數(shù)據(jù)幀發(fā)送完成之后,發(fā)送方發(fā)送這個原語,等待接收方回應(yīng)接收狀態(tài)X_RDYp發(fā)送數(shù)據(jù)就緒qSATA PSATA Protocolrotocol第10頁/共41頁第十頁,編輯于星期六:十九點 五十三分。DMAT原語原語功能:通知發(fā)送方停止數(shù)據(jù)傳送。功能:通知發(fā)送方停止數(shù)據(jù)傳送。主機(jī)到設(shè)備的數(shù)據(jù)傳輸,主機(jī)收到主機(jī)到設(shè)備的數(shù)據(jù)傳輸,主機(jī)收到DMAT原語之后,會停止數(shù)據(jù)發(fā)送,原語之后,會停止數(shù)據(jù)發(fā)送,開始發(fā)送開始發(fā)送CRC和和EOF原語,關(guān)閉原語,關(guān)閉DMA,保存當(dāng)前,保存當(dāng)前DMA的狀態(tài)。設(shè)備之后可的狀態(tài)。設(shè)備之后可以發(fā)送以發(fā)送DMA Active FIS重新激

8、活主機(jī)重新激活主機(jī)DMA,繼續(xù)數(shù)據(jù)傳送。,繼續(xù)數(shù)據(jù)傳送。設(shè)備到主機(jī)的數(shù)據(jù)傳輸,設(shè)備收到設(shè)備到主機(jī)的數(shù)據(jù)傳輸,設(shè)備收到DMAT原語之后,設(shè)備會永久終原語之后,設(shè)備會永久終止本次數(shù)據(jù)傳輸。止本次數(shù)據(jù)傳輸。qSATA PSATA Protocolrotocol第11頁/共41頁第十一頁,編輯于星期六:十九點 五十三分。CONT原語原語 功能:避免發(fā)送長串重復(fù)原語,減少電磁干擾。功能:避免發(fā)送長串重復(fù)原語,減少電磁干擾。接收方收到接收方收到CONT原語之后會認(rèn)為當(dāng)前發(fā)送方一直發(fā)送原語之后會認(rèn)為當(dāng)前發(fā)送方一直發(fā)送CONT之前的最之前的最后一個原語,直到收到另外一個原語。后一個原語,直到收到另外一個原語。

9、設(shè)備和主機(jī)必須支持接收和處理設(shè)備和主機(jī)必須支持接收和處理CONT原語的功能,可以選擇是否支原語的功能,可以選擇是否支持發(fā)送持發(fā)送CONT原語的功能。原語的功能。CONT原語之后的數(shù)據(jù)要加擾。原語之后的數(shù)據(jù)要加擾。qSATA PSATA Protocolrotocol第12頁/共41頁第十二頁,編輯于星期六:十九點 五十三分。流量控制流量控制接收方為了避免接收數(shù)據(jù)緩沖區(qū)溢出,使用接收方為了避免接收數(shù)據(jù)緩沖區(qū)溢出,使用HOLD原語進(jìn)行流量控原語進(jìn)行流量控制。制。在接收數(shù)據(jù)緩沖區(qū)將要滿的時候,接收方會發(fā)送在接收數(shù)據(jù)緩沖區(qū)將要滿的時候,接收方會發(fā)送HOLD原語通知發(fā)送原語通知發(fā)送方暫停數(shù)據(jù)發(fā)送,由于方

10、暫停數(shù)據(jù)發(fā)送,由于HOLD原語傳到發(fā)送方會有一定的延時,在延時期間原語傳到發(fā)送方會有一定的延時,在延時期間發(fā)送方會繼續(xù)發(fā)送數(shù)據(jù),因此接收緩沖區(qū)必須有一定的容量來繼續(xù)接收發(fā)送方會繼續(xù)發(fā)送數(shù)據(jù),因此接收緩沖區(qū)必須有一定的容量來繼續(xù)接收接下來接下來HOLDA之前的數(shù)據(jù)。之前的數(shù)據(jù)。qSATA PSATA Protocolrotocol第13頁/共41頁第十三頁,編輯于星期六:十九點 五十三分。鏈路層狀態(tài)鏈路層狀態(tài)鏈路層狀態(tài)機(jī)是鏈路層的控制模塊,是鏈路層的核心,主要包括以下鏈路層狀態(tài)機(jī)是鏈路層的控制模塊,是鏈路層的核心,主要包括以下四個部分:四個部分:u空閑狀態(tài)機(jī)空閑狀態(tài)機(jī)u發(fā)送狀態(tài)機(jī)發(fā)送狀態(tài)機(jī)u接收

11、狀態(tài)機(jī)接收狀態(tài)機(jī)u電源管理狀態(tài)機(jī)電源管理狀態(tài)機(jī)qSATA PSATA Protocolrotocol第14頁/共41頁第十四頁,編輯于星期六:十九點 五十三分。空閑狀態(tài)機(jī)主要完成復(fù)位操作和建立連接,主要包括以下空閑狀態(tài)機(jī)主要完成復(fù)位操作和建立連接,主要包括以下6個狀態(tài):個狀態(tài):uL_IDLEuL_SyncEscapeuL_NoCommErruL_NoCommuL_SendAlignuL_RESET空閑狀態(tài)機(jī)空閑狀態(tài)機(jī)qSATA PSATA Protocolrotocol第15頁/共41頁第十五頁,編輯于星期六:十九點 五十三分。L_IDLE符合以下條件保持空閑狀態(tài):符合以下條件保持空閑狀態(tài):

12、物理層連接正常;物理層連接正常; 傳輸層沒有傳送數(shù)據(jù)請求;傳輸層沒有傳送數(shù)據(jù)請求; 沒有接收到?jīng)]有接收到X_RDY、PMREQ_P和和PMREQ_S原語;原語;當(dāng)收到傳輸層的數(shù)據(jù)傳輸請求,鏈路層進(jìn)入數(shù)據(jù)傳輸狀態(tài)。當(dāng)收到傳輸層的數(shù)據(jù)傳輸請求,鏈路層進(jìn)入數(shù)據(jù)傳輸狀態(tài)。當(dāng)接收到當(dāng)接收到X_RDY原語,鏈路層進(jìn)入數(shù)據(jù)接收狀態(tài)。原語,鏈路層進(jìn)入數(shù)據(jù)接收狀態(tài)。當(dāng)收到傳輸層進(jìn)入電源管理模式的請求或者收到當(dāng)收到傳輸層進(jìn)入電源管理模式的請求或者收到PMREQ_P或或PMREQ_S原語,鏈路層進(jìn)入電源管理狀態(tài)。原語,鏈路層進(jìn)入電源管理狀態(tài)。當(dāng)物理層失去連接,進(jìn)入當(dāng)物理層失去連接,進(jìn)入L_NoCommErr狀態(tài)。狀

13、態(tài)。qSATA PSATA Protocolrotocol第16頁/共41頁第十六頁,編輯于星期六:十九點 五十三分。L_NoCommErr、L_NoComm和和L_SendAlign狀態(tài)狀態(tài)當(dāng)檢測到物理層失去連接進(jìn)入當(dāng)檢測到物理層失去連接進(jìn)入L_NoCommErr狀態(tài),然后進(jìn)入狀態(tài),然后進(jìn)入L_NoComm狀態(tài),需要向傳輸層報告物理層失去連接的狀態(tài)。狀態(tài),需要向傳輸層報告物理層失去連接的狀態(tài)。直到檢測到物理層連接正常之后,鏈路層進(jìn)入直到檢測到物理層連接正常之后,鏈路層進(jìn)入L_SendAlign狀態(tài),狀態(tài),否則保持否則保持L_NoComm狀態(tài)。狀態(tài)。在在SendAlign狀態(tài),鏈路層發(fā)送狀態(tài),

14、鏈路層發(fā)送ALIGN原語,之后如果物理層報告連原語,之后如果物理層報告連接正常,進(jìn)入接正常,進(jìn)入L_IDLE狀態(tài),否則進(jìn)入狀態(tài),否則進(jìn)入L_NoComm狀態(tài)。狀態(tài)。qSATA PSATA Protocolrotocol第17頁/共41頁第十七頁,編輯于星期六:十九點 五十三分。發(fā)送狀態(tài)機(jī)發(fā)送狀態(tài)機(jī)主要響應(yīng)主要響應(yīng) 傳輸層發(fā)送請求,啟動數(shù)據(jù)發(fā)送,通過各類原語的發(fā)送和接收實現(xiàn)與主機(jī)傳輸層發(fā)送請求,啟動數(shù)據(jù)發(fā)送,通過各類原語的發(fā)送和接收實現(xiàn)與主機(jī)之間的傳輸通道的建立和流量控制。之間的傳輸通道的建立和流量控制。qSATA PSATA Protocolrotocol第18頁/共41頁第十八頁,編輯于星期

15、六:十九點 五十三分。L_SendData狀態(tài)狀態(tài)傳輸數(shù)據(jù)狀態(tài)表示正在發(fā)送數(shù)據(jù)。傳輸數(shù)據(jù)狀態(tài)表示正在發(fā)送數(shù)據(jù)。如果更多的數(shù)據(jù)需要繼續(xù)發(fā)送但是傳輸層還未準(zhǔn)備好,鏈路層進(jìn)入如果更多的數(shù)據(jù)需要繼續(xù)發(fā)送但是傳輸層還未準(zhǔn)備好,鏈路層進(jìn)入SendHold狀狀態(tài)。態(tài)。如果更多的數(shù)據(jù)需要發(fā)送但是接收端收到了如果更多的數(shù)據(jù)需要發(fā)送但是接收端收到了HOLD原語,發(fā)送方鏈路層進(jìn)入原語,發(fā)送方鏈路層進(jìn)入RecvHOLD狀態(tài)(狀態(tài)(SendHOLDA)。)。如果數(shù)據(jù)發(fā)送完畢或者接收到如果數(shù)據(jù)發(fā)送完畢或者接收到DMAT原語,鏈路層進(jìn)入原語,鏈路層進(jìn)入SendCRC狀態(tài)發(fā)送狀態(tài)發(fā)送CRC。如果收到如果收到SYNC原語,表示

16、接收方傳輸層想要取消這次數(shù)據(jù)傳輸,發(fā)送方鏈路層進(jìn)原語,表示接收方傳輸層想要取消這次數(shù)據(jù)傳輸,發(fā)送方鏈路層進(jìn)入入IDLE狀態(tài)。狀態(tài)。如果發(fā)送方傳輸層想要取消本次數(shù)據(jù)傳輸,鏈路層進(jìn)入如果發(fā)送方傳輸層想要取消本次數(shù)據(jù)傳輸,鏈路層進(jìn)入SyncEscape狀態(tài)。狀態(tài)。如果檢測到物理層失去連接,鏈路層進(jìn)入如果檢測到物理層失去連接,鏈路層進(jìn)入NoCommErr狀態(tài)。狀態(tài)。qSATA PSATA Protocolrotocol第19頁/共41頁第十九頁,編輯于星期六:十九點 五十三分。接收狀態(tài)機(jī)接收狀態(tài)機(jī)接收數(shù)據(jù)的時候,接收狀態(tài)機(jī)控制原語的接收和響應(yīng),建立數(shù)據(jù)傳輸通道,接收接收數(shù)據(jù)的時候,接收狀態(tài)機(jī)控制原語的

17、接收和響應(yīng),建立數(shù)據(jù)傳輸通道,接收數(shù)據(jù)并校驗其正確性,向發(fā)送方返回接收狀態(tài)。數(shù)據(jù)并校驗其正確性,向發(fā)送方返回接收狀態(tài)。qSATA PSATA Protocolrotocol第20頁/共41頁第二十頁,編輯于星期六:十九點 五十三分。L_SyncEscape當(dāng)鏈路層在數(shù)據(jù)發(fā)送或者數(shù)據(jù)接收狀態(tài)的時候,如果傳輸層需要當(dāng)鏈路層在數(shù)據(jù)發(fā)送或者數(shù)據(jù)接收狀態(tài)的時候,如果傳輸層需要取消當(dāng)前數(shù)據(jù)接收或發(fā)送,鏈路層會進(jìn)入取消當(dāng)前數(shù)據(jù)接收或發(fā)送,鏈路層會進(jìn)入L_SyncEscape狀態(tài)。狀態(tài)。當(dāng)前狀態(tài)鏈路層發(fā)送當(dāng)前狀態(tài)鏈路層發(fā)送SYNC原語。原語。當(dāng)前狀態(tài)接收到當(dāng)前狀態(tài)接收到SYNC原語或者原語或者X_RDY原語之

18、后跳到原語之后跳到L_IDLE。當(dāng)前狀態(tài)如果物理層失去連接,進(jìn)入當(dāng)前狀態(tài)如果物理層失去連接,進(jìn)入L_NoCommErr狀態(tài)。狀態(tài)。qSATA PSATA Protocolrotocol第21頁/共41頁第二十一頁,編輯于星期六:十九點 五十三分。L_RcvData狀態(tài)狀態(tài)接收數(shù)據(jù)狀態(tài),正?;貞?yīng)接收數(shù)據(jù)狀態(tài),正常回應(yīng)R_IP。如果如果FIFO空間不足,進(jìn)入空間不足,進(jìn)入Hold狀態(tài),發(fā)送狀態(tài),發(fā)送HOLD原語告知發(fā)送方暫停發(fā)送數(shù)原語告知發(fā)送方暫停發(fā)送數(shù)據(jù)。據(jù)。如果收到如果收到HOLD原語,表示發(fā)送方暫停發(fā)送數(shù)據(jù),鏈路層接收狀態(tài)機(jī)進(jìn)入原語,表示發(fā)送方暫停發(fā)送數(shù)據(jù),鏈路層接收狀態(tài)機(jī)進(jìn)入RecvHol

19、d狀態(tài)。狀態(tài)。如果收到如果收到EOP原語,表示數(shù)據(jù)傳輸完畢,進(jìn)入原語,表示數(shù)據(jù)傳輸完畢,進(jìn)入RecvEOF狀態(tài)。狀態(tài)。如果收到如果收到WTRM原語(未收到幀結(jié)束原語),表示數(shù)據(jù)傳輸錯誤,進(jìn)入原語(未收到幀結(jié)束原語),表示數(shù)據(jù)傳輸錯誤,進(jìn)入BadEnd狀態(tài)。狀態(tài)。如果收到如果收到SYNC原語,表示發(fā)送方傳輸層要取消本次數(shù)據(jù)傳輸,進(jìn)入原語,表示發(fā)送方傳輸層要取消本次數(shù)據(jù)傳輸,進(jìn)入IDLE狀狀態(tài)。態(tài)。如果物理層失去連接,進(jìn)入如果物理層失去連接,進(jìn)入NoCommErr狀態(tài)。狀態(tài)。如果接收方傳輸層想要取消本次數(shù)據(jù)傳輸,進(jìn)入如果接收方傳輸層想要取消本次數(shù)據(jù)傳輸,進(jìn)入SyncEscape狀態(tài),之后會狀態(tài),之

20、后會向發(fā)送方發(fā)送向發(fā)送方發(fā)送SYNC原語。原語。qSATA PSATA Protocolrotocol第22頁/共41頁第二十二頁,編輯于星期六:十九點 五十三分。第三部分 傳輸層qSATA PSATA Protocolrotocol第23頁/共41頁第二十三頁,編輯于星期六:十九點 五十三分。傳輸層傳輸層傳輸層在鏈路層和應(yīng)用層之間,負(fù)責(zé)組幀和解幀,主機(jī)和設(shè)備通過傳輸傳輸層在鏈路層和應(yīng)用層之間,負(fù)責(zé)組幀和解幀,主機(jī)和設(shè)備通過傳輸層幀的交互來完成命令交互和數(shù)據(jù)傳遞。層幀的交互來完成命令交互和數(shù)據(jù)傳遞。發(fā)送發(fā)送FIS時,傳輸層完成以下功能:時,傳輸層完成以下功能:u根據(jù)應(yīng)用層的請求組建幀;根據(jù)應(yīng)用

21、層的請求組建幀;u通知鏈路層需要發(fā)送數(shù)據(jù)幀,并把數(shù)據(jù)幀內(nèi)容傳給鏈路層;通知鏈路層需要發(fā)送數(shù)據(jù)幀,并把數(shù)據(jù)幀內(nèi)容傳給鏈路層;u管理數(shù)據(jù)緩存區(qū),給鏈路層發(fā)送流量控制信息;管理數(shù)據(jù)緩存區(qū),給鏈路層發(fā)送流量控制信息;u向應(yīng)用層報告?zhèn)鬏敔顟B(tài);向應(yīng)用層報告?zhèn)鬏敔顟B(tài);接收接收FIS時,傳輸層完成以下功能:時,傳輸層完成以下功能:u從鏈路層接收從鏈路層接收FIS內(nèi)容;內(nèi)容;u根據(jù)根據(jù)FIS類型,把類型,把FIS內(nèi)容放到合適的位置;內(nèi)容放到合適的位置;u向應(yīng)用層報告接收狀態(tài);向應(yīng)用層報告接收狀態(tài);qSATA PSATA Protocolrotocol第24頁/共41頁第二十四頁,編輯于星期六:十九點 五十三分。

22、傳輸層傳輸層FIS是以是以Dword為基本單元,用來在主機(jī)和設(shè)備之間傳遞信息的一種幀結(jié)構(gòu),為基本單元,用來在主機(jī)和設(shè)備之間傳遞信息的一種幀結(jié)構(gòu),SOF和和EOF原語分別作為原語分別作為FIS的開頭和結(jié)尾,傳輸過程中可能在的開頭和結(jié)尾,傳輸過程中可能在FIS中間插入中間插入HOLD原原語來進(jìn)行流量控制。語來進(jìn)行流量控制。第第0個個Dword的第的第0字節(jié)決定了字節(jié)決定了FIS類型。類型。qSATA PSATA Protocolrotocol第25頁/共41頁第二十五頁,編輯于星期六:十九點 五十三分。Set Device Bit FIS用于更新主機(jī)映射寄存器中錯誤寄存器和狀態(tài)寄存器的內(nèi)容。用于更

23、新主機(jī)映射寄存器中錯誤寄存器和狀態(tài)寄存器的內(nèi)容。由設(shè)備應(yīng)用層發(fā)起傳輸該由設(shè)備應(yīng)用層發(fā)起傳輸該FIS的請求。的請求。DMA Activate FIS用于同意主機(jī)向設(shè)備以用于同意主機(jī)向設(shè)備以DMA方式發(fā)送數(shù)據(jù)。方式發(fā)送數(shù)據(jù)。當(dāng)設(shè)備向主機(jī)發(fā)送該數(shù)據(jù)幀的時候,設(shè)備應(yīng)該準(zhǔn)備好接收后續(xù)的當(dāng)設(shè)備向主機(jī)發(fā)送該數(shù)據(jù)幀的時候,設(shè)備應(yīng)該準(zhǔn)備好接收后續(xù)的Data FIS。當(dāng)主機(jī)收到該幀,如果主機(jī)當(dāng)主機(jī)收到該幀,如果主機(jī)DMA控制器已經(jīng)配置好,主機(jī)應(yīng)該開始發(fā)送控制器已經(jīng)配置好,主機(jī)應(yīng)該開始發(fā)送Data FIS。如果主機(jī)。如果主機(jī)DMA控制器未配置好,主機(jī)應(yīng)該配置控制器未配置好,主機(jī)應(yīng)該配置DMA控制器,配置好之后激活控

24、制器,配置好之后激活DMA控制器開始數(shù)據(jù)幀的發(fā)送。控制器開始數(shù)據(jù)幀的發(fā)送。qSATA PSATA Protocolrotocol第26頁/共41頁第二十六頁,編輯于星期六:十九點 五十三分。Register FISHost to Device:用來傳輸主機(jī)映射寄存器的內(nèi)容到設(shè)備,用來傳輸主機(jī)映射寄存器的內(nèi)容到設(shè)備,ATA命令集就是用這個命令集就是用這個FIS發(fā)往設(shè)備的。當(dāng)設(shè)備發(fā)往設(shè)備的。當(dāng)設(shè)備收到一個有效的收到一個有效的Register FIS之后,設(shè)備更新它的命令寄存器和控制寄存器中的內(nèi)容,然后檢查之后,設(shè)備更新它的命令寄存器和控制寄存器中的內(nèi)容,然后檢查FIS中的中的C位,位,如果是如果是

25、1,則執(zhí)行命令寄存器中的命令,如果是,則執(zhí)行命令寄存器中的命令,如果是0,則執(zhí)行控制寄存器中的控制請求。,則執(zhí)行控制寄存器中的控制請求。Device to Host:用來更新主機(jī)映射寄存器的內(nèi)容。當(dāng)設(shè)備執(zhí)行完一個命令,應(yīng)該發(fā)送該幀向主機(jī)報告用來更新主機(jī)映射寄存器的內(nèi)容。當(dāng)設(shè)備執(zhí)行完一個命令,應(yīng)該發(fā)送該幀向主機(jī)報告完成狀態(tài)。完成狀態(tài)。qSATA PSATA Protocolrotocol第27頁/共41頁第二十七頁,編輯于星期六:十九點 五十三分。DMA Setup FIS(Bidirectional)發(fā)送方發(fā)送該幀要求對方按照幀的內(nèi)容配置好發(fā)送方發(fā)送該幀要求對方按照幀的內(nèi)容配置好DMA控制器,

26、發(fā)送此幀是進(jìn)行控制器,發(fā)送此幀是進(jìn)行DMA傳輸?shù)牡谝徊?。該幀中包含了傳輸?shù)牡谝徊健T搸邪薉MA操作地址、操作地址、DMA傳輸數(shù)量和傳輸方向等信息。傳輸數(shù)量和傳輸方向等信息。一般接收方收到該幀之后需要發(fā)送一般接收方收到該幀之后需要發(fā)送DMA Activate FIS來激活來激活DMA傳輸(如果傳輸(如果DMA Setup FIS幀中的幀中的Auto-Activate位被置一,則接收方不需要回復(fù)位被置一,則接收方不需要回復(fù)DMA Activate FIS)。)。由應(yīng)用層發(fā)出該幀的傳輸請求。由應(yīng)用層發(fā)出該幀的傳輸請求。PIO Setup Device to Host該幀由設(shè)備發(fā)送給主機(jī)告訴主機(jī)

27、相關(guān)該幀由設(shè)備發(fā)送給主機(jī)告訴主機(jī)相關(guān)PIO操作信息(比如接下來的數(shù)據(jù)傳輸方操作信息(比如接下來的數(shù)據(jù)傳輸方向、傳輸數(shù)量),還包括了在向、傳輸數(shù)量),還包括了在PIO傳輸前和傳輸后映射寄存器的狀態(tài)信息。傳輸前和傳輸后映射寄存器的狀態(tài)信息。qSATA PSATA Protocolrotocol第28頁/共41頁第二十八頁,編輯于星期六:十九點 五十三分。Data FIS(Bidirectional)該幀用來傳輸數(shù)據(jù),數(shù)據(jù)長度是不定的,數(shù)據(jù)凈荷的長度最多該幀用來傳輸數(shù)據(jù),數(shù)據(jù)長度是不定的,數(shù)據(jù)凈荷的長度最多2048個個Dwords。在發(fā)送數(shù)據(jù)幀之前都需要用在發(fā)送數(shù)據(jù)幀之前都需要用PIO Setup

28、FIS或或DMA Setup FIS等幀建立操作參數(shù)。等幀建立操作參數(shù)。qSATA PSATA Protocolrotocol第29頁/共41頁第二十九頁,編輯于星期六:十九點 五十三分。設(shè)備傳輸層狀態(tài)機(jī)設(shè)備傳輸層狀態(tài)機(jī)qSATA PSATA Protocolrotocol第30頁/共41頁第三十頁,編輯于星期六:十九點 五十三分。設(shè)備傳輸層狀態(tài)機(jī)設(shè)備傳輸層狀態(tài)機(jī)qSATA PSATA Protocolrotocol第31頁/共41頁第三十一頁,編輯于星期六:十九點 五十三分。第四部分 命令層qSATA PSATA Protocolrotocol第32頁/共41頁第三十二頁,編輯于星期六:十九

29、點 五十三分。設(shè)備命令層設(shè)備命令層設(shè)備命令層主要完成對收到的設(shè)備命令層主要完成對收到的ATA/ATAPI命令的解析(命令的解析(Register FIS),并做),并做出相應(yīng)的回應(yīng)。出相應(yīng)的回應(yīng)。主要以下幾類命令:主要以下幾類命令:uNON_Data命令命令uPIO命令命令uDMA命令命令uNCQ命令命令這幾類命令中,每一類命令都有多種命令構(gòu)成。這幾類命令中,每一類命令都有多種命令構(gòu)成。qSATA PSATA Protocolrotocol第33頁/共41頁第三十三頁,編輯于星期六:十九點 五十三分。NON_Data命令命令主機(jī)端通過主機(jī)端通過NON_Data命令命令來查詢設(shè)備的狀態(tài),或者做功

30、能的來查詢設(shè)備的狀態(tài),或者做功能的設(shè)置。設(shè)備應(yīng)用層軟件會解析并執(zhí)設(shè)置。設(shè)備應(yīng)用層軟件會解析并執(zhí)行該命令,執(zhí)行結(jié)果通過設(shè)備發(fā)往行該命令,執(zhí)行結(jié)果通過設(shè)備發(fā)往主機(jī)端的寄存器主機(jī)端的寄存器FIS發(fā)給主機(jī)。發(fā)給主機(jī)。qSATA PSATA Protocolrotocol第34頁/共41頁第三十四頁,編輯于星期六:十九點 五十三分。PIO IN命令命令主機(jī)端通過主機(jī)端通過Register Host to Device FIS發(fā)送命令到設(shè)備端,設(shè)備發(fā)送命令到設(shè)備端,設(shè)備端應(yīng)用層收到該命令之后,準(zhǔn)備好數(shù)端應(yīng)用層收到該命令之后,準(zhǔn)備好數(shù)據(jù),然后控制傳輸層發(fā)送據(jù),然后控制傳輸層發(fā)送PIO SetupFIS來通知主機(jī)準(zhǔn)備接收數(shù)據(jù),之后發(fā)來通知主機(jī)準(zhǔn)備接收數(shù)據(jù),之后發(fā)送送Data FIS,Data FIS長度如果超過長度如果超過2048個個Dwords,需要分開發(fā)送,每個,需要分開發(fā)送,每個Data FIS之前都要發(fā)送一個之前都要發(fā)送一個PIO SetupFIS。如果傳輸過程中出現(xiàn)錯誤,設(shè)如果傳輸過程中出現(xiàn)錯誤,設(shè)備要向主機(jī)發(fā)送備要向主機(jī)發(fā)送RegFIS(FIS內(nèi)容需要內(nèi)容需要根據(jù)根據(jù)ATA8-ACS標(biāo)準(zhǔn))標(biāo)準(zhǔn)) 。qSATA PSATA Protocolrotocol

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論