SPI
SPI(Serial Peripheral Interface,串行外设接口)总线系统是一种同步串行外设接口,它可以使 CPU 与各种外围设备以串行方式进行通信以交换信息。一般主控 SoC 作 为SPI 的“主”,而外设作为 SPI 的“从”。SPI 接口一般使用 4 条线:串行时钟线(SCLK)、主机输入 / 从机输出数据线MISO、主机输出 / 从机输入数据线 MOSI和低电平有效的从机选择线 SS(在不同的文献里,也常称为 nCS、CS、CSB、CSN、nSS、STE、SYNC 等)。 下图演示了 1个主机连接 3 个 SPI 外设的硬件连接图。
如 下图 所 示, 在 SPI 总线的传输中,SS 信号是低电平有效的,当我们要与某外设通信的时候,需要将该外设上的 SS 线置低。此外,特别要注意 SPI 从设备支持的 SPI总线最高时钟频率(决定了 SCK 的频率)以及外设的 CPHA、CPOL 模式,这决定了数据与时钟之间的偏移、采样的时刻以及触发的边沿是上升沿还是下降沿。
SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性(CPOL)和相位(CPHA)可以进行配置。如果 CPOL= 0,串行同步时钟的空闲状态为低电平;如果 CPOL= 1,串行同步时钟的空闲状态为高电平。如果 CPHA= 0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果 CPHA = 1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样
上文摘抄自《Linux设备驱动开发详解:基于最新的Linux 4.0内核》