IIC协议

文章目录

  • IIC介绍
    • 通信距离
    • 通信速度
    • 主从方式
    • 通信方式
    • 物理结构
  • IIC协议
    • 空闲状态
    • 开始信号、结束信号和应答信号
    • 向从机发送数据的过程
    • 读取从机数据的过程
    • 数据有效性
    • 协议一帧构成

IIC介绍

IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线。

现在被广泛地使用在系统内多个集成电路 (IC) 间的通讯。

通信距离

在这里插入图片描述

通信速度

在这里插入图片描述
在这里插入图片描述
目前大多 I 2 C 设备尚不支持高速模式。

主从方式

在这里插入图片描述
在一个 I 2 C 通讯总线中,可连接多个 I 2 C 通讯设备,支持多个通讯主机及多个通讯从机。

  • 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制。

通信方式

在这里插入图片描述每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。

物理结构

在这里插入图片描述
在这里插入图片描述
一条双向串行数据线 (SDA) ,一条串行时钟线 (SCL)。

  • 数据线即用来表示数据,时钟线用于数据收发同步。

I2C总线上传输的每一位数据都有一个时钟脉冲相对应,即同步控制。数据位的传输是边沿触发。

IIC协议

空闲状态

SDA和SCL两条线同时处于高电平为总线空闲状态。由两个上拉电阻拉高。

  • 当 I 2 C 设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。

开始信号、结束信号和应答信号

SDA数据线,SCL时钟线

  • 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。是一种电平跳变时序信号,而非一个电平信号。

  • 结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
    在这里插入图片描述

  • 应答信号ACK:发送器每发送一个字节,接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据,即由接收器反馈的应答信号。将SDA拉低,并保证在该时钟的高电平前进为稳定的低电平。

  • 如果ACK为低电平为有效应答,如果是高电平就是非应答位NACK,也就是没有成功。

  • 如果接收器是主控器,收到最后一个字节后,发送NACK信号,以通知发送器数据发送结束,并释放SDA。
    在这里插入图片描述

向从机发送数据的过程

  1. 主机发送start信号;总线处于占用状态。
  2. 主机发送从机地址,高7bit是地址,bit0是读写控制位,0表示写,1表示读
  3. 从机返回ACK响应信号;
  4. 主机发送要给从机写入数据的地址;(有的设备不用)
  5. 从机返回ACK响应信号;
  6. 主机发送数据;
  7. 从机返回ACK响应信号;
    重复第6和7步,直到从机返回一个NACK非响应信号;
    主机发送停止信号,结束数据传输。
    在这里插入图片描述

读取从机数据的过程

  1. 主机发送start信号;
  2. 主机发送从机地址,高7bit是地址,bit0是读写控制位,0表示写,1表示读;
  3. 从机返回ACK响应信号;
  4. 主机发送要给从机读入数据的地址;(有的设备不用)
  5. 从机返回ACK响应信号;
  6. 重新启动IIC总线,发送start信号;(前面步骤的目的向从机传送地址,下面开始读取数据)
  7. 主机发送从机地址,高7bit是地址,bit0是读写控制位,0表示写,1表示读;
  8. 从机返回ACK响应信号;
  9. 主机接收数据;
  10. 从机返回ACK响应信号;
    重复第9和01步,直到从机返回一个NACK非响应信号;
    主机发送停止信号,结束数据传输。
    在这里插入图片描述

数据有效性

IIC总线数据传送时,时钟的高电平期间,数据线上的数据必须保持稳定,不允许变化。即SCL的上升沿到来前要准备好,下降沿到来前必须可靠
SDA的数据在SCL高电平期间被写入从机。所以SDA的数据变化要发生在SCL低电平期间。
在这里插入图片描述

协议一帧构成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ArkUI-X跨平台已至,何需其它!

运行环境 DevEco Studio:4.0Release OpenHarmony SDK API10 开发板:润和DAYU200 自从写了一篇ArkUI-X跨平台的文章之后,好多人都说对这个项目十分关注。 那么今天我们就来完整的梳理一下这个项目。 1、ArkUI-X 我们之前可能更多接触的…

class_5:在c++中一个类包含另一个类的对象叫做组合

#include <iostream> using namespace std;class Wheel{ public://成员数据string brand; //品牌int year; //年限//真正的成员函数void printWheelInfo(); //声明成员函数 };void Wheel::printWheelInfo() {cout<<"我的轮胎品牌是&#xff1a;"<…

MySQL之多表查询

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; CREATE TABLE sc…

数据库多表查询练习题

二、多表查询 1. 创建 student 和 score 表 CREATE TABLE student ( id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR ( 20 ) NOT NULL , sex VARCHAR ( 4 ) , birth YEAR , department VARCHAR ( 20 ) , address VARCHAR ( 50 ) ); 创建 s…

02章【JAVA编程基础】

变量与标识符 变量 数学名词&#xff1a;变数或变量&#xff0c;是指没有固定的值&#xff0c;可以改变的数。变量以非数字的符号来表达&#xff0c;一般用拉丁字母。变量是常数的相反。变量的用处在于能一般化描述指令的方式。计算机解释&#xff1a;变量就是系统为程序分配…

IOS自动化测试元素定位

一、元素属性介绍 1、元素属性 2、查看各定位方式执行效率 二、iOS常用定位方法 1、accessibility_id 2、class_name 3、Xpath 4、ios_class_chain(类型链) 5、ios_predicate(谓词) 一个页面最基本组成单元是元素&#xff0c;想要定位一个元素&#xff0c;我们需…

