文章目录
1、内部总线、系统总线、外部总线的概念
2、总线通信的基本概念
3、I2C和SPI的经典物理层结构
4、I2C总线与SPI总线的区别
5、I2C总线和SPI总线的共同点
1、内部总线、系统总线、外部总线的概念
总线的分类方式是根据离芯片远近等级进行分类的:内部总线是外设与处理器之间的总线,用于芯片一级的互连;系统总线是各插件板与主板之间的总线,用于插件板一级的互连;外部总线是微机和外部其他设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,用于设备一级的互连。
严格来说,I2C和SPI属于内部总线,而UART属于外部总线
2、总线通信的基本概念
数据传输方向
单工:只允许数据在一个方向上传输,不能实现双方通信 例:收音机
半双工:允许数据在两个方向上传输,但是同一时间数据只能在一个方向上进行传输 例:对讲机
全双工:允许数据在两个方向上同一时间传输 例:手机通话
缓冲通信模式
同步(阻塞模式),同步通信有时钟线控制同步
异步(非阻塞模式),异步通信没有时钟线控制同步
传输数据位数
串行通信:将数据按位依次传输,每位数据占据固定的时间长度
并行通信:多比特数据同时通过并行线进行发送
3、I2C和SPI的经典物理层结构
I2C

SPI

4、I2C总线与SPI总线的区别
从通信模式上看,I2C总线是一种串行同步半双工的通信协议,而SPI总线是一种串行同步全双工的通信协议;
从物理结构上看,I2C只有两根线(SCL、SDA),SPI有4根线(SCK、CS、MOSI、MISO);
从总线传输速度上看,I2C总线的传输速度在100Kbps – 4Mbps,SPI总线的传输速度更快,可以达到30Mbps以上;
I2C总线的起始传输信号是SCL在高电平时SDA产生一个下降沿,终止传输信号是SCL在高电平时SDA产生一个上升沿。SPI总线当CS拉低电平时标志传输开始,CS拉高电平时标志传输结束;
从采样模式上看,I2C总线是SCL高电平采样,SPI总线因为是全双工,所以是沿采样,具体要根据时钟相位CPHA决定,一般情况下master device是SCK的上升沿发送,下降沿采集;
I2C总线是多主机总线,并且能支持多从机,其通过SDA上的地址信息来锁定从设备,SPI总线只有一个主设备,主设备通过CS片选来确定从设备。
5、I2C总线和SPI总线的共同点
I2C总线和SPI总线数据传输都是MSB(最高有效位)在前,LSB在后(串口是LSB在前);
I2C总线和SPI总线时钟都是由主设备产生,并且只在数据传输时发送时钟信号。