sata有点像tcpip,协议设计时分层,分为五层,物理层(Physical Layer)、数据链路层(Link Layer)、传输层(Transport Layer)、命令层(Command Layer)和应用层(Application Layer)。也有人把命令层并入应用层,将整个体系划分为4层。链路层通过维持收发数据的完整性来保证数据传输的可靠性,链路层定义了帧起始原语(SOF)和结束原语(EOF),接收方通过辨别它们来判断一个帧的边界。
在发送数据时链路层做这么几项工作,一是和对方沟通防止触痛,二是链路层给帧信息封装上 SOF 和 EOF原语,以及 CRC校验和数据,三是将待发送的数据进行扰码,扰码完毕后再进行8b/10b 编码,最后交给物理层发送。
从物理层接收数据后的处理过程正好相反。链路层向物理层发送来自传输层的指令信号,告诉物理器件你可以接收啦,然后接收来自物理层的原始字符,对原始字符进行8b/10b解码,然后将数据送入解扰器,将解扰后的数据进行CRC校验,检测当前接收到的数据CRC与计算CRC 是否一致,若正确,则将数据发送到传输层,若不正确,则通过错误机制上报传输层和数据发送方。
大概就是这么个过程
数据传输 则采用的是一下的编码方式
可以参考一下这个PPT
http://cf05.ickimg.com/bbsfiles/201706/4b8ba96b13bb6fa9f6f88abc11d4c1af.rar
發送端產生CRC
接收端校驗CRC
驗證OK就完成傳輸
要完整理解可以參考這本書,這是原文試閱版本
http://cf03.ickimg.com/bbsfiles/201706/3612e01ccabb6bacedf393c81985dd0b.rar
以上