首页 > 其他分享 >【嵌入式面经专题】4-IIC协议

【嵌入式面经专题】4-IIC协议

时间:2023-07-19 09:44:37浏览次数:37  
标签:主机 应答 面经 总线 嵌入式 发送 从机 SDA IIC

1. 概述

I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。

2. 物理层
只要求两条总线线路,一条是串行数据线SDA,一条是串行时钟线SCL。(IIC是半双工,而不是全双工)。
每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。
IIC是真正的多主机总线,(区别于SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。
传输速率在标准模式下可以达到100kb/s,快速模式下可以达到400kb/s。
连接到总线的IC数量只是受到总线的最大负载电容400pf限制。
3. 协议层
开始条件:SCL高电平,SDA由高变低
停止条件:SCL高电平,SDA由低变高
总线空闲态:SDA为高电平(没有设备发送开始条件)
应答信号:接受数据的IC在接受到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

I2C 时序:

写:(一种普遍的版本,对于具体的外设有所不同)
1.主机发送开始条件
2.发送从机地址(7位 )+ 写(0)
3.从机会产生一个应答信号(一个CLK下,把SDA拉低)
4.主机得到应答信号,发送8位数据。
5.从机会产生一个应答信号
6.重复 4.5 过程,直到主机发送停止条件

读:(一种普遍的版本,对于具体的外设有所不同)
1.主机发送开始条件
2.发送从机地址(7位)+读(1)
3.从机会产生一个应答信号(一个CLK下,SDA拉低)
4.从机给主机发送8位数据
5.主机给从机发送应答
6.从机得到应答,接着发送8位数据。
7.重复5.6过程,直到主机不发送应答信号和产生停止信号

 

标签:主机,应答,面经,总线,嵌入式,发送,从机,SDA,IIC
From: https://www.cnblogs.com/FBsharl/p/17564723.html

相关文章

  • 【后端面经-Java】JVM内存分区详解
    @目录1.JVM内存分区简介2.JVM栈3.JVM堆4.JVM方法区5.JVM内存分配实例面试模拟参考资料1.JVM内存分区简介JVM内存分区如图所示:主要有如下几个区域:栈(Stack)堆(Heap)方法区(MethodArea)程序计数器(PC)本地方法栈(NativeMethodStack)其中,程序计数器用于存储线程当前执行的......
  • IIC协议 -2
    1.硬件连接I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻,用来提高驱动能力,如果没有上拉电阻,可能会造成输出电压不够 2.传输数据类比怎么通过I2C传输数据,我们需要把数据从主设备发送到从设备上去,也需要把......
  • IIC基本介绍-1
    1.I2C硬件框架  在一个芯片(SoC)内部,有一个或多个I2C控制器在一个I2C控制器上,可以连接一个或多个I2C设备I2C总线只需要2条线:时钟线SCL、数据线SDA在I2C总线的SCL、SDA线上,都有上拉电阻 2.I2C软件框架 以I2C接口的存储设备AT24C02为例:APP:提出要......
  • 魔门塔实习面经
    魔门塔一面二面1.从一个用户需求的产生到最终的交付上线,有哪些人员和角色参与呢。2.不管是技术还是技术之外,你相较于其他人的优点。3.用Python做过什么,pytorch框架和其他的有什么差异性。4.Java线程池,核心线程数起的作用。5.什么情况下拒绝策略永远不会生效。6.你实际用过......
  • 用 Qt 给嵌入式Linux加个桌面
    原文:https://www.linuxprobe.com/qt-add-desktop.html1.创建QML应用在QtCreator依次点击:->File->NewFileorProject->Applications->QtQuickApplication然后一路点击next直到finish。2.解析配置文件Linux 系统里安装过的应用,都会在/usr/share/applic......
  • 记录从软件测试转行嵌入式的心路历程
    2023.07.15AnotherordinaryweekendAsusual,orratherlikethepasttwentyyearsoflifeAfteraweekofconfusion,Ihavedecidedtostudyhardthisweekend.Butmostofthetime,thetwodayswerespentplaying.(Someforeignreadersmayfeelconfused......
  • 《安富莱嵌入式周报》第317期:开源60W小型UPS电源,0.1Hz - 200MHz 频率计,纯C实现的Sokol
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104  视频版:https://www.bilibili.com/video/BV1Mx4y1o7Ns 1、开源60W小型UPS电源参考设计https://github.com/TobleMiner/DC-UPShttps://github.com/TobleMiner/dc-ups-......
  • 比亚迪车载Android开发岗三面经历
    前言首先,我想说一下我为什么会想去比亚迪这样的车企做车载Android开发。我是一名有5年经验的Android开发工程师,之前一直在互联网软件公司工作,做过移动端App和IoT产品的开发。但我一直对汽车领域很感兴趣,也希望自己的技术能应用到更广泛的领域。于是,当我看到比亚迪有开发车载Android......
  • IIC协议介绍
    (1)CSDN学习参考资料1.什么是I2C?I2C全拼InterIntegratedCircuit,简称IIC或I2C,是由Philips公司开发的两线时串行总线,用于SOC与外设的连接通讯,它只需要两根线就能实现I2C的通讯,采用主从模式,主的一方可以读写数据,而从的一方只能等待被读写。从的一方没有主动权。I2C是双向通讯的,由......
  • 嵌入式数据库简介
    什么是嵌入式数据库?嵌入式数据库主要有两种定义:用于嵌入式系统(如移动设备或消费电子产品)的数据库。嵌入式数据库需要占用空间小,并在内存和CPU能力有限的环境中提供足够的性能。嵌入到应用程序中的数据库--这意味着应用程序不与数据库服务器通信,而是内置数据库组件。这种类型的......