SATA协议实用教案_第1页
SATA协议实用教案_第2页
SATA协议实用教案_第3页
SATA协议实用教案_第4页
SATA协议实用教案_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1SATA协议协议(xiy)第一页,共42页。第一(dy)部分 物理层qSATA PSATA Protocolrotocol第1页/共41页第二页,共42页。qSATA PSATA Protocolrotocol第2页/共41页第三页,共42页。物理层的功能物理层的功能(gngnng) 以以1.5Gbps、3.0Gbps或者或者6Gbps的速率传输的速率传输DNRZ串行数据流;串行数据流;发送端和接收端提供发送端和接收端提供100欧姆的终端匹配电阻;欧姆的终端匹配电阻;将链路层接收的并行数据进行串行化之后发送;将链路层接收的并行数据进行串行化之后发送;接收高速串行数据转换成并行数据,包括

2、从串行数据流中进行数据提取和接收高速串行数据转换成并行数据,包括从串行数据流中进行数据提取和时钟恢复;时钟恢复;检测检测ALIGN原语,进行数据对齐;原语,进行数据对齐;带外信号的接收和发送;带外信号的接收和发送;使用带外信号进行使用带外信号进行SATA接口初始化和主从之间速率协商;接口初始化和主从之间速率协商;向链路层发连接向链路层发连接(linji)状态(已连接状态(已连接(linji)、未连接、未连接(linji)、已连接、已连接(linji)但是速率协商失败);但是速率协商失败);qSATA PSATA Protocolrotocol第3页/共41页第四页,共42页。物理层的主要物理层

3、的主要(zhyo)状态状态l Resetl COMINITl AwaitCOMWAKEl AwaitNoCOMWAKEl Calibratel COMWAKEl SendAlignl Readyl Parity、Slubmberl Reduce SpeedqSATA PSATA Protocolrotocol第4页/共41页第五页,共42页。物理层上电初始化物理层上电初始化qSATA PSATA Protocolrotocol第5页/共41页第六页,共42页。电源电源(dinyun)管理管理Partial模式模式(msh): 物理层部分电路进入休眠模式物理层部分电路进入休眠模式(msh),能够

4、在,能够在10us之内被唤醒。之内被唤醒。qSATA PSATA ProtocolrotocolSlumber模式:模式: 与与Partial模式相比可以关闭更多的电路,能够在模式相比可以关闭更多的电路,能够在10ms之内被唤之内被唤醒。醒。第6页/共41页第七页,共42页。第二(d r)部分 链路层qSATA PSATA Protocolrotocol第7页/共41页第八页,共42页。链路层的功能链路层的功能(gngnng)与对方与对方(dufng)的链路层相互协商传送帧和原语;的链路层相互协商传送帧和原语;接收传输层传送的数据(接收传输层传送的数据(Dword),计算数据的),计算数据的C

5、RC校验值,给数据加上校验值,给数据加上帧头、帧尾和帧头、帧尾和CRC校验信息;校验信息;接收对方接收对方(dufng)链路层的数据信息,进行链路层的数据信息,进行CRC校验,移除数据中的帧头、校验,移除数据中的帧头、帧尾和帧尾和CRC校验信息;校验信息;帧流量控制;帧流量控制;向传输层报告传输状态;向传输层报告传输状态;8b/10b编解码;编解码;对数据加扰、解扰;对数据加扰、解扰;qSATA PSATA Protocolrotocol第8页/共41页第九页,共42页。链路层数据结构链路层数据结构(sh j ji u)qSATA PSATA Protocolrotocol第9页/共41页第十

6、页,共42页。链路层原语链路层原语 ALIGNp物理层依靠物理层依靠ALIGN原语进行数据对齐,成对发送原语进行数据对齐,成对发送CONTp避免连续发送长串重复原语DMATp用于通知发送方提前终止DMA数据发送EOFp表示数据帧的结束HOLDp发送方发送HOLD表示数据未准备好,接收方发送HOLD表示接受FIFO将满HOLDAp用于响应HOLD原语PMACKp用于响应PMREQ_Pp和PMREQ_Sp,接收方收到这个原语之后进入电源管理状态PMNAKp拒绝电源管理模式原语PMREQ_Pp请求进入Parity模式PMREQ_Sp请求进入Slumber模式R_ERRp接收错误R_IPp表示正常接收

