#IIC 通信协议

news2024/9/17 8:27:44

IIC简介

I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的

物理层

在这里插入图片描述
它的物理层有如下特点:
(1) 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。
(2) 一个 I2C 总线只使用两条总线线路,一条双向串行数据线 (SDA) ,一条串行时钟线 (SCL)。数据线即用来表示数据,时钟线用于数据收发同步。
(3) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。
(4) 总线通过上拉电阻接到电源。当== I2C 设备空闲时,会输出高阻态==,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平
(5) 多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线
(6) 具有三种传输模式:标准模式传输速率为== 100kbit/s== ,快速模式为 400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多 I2C 设备尚不支持高速模式。
(7) 连接到相同总线的 IC 数量受到总线的最大电容== 400pF== 限制。

协议层

I2C 的协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

起始信号产生后,所有从机就开始等待主机紧接下来广播的从机地址信号(SLAVE_ADDRESS)。在I2C 总线上,每个设备的地址都是唯一的,当主机广播的地址与某个设备地址相同时,这个设备就被选中了,没被选中的设备将会忽略之后的数据信号。根据 I2C 协议,这个从机地址可以是 7位或 10 位
在地址位之后,是传输方向的选择位该位为== 0== 时,表示后面的数据传输方向是由主机传输至从机,即主机向从机写数据。该位为 1 时,则相反,即主机由从机读数据
从机接收到匹配的地址后,主机或从机会返回一===个应答 (ACK) 或非应答 (NACK) 信号,只有接收到应答信号后,主机才能继续发送或接收数据

写数据

若配置的方向传输位为==“写数据==”方向,即第一幅图的情况,广播完地址,接收到应答信号后,主机开始正式向从机传输数据 (DATA),数据包的大小为 8 位,主机每发送完一个字节数据,都要等待从机的应答信号 (ACK),重复这个过程,可以向从机传输 N 个数据,这个== N 没有大小限制==。当数据传输结束时,主机向从机发送一个停止传输信号 §,表示不再传输数据。

读数据

若配置的方向传输位为“读数据”方向,即第二幅图的情况,广播完地址,接收到应答信号后,
从机开始向主机返回数据 (DATA),数据包大小也为 8 位,从机每发送完一个数据,都会等待主
机的应答信号 (ACK),重复这个过程,可以返回 N 个数据,这个 N 也没有大小限制。当主机希望停止接收数据时,就向从机返回一个非应答信号 (NACK),则从机自动停止数据传输。但是还是得有停止信号

读和写数据

除了基本的读写,I2C 通讯更常用的是复合格式,即第三幅图的情况,该传输过程有两次起始信号 (S)。一般在第一次传输中,主机通过 SLAVE_ADDRESS 寻找到从设备后,发送一段“数据”,这段数据通常用于表示从设备内部的寄存器或存储器地址 (注意区分它与 SLAVE_ADDRESS 的区别);在第二次的传输中,对该地址的内容进行读或写。也就是说,第一次通讯是告诉从机读写地址,第二次则是读写的实际内容

起始信号

当 SCL 线是高电平时 SDA线从高电平向低电平切换

停止信号

当 SCL 线是高电平时 SDA线从低电平向高电平切换
在这里插入图片描述

数据有效性

SCL 高数据有效,SCL低数据交换
在这里插入图片描述

ACK NACK

I2C 的数据和地址传输都带响应。响应包括“应答 (ACK)”和“非应答 (NACK)”两种信号。作为
数据接收端时,当设备 (无论主从机) 接收到 I2C 传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答 (ACK)”信号,发送方会继续发送下一个数据;若接收端希望结束数据传输,则向对方发送“非应答 (NACK)”信号发送方接收到该信号后会产生一个停止信号,结束信号传输。见图 23_8
在这里插入图片描述
传输时主机产生时钟,在第== 9 个时钟时==,数据发送端释放 SDA 的控制权,由数据接收端控制SDA,若== SDA 为高电平==,表示非应答信号 (NACK)低电平表示应答信号 (ACK)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1081068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

草柴APP如何领取淘宝内部隐藏优惠券拿淘宝返利?

什么是草柴APP? 草柴APP是一款购物省钱工具。草柴APP现已支持淘宝、天猫、京东等知名电商平台,通过草柴APP查询领取内部隐藏大额优惠券,确认收货后拿购物返利;让您与别人购买相同的商品,不求比别人花的少,…

零样本异常分割SAA+

文章目录 一、测试效果展示二、相关链接三、优点总结四、SAA vs SAA4.1 SAA4.2 SAA 五、SAA结构5.1 专家领域知识(Domain Expert Knowledge)5.2 目标图片上下文信息(Target Image Context) 六、How to use 最近在做缺陷检测&#…

Qt打开ui文件经常报错

报错如下: 解决方法: 最后设置成默认值 即可

国标28181 开源WVP-PRO项目部署

感谢大牛的开源框架 https://doc.wvp-pro.cn/#/ 一.直接使用源码部署(在linux) -- 安装环境 yum install -y java-1.8.0-openjdk.x86_64 git maven nodejs npm -- 下载源码-wvp项目 git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git ---…

Linux系统编程:UDP协议和TCP协议

