I2C通信

借鉴:https://blog.csdn.net/qq_29344757/article/details/76520378

1. 物理层

        I2C通讯系统接线图如下:

    

        SCL总线:控制线

        SDA总线:数据线

        (1) 在I2C通讯总线上,可连接多个I2C通讯设备,支持多个通讯主机和多个通讯从机

        (2) I2C通讯只需要两条双向总线:串行数据线(SDA),串行时钟线(SCL)。数据线用于传输数据,时钟线用于同步数据收发

        (3) 每个连接到总线的设备都有一个独立的地址,主机正是利用该地址对设备进行访问

        (4) SDA和SCL总线都需要接上上拉电阻,当总线空闲时,两根线均为高电平。连接到总线上的任意器件输出低电平都会将总线信号拉低。即各器件的SDA和SCL都是线与的关系

        (5) 多个主机同时使用总线时,需要用仲裁方式决定哪个设备占用总线,不然数据将会产生冲突

        (6) 串行的8位双向数据传输位速率在标准模式下可达100kbps,快速模式下可达400kbps,高速模式下可达3.4Mbps(目前大多数I2C设备还不支持高速)

2. 协议层

        协议层规约了通讯的起始、停止信号,数据有效性、响应、冲裁同步、地址广播等。

        在SCL线为高电平期间,SDA线由高电平向低电平转换表是起始信号


2.1 通讯的起始信号/结束信号
        在SCL线为高电平期间,SDA线由低电平向高电平转换表是结束信号。


    起始/结束信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在结束信号产生后,总线就处于空闲状态。

需要注意的两点:

        (1) 接收器件接收到一个完整的数据字节后,可能需要完成一些其他工作,如处理内部接收中断服务函数等,这就无法立即接收下一字节的数据,这时接收器件可将SCL线拉成低电平,从而使得主机处于等待状态。直至接收器件准备好接收下一字节数据时再释放SCL线使之为高电平。

        (2) 连接到I2C总线上的器件,若具有I2C总线控制器那么很硬件会自动检测到起始、结束信号,而对于不具备I2C总线控制器的器件(单片机)来说,需要在每个时钟周期内保证对数据线SDA采样两次,捕获是否接收到起始/结束信号。

2.2 数据传输


        (1)通过每个设备上的地址,进行数据信号的处理。

         (2)结束由主机发送信号,若需要继续新的数据传输,则不产生结束信号,而是发送起始信号对另一从机地址寻址

         (3)写数据方向,主机-->从机,数据包为8位,等待从机应答信号(ACK),多字节,重复此操作,最后主机发送停止信号结束。

          (4)读数据方向,从机-->主机,数据包为8位,等待从机应答信号(ACK),多字节,重复此操作,若为NACK,则数据传输结束。

          (5)实际I2C通讯采用的是读写复合的格式。传输过程中主机需要发出2次起始信号:第一次传输主机通过从机地址找到从机设备,发送一段数据,这个数据是从设备内部寄存器或者存储器地址;第二次传输是对该地址进行读/写。主机要读取从机数据时,主机会释放对SDA总线的控制,由从机控制SDA总线,主机负责接收信号;主机要向从机设备写数据时,SDA由主机控制,从机负责接收信号。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容

  • IIC通信实验 IIC简介 I²C(Inter-Integrated Circuit)字面上的意思是集成电路之间,...
    btskyrmb阅读 1,924评论 0 2
  • 做单片机开发时UART,SPI和I2C都是我们最经常使用到的硬件接口,我收集了相关的具体材料对这三种接口进行了详细...
    梁睿坤阅读 68,008评论 7 31
  • 在使用单片机的过程中,I2C 通信可以说是最被广泛使用和采纳的协议之一,采用 I2C 协议可以占用更少的资源,链接...
    noparkinghere阅读 2,169评论 0 8
  • I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间...
    WB莫遥燚阅读 5,161评论 0 1
  • 先知先觉吃肉,后知后觉挨打 有一部分人总不知道自己的交易是怎么回事,糊里糊涂的就亏钱了,市场是透明的,只是你差了点...
    谷主新阅读 196评论 2 1