0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机I2C和SPI通信的不同

微云疏影 来源:维库 作者:维库 2023-06-06 10:47 次阅读

I2C和SPI是两种不同的通信协议。

听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已,我们只要遵照这个标准去做事,就可以。比如公司规定早上9点上班,我们就9点上班,不然就会扣薪水,这就是个协议。

用I2C通信的芯片常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,还有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同样,还有其他功能的一些芯片。

I2C通信需要用到两个引脚:SDA SCL。SCL是时钟引脚,SDA是数据引脚。

pYYBAGR-nfyAaYLqAAAxOP8z7C0444.png

(这是EEPROM芯片)

pYYBAGR-ngGAeQ_QAAA0gvnokx0676.png

(这是时钟芯片)

SPI通信需要3个引脚或者4个引脚:CS SCK MOSI MISO。SPI通信芯片的引脚名称不一定都是这几个名称,可能还有会别的名称,但是意思是一样的,例如MOSI引脚的意思是“主机输出从机输入”,某个SPI接口的芯片就有可能会写成SDI,因为这个SPI器件是作为从机的,所以它的SDI的意思就是“从机数据输入引脚”。

SPI通信过程为:把CS引脚拉低,然后SCK输出时钟,然后就可以在MOSI引脚上输出数据,同时可以在MISO上获得数据了。

poYBAGR-ngiAK0-eAAAiSSsuvuU623.png

(这是一个SPI FLASH芯片,DO是MISO,DI是MOSI,CLK是SCK,功能一样,叫法不一样而已)

pYYBAGR-ng-ABRg0AAAtqk04pp4049.png

(这是一个SPI接口的ADC芯片,Dout是MISO,DCLOCK就是SCK,这个芯片有3个SPI引脚)

大部分单片机上面都会带有I2C口和SPI口,有可能还会有好几个I2C口和SPI口。不过,不带I2C口和SPI口的单片机,也可以通过普通引脚的vwin 他们的时序来进行通信。

而且,如果是初学者的话,一定要学习一下用普通引脚模拟,对他们的通信本质理解更深刻。

通信全程,其实就是控制引脚高低电平和检测引脚高低电平的过程,话说,控制单片机的引脚高低电平和检测引脚的高低电平,天学单片机就会了,所以,I2C通信和SPI通信也没什么难的地方。

给大家讲一个简单的通信过程,例如我们称下面的通信名称为KJLWT,名字是不是看起来很吊,其实是“科技老顽童”的拼音首字母,因为接下来的协议是我刚刚发明的,所以以此命名^_^。主要是让大家理解,名称就是用来吓唬人的。

我们用两条线来通信,一条时钟线,一条数据线。时钟线,其实就是用来产生一个脉冲波形,再说的直接一点,就是把引脚变高变低的信号,如下图:

pYYBAGR-nhWAXTyIAAADBO1Eq10680.png

(这就是个时钟信号)

例如我们规定,在时钟引脚为高电平的时候,读取数据引脚的电平,连续8个时钟,就可以读到一个字节了。那给数据的那一端,要怎么给数据呢?也很简单,给数据的那一端,在检测到低电平的时候,就把要发送的数据按照位体现在数据引脚上面。例如一个数据:0x88,写成二进制以后就是1000 1000。我们来看一下传输这个数据的过程:从机检测时钟引脚,检测到一个下降沿(就是从高电平落到了低电平),就把要发送的数据的bit7体现在数据引脚上,例如1000 1000的bit7是1,就把数据引脚变高电平,主机在时钟引脚的高电平,检测这个数据引脚,把这个位记录下来,从机再次发现时钟引脚的下降沿后,再把数据的bit6体现在数据引脚上,由于1000 1000 的bit6是0,所以从机把数据引脚拉低,然后当时钟引脚为高电平的时候,主机检测数据引脚的高低电平,再把bit6记录下来,……以此8次,就可以把一个字节由从机传输到主机了。是不是很简单呢?

时钟的速率,就是传输数据的快慢,以上面讲的为例,如果脉冲的周期为1秒钟,也就是1Hz,那么传输一个字节就需要8秒钟;如果脉冲的周期为1毫秒,也就是1KHz,那么输出一个字节只需要8毫秒。这下你就理解通信的速率是什么意思了吧?

I2C通信,SPI通信,只不过是在我刚才讲的例子上面,又多了一些协议内容。具体的协议,你们随便找一个I2C和SPI通信接口的芯片看一下时序图就可以了。我们要做的,就是用单片机的引脚,把它的时序做出来。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    450

    文章

    49288

    浏览量

    415314
  • 通信
    +关注

    关注

    18

    文章

    5828

    浏览量

    135116
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1428

    浏览量

    121933
