SATA协议中的OOB信号HarveySATA协议中OOB(outofband)信号主要的功能有:初始化、双方传输速率的协商、从省电状态唤醒、重制。OOB有三个带外信号:COMRESET、COMINIT、COMWAKE,被物理层生成或探测来进行上电或者数据传输的准备工作。OOB信号的码型由突发的数据流和空闲电平组成。一个突发数据流由4个DWORDS(共160bits,每个DWORD包含4个D24.3)或4个ALIGNp码元组成。SATA规范中对于D24.3的描述为“preferred”,对于ALIGNp的描述为“allowed”。(ThesignalpatternsusedduringtheOOBburstsshallbecomprisedofD24.3characters(preferred)orALIGNprimitives(allowed),transmittedattheGen1rate.)一个ALIGNp码元如下,由4个Align{D27.3、D10.2、D10.2、K28.5(sendfirst)}组成:OOB信号中的数据流是以GEN1的速率发送的,根据数据流的组成可知,一个突发数据的持续时间为160UIOOB(106.7ns)。UI(unitinterval、单位时间):为传送1bit的时间,对于GEN1来说,1UI为666.667ps。既然COMRESET、COMINIT、COMWAKE信号中的突发数据流都一样,那么通信双方怎样区分这三个信号呢?一是信号的方向:COMRESET是由host(PCH)发给Device(HDD)的;COMINIT是由Device发给host的;COMWAKE则是可以双方互发的。其次是信号的码型特征:突发数据流和空闲电平的持续时间。COMRESET、COMINIT、COMWAKE三个信号的突发数据流持续时间是相同的,106.7ns;而空闲期间的持续时间则有所不同,COMRESET、COMINIT为480UIOOB(320ns),COMWAKE则是160UIOOB(106.7ns).通过检测三种信号的数据流和空闲时间长度便可判断信号的种类和有效性。下面OOB信号在host与device速度协商过程中的介绍COMRESET:主机会发送不少于6个COMRESET信号,接收端会搜寻4个连续的带有320ns空闲状态的COMRESET信号.接收端对于任何带有小于175ns或大于525ns的空闲间隔的COMRESET都认为其为无效信号。主机发送完最后一个突发数据流后,主机接口应保持空闲状态至少525ns.COMINIT:device收到COMRESET后,会发出不少于6个COMINIT进行握手回应,host对于COMINIT的接收原理同COMRESET.COMWAKE:host接收到COMINIT后,对自己进行校准,并向device发出COMWAKE信号,从机收到COMWAKE信号后,要连续发送不少于6个COMWAKE信号给主机回应,并在接下来的54.6us内,以自身支持的最高速率向host发送ALIGNp数据流;主机接收到COMWAKE信号后,便会以自身的最低速率发送D10.2,若在接收到COMWAKE的873.8us内收到device发送过来的ALIGNp数据流,便会以相同的速率再发送给device;若没有收到ALIGNp,host便会重新初始化。同时在device端,若发送了54.6us的ALIGNp没收到host的回应,便表示host不能以当前速度link,device便会降低速度,重新发送ALIGNp,若以最低速度发送都没收到主机回应,则device便会进入errorstate.接收端对于任何带有小于35ns或大于175ns的空闲间隔COMWAKE都认为其为无效信号。发送方在发送完最后一个ALIGNp数据流后,至少要等待175ns,让接受方有时间正确反应进行探测。在设备端当最后一个COMWAKE信号发送后,device保持等待状态不多于228.3ns,以减小串扰.当device通过ALIGN锁定后,便会发送SYNCp码:{D21.5、D21.5、D21.4K28.3(sendfirst)},表示可以开始正常操作;当主机接收到三个连续的non-ALIGNp码后,communicationlink便会建立,进入正常操作。下图便是link顺序,左边为host,右为device:下面是利用SATA协议分析仪测得的OOB信号数据及时序,其中H1为host(PCH),D1为Device(HDD)下面是SATA协议分析仪的上位机对于OOB信号的握手流程分析:两张图是两种表达方式,其中第一张图中的脉冲表示突发数据流,而非一个高电平,从这张图中我们可以看出OOB信号的侦测与完成。下面是利用示波器在SATA接口TX端测得的COMWAKE信号:下图为Host发送的6个COMWAKE信号:每个COMWAKE信号的突发数据流、空闲电平的持续时间都约为106.7ns下图为COMWAKE信号的突发数据流:由4个ALIGNp码元组成下图为突发数据流中的一个ALIGNp码元:K28.5、D10.2、D10.2、D27.3