本文讲述一下sas协议中,phy layer关于OOB以及速度协商的部分,主要讲述的是sas-sas 场景;
sas-sata场景,sata-sata场景以后再做专题讲述;
如下两个图,是本文要重点讲述的图;
我画了一个phyA和phyB的链接图;
sas是一个全双工通信,每个phy都有一个tx差分对和rx差分对;
phy reset的几个阶段如下:
step#1
1. phyA上电以后,开始有节奏的发送OOB信号COMINIT, 每发完一个OOB,等待500ms(hotplug timeout timer),即phy希望在这个500ms内能感知到对端的存在; 同理,phyB一样;
2. 当phyA/phyB连接在一起之后,各自都能收到对方的OOB
3. 一旦一个phy已经发送了COMINIT,并且也受到了对端的COMINIT,那么它会立即发送一个COMSAS信号;对方收到了COMSAS之后,也会回一个COMSAS;phyA既发了COMSAS,又收到了COMSAS;则认为握手成功;开始进入速度协商阶段;
==>以上阶段,拟人化比喻就是:
两个人各自在喊话
A,我在这里,你在哪里
B,我再这里,你在哪里
电话线通了之后
A,我在这里,你在哪里
B,我在这里,我收到了你的话,送给你一个COMSAS作为信物
A,好的,我收到了你的COMSAS,来而不往非礼也,返一个COMSAS给你
AB:好兄弟一起走!!
4. 速度协商
完成OOB握手的两个phy开始进行友好又和谐的速度协商;
默契阶段1:SNW1 --1.5G
两个phy的默契是:在SNWT时间段内做相应的Action.
比如
a. 每个phy都先idle一段时间RCDT,这段时间是用来让发送器改变节奏的;即准备好节奏,在RCDT结束的时候,均以1.5G的速率向对端发送原语ALIGN0, 对端的接收器开始接收,直到dword对齐,返回ALIGN1,用这个原语告知对端,接收成功;当双方都接收到了对端的ALIGN1的时候,才会认为,这个阶段是成功的;
不想写了。。。
有时间再写