目录
概述
电气连接
接口定义
连接方式
通信协议
片选信
时钟
时钟极性(Clock Polanrity)
时钟相位(Clock Phase)
综述
时序
注意
概述
SPI是一个同步全双工串行通信协议
主从机双方共用一个时钟(由主机产生)
在同一时刻硬件可以允许双向传输(虽然在SPI协议中没有同一时刻双向传输)
SPI的速度快于常见的I2C与USART,一般能达到几MHz
比起CAN和USART来,其传播距离较短
电气连接
接口定义
名称 |
功能 |
GND |
接地 |
MOSI |
主机发送,从机接收 |
MISO |
主机接收,从机发送 |
CLK |
时钟线 |
CS1(NSS1) |
片选线 |
…… |
多个设备时的片选线 |
不同厂商的接口名称可能有不同,详情看产品的技术手册
连接方式
一般情况使用多片选信 (多NSS)模式,连接如图
通信协议
片选信
这个信 是由主机发送的一个用于选择不同设备的信 ,一般情况为低电平有效(选中了该设备)
在一次通信过程中,一般只有一个设备被选中
只有被选中的设备才会接受主机发送出的数据信 ,并且根据自己的功能进行回传信息
对于单片机来说,这个信 一般使用推挽(浮空)输出的模式
有些设备使用开漏上拉输出会出现问题,咱也不知道为啥
时钟
时钟极性(Clock Polanrity)
可以这样理解,默认状态是高电平还是低电平(低电平有效还是高电平有效)
默认状态是低电平
默认状态是高电平
时钟相位(Clock Phase)
可以这样理解,在第几个边沿进行采集(这里指的是一个时钟信 的边沿),一个时钟信 会出现两个边沿
第一个边沿(如图在橘线处采集信 )
第二个边沿(如图在橘线处采集信 )
综述
时序
在片选信 选中下,每一个时钟信 触发(详见上文),根据MISO和MOSI的电平高低来判断数据
先发送高位再发送低位(可以选择先低后高)
时钟信 的箭头表示一次采集
本图中以黄线为界出现两次信 传输
第一次:主机向从机发送的数据为(0xF0)(0b11110000),从机向主机发送的信 为(0x00)(0b00000000)
第二次:主机向从机发送的数据为(0x00)(0b00000000),从机向主机发送的信 为0x7C(0b0111 1100)
注意
SPI每一次信 传输(通信周期)中都需要主机接受和发送一次
(可以将从器件当做一个数据会自动修改的移位寄存器)
也就是说主机接受数据时也要发送数据(必须发送),发送数据时也会接受数据(可能接收的数据无意义)
往往与器件通信时是主机先发送命令(此时收到的信 是无意义的),从机再根据命令更改寄存器的值,在下一个通信周期时在发送给主机(主机也需要发送某些数据(可能无意义))
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!