I2C协议

一.硬件连接

       I2C必须使用开漏(或集电极开路)的引脚,其引脚框图如下所示。        

        SCL0对应78K0的P6.0引脚,SDA0对应78K0的P6.1引脚。

        在使用开漏引脚通信时,需注意如下事项:

1)两条总线须外接上拉电阻;

2)通信前须设置引脚的I/O模式:

①输出信号时,PM6.0/PM6.1=0;

②输入信号时,PM6.0/PM6.1=1;。

3)开漏输出属于“线与”逻辑。故此,将总线置1即为释放总线,而总线上任一引脚置0,总线即为0。

二.I2C协议

        I2C总线协议定义如下:

1)只有在总线空闲时才允许启动数据传送;

2)在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。

2.1 总时序图

   I2C总线串行数据传送时序如下图所示:

①起始信号:SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号。

②停止信号:SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。

③应答信号:每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。在第9个时钟信号的高电平期间:若SDA为0,则为应答;若SDA为1,则为非应答。

2.2 各信号时序图

(1)起始和停止信号

         起始和终止信号都是由主机发出的(从机均能检测到),在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。

        为什么在SCL高电平期间不允许SDA数据变动?

        因为,时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。

(2)应答信号(第9个时钟)

       SCL线上的时钟脉冲信号由主机产生。

①当产生第9个时钟脉冲低电平时,发送器件释放SDA线,接收器把SDA线拉低,以给出一个接收确认位;

②第9个时钟脉冲高电平时,发送器检测到这个确认位,然后开始下一字节的传送,下一字节的第一个时钟脉冲低电平期间接收器释放SDA(刚才确认信号为低电平)。

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

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

相关文章

国产之光?Kimichat大模型200万字超长上下文突破

Kimi Chat简介 Kimi是AI大模型初创企业月之暗面(Moonshot)推出的AI产品。近日月之暗面宣布Kimi 智能助手在长上下文窗口技术上再次取得突破,无损上下文长度提升了一个数量级到200万字。 月之暗面(Moonshot AI)&#…

保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)【持续更新最新版】-CSDN博客 1.简介 有的小伙伴或者童鞋们可能会好奇地问,不是讲解和分享抓包…

CI/CD实战-jenkins部署 3

安装 软件下载地址:Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 启动服务 安装推荐插件 不新建用户,使用admin账号登录 修改一下初始密码 新建项目测试 安装git命令 生成密钥 在gitlab中上传公钥 修改ssh 创建中…

babel主要内容

定义 babel是一个编译工具 ,用于把JSX等编译成浏览器可执行的javascript。 主要内容是几个包babel/parser 这个包主要是用于解析代码到AST树babel/types 这个包中有一堆API,用于手动创建ASTbabel/traverse 这个包主要是为了遍历AST树,结合具体…

C/C++代码性能优化——编程实践

1. 编程实践 在一些关键的地方,相应的编程技巧能够给性能带来重大提升。 1.1. 参数传递 传递非基本类型时,使用引用或指针,这样可以避免传递过程中发生拷贝。参数根据是否需要返回,相应加上const修饰,代码更安全&am…

硬盘、内存、缓存(CPU)和寄存器 空间大小与存取速度的区别及设计原理

一、寄存器和存储器是不同的 很多人会将 寄存器 与 存储器 二者混淆,认为它们是同一个东西。但并不是!! 寄存器是CPU上的一个模块 存储器是 内存硬盘的统称 二、存取速度的比较 CPU(包含寄存器,缓存) > 内存 > 硬盘 内…

浅谈Postman与Jmeter的区别、用法

前阶段做了一个小调查,发现软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中,有高手,自然也会有小白,但有一点我们无法否认,就是每一个高手都是从小白开始的,所以今天我们就来谈谈一大部分人…

【TD3思路及代码】【自用笔记】

1 组成(Target Network Delayed Training) Actor网络:这个网络负责根据当前的状态输出动作值。在训练过程中,Actor网络会不断地学习和优化,以输出更合适的动作。Critic网络:TD3中有两个Critic网络&#xff…

2024Postman中变量的使用!

