为了快速的了解I2C总线协议,此处采用另类的方式进行说明。

倘若你和另外一个人只能通过一个开关加灯泡的装置在不同的两个房间进行交流,以下是很简单能说明的一个模型:

  • 你的房间有一个开关,另外一间房间有一个灯泡。你们可以有一千种方法进行对话,前提是你们得商量好怎么表达意思。

以上,只是你给它说话,那如何才能让你接受消息呢?以下是一种思路:

  • 将增加上面同样的装置,只不过灯泡现在在你的房间。

那么,如何才能传递信息?莫尔斯编码?貌似只能表示英文。如果你们每人抱有一本<>,传递的信息为:页码,行,第几个字。这种数据是否更快一点。只是一堆数字而已。

【未完待续】

那么什么是I2C总线?实际上就是两根线。

  • 一根叫时钟线(串行)SCL
  • 另外一根叫数据线(串行)SDA

那这两更线有上面用?

两根线能玩出上面花样?无非就是以下的几种:

  • 以稳定态来参照:
  1. SCL:H,SDA:H
  2. SCL:H,SDA:L
  3. SCL:L,SDA:H
  4. SCL:L,SDA:L
  • 以动态为参考:
    1.当SCL=H时
    SDA:H->L
    SDA:L->H
    2.当SCL=L时
    SDA:H->L
    SDA:L->H
    3.当SDA=H时
    SCL:H->L
    SCL:L->H
    4.当SDA=L时
    SCL:H->L
    SCL:L->H

这种有别与莫尔斯编码需要靠时间长短,点化来区分的编码,无非就是以上几种状态。经过这几种状态,来熟悉一下 ,在I2C bus中是如何定义的。

I2C总线协议的简要说明的更多相关文章

  1. [I2C]I2C总线协议图解

    转自:http://blog.csdn.net/w89436838/article/details/38660631 1  I2C总线物理拓扑结构      I2C 总线在物理连接上非常简单,分别由S ...

  2. I2C总线协议的总结介绍

    在看天翔哥的视频之后,他强调要把I2C协议好好研究一下,那么就对一些基本的通信手段是十分有帮助的..那么就来了解一下I2C总线协议的一些知识吧. I2C(Inter-Integrated Circui ...

  3. I2C总线协议的软件模拟实现方法

    I2C总线协议的软件模拟实现方法 在上一篇博客中已经讲过I2C总线通信协议,本文讲述I2C总线协议的软件模拟实现方法. 1. 简述 所谓的I2C总线协议的软件模拟实现方法,就是用软件控制GPIO的输入 ...

  4. I2C总线协议图解(转载)

    转自:http://blog.csdn.net/w89436838/article/details/38660631 另外,https://blog.csdn.net/qq_38410730/arti ...

  5. I2C 总线协议

    1.I2C协议     2条双向串行线,一条数据线SDA,一条时钟线SCL.   SDA传输数据是大端传输,每次传输8bit,即一字节.   支持多主控(multimastering),任何时间点只能 ...

  6. 【转】I2C总线协议

    I2C总线(Inter Integrated-Circuit)是由PHILIPS公司在上世纪80年代发明的一种电路板级串行总线标准,通过两根信号线——时钟线SCL和数据线SDA——即可完成主从机的单工 ...

  7. I2C总线协议

     1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL.   SDA传输数据是大端传输,每次传输8bit,即一字节.   支持多主控(multimastering),任何时间点只能有 ...

  8. I2C总线协议学习笔记 (转载)

    1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL.   SDA传输数据是大端传输,每次传输8bit,即一字节.   支持多主控(multimastering),任何时间点只能有一 ...

  9. I2C总线协议详解

    I2C总线定义     I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线产生于在80年代,最初为音 ...

随机推荐

  1. Python学习笔记——文件写入和读取

    1.文件写入 #coding:utf-8 #!/usr/bin/env python 'makeTextPyhton.py -- create text file' import os ls = os ...

  2. Linux下htop的使用

    linux top命令VIRT,RES,SHR,DATA的含义 第1行-第4行:显示CPU当前的运行负载,有几核就有几行,我的是4核 Mem:显示内存的使用情况,3887M大概是3.8G,此时的Mem ...

  3. ViewController respondsToSelector:]: message sent to deallocated instance

    今天突然遇到这个问题,其实昨天下班的时候就已经有这个问题了, 就是先进入一个画页,然后再快速离开这个画页再进入其他画页就出现这个错误 了 找了好久也没有找出问题来,一开始以为是网络任务没有cancel ...

  4. php字符串常用算法--字符串加密解密

    /** * 加密.解密字符串 * * @global string $db_hash * @global array $pwServer * @param $string 待处理字符串 * @para ...

  5. 表达式拼接Expression<Func<IEntityMapper, bool>> predicate

    /// <summary> /// 重写以筛选出当前上下文的实体映射信息 /// </summary> protected override IEnumerable<IE ...

  6. Pycharm 使用

    Pycharm基本使用http://edu.51cto.com/index.php?do=lession&id=118722   Pycharm的基本使用 在Pycharm下为你的Python ...

  7. Mongodb的Samus驱动

    最近开始学习Mongodb方面的东西.. 看到有很多博主都说MongoDB的第三方驱动 Samus 对Linq的支持比较好..能够降低学习的成本..所以就想从这里开始.. 但是弊端在我学习了一半的时候 ...

  8. 注册Com组件..

    开发一些第三方的接口或者功能时..有时会需要接入对方提供Com组件..是一个dll文件.. 这个文件会在你的程序中引用.. 比如一个CMBChina.dll文件..这是招商银行的支付开发时必备的.. ...

  9. eclipse将引用了第三方jar包的java项目打成jar包

    今天用java开发了一个项目,想要打成jar包,并在linux环境下运行.但是运行时引用的第三方jar包却显示classNotFind错误. 于是查了一下解决办法,在此贴出来,方便以后查阅. 用Ecl ...

  10. php分页代码简单实现

    版权声明:本文为博主原创文章,未经博主允许不得转载. 数据库操作类代码:mysqli.func.php <?php // 数据库连接常量 define('DB_HOST', 'localhost ...