SATA协议简介

1、概述

本文档主要介绍SATA的发展历程以及SATA相关协议,为后续SATA驱动框架分析做基础知识准备。

2、SATA简介

2.1 SATA发展历程
2.1.1 PATA硬盘

PATA硬盘叫做并行ATA硬盘(Parellel ATA)。为了限制其信号放大系统产生的高噪声,常采用高达5V的电压来传输正常信号,但是采用大电压导致生产成本上升,同时也不利于高速传输系统的设计和制造。由于数据是并列传输所以它的传输速率受到并行限制,故总体传输率最快能达到133MB/s。

2.1.2 SATA硬盘

SATA硬盘,即SATA(Serial ATA)又被称为串口硬盘。SATA采用差分信号系统,该系统能有效将噪声滤除,因此SATA就不需要使用高电压传输去抑制噪声,只需要使用低电压操作即可。
在数据传输这一方面,SATA的速度比PATA更加快捷,并支持热插拔。另一方面,SATA总线使用了嵌入式时钟频率信号,具备了比以往更强的纠错能力,能对传输指令(不仅是数据)进行检查,如果发现错误会自动矫正,提高了数据传输的可靠性。不过,SATA和PATA最明显的分别,是用上了较细的排线,有利机箱内部的空气流通,某程度上增加了整个平台的稳定性。
目前SATA接口主要有SATA1.0、SATA2.0、SATA3.0这三个版本,三种主流规范的带宽与传输速度的对比如图 2.1所示。

图 2.1 SATA传输速度对比

2.1.3 拓扑结构

SATA是用来取代大容量存储设备并行ATA链接方式的高速串行链接方式。
对于并行ATA设备,多个设备通过主/从(master/slave)通信技术链接到并行ATA总线上,其链接方式如图 2.2所示。

图 2.2 PATA拓扑结构

而SATA的拓扑结构是点对点式的,主机可以通过多个链接支持多个设备,每个设备百分百占用总线带宽,并且一个设备的链接出错不会影响其他设备的链接,其链接方式如图 2.3所示。

图 2.3 SATA拓扑结构

2.2 SATA协议
2.2.1 SATA接口结构

SATA接口使用4根电缆传输数据,其结构图如图 2.4所示。Tx+、Tx-表示输出差分数据线,对应的,Rx+、Rx-表示输入差分数据线。

图 2.4 SATA接口结构图

2.2.2 协议模型

SATA接口协议借鉴TCP/IP模型,将SATA接口划分为四个层次来实现,包括物理层、链路层、传输层、应用层,其体系结构如图 2.5所示。

图 2.5 SATA体系结构

2.2.3 物理层分析
物理层采用全双工串行传输方式,主要功能是进行信号的串并及并串转化。物理层接收来自链路层的数据信息,将接收到的并行的数字逻辑信号转换为串行的差分物理信号,发送到主机端。相应的物理层能将来自主机端的串行差分物理信号转化为并行的逻辑信号传送到链路层。
为了提高 SATA 接口的扩展能力和响应能力, SATA 协议还引进了带外信号(Out Of Band,OOB)来协助物理层进行上电初始化以及复位操作。2.2.4 链路层分析
链路层的主要功能是通过控制原语的传递来控制信息帧的整个传输过程,保证帧信息能够正确的发送与接收并能进行流量的控制,防止数据发送过快或接受过多。
1)接收来自物理层的信息,对信息帧进行编码、解码、校验和扰码,然后给传输层发送 SOF 原语,通知传输层接收数据,当数据发送完成后,给传输层发送EOF原语,通知传输层该帧传输完成。
2)接收来自传输层的信息,给接收的信息头封装上SOF原语和EOF原语,然后对信息帧进行编码、解码、校验、扰码,传送给物理层。
链路层的控制原语是用来控制和维持串行链路数据传输状态。它们是以32位数据为单位的信息包,控制原语一共有18种,它们都有各自的功能,如:ALIGN原语用来做物理层中数据对齐;SOF、EOF原语用来做数据传输时信息帧的边界定义等。2.2.5 传输层分析
传输层主要负责FIS帧信息结构的封装与解封。
1)传输层接收到来自应用层的数据传输操作请求后,将相关寄存器中信息按SATA协议规定的标准格式封装为FIS传递给链路层。当链路层正确接收完成后,能给传输层反馈成功完成本次传输的信号。
2)传输层接收到来自链路层的SOF信号后,能接收FIS信息帧,并能判断该FIS的类型,根据FIS类型,判断该FIS是否是有效的FIS。如果是则将该FIS中的命令和数据等按照SATA协议规定进行解析,映射到各个寄存器中,然后能通知应用层接收相应寄存器的值。如果该FIS无效,则丢弃。2.2.6 应用层分析
应用层能够进行接受来自主机端的命令,根据命令的要求将自身的信息发送给主机端,或是接收来自主机端的以PIO或DMA方式传输的数据,同时写入闪存中,也能从闪存中以PIO或DMA的方式读出数据,传送给主机端。
在应用层采用两个FIFO对数据进行缓冲,一个为读FIFO,一个为写FIFO。应用层能接收来自传输层的数据帧送入写FIFO中或将来自总线的数据保存在读FIFO中,然后通知传输层构造数据帧。