德语B2 SampleAcademy

德语B2 SampleAcademy 一, Zweigliedrige Konnektion1, entweder... oder2, nicht nur... sondern auch3,sowohl... als auch4,einerseits... andererseits5, zwar...aber6, weder...noch7,je...desto/umso 一, Zweigliedrige Konnektion discontinuous conjunctions 1,…

基础面试题整理4

1.mybatis的#{}和${}区别 #{}是预编译处理&#xff0c;${}是字符串替换#{}可以防止SQL注入&#xff0c;提高安全性 2.mybatis隔离级别 读未提交 READ UNCOMMITED&#xff1a;读到了其他事务中未提交的数据&#xff0c;造成"脏读","不可重复读","幻读&…

Vue-19、Vue监测数据的原理_对象

1、数据代理 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vue监测数据改变的的原理</title><script type"text/javascript" src"https://cdn.jsdelivr.net/npm/vue2/dist…

翻译: Streamlit从入门到精通 部署一个机器学习应用程序 四

Streamlit从入门到精通 系列&#xff1a; 翻译: Streamlit从入门到精通 基础控件 一翻译: Streamlit从入门到精通 显示图表Graphs 地图Map 主题Themes 二翻译: Streamlit从入门到精通 构建一个机器学习应用程序 三 1. 5. 如何部署一个Streamlit应用 部署是将应用程序从开发…

如何用ArcGIS制作城市用地适应性评价

01概述 “城市用地适宜性评价是城市总体规划的一项重要前期工作&#xff0c;它首先对工程地质、社会经济和生态环境等要素进行单项用地适宜性评价&#xff0c;然后用地图叠加技术根据每个因子所占权重生成综合的用地适宜性评价结果&#xff0c;俗称“千层饼模式”。 做用地适…

C#,字符串匹配(模式搜索)AC(Aho Corasick)算法的源代码

Aho-Corasick算法简称AC算法&#xff0c;也称为AC自动机(Aho-Corasick)算法&#xff0c;1975年产生于贝尔实验室&#xff08;The Bell Labs&#xff09;&#xff0c;是一种用于解决多模式字符串匹配的经典算法之一。 the Bell Lab 本文的运行效果&#xff1a; AC算法以模式树…

阳光抑郁症测试

大部分人对抑郁症的理解&#xff0c;就是每天无精打采&#xff0c;死气沉沉&#xff0c;可实际上&#xff0c;还有一种阳光抑郁症&#xff0c;完全不是这个样子。这种抑郁症的人&#xff0c;做事情非常有活力&#xff0c;魅力十足&#xff0c;给人感觉十分有自信&#xff0c;但…

MATLAB读取图片并转换为二进制数据格式

文章目录 前言一、MATLAB 文件读取方法1、文本文件读取2、二进制文件读取3、 图像文件读取4、其他文件读取 二、常用的图像处理标准图片链接三、MATLAB读取图片并转换为二进制数据格式1、matlab 源码2、运行结果 前言 本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方…

国科大软件安全原理期末复习笔记

1 软件安全总论 1.软件的三大特性&#xff1a;复杂性、互连性、可扩展性&#xff1b; 2.基本概念&#xff1a;缺陷、漏洞、风险 缺陷&#xff08;bug&#xff09;&#xff1a;软件在设计和实现上的错误&#xff1b;漏洞&#xff08;vulnerability&#xff09;&#xff1a;漏洞…

专访美国Foley Hoag律师事务所合伙人:2024量子计算颠覆制药业

人物介绍&#xff1a;美国Foley Hoag 律师事务所的合伙人Erik Huestis&#xff0c;兼任该事务所技术行业小组的联席主席&#xff0c;近期于采访中深入探讨了在未来一年&#xff0c;生命科学和生物技术行业将如何运用量子计算技术的相关问题。 ​编辑丨慕一 编译/排版丨琳梦 卉…

OPT(erlang)打造一套缓存系统(一)

缓存的设计 这个简易缓存存储的是键/值对&#xff0c;其中键与键之间不得重复&#xff0c;并且每个键只能映射到一个值。这个设计背后的核心思想是为写人缓存的每一个值都分配一个独立的存储进程再将对应的键映射至该进程。你可能会对这种为每个值分配一个进程的设计感到惊讶&…

深度学习代码学习(一文真正看懂卷积层的代码定义)

一维卷积: 将n行3列升维到n行6列。&#xff08;原因&#xff1a;卷积核为6个&#xff09; *表示点乘 Linear线性层&#xff1a; &#xff08;通过矩阵计算改变输入输出特征向量的维度&#xff09; Pytorch nn.Linear的基本用法与原理详解-CSDN博客 pytorch初学笔记&#…

云服务器部署Stable Diffusion Webui从0到1总结:反复重启+循环debug

文章目录 在学校服务器部署Stable Diffusion Webui&#xff08;一&#xff09;准备工作&#xff08;二&#xff09;环境配置&#xff08;三&#xff09;git拉取项目到本地&#xff08;四&#xff09;运行项目 遇到的问题&#xff1a;&#xff08;一&#xff09;使用git clone时…

【C++干货铺】会旋转的二叉树——AVLTree

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 前言 AVL树 AVL树的概念 AVL树结点的定义 AVL树的插入 寻找插入结点的位置 修改平衡因子 AVL树的旋转 右单旋 左单旋 先右旋再左旋 先左旋再右旋 AVL树…