为了快速的了解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. 自然语言23_Text Classification with NLTK

    QQ:231469242 欢迎喜欢nltk朋友交流 https://www.pythonprogramming.net/text-classification-nltk-tutorial/?compl ...

  2. Java——新IO 通道

    import java.io.File; import java.io.FileOutputStream; import java.nio.ByteBuffer; import java.nio.ch ...

  3. Java——IP和InetAddress

    import java.net.InetAddress; //================================================= // File Name : Inet ...

  4. Linux 命令小记

    1. pidof 进程名 :获取进程的pid,例如 pidof memcached 得到5333 2. unset Shell变量 :取消设置一个shell变量,从内存和shell的导出环境中删除它, ...

  5. javac 及 java命令的使用问题(错误或无法加载主类)

    一.问题 使用 javac 命令编译完.java源文件后,用 java 命令运行.class文件时,通常会遇到如下或类似的问题: 错误: 找不到或无法加载主类 HelloWorld.class 二.解 ...

  6. 11 Clever Methods of Overfitting and how to avoid them

    11 Clever Methods of Overfitting and how to avoid them Overfitting is the bane of Data Science in th ...

  7. array_map与array_column之间的关系

    /*|----------------------------------------------------------|array_map();将回调函数作用到给定数组的单元上|array_col ...

  8. Java备份约9亿条数据

    需求:有一张表9亿多条数据,数据加索引总数据量61GB.考虑到这张表的大部分数据都不会再被使用并且大数据量可能影响整库的性能,所以决定将表里某一个时刻之前的数据备份到一张新表中,待备份完成后将旧表中已 ...

  9. YII2项目常用技能知识总结

    1.不通过日志获取AR执行的原生SQL语句和打印变量数据 $query = User::find() ->select(['username'])->where(['id'=>[1, ...

  10. [Html5]sessionStorage和localStorage常见操作

    摘要 [Html5]sessionStorage和localStorage的区别 索引 上篇文章简单介绍了它们的区别,已经常见的用法.那我们能通过. 或者类似dic[key]的方式访问吗?答案是当然可 ...