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

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

3天内不再提示

IIC面试问题汇总

撞上电子 2023-12-18 08:00 次阅读

一、IIC需要几根线分别是什么线

I2C通信协议需要两根线来进行传输,分别是SDA和SCL。这两根线是通过总线结构连接各个设备,并在设备之间进行数据和时钟信号的交互。SDA(串行数据线):SDA线被用于在设备之间传输数据。它是一个双向线路,在通信中用于发送和接收数据位。每个设备都通过开漏输出或三态缓冲器连接到SDA线,以实现数据的传输和接收。SCL(串行时钟线):SCL线是用于设备之间同步传输数据的时钟信号线。它由主设备控制,通过在SCL线上产生脉冲信号来同步数据传输。所有设备都在SCL上接收和解析来自主设备的时钟信号。总结起来,I2C通信协议只需要两根线:SDA用于数据传输,SCL用于时钟同步。这种简洁的连接方式使得I2C在多个设备之间进行通信变得非常方便和可靠。

二、IIC优势

简单且灵活:I2C仅需要两根线(SDA和SCL)来进行通信,使得硬件连接和布线变得简单。通过设备地址的选择,可以连接多个设备到同一个总线上,提供了更大的系统灵活性。可靠性高:I2C协议采用了主从架构,由主设备控制总线上的数据传输。主设备协调和同步设备之间的通信,避免了设备之间的冲突。此外,I2C协议支持差分传输和硬件确认,提供了数据的可靠性和稳定性。多设备支持:通过I2C协议,可以连接多个设备到同一个总线上。每个设备都有唯一的地址,主设备可以通过指定地址来选择与之通信的设备。这种架构适用于实现多个设备之间的数据交换和控制。低功耗:I2C在基本模式下使用了开漏输出结构,使得设备在非活动状态下可以撤离总线,从而降低功耗。此外,I2C还支持多速率传输,可以根据需求选择适当的速率,进一步降低功耗。应用广泛:I2C协议被广泛应用于各种领域,如消费电子产品工业自动化、医疗设备等。它可以用于连接传感器、存储器、显示器、控制器和其他智能设备,为系统提供高效的数据交换和控制能力。


三、IIC可以挂载多少个从设备,主设备

从设备数量IIC总线最多可以挂多少个设备由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址,所以理论上可以挂127个从器件。这只是一个理论可以挂载从设备的数量,挂载从设备数量还受到电容的影响。

I2C总线上的每个设备都有一定的输入和输出电容。当总线上连接的设备数量增加时,总线电容的总和也会增加。这样,总线的负载能力和传输速度可能会受到影响。

85f47518-9d38-11ee-9788-92fbcf53809c.png

IIC支持多个主设备,但在同一时刻只能有一个主设备处于活动状态。(主设备没有固定的地址),当一个主设备发起通信时,它会控制整个总线,并与所选的从设备进行数据交换。其他主设备和从设备会保持静默状态,直到当前的主设备释放总线。

一旦当前的主设备完成与从设备的通信,它将释放总线,然后其他主设备可以竞争获取总线控制权,并选择与所选的从设备进行通信。这种机制确保在同一时刻只有一个主设备在总线上工作,避免冲突和数据干扰。但是,任何主设备都有权利在需要的时候释放总线,并允许其他主设备接管。这种切换主设备的操作可以在需要时进行,以实现多主设备的共享和通信。

四、IIC是全双工还是半双工

I2C总线是一种半双工的,主机可以向从机发送数据,然后等待从机的响应,并且这期间从机不能主动发送数据。只有当主机发送完数据并停止传输时,从机才可以主动发送数据。

五、IIC总线空闲状态

在I2C总线中,空闲状态是指时钟线 (SCL) 和数据线 (SDA) 都处于高电平状态时的状态。在空闲状态下,两条线路都被拉高,并且没有任何通信活动正在进行。

六、IIC主机如何获取总线控制权

发送Start Bit:主机设备发送Start Bit信号,这是一个特殊的位模式,用于指示主机希望控制总线并启动数据传输。发送Start Bit时,主机将SCL保持高电平,而SDA由高电平转为低电平。监听总线:主机设备释放SDA线,将其设置为输入模式,然后开始监听总线,等待仲裁的结果。仲裁:如果其他主机设备也尝试发送Start Bit,冲突就会发生,所有参与冲突的主机都会检测到数据位不匹配,并放弃继续发送。仲裁通过硬件自动处理,决定哪个主机能够获得总线控制权。获取总线控制权:仲裁之后,只有一个主机设备会成功获得总线控制权,并继续发送数据。它会根据I2C协议规定的操作步骤发送地址、数据等信息,并等待响应。释放总线:主机设备在完成数据传输后,会发送Stop Bit信号,用于表示传输结束并释放总线控制权。发送Stop Bit时,主机将SCL保持高电平,而SDA由低电平转为高电平。


