目录
1.简介
2.接口列表
3.时序
3.1 Sclok
3.2 Sload
3.3 Sdataout
3.4 Sdatain
4.应用
1.简介
串行通用输入输出(SGPIO)是一种串行通用IO信号的方法。通常用于发起方(如主机总线适配器)和目标方(如背板)之间的通信。目标方通常将输出的串行信号转换为多个并行信号,并通过GPIO提供输入信号。发起方和目标方都可以由一个或多个芯片组成。如果使用多个芯片,它们应协调驱动总线信号。
SGPIO通常用于SATA或SAS等高速存储接口,它有四组接口信号如下图所示:
图1 SGPIO
2.接口列表
信号 |
T/I |
描述 |
Sclok |
T |
时钟(100k) |
Sload |
T |
当前比特流的结束信号;在下一个时钟开始一个新的比特流 |
Sdataout |
T |
串行数据输出比特流 |
Sdatain |
I |
串行数据输入比特流,并不是所有的设备都支持Sdatain |
注:T表示发起方,I表示目标方。
3.时序
图2 SGPIO时序关系
3.1 Sclok
目标方应使用SClock的下降沿锁定SLoad和SDataOut。发起方应使用SClock的下降沿锁定SDataIn。当不使用SGPIO总线时(例如,在复位期间),发起方应将SClock设置为1(即三态)。当使用SGPIO总线但故意不交换位流时,发起方应将SClock设置为0。这会让目标知道发起程序仍然存在并且尚未删除。
3.2 Sload
SLoad信号指示bit流何时结束并重新启动。SLoad设置为1的时钟周期是位流的最后一个时钟周期。
SLoad设置为1后,发起方应在SLoad的下一个四位位置传输厂商自定义的模式。此后,发起方应将SLoad设置为0,直到它想要重新启动位流。厂商自定义的位用于将独立于驱动器的信息传达给目标方。
通电后,发起方可以使用SClock的第一个上升沿将SLoad设置为1。如果SClock已经为高,并且供应商特定的位0也设置为1,则目标在第一个bit流期间不会与发起方同步。因此,在第一个bit流期间,发起方不应将厂商自定义的位0设置为1。在第四个驱动器(即驱动器3)的第三位位置之前,发起方不得重新启动位流。发起方只应将SLoad设置为1,以便在驱动器的第三位位置期间重新启动位流。需要至少5个连续的0位来区分第一个1值的SLoad和L0到L3可能的1值。为了识别bit流的开始,目标应该检测到5个或更多位的SLoard设置为0,然后检测到它设置为1。
当不使用SGPIO总线时(例如,在复位期间),发起方应将SLoad设置为1(即三态)。 当使用SGPIO总线但不交换bit流时,发起程序应将SLoad设置为0。这会让目标方知道发起程序仍然存在并且尚未删除。
3.3 Sdataout
SDataOut信号携带与目标背板上的磁盘驱动器相关联的输出位。它用于控制LED等指示灯(例如活动、定位和错误指示灯)。
当不使用SGPIO总线时(例如,在复位期间),启动器应将SDataOut设置为1(即三态)。支持相应的驱动器号。
3.4 Sdatain
SDataIn信号携带与目标背板上的磁盘驱动器相关联的输入位。它旨在报告驱动器存在检测等信息(请参阅SATA)。并非所有发起方和目标都支持SDataIn。
4.应用
文章来源:https://www.toymoban.com/news/detail-819738.html
图3 SGPIO应用与SAS和SATA文章来源地址https://www.toymoban.com/news/detail-819738.html
到了这里,关于一文看懂SGPIO协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!