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

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

3天内不再提示

模拟iic和硬件iic区别

工程师邓生 来源:未知 作者:刘芹 2023-09-19 16:50 次阅读

模拟iic硬件iic区别

I2C是一种相对于另一种通信协议SPI(Serial Peripheral Interface)更高层次的通讯协议,也称为I2C总线。I2C(Inter-Integrated Circuit)始于1982年由Philips公司开发的串行总线技术,主要应用于连接集成电路芯片,如处理器传感器,数字转换器等。

I2C协议可以被模拟和硬件实现。模拟I2C是用两条GPIO(General Purpose Input Output)管脚的软件模拟的,将一个GPIO设置为数据线SDA,另外一个设置为时钟线SCL。硬件I2C则是通过一个I2C控制器实现的,该控制器被建立在微控制器芯片或单独的I2C芯片中,通过集成的硬件内部逻辑和电路来控制时序和数据格式,实现I2C总线通信。

I2C协议传输时分为两类线,一类为时钟线SCL,另一类为数据线SDA。时钟线由主节点产生,用于同步数据传输,数据线用于传输真正的数据。从I2C线上的数据格式可以看出I2C的核心是如何处理设备之间的“冲突”,比如两个设备同时要向总线上发送数据同时采用不同的速率,此时会出现“冲突”,I2C通过一系列复杂的算法来解决这种冲突问题。

模拟I2C通信需要使用软件和硬件上的两种方法。常见的模拟I2C方法是通过GPIO模拟SCL和SDA信号,并使用GPIO电平高低来识别时钟和数据线上的1和0。模拟I2C的主要限制是不能在高速模式下运行,并且有可能出现线路噪音、误码等问题。

硬件I2C通信更加可靠,并且具有更高的性能。硬件控制器内置在微控制器芯片或者单独的I2C芯片中,在控制器的支持下,可以实现高速数据传输,避免了SCL和SDA之间的相互影响。此外,在硬件I2C中,处理信号和协议的复杂算法已经内置在控制器中,不需要用户自己实现,简化了通信过程,提高了可靠性。

软件I2C作为一个模拟方法,还存在另一个重要的缺点就是不同于硬件I2C,模拟I2C的芯片在同时进行通信时需要耗费大量的CPU资源,对内存和处理器速度的要求更高。反过来,硬件I2C通常可以在任何操作系统和平台上轻松使用,这种通信协议不需要使用大量的额外的内存或处理器周期。

硬件I2C和模拟I2C都各自具有优缺点,请根据您的具体需求来选择使用哪种方法。

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

    关注

    48

    文章

    6812

    浏览量

    147648
  • I2C总线
    +关注

    关注

    8

    文章

    357

    浏览量

    60409
  • GPIO
    +关注

    关注

    16

    文章

    1135

    浏览量

    50578
  • SDA
    SDA
    +关注

    关注

    0

    文章

    122

    浏览量

    27556
收藏 人收藏

    评论

    相关推荐

    MSP430F5529软件模拟IIC协议

    MSP430F5529软件模拟IIC协议
    发表于 11-24 16:35 0次下载

    硬件iic对比模拟iic是好用点吗?

    硬件iic对比模拟iic是好用点么?为什么很多库函数里面都自带硬件的,而没有模拟的?
    发表于 11-08 06:31

    stm32的硬件IIC如何避免丢数据?

    stm32的硬件IIC如何避免丢数据
    发表于 10-30 07:03

    STM32基础知识:IIC概述与软件模拟IIC

    内部集成电路(Inter Integrated circuit )的简称叫做IIC,是一种简单的、半双工同步通信的串行通信接口,IIC总线是上世纪80年代(1982年)由飞利浦公司设计出来,当时的目的是为了给MCU和外围芯片提供更简单的交互方式。
    的头像 发表于 10-26 11:47 681次阅读
    STM32基础知识:<b class='flag-5'>IIC</b>概述与软件<b class='flag-5'>模拟</b><b class='flag-5'>IIC</b>

    请问硬件IIC和软件IIC驱动EEPROM哪个好一些?

    硬件IIC和软件IIC驱动EEPROM哪个好一些?
    发表于 10-23 06:08

    PCA9685芯片的模拟IIC需要加上拉电阻吗?

    pca9685用的是IIC通讯,如果用的是模拟IIC,需要加上拉电阻吗?
    发表于 10-18 06:59

    iic通信是什么原理?和rs232通信有什么区别 ?

    iic通信是什么原理,和rs232通信有什么区别 ?
    发表于 10-18 06:17

    STM32的软件模拟IIC硬件IIC有什么区别

    STM32的软件模拟IIC硬件IIC有什么区别
    发表于 10-10 06:09

    IIC总线学习笔记

    IIC是飞利浦提出的一种通信总线结构,其硬件架构比较简单,仅包含SCL和SDA两条线。根据最新的IIC总线标准,IIC总线包含Standard-mode(100kbit/s)、Fast
    发表于 09-20 15:18 510次阅读
    <b class='flag-5'>IIC</b>总线学习笔记

    硬件IIC与软件IIC在使用上的区别,对产品可靠性与效率的影响?

    硬件IIC与软件IIC在使用上的区别,对产品可靠性与效率的影响
    发表于 09-20 07:53

    iic的时钟信号哪里来的?

    是数据信号(SDA)。SCL信号是在IIC通信中非常重要的一个信号,它确定了数据的传输速率以及同步时序。 IIC时钟信号的产生需要硬件支持,一般通过外部晶振或者内部时钟源产生。在IIC
    的头像 发表于 09-19 17:16 864次阅读

    STM32单片机学习笔记(4):24C02(模拟IIC)

    24C02的一个实例,IIC通信是一种比较典型的串行通信方式,在很多情况下都会有所使用,了解并熟悉IIC通信就显得十分重要。本项目之所以使用模拟IIC,而没有使用STM32单片机内置
    发表于 07-19 15:34 950次阅读
    STM32单片机学习笔记(4):24C02(<b class='flag-5'>模拟</b><b class='flag-5'>IIC</b>)

    基于STM32和HAL库创建一个IIC设备

    使用面向对象的编程思想封装IIC驱动,将IIC的属性和操作封装成一个库,在需要创建一个IIC设备时只需要实例化一个IIC对象即可,本文是基于STM32和HAL库做进一步封装的。
    的头像 发表于 06-26 17:15 1254次阅读

    CH32V103基础教程69-IIC-硬件IIC驱动 OLED

    本章教程主要在第十四章硬件IIC读写EEPROM的基础上进行改动,使用硬件IIC驱动OLED屏。 1、IIC简介及相关函数介绍关于
    发表于 05-05 16:52

    CH32V103基础教程68-IIC-模拟IIC驱动 OLED

    。 2、硬件设计本章教程主要使用模拟IIC驱动OLED屏,所用OLED屏为0.96寸OLED屏。程序中配置PA1作为SDA线,PA2作为SCL线,具体连接方式如下:· PA1连接OLED屏的SDA引脚· PA2连接OLED屏的S
    发表于 05-05 16:49