I2C总线通信——时序/示波器分析
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总线通信——时序/示波器分析相关推荐
- I2C总线信号时序总结
I2C总线信号时序总结 总线空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态.此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电 ...
- linux i2c 总线驱动编写及分析笔记
1.写i2c控制器驱动即是写i2c_adapter或者i2c_bus驱动, 写这个驱动属于对i2c control的硬件操作驱动,必须要将芯片手册的关于i2c control的硬件启动流程仔细研读 ...
- IIC/I2C总线实验
1.I2C总线相关概念的介绍 1> I2C总线是PHLIPS公司在八十年代初推出的一种同步串行的半双工总线,主要用于连接整体电路. 2> I2C总线为两线制,只有两根双向信号线.一根是数据 ...
- 总线协议之I2C总线时序
路漫漫其修远兮,吾将上下而求索 I2C总线时序 http://hi.baidu.com/yangfengyuk/blog/item/16e586fa52fd211f6d22ebfe.html/cmti ...
- I2C详解(4) I2C总线的规范以及用户手册(3) I2C电气规格和时序
I2C详解(4) I2C总线的规范以及用户手册(3) I2C电气规格和时序 I2C详解(1) 一文快速了解I2C的工作原理 I2C详解(2) I2C总线的规范以及用户手册(1) I2C 总线协议 I2 ...
- I2C 总线原理与架构
一.I2C总线原理 I2C是一种常用的串行总线,由串行数据线SDA 和串行时钟线SCL组成.I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须 ...
- arm linux i2c 总线驱动,ARM-Linux中I2C总线驱动开发
摘 要: 针对I2C总线的特点,Linux内核中定义了I2C驱动体系结构.在分析Linux的I2C总线驱动体系结构基础上,介绍了在S3C2410中设计I2C总线驱动的方法. 关键词: ARM-Lin ...
- Linux设备驱动之——I2C总线
2 I2C子系统 2.1 LinuxI2C子系统架构 在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统. 2.2 三大组成部分 1.I2C核心(i2c-core) I2C核 ...
- I2C详解(3) I2C总线的规范以及用户手册(2) I2C其他的总线协议以及总线速度
I2C详解(3) I2C总线的规范以及用户手册(2) I2C 其他的总线协议以及总线速度 I2C详解(1) 一文快速了解I2C的工作原理 I2C详解(2) I2C总线的规范以及用户手册(1) I2C ...
最新文章
- 面试官:你都工作3年了,连选择排序法都不会,我怎么能选择你
- Java面向对象知识点精华
- Cisco Catalyst交换机密码恢复策略
- C++ int,float,double,long表示范围
- 广西大学计算机科学与技术中法,广西大学
- iOS开发-动画总结
- 获取C#中方法的执行时间及其代码注入
- 为什么我要选择erlang+go进行server架构(2)
- Visual C++编程中的文件操作
- 让打开文件夹直接在某路径打开
- Python中替换元素
- C++自学笔记(3)
- java 计算器 junit测试_Java—Junit单元测试
- 自定义httpSession
- GD32 MCU USB开发学习记录
- 35岁以后的Android程序员出路在哪里?大牛最佳总结
- 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有鼠标怎么办
- js绘制菱形(空心和实心)
- case class 和 class的区别
- java中什么是接口代码详解