什么是SPI总线和I2C总线?两种总线有什么区别?
扫描二维码
随时随地手机看文章
今天,小编将在这篇文章中为大家带来SPI总线和I2C总线的有关报道,通过阅读这篇文章,大家可以对二者具备清晰的认识,主要内容如下。
一、SPI总线
SPI 是由摩托罗拉(Motorola)公司开发的全双工同步串行总线,是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、网络控制器、MCU、数字信号处理器(DSP)以及数字信号解码器之间。SPI 系统可直接与各个厂家生产的多种标准外围器件直接接口,一般使用4 条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线SSEL。
SPI 数据传输时,必须明确以下两位的特点及功能:
(1) CPOL: 时钟极性控制位。该位决定了SPI总线空闲时SCK 时钟线的电平状态。
CPL=0,当SPI总线空闲时,SCK 时钟线为低电平。
CPL=1,当SPI总线空闲时,SCK 时钟线为高电平。
(2) CPHA: 时钟相位控制位。该位决定了SPI总线上数据的采样位置。
CPHA=0,SPI总线在时钟线的第1个跳变沿处采样数据。
CPHA= 1,SPI总线在时钟线的第2个跳变沿处采样数据。
二、I2C总线
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据破坏,每个连接到总线上的器件都有唯一的地址,任何器件既可以作为主机也可以作为从机,但同一时刻只允许有一个主机。数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其他器件正常工作。I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试,故障可以立即被寻址,软件也利于标准化和模块化,缩短开发时间。连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。在硬件上,I2C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特殊的接口电路,而且片上接口电路的滤波器可以滤去总线数据上的毛刺。因此I2C总线简化了硬件电路PCB布线,降低了系统成本,提高了系统可靠性。因为I2C芯片除了这两根线和少量中断线,与系统再没有连接的线,用户常用IC可以很容易形成标准化和模块化,便于重复利用。
三、SPI和I2C总线的区别
1、I2C总线不是全双工,2根线SCL SDA。spi总线实现全双工,4根线SCK CS MOSI MISO
2、 I2C总线是多主机总线,通过SDA上的地址信息来锁定从设备。spi总线只有一个主设备,主设备通过CS片选来确定从设备
3、I2C总线传输速度在100kbps-4Mbps。spi总线传输速度更快,可以达到30MHZ以上。
4、I2C总线空闲状态下SDA SCL都是高电平。spi总线空闲状态MOSI MISO也都是 SCK是有CPOL决定的
5、 I2C总线scl高电平时sda下降沿标志传输开始,上升沿标志传输结束。spi总线cs拉低标志传输开始,cs拉高标志传输结束
6、I2C总线是SCL高电平采样。spi总线因为是全双工,因此是沿采样,具体要根据CPHA决定。一般情况下master device是SCK的上升沿发送,下降沿采集
7、I2C总线和spi总线数据传输都是MSB在前,LSB在后(串口是LSB在前)
8、I2C总线和spi总线时钟都是由主设备产生,并且只在数据传输时发出时钟
9、I2C总线读写时序比较固定统一,设备驱动编写方便。spi总线不同从设备读写时序差别比较大,因此必须根据具体的设备datasheet来实现读写,相对复杂一些。
以上便是小编此次想要和大家共同分享的有关SPI总线和I2C总线的内容,如果你对本文内容感到满意,不妨持续关注我们网站哟。最后,十分感谢大家的阅读,have a nice day!