什么是spi
spi一个一主多从的串行总线通讯协议,属于全双工通讯,可以在同一时间内发送和接收数据。
SPI总线一共包括四条
- MISO:从机向主机发送数据,master input slave output
- MOSI:主机向从机发送数据,master output slave input
- SCLK:serial clock 串行时钟信号,由主机产生发给从机
- SS:片选信号,由主机发送,用于控制与哪些从机通讯,通常是低电平有效
SPI的四种通讯模式:
这四种通讯模式分别由时钟极性和时钟相位决定。
空闲电平为低电平,在时钟的上升沿或时钟下降沿采集数据。
空闲电平为高电平,在时钟的上升沿或时钟下降沿采集数据
具体需要根据从设备的芯片手册决定我们采用何种通讯方式。
一般的SPI数据组成
一般分为 起始位,操作吗,地址,数据等,如eeprom 93c46芯片
我们看一下93c46的datasheet是如何定义通讯的
我们可以看到该表格将通讯分为了 起始位,操作码,地址码,数据码
起始位:1
操作码:读数据 10 写数据 01
地址码:7位 (可访问128个地址空间)
数据位:8位(每次写入一字节)
例如我们在01号地址空间内写入 0x0f,则对应的,编码为
1 01 0000001 00001111
我们读取该地址数据时编码为
1 10 0000001