USER GUIDE / PERIPHERALS / SSI SLV / DATA FORMAT

数据格式

SSI_SLV 模块支持 Motorola SPI 协议,这是一种全双工串行通信协议;串行时钟的极性和相位分别可配置成两种不同的模式,组起来可以配置四种时钟模式。

该模块为了和外设进行数据交换,根据外设工作需求,其接受的串行同步时钟的极性和相位可以进行配置,时钟极性(POL)对传输协议没有重大影响,如果 POL=0,串行时钟的空闲状态为低电平,如果 POL=1,串行时钟的空闲状态为高电平。时钟相位(PHA)对数据传输有较大影响,如果 PHA=0,在串行时钟的第一个跳边沿(上升或下降沿)数据被采样,如果 PHA=1,在串行时钟的第二个跳变沿(上升或下降)数据被采样。

SPI 协议细节

单笔数据帧传输

当 PHA 配置为 0 时,数据传输从从机选择信号的下降沿开始,第一 bit 数据在串行时钟的第一个变沿被采样,因此在上一个跳变沿数据就需要被驱动到 RXD 和 TXD 上,下图为 PHA=1 的情况下,POL=0 或 POL=1 时的时序图。

Standard SPI Single Transfer Format (SCPH= 0)
图 1 Standard SPI Single Transfer Format (SCPH= 0)

当 PHA 被配置为 1 时,在从机选择信号有效后,主机和从机都在串行时钟的第一个跳变沿发送数据,第一 bit 数据在下一个跳变沿被采样,在连续的数据帧传输期间,从机选择信号需要一直保持低电平有效,直到最后一帧传输完成。

Standard SPI Single Transfer Format (SCPH= 1)
图 2 Standard SPI Single Transfer Format (SCPH= 1)

背靠背数据帧传输

当 PHA=0 时,连传输需要在传输期间,从机选择信号一直保持为使能状态,在帧传输的间隔期间可以动态调整间隔时间,间隔期间内使能信号翻转,随后在下一帧开始传输前再次使能。时序图如下所示:

Standard SPI Continus Transfer Format (SCPH=0)
图 3 Standard SPI Continus Transfer Format (SCPH=0)

当 PHA=1 时,连续帧的传输形式与单帧传输时相同,下一帧的 MSB 紧跟在当前帧的LSB 之后,从机选择信号在传输期间一直保持在使能状态。时序图如下所示:

Standard SPI Continus Transfer Format (SCPH=1)
图 4 Standard SPI Continus Transfer Format (SCPH=1)

下图显示了数据传输期间发送/接受 FIFO 的工作状态,需要发送的数据通过 APB 总线写入到发送 FIFO 中,依次通过 TXD 发送出去,接收到的数据进入到接收 FIFO 中,通过 APB 总线读取到 CPU。

FIFO Status
图 5 FIFO Status