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

    文章

    7967

    浏览量

    156095
  • I2C总线
    +关注

    关注

    8

    文章

    408

    浏览量

    62300
  • GPIO
    +关注

    关注

    16

    文章

    1283

    浏览量

    54294
  • SDA
    SDA
    +关注

    关注

    0

    文章

    125

    浏览量

    28892
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何从FX2LP设备的EEPROM读取固件(.iic)?

    是否有任何工具可以从 FX2LP 设备的 EEPROM 读取固件(.iic)? 我想备份旧固件来重新编程我的设备,但我丢失了旧的 IIC 固件。
    发表于 05-07 06:37

    IIC接口的IIC_SCL和IIC_SDA引脚做普通GPIO,程序启动不起来怎么解决?

    想用IIC接口的IIC_SCL和IIC_SDA引脚做普通GPIO,两个引脚对应的是GPIO58和GPIO59,更改代码将设置为普通GPIO引脚模式后,程序启动不起来。问:这种情况如何解决,官方支持这种应用吗?
    发表于 05-06 08:59

    ZYNQ FPGA的PS端IIC设备接口使用

    zynq系列中的FPGA,都会自带两个iic设备,我们直接调用其接口函数即可运用。使用xilinx官方提供的库函数,开发起来方便快捷。
    的头像 发表于 04-17 11:26 ?1158次阅读
    ZYNQ FPGA的PS端<b class='flag-5'>IIC</b>设备接口使用

    巨霖科技IIC Shanghai 2025精彩回顾

    近日,全球半导体行业瞩目的国际集成电路展览会暨研讨会(IIC Shanghai 2025)在上海金茂君悦大酒店盛大开幕。
    的头像 发表于 03-28 11:27 ?593次阅读

    为什么IIC总线会难住这么多人?

    为什么 IIC 总线让很多人头疼?其实可以把它想象成一场复杂的 "设备对话游戏",新手容易在这些地方栽跟头:
    的头像 发表于 03-12 10:14 ?555次阅读
    为什么<b class='flag-5'>IIC</b>总线会难住这么多人?

    STM32F407的两个USB口能否分别实现读卡器和读U盘的功能以及硬件IIC读写AT24C02?

    需求如下: 1.OTS_FS(PA 11,PA12)实现TF卡的读卡器功能, 2.OTS_HS(PB14,PB15)实现读写U盘功能 3.硬件IIC(PB8,PB9)读写AT24C02,硬件I
    发表于 03-11 06:23

    DLPC350怎么才能实现iic通讯?

    我想通过单片机iic接口控制DLPC350,从地址是0x34和0x35,然后对对应寄存器进行读写,设置的频率是100khz,但是发现无法通讯上,我想知道怎么才能实现iic通讯?
    发表于 02-21 08:07

    使用IIC通过API给DLPC3479发送控制指令时无应答是什么原因导致的?如何解决?

    1. 使用的是模拟IIC,通过API调用最基本的读取DeviceID命令,但是在第一步写地址 0x36后就没有收到应答信号,请问应该怎么去排查?波形图如下,请问有什么因素可能会导致这个
    发表于 02-18 08:16

    DLPC3479 IIC通讯异常的原因?

    电路是按照TI硬件方案自主设计的电路,但是没有使用Cypress,直接用了一个FPGA通过IIC控制,上电后DLP3479的HOST_IRQ引脚正常拉低,但是遇到如下问题: 1. 按照说明发送
    发表于 02-18 07:04

    DLPC3479主芯片的IIC1是1.8V,与DLPC3479从芯片的IIC0 3.3V直接相连,会不会导致主芯片IIC1引脚出现问题?

    在dlp4710evm-lc _sch参考原理图里,DLPC3479主芯片的IIC1是1.8V,与DLPC3479从芯片的IIC03.3V直接相连,这个会不会导致主芯片IIC1引脚出现问题?比如
    发表于 02-17 06:27

    基于瑞萨RA0E1开发板的IIC OLED测试

    基于前面关于瑞萨e? studio开发软件的使用,以及工程测试基础,本文进一步探索实现硬件IIC OLED的文字和图片显示。
    的头像 发表于 02-13 13:36 ?859次阅读
    基于瑞萨RA0E1开发板的<b class='flag-5'>IIC</b> OLED测试

    爱芯元智亮相IIC Shenzhen 2024

    近日,国际集成电路展览会暨研讨会(IIC Shenzhen 2024)在深圳福田会展中心拉开帷幕。作为业界最具影响力的系统设计盛会之一,IIC汇聚了国内外电子产业领袖、管理人员、设计精英及决策者。在
    的头像 发表于 11-07 15:41 ?791次阅读

    爱芯元智邀您相约IIC Shenzhen 2024峰会

    11月5日-6日,国际集成电路展览会暨研讨会(IIC Shenzhen 2024)将于深圳福田会展中心7号馆举行。作为集成电路产业洞见趋势的风向标,IIC集行业交流、渠道联动、资源聚合为一体,为半导体产业搭建专业交流平台,助推产业创新发展。
    的头像 发表于 10-31 11:53 ?616次阅读

    MCU通过IIC口控制TLV320AIC3204,请问MCU的IIC接口和TLV320AIC3204的IIC接口对接时需要电平转换吗?

    MCU通过IIC口控制TLV320AIC3204,该芯片的IOVDD接1.8V,MCU的IIC上拉电平是3.3V,请问MCU的IIC接口和TLV320AIC3204的IIC接口对接时
    发表于 10-30 06:02

    IIC信号线需要增加上拉电阻,是因为IIC的IO是什么

    IIC(Inter-Integrated Circuit,即集成电路总线)信号线需要增加上拉电阻,这主要是因为IIC的IO(输入输出)设计采用了开漏(Open-Drain)输出方式。开漏输出方式在
    的头像 发表于 10-06 15:50 ?2188次阅读