UART,SPI,I2C协议的异同

在上一篇文章中写道:这似乎是一个更专注于软件级别的主题。

在我反复选择硬件解决方案,布局和布线等之前,我发现我需要考虑的不仅仅是电路设计或过程。

后来,我开始反思。

尽管我说过“技术行业有专门知识”,但作为研发工程师,您需要建立新的项目和遇到的问题。

您不需要了解您认为的硬件或软件。

知识”遇见你。

除非您想成为一名“只是倾听他人”的技术人员。

命令和做事”。

I2C,SPI和UART是常见的低速板级通信协议。

当前,主流SoC具有用于这些通信协议的内置控制器。

同样,各种传感器,触摸控制器,指纹模块,蓝牙模块和WIFI模块也兼容。

这三种通信方法中的一种或多种。

这三种通信协议之间的区别可以非常精细地加以区分,包括信号的单位,传输协议中的数据包格式等。

UART通常由TXD,RXD和GND组成,这是一种异步传输协议。

主机和从机都可以自由发送数据,但是由于UART总线没有时钟线,因此需要事先约定相应的波特率。

这是一个非常简单的传输协议,可以在此基础上通过电路来实现。

RS-232,RS-242,RS-485和其他通讯协议。

过去,老式计算机配备了RS-232接口,但是在过去的10年中,计算机仅配备了USB,因此它们通常需要通过UART到USB开关电路相互连接。

UART比较简单,因此CPU输出日志通常通过UART端口输出,而UART端口是当前最常用的调试接口。

它的传输速度相对较慢。

传统的传输速度为115200bps或更低,但是大多数UART控制器也可以支持4Mbps或8Mbps。

I2C是两条线,即SDA(数据)和SCL(时钟),这是半双工同步传输协议。

主机发送启动信号后,它首先发送7位地址位和1位读/写位。

每个从机都有自己的I2C地址。

当发现命令已发送给自己时,拉下SDA线(即应答ACK信号),然后主机发送或接收数据以完成传输。

传输完成后,主机发送一个停止位以完成传输。

I2C最初是由PHILIPS提出的。

它用于芯片之间的传输。

理论上,可以连接128个从站(通常最多只能连接10个)。

原则上,它只能由PCB上的铜箔线承载。

但是,目前,许多应用程序都使用I2C电缆。

此外,I2C总线的引脚均为漏极开路输出,必须连接一个上拉电阻。

可以根据总线速度计算出电阻值。

通常,我们通常使用400kbps的传输速率(标准模式:100kbps,快速模式:400kbps,高速模式:3.4Mbps),上拉电阻为2.2K。

SPI有四根线,分别是CS(片选),MOSI(主发送和接收),MISO(从发送和接收)和CLK(时钟)。

它是一种全双工同步传输协议。

主机发送CLK信号,从主机到从机的数据在MOSI线上传输,从从机到主机的数据在MISO线上传输。

在开始发送之前,您需要拉低(通常是这种情况,有些芯片是CS高电平有效)对应于从机CS引脚的。

发送完成后,将CS引脚拉高,从器件的SPI从模块进入休眠状态。

SPI是由Motorola发明的。

像I2C一样,可以连接多个从站,但是每次添加一个从站时,都必须至少添加一行。

可以同时进行发送和接收,并且传输速度可以达到几Mbps,这比I2C更快。

UART与后两者的最大区别在于后两者是同步的,并且必须具有统一的时钟线,而UART则不需要,并且接线方便,但是发送方和接收方都需要配置相同的波特率,即设备必须具有自己的时钟源:I2C协议中有地址规则,因此在一对多通信中更具优势。

它通常用于连接传感器。

SPI编程很简单,可以在设备数量不多,端口足够大且通信速度要求不高的情况下使用。

它更常用于连接EEPROM,FLASH或LCD。

免责声明:本文内容经21ic授权后发布,版权归原作者所有。

该平台仅提供

联系方式

KAMAYA(日本釜屋电机株式会社)成立于1957年10月15日,总部在日本的北海道,是一家国际知名的电子元件生产商,同其他日系企业一样,KAMAYA特别注重品质和客户的服务,在全世界范围内都设有工厂和分部。华科(华新科技股份有限公司)收购但独立运营。

查看详情

在线咨询