文章目录

  • I2C 调查
    • 标准I2C协议介绍
      • I2C时序介绍
        • 起始信号
        • 停止信号
        • 重启信号
        • 总线闲信号
        • 总线忙信号
        • 读写信号
        • 应答信号
        • 非应答信号
      • 标准I2C协议读写介绍
        • I2C写一个寄存器
        • I2C 读一个寄存器
        • I2C 连续写多个寄存器
        • I2C 连续读多个寄存器
      • I2C数据仲裁介绍

I2C 调查

标准I2C协议介绍

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的设备之间通信。I2C的两根线SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出,需通过上拉电阻接电源VCC,当总线空闲时,两根线都是高电平。

常见的硬件结构图(一个适配器,两根线,若干设备而已)

I2C时序介绍

起始信号

启动信号描述: SCL为高电平时,SDA由高电平变成了低电平

停止信号

停止信号描述:SCL为高电平时,SDA由低电平变成高电平

重启信号

在I2C总线启动了起始信号,并且未启动停止信号过程中,再次发送起始信号,那么这个信号也被称为重启信号

总线闲信号

当SDA和SCL都为高,此时主控制器和从设备都未对这两根线进行操作,仅由I2C的上拉电阻将这两根线拉高

总线忙信号

当主控制器发起了START信号时,到发起STOP信号期间,I2C总线都处于忙状态

读写信号

应答信号

一般情况下,主控制器或者从设备,谁读取到对方的发过来的数据,谁就需要发送应答信号,比如主控制器将数据发送给从设备,从设备接收到后,将在总线上回复应答信号

非应答信号

非应答信号出现有两种情况,一种是异常情况,比如主控制器发送的数据,从设备未回复应答信号,即认为回复的是非应答信号,那么说明在传输数据过程中出现了异常,比如设备地址未设置正常,又比如,在某些需要主设备额外给设备提供时钟的情况下,并没有提供时钟,即从设备未能正常工作,都会认为从设备回复的是NCK。

还有一种是正常情况,即当主控制器接收到了从设备发送的数据后,主控制器主动发送NCK,来告诉从设备,已经成功读取到了数据,不再继续读取数据了。

标准I2C协议读写介绍

I2C写一个寄存器

  • 整体流程如下

  • 抓包分析如下

    从设备地址为0x34,寄存器地址为0x01,写入的值为0x04

I2C 读一个寄存器

读从设备地址为0x34,寄存器地址为0x01的值

  1. 发送START信号
  2. 发送设备地址+写命令(0x34+Write), 等待设备回复ACK
  3. 写入即将要读的设备的寄存器地址(0x01),等待设备回复ACK
  4. 发送STOP信号
  5. 发送START信号(步骤4, 5其实可以合并为一个操作,即重启信号)
  6. 发送设备地址+读命令(0x34+Rread),等待设备回复ACK
  7. 读取设备回复的寄存器的值(0x04),主控制器发送NCK(高电平),告知设备结束接受数据,再发送STOP信号,停止当次传输

I2C 连续写多个寄存器

标准的I2C支持连续写多个I2C寄存器,需要I2C控制器和I2C从设备都需要支持该标准时,才真正有这个特性。

通过I2C,连续写入n个数据,从设备的某一个基地址(连续,依次写入,硬件一般会自动递增寄存器地址)

I2C 连续读多个寄存器

标准的I2C支持连读读错了I2C寄存器,需要I2C控制器和I2C从设备支持该标准时,才真正有这个特性。

通过I2C,连续读n个数据,从设备的某一个基地址(连续,依次读出,硬件一般会自动递增寄存器地址)

I2C数据仲裁介绍

一般只有在I2C总线系统中同时存在2个I2C住设备时,才会出现总线仲裁失败的问题。

参考链接: I2C总线的仲裁机制

