初步了解I2C

原创 2018年04月17日 18:37:38

最近发现嵌入式的面试经常会被问到I2C协议,所以今天好好的学习总结下。目前I2C几乎所有芯片都留有I2C接口,也那怪这么多面试会被问到。下面我们下来了解一波I2C的硬件结构,如下图所示:


I2C的硬件结构包含两根线一根是数据线(SDA)和一根时钟线(SCL)外部上拉,采取一主多从的模式:一台主机与多个从设备相连,那么怎么将数据发送/接收到指定的主机/从机的呢?我们再来看两张图:

start

从机地址/方向

回应

数据1

回应

数据2

回应

……….

P停止位

上图黑色为主机发送,红色为从机发送

首先需要主机发送开始信号(START)I2C规定只有在时钟线为低电平期间允许数据线变化,如果在时钟线为高电平期间数据线产生下降沿信号即为通讯开始标志。接下来主机会发送七位从机地址和一位的读写信号,若对应的从机地址存在,时钟线的控制权交给从机,从机确认可以接收后会发送第九位的ASK回应信号表示已经成功接收,接下来主机会一直发送八位数据然后等待从机回应去人接受,当主机觉得发送内容已完成会主动在时钟线为高电平期间产生一个上升沿信号给数据线表示通讯结束。以上为主机发送从机接收,接下来我们来看看从机发送主机接受的模式。

start

从机地址/方向

回应

数据1

回应

数据2

回应

……….

P停止位

与上面相似也是现有主机发出开始信号,然后发送从机地址和一位读信号,从机回应一位确认信号后,不同的地方开始了,接下来是从机控制时钟线向主机发送数据,然后主机接收到会有一位的回应信号,接下来就这样一直循环读取,直到主机觉得数据接收完成以后发送停止信号停止接收。


初步了解大数据概念

大数据的全局概念以及国内的一些细分的应用。
  • qq_26270367
  • qq_26270367
  • 2016-07-02 14:39:12
  • 367

初步了解Ajax

以下参考部分菜鸟驿站以及W3school Ajax是一种让网页的响应更快的技术,因为它允许异步地向服务器发送请求,而不需要重新载入页面,使用Ajax来提升用户体验。 Ajax=Asynchronous...
  • sinat_36841379
  • sinat_36841379
  • 2017-03-10 22:02:19
  • 141

浅谈HTML的初步了解

         第一次涉及到网页相关制作相关内容的话,可能第一个接触到的都会是html,之所以如此,是因为所有网络编程说白了呈现在客户面前的就是网页,不论在过程中服务器如何如何编译处理,最终浏览器获...
  • saitxw
  • saitxw
  • 2010-06-23 17:20:00
  • 374

Java的整体认识--类的初步理解和第一个Java程序

关于Java类的整体认识    在Java语言中,程序是由类(Class) 构建而成的。我们可以根据某个类的定义创建出任意数量的类实例对象 。类这好比一个模板,我们可以根据这一模板,创建出任意数量的实...
  • shenlei19911210
  • shenlei19911210
  • 2015-09-23 18:03:51
  • 633

【第一天】初步接触jQuery

博主最近在学习《锋利的jQuery》,本来是在有道云那里做笔记,发现页面加载速度实在不敢恭维,体验太差,就换阵地了。本系列Blog只是做笔记用,大致整理知识点,人懒不写全概念,所以几乎没有参考价值。 ...
  • u010795441
  • u010795441
  • 2016-02-12 22:34:07
  • 91

java初步了解

java有开源、免费、跨平台三个特点,有javaSE(标准版)、javaEE(企业版)、javaME(小型版)三个体系结构,有JDK、JRE、JVM三个概念。...
  • wangfeng03
  • wangfeng03
  • 2016-05-19 21:50:00
  • 51

STL学习使用指南

初识STL!感受到了它的强大!C++中最让人激动的东西! STL技术文章不完全列表(STL学习使用指南) 1 STL入门教程: 2 STL 容器: ...
  • wdx65000971
  • wdx65000971
  • 2007-10-27 13:59:00
  • 421

机器学习——初步了解

机器学习是什么 计算机利用已有的数据,得出某种模型,并利用此模型预测未来。 机器学习的主要目的就是把人的思考归纳经验转化为计算机通过对数据的处理计算得出模型的过程。像人的方式一样解决各种复杂灵活的...
  • u013317445
  • u013317445
  • 2015-11-22 12:46:22
  • 269

activiti简单入门了解

  • 2017年10月11日 16:22
  • 12.02MB
  • 下载

OC基础—语法概述(初步了解Objective-C)

Objective-C语法概述 Ob
  • ly307637627
  • ly307637627
  • 2014-04-23 16:37:07
  • 943
收藏助手
不良信息举报
您举报文章:初步了解I2C
举报原因:
原因补充:

(最多只允许输入30个字)