收藏 人收藏

    评论

    相关推荐

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit) 通信协议是由飞利浦公司(现为恩智浦半导体)开发的一种简单、双向二线制同步串行总线协议。自1982年发布以来, I2C协议因其高效、灵活和易于实现的特点,在电子设备间的数据交
    的头像 发表于07-25 18:06 745次阅读

    I2CSPI、UART的通信过程还可以这样理解

    到目前为止, I2CSPI和UART等仍然是电子嵌入式设备中最常用的 通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以GIF动图展示。一、IIC协议 I
    的头像 发表于05-23 08:10 2415次阅读
    <b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、UART的<b class='flag-5'>通信</b>过程还可以这样理解

    SPII2C通信协议:应用与区别

    本文深入解析了 SPII2C这两种 通信协议的特点、工作原理和应用场景。 SPI适用于高速数据传输,常用于存储器芯片和显示器驱动等领域; I2C
    的头像 发表于04-22 16:45 736次阅读

    逼真动画展示I2CSPI、UART的通信过程

    到目前为止, I2CSPI和UART等仍然是电子嵌入式设备中最常用的 通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以GIF动图展示。 I2C
    的头像 发表于04-12 08:27 684次阅读
    逼真动画展示<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、UART的<b class='flag-5'>通信</b>过程

    总结usart、uart、i2cspi区别及相关知识

    USART、UART、 I2CSPI是四种不同的串行 通信协议,它们各自具有独特的特点和应用领域
    的头像 发表于04-10 09:47 887次阅读
    总结usart、uart、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b>区别及相关知识

    蓝牙串口通讯总线——I2C/SPI/UART

    嵌入式工程师在做串口 通信调试工作的时候,会经常用到 I2CSPI、UART这3条总线, I2CSPI、UART这三种
    的头像 发表于01-22 09:41 870次阅读
    蓝牙串口通讯总线——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/UART

    XV4001BC车载用SPI/I2C输出接口的数字输出

    XV4001BC车载用 SPI/ I2C输出接口的数字输出,可实现角速度输出和温度传感器输出,满足汽车导航和通讯系统的要求。 SPI/ I2C输出接口角速度输出(16bit)、温度传感
    发表于01-02 16:33 0次下载

    i2c接口和spi接口区别

    I2C(Inter-Integrated Circuit)和 SPI(Serial Peripheral Interface)都是用于设备间 通信的串行接口标准。它们在很多方面有着相似之处,但也有一些
    的头像 发表于12-25 15:02 2299次阅读

    SPII2C的异同及优缺点

    SPII2C的异同及优缺点 SPI(Serial Peripheral Interface)和 I2C(Inter-Integrated Circuit)是两种常见的串行
    的头像 发表于12-07 10:46 2217次阅读

    UART、SPII2C比较 串口通信介绍

    UART、 SPII2C比较 I2C线更少,比UART、 SPI更为强大,但是技术上也更加麻烦些,因为 I2C需要有双向IO的支持,而且使用上拉
    的头像 发表于11-09 18:06 972次阅读
    UART、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比较 串口<b class='flag-5'>通信</b>介绍

    CW32单片机I2C接口读写EEPROM芯片介绍

    CW32 单片机 I2C接口读写EEPROM芯片介绍
    的头像 发表于11-09 17:42 819次阅读
    CW32<b class='flag-5'>单片机</b><b class='flag-5'>I2C</b>接口读写EEPROM芯片介绍

    I2CSPI与UART:如何布局这些通用总线

    如果您要为项目构建开发板或使用通用MCU,则会发现许多用于 通信其他活动组件的协议。USB和以太网之类的标准已内置在大多数控制器中,用于与计算机外围设备一起使用。尽管如此,仍使用 I2CSPI
    的头像 发表于11-08 17:33 697次阅读
    <b class='flag-5'>I2C</b>与<b class='flag-5'>SPI</b>与UART:如何布局这些通用总线

    SPI自举程序中使用的I2C协议

    德赢Vwin官网 网站提供《 SPI自举程序中使用的 I2C协议.pdf》资料免费下载
    发表于09-21 11:41 0次下载
    <b class='flag-5'>SPI</b>自举程序中使用的<b class='flag-5'>I2C</b>协议

    i2c采样是上升沿吗?

    数据。在本文中,我们将详细讨论 I2C采样的工作原理,采样时机以及如何进行 I2C采样。 I2C采样的原理 I2C采样是基于 I2C通讯协议的,该
    的头像 发表于09-19 17:16 1848次阅读

    什么是串口转I2C?有什么特点?

    什么是串口转 I2C?有什么特点? 串口转 I2C是一种设备,用于将串行 通信接口(通常称为串口)转换为 I2C信号。 I2C是一种
    的头像 发表于09-14 17:52 1029次阅读