I2C 协议抓包,学习,总结相关推荐

  1. ICMP协议抓包分析-wireshark

    ICMP协议抓包分析-wireshark ICMP- (Internet Control Message Protocol,网际报文协议)是Internet协议族的核心协议之一,也可称为是网际控制报文 ...

  2. Wireshark数据抓包分析(网络协议篇)第1章网络协议抓包概述

    Wireshark数据抓包分析(网络协议篇)第1章网络协议抓包概述 网络协议是用于不同计算机之间进行网络通信的.网络协议是网络上所有设备(如网络服务器.计算机.交换机.路由器等)之间通信规则的集合,它 ...

  3. TCP协议抓包分析 -- wireshark

    TCP协议抓包分析 – wireshark TCP- (Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于IP的传输层协议.它的主要目的就是为数据 ...

  4. UDP协议抓包分析 -- wireshark

    UDP协议抓包分析 – wireshark UDP是User Datagram Protocol用户数据报协议的简称.他是OSI七层模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务 ...

  5. ARP协议抓包分析 -- wireshark

    ARP协议抓包分析 – wireshark ARP- Address Resolution Protocol协议,即地址解析协议.该协议功能就是将IP地址解析成MAC地址. 在发送数据的时候,只知道目 ...

  6. http抓包实战 pdf_网络协议HTTP 协议(抓包实战和网络分层)

    这篇文章主要介绍一下 Wireshark 抓包工具获取到的 HTTP协议 相关的数据,然后对这些数据进行简单的分析,主要目的是更深入的理解 HTTP协议,然后了解一下网络为什么要分层, OSI模型和T ...

  7. charles抓包工具_HTTP协议抓包工具:Charles for Mac

    Charles mac版对于开发者来说应该都不会陌生,这是一款非常实用的HTTP信息抓包工具,可以帮助开发人员查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量,让你可以快速诊 ...

  8. 第二课、《抓包学习——美团评论》

    文章目录 第二课.<抓包学习--美团评论> 1.准备工作 2.分析网页 1.选择爬取对象 2.分析链接 3.抓取网页 1.抓包步骤 2.查看数据包并解析 3.爬取链接 4.筛选信息 1.更 ...

  9. 全栈-协议-抓包-脚本-编程开发

    知识内容涉及: 全栈开发(前端:js.css.html)(后端开发:java.php) 协议(http协议) 抓包(手机.电脑http协议抓包) 手机.PC端脚本开发 我的公众号"潮酷科技& ...

最新文章

  1. 「面试必备」常见Java面试题大综合 马云见了都点赞
  2. java常用容器(集合)的总结
  3. C语言中链表的英文名字,数据结构C语言版 循环链表表示和实现(国外英文).doc
  4. 少儿编程语言python-青少儿编程语言Python的学习紧迫性
  5. ExtJS 动态增加与删除items,动态设置textField可见与否
  6. java的知识点27——lambda推导
  7. 选择嵌套_Python if语句嵌套(入门必读)
  8. 前端学习(1887)vue之电商管理系统电商系统之通过路由的形式显示用户列表
  9. 求1e11以内的素数
  10. windows phone 如何获得手机的分辨率
  11. python全栈 操作系统
  12. T-SQL笔记1:SELECT及SELECT高级应用
  13. 3.7-10设计一个算法,采用分治法求一个整数序列中的最大最小元素
  14. NIPS历年论文 NIPS2020论文集
  15. 小米wifi设置access_小米帐号的开放API
  16. mysql cluster 分片_MySQL Cluster --01
  17. 黑马程序员pink老师Javascript语法基础 | 总结
  18. PRN(20210421):Task-Free Continual Learning
  19. teambition桌面客户端的妙用(绝密)
  20. matlab画图时特殊符号的输入

热门文章

  1. Linux入门八:Linux的其他文本工具:echo,cat,tail,grep;
  2. php怎么切取部分歌曲,怎样把一首歌只留后半部分的副歌 怎么截取歌曲副歌部分...
  3. Mr.Alright---安卓Q Google日历选择提示音报错的解决及解决后的思考
  4. 单片机(AT89C51)按钮控制LED灯实现流水灯,闪烁流水灯
  5. cstringw转lpctstr_CString 强制类型转换为 LPCTSTR
  6. 第五节:文本样式、字体样式
  7. 学习Coq笔记(一):Windows下安装Coq
  8. 蓝牙串口通信java_Java程序与串口通信的实现及通信原码-全网最详细,一步一步教会...
  9. Unity3dRPG 相机跟随player旋转_人物头部和眼睛实现跟随目标转动的轻量级IK实践...
  10. 美和易思·湖南生机职院校企共建专业技能抽查标准认证会成功召开