7、数据R_OKp接收数据正确R_RDYp用于回应X_RDY原语,表示接收端准备就绪SOFp表示数据帧的开始SYNCp同步原语WTRMp数据帧发送完成之后,发送方发送这个原语,等待接收方回应接收状态X_RDYp发送数据就绪qSATA PSATA Protocolrotocol第10页/共41页第十一页,共42页。DMAT原语原语功能:通知发送方停止数据传送。功能:通知发送方停止数据传送。主机主机(zhj)到设备的数据传输,主机到设备的数据传输,主机(zhj)收到收到DMAT原语之后,会停止数原语之后,会停止数据发送,开始发送据发送,开始发送CRC和和EOF原语,关闭原语,关闭DMA,保存当前,保存

8、当前DMA的状态。设备之后可以的状态。设备之后可以发送发送DMA Active FIS重新激活主机重新激活主机(zhj)DMA,继续数据传送。,继续数据传送。设备到主机设备到主机(zhj)的数据传输,设备收到的数据传输,设备收到DMAT原语之后,设备会永久终止原语之后,设备会永久终止本次数据传输。本次数据传输。qSATA PSATA Protocolrotocol第11页/共41页第十二页,共42页。CONT原语原语 功能:避免发送长串重复原语,减少电磁干扰。功能:避免发送长串重复原语,减少电磁干扰。接收方收到接收方收到CONT原语之后会认为当前发送方一直发送原语之后会认为当前发送方一直发送C

9、ONT之前的最之前的最后一个原语,直到收到另外后一个原语,直到收到另外(ln wi)一个原语。一个原语。设备和主机必须支持接收和处理设备和主机必须支持接收和处理CONT原语的功能,可以选择是否支持原语的功能,可以选择是否支持发送发送CONT原语的功能。原语的功能。CONT原语之后的数据要加扰。原语之后的数据要加扰。qSATA PSATA Protocolrotocol第12页/共41页第十三页,共42页。流量流量(liling)控制控制接收接收(jishu)方为了避免接收方为了避免接收(jishu)数据缓冲区溢出,使用数据缓冲区溢出,使用HOLD原语进行流量控制。原语进行流量控制。在接收在接收

10、(jishu)数据缓冲区将要满的时候,接收数据缓冲区将要满的时候,接收(jishu)方会发送方会发送HOLD原语通知发送方暂停数据发送,由于原语通知发送方暂停数据发送,由于HOLD原语传到发送方会有一定的延时,原语传到发送方会有一定的延时,在延时期间发送方会继续发送数据,因此接收在延时期间发送方会继续发送数据,因此接收(jishu)缓冲区必须有一定的容量缓冲区必须有一定的容量来继续接收来继续接收(jishu)接下来接下来HOLDA之前的数据。之前的数据。qSATA PSATA Protocolrotocol第13页/共41页第十四页,共42页。链路层状态链路层状态(zhungti)链路层状态机

11、是链路层的控制链路层状态机是链路层的控制(kngzh)模块,是链路层的核心,主要模块,是链路层的核心,主要包括以下四个部分:包括以下四个部分:空闲状态机空闲状态机发送状态机发送状态机接收状态机接收状态机电源管理状态机电源管理状态机qSATA PSATA Protocolrotocol第14页/共41页第十五页,共42页。空闲空闲(kngxin)状态机主要完成复位操作和建立连接,主要状态机主要完成复位操作和建立连接,主要包括以下包括以下6个状态:个状态:L_IDLEL_SyncEscapeL_NoCommErrL_NoCommL_SendAlignL_RESET空闲空闲(kngxin)状态机状态

12、机qSATA PSATA Protocolrotocol第15页/共41页第十六页,共42页。L_IDLE符合以下条件保持空闲状态:符合以下条件保持空闲状态: 物理层连接物理层连接(linji)正常;正常; 传输层没有传送数据请求;传输层没有传送数据请求; 没有接收到没有接收到X_RDY、PMREQ_P和和PMREQ_S原语;原语;当收到传输层的数据传输请求,链路层进入数据传输状态。当收到传输层的数据传输请求,链路层进入数据传输状态。当接收当接收(jishu)到到X_RDY原语,链路层进入数据接收原语,链路层进入数据接收(jishu)状态。状态。当收到传输层进入电源管理模式的请求或者收到当收到

