Linux 学习记录60(ARM篇)
本文目录
- Linux 学习记录60(ARM篇)
- 一、SPI总线
- 1. 概念
- 2. 硬件连接
- 二、SPI总线协议
- 三、SPI总线通信模式
- 四、对比IIC总线和SPI总线
- 1. 相同点
- 2. 不同点
- 思维导图
一、SPI总线
1. 概念
1、SPI总结是Motorola首先提出的全双工三线/四线同步串行总线
2、采用主从模式(Master Slave)架构
3、支持多slave模式应用,一般仅支持单Master,多从机使用
4、时钟由Master控制
5、在时钟移位脉冲下,数据按位传输,先发送高位,在发送低位,也可以先发送低位,在发送高位
6、SPI接口有2根单向数据线,为全双工通信
7、目前应用中的数据速率可达几Mbps的水平
8、SPI总线数码管显示相应值,要求通讯速率较高的场合
2. 硬件连接
SPI四线
- SCK:时钟线 作用:时钟信号由主机产生,在时钟移位脉冲下,数据按位传输
- NSS:片选线 作用:选择和哪一个从机进行通讯
- MOSI:主机输出,从机输入 作用:主机写,从机读
- MISO:主机输入,从机输出 作用:从机写,主机读
SIP三线
- MOSI + MISO + SCK
二、SPI总线协议
起始信号: NSS信号线由高变低,是SPI通讯的起始信号
结束信号:NSS信号由低变高,是SPI通讯的停止信号
数据传输:SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。
MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行
的。SPI每次数据传输可以 8 位或 16 位为单位,每次传输的单位数不受限制
三、SPI总线通信模式
四、对比IIC总线和SPI总线
1. 相同点
1、都采用主从模式架构
2、都是串行总线,在时钟脉冲下,数据按位进行传输
3、都是同步通信方式,都有自己独立时钟源
4、都与SOC通信,均采用TTL电平,传输的场合比较类型(芯片和芯片之间通讯)
2. 不同点
1、IIC总线为半双工通信,只有一根双向数据信号线(SDA)
2、SPI总线为全双工通信,两根单向数据信号线(MOSI/MISO)
3、IIC总线在SCL高低电平期间,进行数据传输
4、SPI总线边沿触发,边沿采样
5、IIC总线通过寻址选择和哪一个从机进行通讯
6、SPI总线通过片选线使能信号,选择和哪一个从机进行通讯(浪费硬件引脚资源)
7、IIC总线传输8位数据时,必须先传送高位,在传送低位(dat & 0x80)
8、SPI总线传输8/16/多位数据时,可以先传送高位,在传送低位,也可以先传送低位,在传送高位(dat & 0x01)
9、IIC总线有应答机制,SPI总线没有应答机制,传输数据容易丢失数据