I2C总线通信——时序/示波器分析

通信概述

  • I2C是一种芯片间的双向数据传输协议。
  • 只需要2根信号线:SCL:串行时钟线;SDA:串行数据线。

时序分析

这里以TM4C123GXL核心板及DY-Tiva-PB 扩展板板上的TMP75数字温度传感器之间的I2C通讯为例,如下图:

总体预览

  • 理论:
    ------------------------------------ 图1.针对读取字格式的两线制时序 --------------------------------------------
  • 实际:
    黄色为SDA,绿色为SCL。

局部分析

Frame 1和Frame 2


在SCL脉冲为1时,读取SDA信号。

通讯开始与结束标志

必须满足下图信号形式:

SDA信号分析
接收设备地址 读/写 标识符 应答位 TMP75内的寄存器位 应答位
1001 000 0 0 000000 00 0
  • 接收设备地址:这是I2C联盟分配的地址。

  • 读/写 标识位:1为读;0位写。

  • 应答位:进行I2C通信时要求每发送8位信号后,接受信号一方必须给出1个应答信号,0表示数据传输正常。

  • TMP75内的寄存器位:前6位000000是固定的,最后两位P1 P0按照表1给出。


-------------------------------------------------- 表1.TMP75的指针地址 --------------------------------------------------

================================ 我是分界线 ==================================

Frame 3和Frame 4


SDA信号分析
接收设备地址 读/写 标识符 应答位 数据位 应答位
1001 000 1 0 0010 1000 0
  • 接收设备地址:这是I2C联盟分配的地址。

  • 读/写 标识位:1为读;0位写。

  • 应答位:进行I2C通信时要求每发送8位信号后,接受信号一方必须给出1个应答信号,0表示数据传输正常。

  • 数据位:通信中真正需要传输的数据内容。

  • 可以看到,在同一设备连续传输数据时,传完8位数据后,数据传输并不结束,SCL和SDA都维持在0,等下一个数据位(Frame 5)。

================================ 我是分界线 ==================================

Frame 5


SDA信号分析
数据位 应答位
0000 0000 1
  • 应答位为1,传输出现异常??后面通信结束。

================================ 我是分界线 =================================

我是Jesse-zwj,厦门大学本科生一枚,以上是我的日常学习心得
欢迎大家在评论区留言交流

I2C总线通信——时序/示波器分析相关推荐

  1. I2C总线信号时序总结

    I2C总线信号时序总结 总线空闲状态  I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态.此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电 ...

  2. linux i2c 总线驱动编写及分析笔记

    1.写i2c控制器驱动即是写i2c_adapter或者i2c_bus驱动,   写这个驱动属于对i2c control的硬件操作驱动,必须要将芯片手册的关于i2c control的硬件启动流程仔细研读 ...

  3. IIC/I2C总线实验

    1.I2C总线相关概念的介绍 1> I2C总线是PHLIPS公司在八十年代初推出的一种同步串行的半双工总线,主要用于连接整体电路. 2> I2C总线为两线制,只有两根双向信号线.一根是数据 ...

  4. 总线协议之I2C总线时序

    路漫漫其修远兮,吾将上下而求索 I2C总线时序 http://hi.baidu.com/yangfengyuk/blog/item/16e586fa52fd211f6d22ebfe.html/cmti ...

  5. I2C详解(4) I2C总线的规范以及用户手册(3) I2C电气规格和时序

    I2C详解(4) I2C总线的规范以及用户手册(3) I2C电气规格和时序 I2C详解(1) 一文快速了解I2C的工作原理 I2C详解(2) I2C总线的规范以及用户手册(1) I2C 总线协议 I2 ...

  6. I2C 总线原理与架构

    一.I2C总线原理 I2C是一种常用的串行总线,由串行数据线SDA 和串行时钟线SCL组成.I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须 ...

  7. arm linux i2c 总线驱动,ARM-Linux中I2C总线驱动开发

    摘  要: 针对I2C总线的特点,Linux内核中定义了I2C驱动体系结构.在分析Linux的I2C总线驱动体系结构基础上,介绍了在S3C2410中设计I2C总线驱动的方法. 关键词: ARM-Lin ...

  8. Linux设备驱动之——I2C总线

    2  I2C子系统 2.1 LinuxI2C子系统架构 在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统. 2.2 三大组成部分 1.I2C核心(i2c-core) I2C核 ...

  9. I2C详解(3) I2C总线的规范以及用户手册(2) I2C其他的总线协议以及总线速度

    I2C详解(3) I2C总线的规范以及用户手册(2) I2C 其他的总线协议以及总线速度 I2C详解(1) 一文快速了解I2C的工作原理 I2C详解(2) I2C总线的规范以及用户手册(1) I2C ...

最新文章

  1. 面试官:你都工作3年了,连选择排序法都不会,我怎么能选择你
  2. Java面向对象知识点精华
  3. Cisco Catalyst交换机密码恢复策略
  4. C++ int,float,double,long表示范围
  5. 广西大学计算机科学与技术中法,广西大学
  6. iOS开发-动画总结
  7. 获取C#中方法的执行时间及其代码注入
  8. 为什么我要选择erlang+go进行server架构(2)
  9. Visual C++编程中的文件操作
  10. 让打开文件夹直接在某路径打开
  11. Python中替换元素
  12. C++自学笔记(3)
  13. java 计算器 junit测试_Java—Junit单元测试
  14. 自定义httpSession
  15. GD32 MCU USB开发学习记录
  16. 35岁以后的Android程序员出路在哪里?大牛最佳总结
  17. 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有鼠标怎么办
  18. js绘制菱形(空心和实心)
  19. case class 和 class的区别
  20. java中什么是接口代码详解

热门文章

  1. 小矩形覆盖大矩形问题
  2. 秒杀三星、吊打华为:苹果是如何在芯片技术上做到一骑绝尘的?
  3. 2012.5.25微博热报——面试程序员的方法、敏捷转型
  4. excel中比例怎么变为N:1这样的格式
  5. 我,程序员,在北京月薪2.1万,晒出真实花销和房贷,压力大
  6. S32DS的图标大全
  7. 自动驾驶决策控制及运动规划史上最详细最接地气总览现状!
  8. jquery 点击元素以外任意地方隐藏该元素的方法
  9. 【电商数仓】数仓搭建之DIM维度层(商品、优惠券、活动、地区、时间维度表)
  10. 全志A83T android4.4 系统中屏蔽wifi与蓝牙