13、传输层进入电源管理模式的请求或者收到PMREQ_P或或PMREQ_S原语,链路层进入电源管理状态。原语,链路层进入电源管理状态。当物理层失去连接,进入当物理层失去连接,进入L_NoCommErr状态。状态。qSATA PSATA Protocolrotocol第16页/共41页第十七页,共42页。L_NoCommErr、L_NoComm和和L_SendAlign状态状态(zhungti)当检测到物理层失去连接进入当检测到物理层失去连接进入L_NoCommErr状态,然后进入状态,然后进入L_NoComm状态,需要向传输层报告物理层失去连接的状态。状态,需要向传输层报告物理层失去连接的状态。直到

14、检测到物理层连接正常之后,链路层进入直到检测到物理层连接正常之后,链路层进入L_SendAlign状态,状态,否则保持否则保持(boch)L_NoComm状态。状态。在在SendAlign状态,链路层发送状态,链路层发送ALIGN原语,之后如果物理层报原语,之后如果物理层报告连接正常,进入告连接正常,进入L_IDLE状态,否则进入状态,否则进入L_NoComm状态。状态。qSATA PSATA Protocolrotocol第17页/共41页第十八页,共42页。发送发送(f sn)状态机状态机主要响应主要响应 传输层发送请求传输层发送请求(qngqi),启动数据发送,通过各类原语的发送和,启动

15、数据发送,通过各类原语的发送和接收实现与主机之间的传输通道的建立和流量控制。接收实现与主机之间的传输通道的建立和流量控制。qSATA PSATA Protocolrotocol第18页/共41页第十九页,共42页。L_SendData状态状态(zhungti)传输数据状态表示正在发送数据。传输数据状态表示正在发送数据。如果更多的数据需要继续发送但是传输层还未准备如果更多的数据需要继续发送但是传输层还未准备(zhnbi)好,链好,链路层进入路层进入SendHold状态。状态。如果更多的数据需要发送但是接收端收到了如果更多的数据需要发送但是接收端收到了HOLD原语,发送方链路原语,发送方链路层进入

16、层进入RecvHOLD状态(状态(SendHOLDA)。)。如果数据发送完毕或者接收到如果数据发送完毕或者接收到DMAT原语,链路层进入原语,链路层进入SendCRC状状态发送态发送CRC。如果收到如果收到SYNC原语,表示接收方传输层想要取消这次数据传输,发原语,表示接收方传输层想要取消这次数据传输,发送方链路层进入送方链路层进入IDLE状态。状态。如果发送方传输层想要取消本次数据传输,链路层进入如果发送方传输层想要取消本次数据传输,链路层进入SyncEscape状态。状态。如果检测到物理层失去连接,链路层进入如果检测到物理层失去连接,链路层进入NoCommErr状态。状态。qSATA PS

17、ATA Protocolrotocol第19页/共41页第二十页,共42页。接收接收(jishu)状态机状态机接收数据的时候,接收状态机控制接收数据的时候,接收状态机控制(kngzh)原语的接收和响应,建立数据传输通道,原语的接收和响应,建立数据传输通道,接收数据并校验其正确性,向发送方返回接收状态。接收数据并校验其正确性,向发送方返回接收状态。qSATA PSATA Protocolrotocol第20页/共41页第二十一页,共42页。L_SyncEscape当链路层在数据发送或者数据接收状态的时候,如果传输层需当链路层在数据发送或者数据接收状态的时候,如果传输层需要要(xyo)取消当前数据

18、接收或发送,链路层会进入取消当前数据接收或发送,链路层会进入L_SyncEscape状态。状态。当前状态链路层发送当前状态链路层发送SYNC原语。原语。当前状态接收到当前状态接收到SYNC原语或者原语或者X_RDY原语之后跳到原语之后跳到L_IDLE。当前状态如果物理层失去连接,进入当前状态如果物理层失去连接,进入L_NoCommErr状态。状态。qSATA PSATA Protocolrotocol第21页/共41页第二十二页,共42页。L_RcvData状态状态(zhungti)接收数据状态,正常回应接收数据状态,正常回应R_IP。如果如果FIFO空间不足,进入空间不足,进入Hold状态,