目录 一. 对于端口号的理解 1.1 网络通信五元组 1.2 端口号的划分策略 二. 网络通信中常用的指令 2.1 netstat指令 2.2 pidof指令 三. udp协议 3.1 udp的概念及特点 3.2 udp协议端格式 3.3 对于面向数据报及应用层发送与读取数据的理解 四. tcp协议的概念及特点 五.…

怎么把视频转换成mp4格式?

怎么把视频转换成mp4格式?如果你经常在网上下载视频的话,那么应该知道视频文件的格式种类非常的多,不同网站下载到的视频格式各不相同,除了最常见的mp4格式外,其它视频格式基本上都存在着兼容问题,如果格式…

Qt creator下载安装

版本问题: Qt4的开发环境包括3个基本部分:Qt Framework(Qt库)、QtCreator(IDE)和MinGW(编译调试),都要分别下载安装并配置,比较麻烦。 Qt5之后,…

Vuex->vuex获取值以及改变值,vuex异步请求

vuex获取值以及改变值vuex异步请求 1.vuex获取值以及改变值 Vuex分成五个部分: 1.State:单一状态树 2.Getters:状态获取 3.Mutations:触发同步事件 4.Actions:提交mutation,可以包含异步操作 5.Module&…

2023云栖大会即将开幕,速来免费预约!

2023云栖大会 500热点话题 1000行业实干家 现场实操 即学即用 40000平米科技展 3000前沿展品 72小时沉浸式科技体验 与数字人李白共吟盛唐诗歌 视频云边缘云云通信 深入3大Tech领域,覆盖20话题演讲 虚拟演播室、智能全景声 AIGC与数字人的一站式制作 “AI更…

重温mybatis之一篇带你入门Mybatis

一.前言 我是一个五年得java开发工程师,在印象里,从第一年我就会使用mybatis了,从最开始得xml配置,到spring整合,再到springboot。无非就是写个mapper抽象类,写个mapper.xml方法。就这么一直用着。期间也想…

ASP.Core3.1 WebAPI 发布到IIS

本篇文章简述如何在IIS中发布你的.Core 程序 1.打包 首先你要打包好你程序,如果你是Visual Studio开发的程序,那你右击你的项目点击发布 如果你是Visual Code 开发的,那你在你的终端切换到你的目录然后执行命令 dotnet publish --config…

mysql面试题43:MySQL自增主键用完了怎么办?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL自增主键用完了怎么办? 当MySQL中的自增主键用完了(…

Python数组删除元素pop与remove对比

pop()和remove()函数都可以用来删除列表中的函数,pop()是按索引来删除的,remove()是按元素来删除的。 1、pop()默认删除列表中最后一个元素,而且会返回删除的元素。此时的时间复杂度为O(1) 下面的例子中,…

pdf怎么合并在一起?

pdf怎么合并在一起?对于pdf合并这个问题,有的小伙伴想很简单,只需要将文件直接复制再其中的一个后面不就完事了吗。其实不然,因为我们如果要是需要将很多文件进行合并的话,就会产生很多问题的。总之,在现在…

搭建一个自己的学术语音助手(1)

背景: 大模型出来后语音助手借着LLM的语义理解、知识组织能力的提升,升级了一波buffer。然后在使用这些语音助手的时候总觉得缺了点什么,但也讲不出来具体缺了什么。这几天的思考突然有了灵感,其实缺的就是自己的知识内容如何变成…

NFT合约分析:ERC721A

概述 读者可前往我的博客获得更好的阅读体验。 本文主要介绍标准NFT实现的一个变体,即ERC721A合约实现的相关细节。ERC721A是由著名NFT系列Azuki提出,该系列NFT是著名的蓝筹NFT。本文主要聚焦于Azuki提出的ERC721A合约的代码细节分析。 与传统的ERC72…

APP订单管理软件生活中不可或缺|小程序系统定制开发|网站搭建

APP订单管理软件生活中不可或缺|小程序系统定制开发|网站搭建 它不仅可以帮助人们更好地管理自己的生活,还可以提高工作效率,让生活更加便捷。那么,APP订单管理软件在实际应用中的优势有哪些呢?qq:258715719 v&#…

Nginx下载安装与配置(linux)

一、Nginx下载 官网下载地址:nginx: download 推荐下载稳定版: 二、Nginx依赖环境 执行安装命令,安装完成后可查看版本进行验证。 1.GCC C 用于编译和构建C语言程序的开源编译器。 #安装GCC C软件包 yum install -y gcc-c #查看GCC C版…

TCP/IP(四)TCP的连接管理(一)三次握手

一 tcp连接回顾 部分内容来自小林coding TCP篇 记录的目的: 亲身参与进来,加深记忆 ① 引入 前面我们知道: TCP 是面向连接 [点对点的单播]的、可靠的、基于字节流的传输层通信协议面向连接意味着:在使用TCP之前,通信双方必须先建立一…

手动抄表和自动抄表优缺点对比

随着科技的发展,自动抄表技术已经越来越成熟,被广泛应用于各个领域。然而,手动抄表在一些特定场景下仍然具有一定的优势。本文将从手动抄表和自动抄表的优缺点入手,对比分析它们的应用场景和使用价值。 1.成本低:手动抄…