SPI 串行通信协议 SPI(Serial Peripheral Interface)是一种同步串行通信协议,由摩托罗拉公司开发,广泛应用于各种电子设备中,如EEPROM、ADC、FRAM 和显示驱动器等。SPI 协议由一个主设备和一个或多个从设备组成,主设备启动与从设备的同步通信,从而完成数据的交换。 SPI 接口由四种信号构成:SDI(串行数据输入)、SDO(串行数据输出)、SCK(串行移位时钟)和CS(从使能信号)。CS 信号确定唯一的与主设备通信的从设备,如果没有 CS 信号,则只能存在一个从设备。主设备通过产生移位时钟来发起通信。 在 SPI 通信中,数据是同步进展发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用 SPI 的时钟标准。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL 定义 SPI 串行时钟的活动状态,而 CPHA 定义相对于 SO-数据位的时钟相位。 SPI 总线接口准时序包括一根串行同步时钟信号线和两根数据线。SPI 模块为了和外设进展数据交换,依据外设工作要求,其输出串行同步时钟极性和相位可以进展配置。时钟极性(CPOL)对传输协议没有重大的影响。假设 CPOL=0,串行同步时钟的空闲状态为低电平;假设 CPOL=1,串行同步时钟的空闲状态为高电平。 时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进展数据传输。假设 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;假设 CPHA=1,在串行同步时钟的其次个跳变沿(上升或下降)数据被采样。 SPI 主模块和与之通信的外设音时钟相位和极性应当全都。SPI 接口时序如图 3、图 4 所示。SPI 是一个环形总线构造,由 ss(cs)、sck、sdi、sdo 构成,其时序其实很简洁,主要是在 sck 的把握下,两个双向移位存放器进展数据交换。 假设下面的 8 位存放器装的是待发送的数据 10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候数据将会是 sdo=1;存放器=0101010x。下降沿到来的时候,sdi 上的电平将所存到存放器中去,那么这时存放器=0101010,sdi,这样在 8 个时钟脉冲以后,两个存放器的内容相互交换一次。这样就完成了一个 SPI 时序。 例子这样就完成了两个存放器 8 位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo 相对于主机而言的。其中 ss 引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。 依据以上分析,一个完整的传送周期是 16 位,即两个字节,由于首先主机要发送命令过去,然后从机依据主机的命令预备数据,主机在下一个 8 位时钟周期才把数据读回来,主机产生时钟 SCLK,而数据又必需依靠边沿启动才能传送。
- 粉丝: 802
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助