19、发送状态,发送(f sn)HOLD原语告知发送原语告知发送(f sn)方暂停发送方暂停发送(f sn)数据。数据。如果收到如果收到HOLD原语,表示发送原语,表示发送(f sn)方暂停发送方暂停发送(f sn)数据,链数据,链路层接收状态机进入路层接收状态机进入RecvHold状态。状态。如果收到如果收到EOP原语,表示数据传输完毕,进入原语,表示数据传输完毕,进入RecvEOF状态。状态。如果收到如果收到WTRM原语(未收到帧结束原语),表示数据传输错误,进入原语(未收到帧结束原语),表示数据传输错误,进入BadEnd状态。状态。如果收到如果收到SYNC原语,表示发送原语,表示发送(f sn

20、)方传输层要取消本次数据传输,方传输层要取消本次数据传输,进入进入IDLE状态。状态。如果物理层失去连接,进入如果物理层失去连接,进入NoCommErr状态。状态。如果接收方传输层想要取消本次数据传输,进入如果接收方传输层想要取消本次数据传输,进入SyncEscape状态,之后状态,之后会向发送会向发送(f sn)方发送方发送(f sn)SYNC原语。原语。qSATA PSATA Protocolrotocol第22页/共41页第二十三页,共42页。第三(d sn)部分 传输层qSATA PSATA Protocolrotocol第23页/共41页第二十四页,共42页。传输层传输层传输层在链路

21、层和应用层之间,负责组帧和解帧,主机和设备通过传输层帧的传输层在链路层和应用层之间,负责组帧和解帧,主机和设备通过传输层帧的交互交互(jioh)来完成命令交互来完成命令交互(jioh)和数据传递。和数据传递。发送发送FIS时,传输层完成以下功能:时,传输层完成以下功能:根据应用层的请求组建帧;根据应用层的请求组建帧;通知链路层需要发送数据帧,并把数据帧内容传给链路层;通知链路层需要发送数据帧,并把数据帧内容传给链路层;管理数据缓存区,给链路层发送流量控制信息;管理数据缓存区,给链路层发送流量控制信息;向应用层报告传输状态;向应用层报告传输状态;接收接收FIS时,传输层完成以下功能:时,传输层完

22、成以下功能:从链路层接收从链路层接收FIS内容;内容;根据根据FIS类型类型(lixng),把,把FIS内容放到合适的位置;内容放到合适的位置;向应用层报告接收状态;向应用层报告接收状态;qSATA PSATA Protocolrotocol第24页/共41页第二十五页,共42页。传输层传输层FIS是以是以Dword为基本单元,用来在主机和设备之间传递信息的一种为基本单元,用来在主机和设备之间传递信息的一种帧结构,帧结构,SOF和和EOF原语分别作为原语分别作为FIS的开头和结尾,传输过程中可能的开头和结尾,传输过程中可能(knng)在在FIS中间插入中间插入HOLD原语来进行流量控制。原语来

23、进行流量控制。第第0个个Dword的第的第0字节字节(z ji)决定了决定了FIS类型。类型。qSATA PSATA Protocolrotocol第25页/共41页第二十六页,共42页。Set Device Bit FIS用于更新主机映射用于更新主机映射(yngsh)寄存器中错误寄存器和状态寄存器的内寄存器中错误寄存器和状态寄存器的内容。容。由设备应用层发起传输该由设备应用层发起传输该FIS的请求。的请求。DMA Activate FIS用于同意主机用于同意主机(zhj)向设备以向设备以DMA方式发送数据。方式发送数据。当设备向主机当设备向主机(zhj)发送该数据帧的时候,设备应该准备好接收

24、后续发送该数据帧的时候,设备应该准备好接收后续的的Data FIS。当主机当主机(zhj)收到该帧,如果主机收到该帧,如果主机(zhj)DMA控制器已经配置好,控制器已经配置好,主机主机(zhj)应该开始发送应该开始发送Data FIS。如果主机。如果主机(zhj)DMA控制器未配置好,主控制器未配置好,主机机(zhj)应该配置应该配置DMA控制器,配置好之后激活控制器,配置好之后激活DMA控制器开始数据帧的发送。控制器开始数据帧的发送。qSATA PSATA Protocolrotocol第26页/共41页第二十七页,共42页。Register FISHost to Device:用来传输主

25、机映射寄存器的内容到设备,用来传输主机映射寄存器的内容到设备,ATA命令集就是用这个命令集就是用这个FIS发往设备的。当设备收到一个有效的发往设备的。当设备收到一个有效的Register FIS之后,设备更新它的命令寄存器和控制寄存器中的内容,然后检查之后,设备更新它的命令寄存器和控制寄存器中的内容,然后检查FIS中的中的C位,如果是位,如果是1,则执行命令寄存器中的命令,如果是,则执行命令寄存器中的命令,如果是0,则执行控制寄存器中的控制请求。,则执行控制寄存器中的控制请求。Device to Host:用来更新主机映射寄存器的内容。当设备执行完一个命令,应该用来更新主机映射寄存器的内容。当