七、IIC总线仲裁

当存在多个主机设备连接到I2C总线时,在某些情况下可能会发生总线仲裁。在I2C总线中,多主机的情况下,每个主机都有能力发送起始位和控制总线的访问。但是,只有一个主机可以完整地控制总线并发送数据,其他主机必须在等待状态。当多个主机同时尝试在总线上发送起始位和地址时,会发生仲裁。仲裁的原理如下:当一组主机(包括当前总线上的任何从机设备)同时检测到总线空闲,并尝试发送起始位和地址时,它们会同时开始传输。每个主机都会持续地监测总线上的数据位。如果发送的数据位与总线上的数据不一致(有冲突),则主机会立即停止发送,并将数据线拉低来生成一个应答(ACK)信号。这是一种仲裁信号,表示当前主机放弃总线控制权。接着,剩下的主机会继续发送数据,直到只有一个主机为止。这个主机会完整地控制总线并完成数据传输。通过仲裁机制,I2C总线上的多个主机设备可以在发生冲突时进行协调,并确保只有一个主机继续发送数据,从而避免了数据的冲突和错误。

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

    关注

    28

    文章

    737

    浏览量

    39746
  • IIC
    IIC
    +关注

    关注

    11

    文章

    285

    浏览量

    37806
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1346

    浏览量

    120828
收藏 人收藏

    评论

    相关推荐

    java面试笔试题大汇总

    java面试笔试题大汇总http://www.ibeifeng.com/read.php?tid=504&u=73481要想精通java必须看的经典书籍http://www.ibeifeng.com/read.php?tid=12314&u=73481
    发表于 12-20 21:22

    java面试笔试题大汇总

    java面试笔试题大汇总http://www.ibeifeng.com/read.php?tid=504&u=73481要想精通java必须看的经典书籍http://www.ibeifeng.com/read.php?tid=12314&u=73481
    发表于 12-25 20:24

    面试问题-难忘的面试经历

    是因为我在处理一个具体的技术问题时的方法有问题。稍后我会讨论我在那次面试时遇到的问题。这些年我看到了很多关于工程师面试问题的文章。有一些是棘手的智力问题,会让你感到极其困扰。其它一些是基本技能的考核
    发表于 09-21 09:41

    中兴的招聘面试问题你能答的上来吗?

    中兴招聘面试问题:有源晶振输出串个电阻做啥用?
    发表于 05-21 07:39

    程序员面试问题总结

    面试问题总结 20180516
    发表于 07-26 17:21

    嵌入式C面试问答题目有哪些

    嵌入式c语言面试 嵌入式C中的热门面试问答 (Top Interview Questions and Answers in Embedded C)1) What is an Embedded C
    发表于 12-15 06:12

    DSP CCS初学调试问汇总

    DSP CCS初学调试问汇总,又需要的下来看看。
    发表于 05-06 15:32 0次下载

    机器学习算法工程师面试问汇总

    ) n》=3; f(1) = 1; f(2) = 2; 面试官:如果不利用递归方式怎么做? 我:构建一个vector向量,[1, 2, 3, 5 。..] 当前数等于前两个数字的和。面试官:这样做空间复杂度
    的头像 发表于 03-22 14:33 3055次阅读

    Java面试问题如何给出100分回答详细课程说明

    本文档的主要内容详细介绍的是Java面试问题如何给出100分回答详细课程说明。
    发表于 03-20 08:00 3次下载
    Java<b class='flag-5'>面试问</b>题如何给出100分回答详细课程说明

    20个5G NR网优面试问答资料下载

    电子发烧友网为你提供20个5G NR网优面试问答资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-27 08:41 3次下载
    20个5G NR网优<b class='flag-5'>面试问</b>答资料下载

    IIC通信小OLED显示屏模块资料汇总

    IIC通信小OLED显示屏模块资料汇总
    发表于 05-20 15:38 81次下载

    中国移动面试问汇总下载

    中国移动面试问汇总下载
    发表于 05-21 10:20 0次下载

    华为 LTE 网络面试问汇总下载

    华为 LTE 网络面试问汇总下载
    发表于 05-21 10:05 0次下载

    OLED兼容SPI和IIC版本资料汇总下载

    OLED兼容SPI和IIC版本资料汇总下载
    发表于 08-12 14:17 0次下载

    汽车嵌入式软件面试问题整理

    最近面了几场试,整理一下面试问题。面试问题中有一些能在网上比较方便的找到答案,我就不写如何回答了,对于一些非固定答案的问题,我会写一写我的理解,供大家参考。一、RTOS1. μC/OS中的Timer
    发表于 12-07 21:06 4次下载
    汽车嵌入式软件<b class='flag-5'>面试问</b>题整理