3、参考资料

1、《Serial ATA Revision 3.0》

sata接口 图解 定义_SATA协议简介相关推荐

  1. sata接口 图解 定义_硬盘有几个接口 硬盘不同接口介绍【详解】

    硬盘究竟有多少个接口?目前常用的接口已经有4种之多!而且有的接口还存在不同版本,这就造成一个问题,当你毫无准备买了一块硬盘回来后发现,要么是接口不对,要么是性能达不到预期.今天小编就给大家梳理一下,这 ...

  2. sata接口 图解 定义_msata接口怎么用 msata接口使用方法【详解】

    如今电脑有台式的既有笔记本式,而笔记本式也正被我们广泛使用.但笔记本似乎都有"通病",时间用的较为长,运行速度将减慢,而对于那些与电脑知识"分道扬镳"的消费者们 ...

  3. 天籁obd接口针脚定义_OBD协议介绍

    作者介绍:张大侠,一汽大众资深攻城狮.主要从事汽车诊断刷新方面的工作,在UDS诊断.车载以太网等方面都有独到的见解,对这块感兴趣的朋友,请关注:汽车ECU网络诊断技术. 为了监控排放相关系统,比如发动 ...

  4. 硬件接口引脚定义(持续更新)

    英文各类硬件接口定义网站:https://pinouts.ru/conn/ 1.SATA接口引脚定义 2.mSATA接口引脚定义 3.各类USB接口引脚定义 引脚 功能 接线颜色 备注 1 VCC 红 ...

  5. 【协议】NVMe over RoCE 初探 SATA接口(AHCI协议)、PCIe 接口(NVMe 协议)

    简略 详细 RDMA RDMA网络配置 硬/软件信息 RDMA驱动安装 验证RDMA连通性 NVMe Initiator 和 target 配置 target 端配置 initiator 端配置 配置 ...

  6. SATA M.2 NGFF PCIE AHCI NVME SSD固态硬盘的接口、总线和协议区分

    总线.协议 说接口之前先说总线,民用产品的硬盘总线多为 SATA 和 PCIe. SATA 总线只能使用 AHCI 协议.NVME 对比 AHCI 的优势在于 低延时.低功耗,更适合固态硬盘. PCI ...

  7. SPI (串行外围设备接口) 协议简介

    1.SPI协议简介 1.1 SPI协议概括 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口.是Motorola首先在其MC68HCXX系列处理 ...

  8. 网络术语,接口和协议简介

    0x00 介绍 对管理服务器的任何人来说,对网络的基本了解都很重要.它不仅对于使您的服务在线并顺利运行至关重要,而且还为您提供诊断问题的洞察力. 本文档将提供一些常见网络概念的基本概述.我们将讨论基本 ...

  9. nvme协议 sata接口_nvme和sata协议游戏测评

    NVMe协议与SATA的异同 PCIe实际上是一个通道协议,它实际上是主板上的PCIe接口.这些信道协议属于总线协议,可以直接连接到CPU,因此几乎没有延迟,成为NVMe标准的完美伴侣.然而,在AHC ...

最新文章

  1. 【CentOS8】安装 mysql 5.7
  2. 虚虚实实,亦假亦真的 ValueTuple,绝对能眩晕你
  3. sqlserver 2005 数据库的差异备份与还原
  4. leetcode 160. 相交链表(双指针)
  5. 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
  6. Bash脚本删除相对路径下小于指定大小的文件
  7. Sharepoint 2007 用户信息管理总结(1) - 用户组和用户
  8. 谈2010年WEBGAME的发展趋势
  9. 一步一步搭建11gR2 rac+dg之配置单实例的DG(八)
  10. 计量笔记(二) | OLS估计量性质
  11. Unexpected console statement
  12. 单例模式-八种方法代码详解
  13. Oracle 数据库认证考试
  14. Pomelo MMORPG
  15. Tensorflow 2.x(keras)源码详解之第四章:DatasetTFRecord
  16. 【imx6ul】imx6ul上电boot rom启动过程
  17. HTML+CSS+移动端前端
  18. 电脑访问打印机连接的共享文件夹
  19. cnpm不是内部命令的解决方案:配置环境变量【推荐】
  20. netcat 下载地址

热门文章

  1. packer build 报错 无任何输出 一直报“skipping line: 1 skipping line: 2 skipping line: 3.....”
  2. 带有emplace开头的STL为何优于其它插入函数
  3. c++11或c++14或c++17参数包的使用
  4. abaqus在岩土工程中的应用_什么是岩土锚固,看看在深基坑支护中如何应用
  5. python如何画图设置坐标轴_python matplotlib坐标轴设置的方法
  6. win10更新不动_win10沙盒功能和其他同类程序的区别
  7. python读取数据库数据类型_Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】...
  8. 怎么安装php模板,PHPWind八风格模板的安装及制作教程
  9. php什么是静态类,三.PHP静态类
  10. mysqldump 忽略视图_Mysql备份迁移——Mysqldump(.NET调用Mysqldump.exe方式)——(解决视图嵌视图报错)...