26、设备执行完一个命令,应该(ynggi)发送该帧向主机报告完成状态。发送该帧向主机报告完成状态。qSATA PSATA Protocolrotocol第27页/共41页第二十八页,共42页。DMA Setup FIS(Bidirectional)发送方发送该帧要求对方按照帧的内容配置发送方发送该帧要求对方按照帧的内容配置(pizh)好好DMA控制器,发送此帧是进行控制器,发送此帧是进行DMA传输的第一步。该帧中包含了传输的第一步。该帧中包含了DMA操作地址、操作地址、DMA传输数量和传输方向等信息。一般接收方传输数量和传输方向等信息。一般接收方收到该帧之后需要发送收到该帧之后需要发送DMA Ac

27、tivate FIS来激活来激活DMA传输(如果传输(如果DMA Setup FIS帧中的帧中的Auto-Activate位被置一,则接收方不需要回复位被置一,则接收方不需要回复DMA Activate FIS)。)。由应用层发出该帧的传输请求。由应用层发出该帧的传输请求。PIO Setup Device to Host该帧由设备发送给主机告诉主机相关该帧由设备发送给主机告诉主机相关PIO操作信息(比如接下来的数据传操作信息(比如接下来的数据传输方向输方向(fngxing)、传输数量),还包括了在、传输数量),还包括了在PIO传输前和传输后映射寄存器的状态传输前和传输后映射寄存器的状态信息。信

28、息。qSATA PSATA Protocolrotocol第28页/共41页第二十九页,共42页。Data FIS(Bidirectional)该帧用来传输数据,数据长度是不定该帧用来传输数据,数据长度是不定(bdng)的,数据净荷的长度最多的,数据净荷的长度最多2048个个Dwords。在发送数据帧之前都需要用在发送数据帧之前都需要用PIO Setup FIS或或DMA Setup FIS等帧建立操作参等帧建立操作参数。数。qSATA PSATA Protocolrotocol第29页/共41页第三十页,共42页。设备设备(shbi)传输层状态机传输层状态机qSATA PSATA Proto

29、colrotocol第30页/共41页第三十一页,共42页。设备设备(shbi)传输层状态机传输层状态机qSATA PSATA Protocolrotocol第31页/共41页第三十二页,共42页。第四部分(b fen) 命令层qSATA PSATA Protocolrotocol第32页/共41页第三十三页,共42页。设备设备(shbi)命令层命令层设备命令层主要完成对收到的设备命令层主要完成对收到的ATA/ATAPI命令的解析命令的解析(ji x)(Register FIS),并做),并做出相应的回应。出相应的回应。主要以下几类命令:主要以下几类命令:NON_Data命令命令PIO命令命令

30、DMA命令命令NCQ命令命令这几类命令中,每一类命令都有多种命令构成。这几类命令中,每一类命令都有多种命令构成。qSATA PSATA Protocolrotocol第33页/共41页第三十四页,共42页。NON_Data命令命令(mng lng)主机端通过主机端通过NON_Data命令命令来查询设备的状态,或者做功能的来查询设备的状态,或者做功能的设置。设备应用层软件会解析并执设置。设备应用层软件会解析并执行该命令,执行结果通过设备发往行该命令,执行结果通过设备发往主机端的主机端的(dund)寄存器寄存器FIS发给主机。发给主机。qSATA PSATA Protocolrotocol第34页

31、/共41页第三十五页,共42页。PIO IN命令命令(mng lng)主机主机(zhj)端通过端通过Register Host to Device FIS发送命令到设备端,设备发送命令到设备端,设备端应用层收到该命令之后,准备好数端应用层收到该命令之后,准备好数据,然后控制传输层发送据,然后控制传输层发送PIO SetupFIS来通知主机来通知主机(zhj)准备接收数据,之后发准备接收数据,之后发送送Data FIS,Data FIS长度如果超过长度如果超过2048个个Dwords,需要分开发送,每个,需要分开发送,每个Data FIS之前都要发送一个之前都要发送一个PIO SetupFIS。如果传输过程中出现错误,设如果传输过程中出现错误,设备要向主机备要向主机(zhj)发送发送RegFIS(FIS内容需要内容需要根据根据ATA8-ACS标准)标准) 。qSATA PSATA Protoc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论