I2C、SPI、UART学习笔记

I2C

百度百科
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

最近在网上查有关I2C资料,感觉说得都比较复杂,各种专业名词满天飞,让人拿捏不住重点,“懂的人看了没有用,不懂的人看了还是不懂”

现在我用我自己的语言做一个易懂的概括

  1. I2C(Inter-Integrated Circuit)是一种协议,这组协议对应着I2C总线的设计要求
  2. I2C总线适合近距离低速芯片间通信。
  3. I2C总线从管脚看,就是SDA(Serial Data:串行数据线)与SCL(Serial Clock:串行时钟线)两根线
  4. I2C协议规定了I2C总线如何传输数据。比如
    4.1 SCL为高电平时,SDA由高向低跳变,这种变化意味着开始传送数据
    4.2 SCL为高电平时,SDA由低向高跳变,这种变化意味着结束传送数据

SPI

查I2C资料也让我了解了另一种功能相近的协议–SPI

百度百科
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线

它的功能与I2C很相近,可以概括如下

  1. SPI是一种协议,这组协议对应着SPI总线的设计要求
  2. SPI总线适合近距离低速芯片间通信。
  3. SPI总线从管教看,有如下四根线
    3.1 MISO (Master Input Slave Output)主设备数据输入,从设备数据输出;
    3.2 MOSI (Master Output Slave Input)主设备数据输出,从设备数据输入;
    3.3 SCLK (Serial Clock)时钟信号,由主设备产生;
    3.4 CS (Chip Select)从设备使能信号,由主设备控制。
    它的硬件连接方式如下,左边为主设备,右边是从设备
    连接图
  4. SCLK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备信号线。同样,在一个基于SPI的设备中,至少有一个主控设备

UART

百度百科
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。
在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。

下面是我对所查资料的概括

  1. UART是一种协议,这组协议对应着UART总线的设计要求
  2. UART传送速度较慢。
  3. 从管脚看,UART有TxD(Transmit Data)、RxD(Receive Data)、GND三根线。注意,它没有时钟线,这是异步传输在管脚上的反映,也因此,UART的传输需要提前约定比特率
    UART
  4. 由于UART总线的串行异步特性,它与RS232接口的设计十分吻合,常用RS232线来传输遵从UART协议设计的部件。

三者的使用场景区分

这里我找到了一篇很棒的资料

异同点和使用场景吧。首先,I2C和SPI都是同步协议,都有时钟信号,在一条总线上也都可以挂多个从设备,但是I2C的从设备是通过地址来区分的,SPI的从设备是通过片选线来区分的,所以SPI总线上,每多挂一个从设备,就要多用一个线作为片选线,而I2C则不用,只要地址不冲突,可以随便挂设备。但是,I2C总线速度一般普遍慢于SPI,I2C一般的速度是100kbs、400kbps和1Mbps,而SPI的速度可以在几Mbps,也可以10+Mbps。所以看使用场合,低速的话,I2C就挺合适的,如果速度快一些,则一般都要选用SPI。另外,I2C总线的管脚都是开漏输出,必须外接上拉电阻,阻值可以根据总线速度来推算,一般我们常用400kbps传输速率,上拉电阻选用2.2K。UART和SPI、I2C不同,他是异步传输的,一般来说传输速度比较慢,传统的传输速度一般在115200bps或以下,不过现在大部分UART控制器也能支持到4Mbps或者8Mbps了。UART目前最常用的就是调试接口,因为UART比较简单,所以CPU输出log一般都通过一个UART口来输出。

I2C与SPI都是主从模式的传输线,主设备拥有总线的控制权,并且可以接多个从设备

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值