Postman中可设置的变量类型有全局变量,环境变量,集合变量,数据变量及局部变量。区别则是各变量作用域不同,全局变量适用于所有集合,环境变量适用于当前所选环境(所有集合中均可使用不同环境变量&#xff09…

重磅|国家能源局开展配电网安全风险管控重点行动

据国家能源局3月21日消息,为紧扣新形势下电力保供和转型目标,聚焦配电网安全运行、供电保障、防灾减灾和坚强可靠等方面安全风险,推动解决城乡配电网发展薄弱等问题,全面提升配电网供电保障和综合承载能力,国家能源局决…

Mysql数据库:索引管理

目录 一、索引的概述 1、索引的概念 2、索引的作用 3、索引的副作用 4、创建索引的原则依据 5、索引优化 6、索引的分类 7、数据文件与索引文件 二、管理数据库索引 1、查询索引 2、创建索引 2.1 创建普通索引 2.2 创建唯一索引 2.3 创建主键索引 2.4 创建组合…

Xinstall让App推广变得高效而简单

随着移动互联网的迅猛发展,App已成为人们生活中不可或缺的一部分。然而,对于众多开发者和广告主来说,如何高效地推广自己的App,却一直是一个令人头疼的问题。今天,我们要为大家介绍的,正是国内专业的App全渠…

AI大模型学习在当前技术环境下的重要性与发展前景

目录 前言1 学科基础与技能要求1.1 数学基础的深厚性1.2 编程能力的必要性1.3 对特定领域业务场景的了解 2 模型结构与算法的优化2.1 模型结构的不断演进2.2 算法优化的重要性2.3 准确性与效率的提升 3 AI大模型学习的应用场景3.1 自然语言处理3.2 计算机视觉3.3 推荐系统 结语…

独家发布! 10个2024年新算法跑10个测试集!

前言:独家发布! 10个2024年新算法跑10个测试集!每个算法都是独立.m文件,高效管理,所有结果均可一键运行自动保存,可用于算法对比、学习、改进等等,趁现在知道的人少,先用先发&#x…

DMA的设置

DMA(Direct Memory Access,直接内存访问)是一种用于提高数据传输效率的重要技术,在现代计算机系统中被广泛应用。DMA的设置涉及到配置DMA控制器、分配内存缓冲区、设置传输模式等多个方面。本文将介绍DMA的设置过程及相关注意事项…

Mysql数据库的SQL语言详解

目录 一、数据库的基础操作 1、数据库的基本查看和切换 1.1 查看数据库信息 1.2 切换数据库 1.3 查看数据库中的表信息 1.4 查看数据库或数据库中表的结构(字段) 1.5 数据类型 1.5.1 整数型 1.5.2 浮点型(float和double) 1.5.3 定点数 1.5.4…

基于Lealfet.js展示Turf.js生成的平滑曲线实践

目录 前言 一、问题的由来 1、创建网页框架 2、创建map对象 3、构建点位,生成路线 二、Turf.js平滑曲线改造 1、官网方法介绍 2、0.4弯曲度曲线 3、0.85弯曲度曲线 4、0.1度弯曲曲线 5、综合对比 总结 前言 在很多的关于路线的gis应用中,我们…

什么是485数据采集模块?

在工业自动化、智能楼宇、环境监测等众多领域,数据的采集与传输是实现智能化管理的关键。而485数据采集模块,作为一种高效、稳定的数据采集设备,正日益受到广泛关注。HiWoo Box,作为一款卓越的485数据采集模块,以其强大…

Android性能自测

目录 一、应用启动耗时自测 二、帧率查看 三、Top命令查看系统资源占用 3.1 第一行:任务(进程) 3.2 第二行:mem状态 3.3 第三行:swap交换分区 3.4 第四行:cpu状态 3.5 第五行:标题 四、抓取trace.html文件分析…

CCF-CSP认证考试 202305-3 解压缩 100分题解

更多 CSP 认证考试题目题解可以前往:CSP-CCF 认证考试真题题解 原题链接: 202305-3 解压缩 时间限制: 5.0s 内存限制: 512.0MB 题目背景 西西艾弗岛运营公司是一家负责维护和运营岛上基础设施的大型企业。在公司内,…