IIC的时序解析

IIC(Inter-Integrated Circuit)即集成电路总线,是一种多主从的串行总线,属于半双工同步传输类型总线,仅使用两条线,一条SCL时钟线,一条双向数据线SDA。以下是对IIC通信波形图的详细解读:

信号状态

  • 空闲状态:SDA和SCL两条信号线同时处于高电平时,为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
  • 起始信号:当SCL线为高电平时,SDA线从高电平向低电平切换,该信号由主机发出,起始信号产生后,总线被占用,准备数据传输。
  • 停止信号:当SCL线为高电平时,SDA线由低电平向高电平切换,由主机发出,停止信号发出后,总线变为空闲状态。

数据传输

  • 数据有效性:在IIC总线进行数据传送时,时钟信号SCL为高电平期间,数据线上的数据必须保持稳定,只有在SCL线的时钟信号为低电平时,数据线上的高电平或低电平状态才允许变化。数据在SCL的上升沿到来之前就需准备好,并在下降沿到来之前保持稳定。
  • 数据位传输:在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据,数据位的传输是边沿触发。

应答信号

  • 有效应答(ACK):发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。当接收器在第9个时钟脉冲之前的低电平期间将SDA拉低,并且确保在该时钟的高电平期间为稳定的低电平时,规定为有效应答位,表示接收器已经成功地接收了该字节。
  • 非应答(NACK):应答信号为高电平时,规定为非应答位,一般表示接收器接收该字节没有成功。

读写操作波形示例

  • 写操作:主机发送一个启动开始标志,接着发送从机地址,地址的最后一位(R/W位)设置为0,表示写入。从设备发送ACK响应确认后,主设备发送希望写入的寄存器地址。从设备再次确认后,主机开始向从机发送寄存器数据,直到发送完所有需要的数据,最后主机发送停止条件终止传输。
  • 读操作:主机先发送起始信号,然后发送从机地址(R/W位为1表示读操作),从机应答后,主机再发送要读取的寄存器地址。之后主机再次发送起始信号,重新发送从机地址(R/W位仍为1),从机应答后开始发送数据,主机接收数据,在接收完最后一个字节数据后,主机发送非应答信号(NACK),然后发送停止信号结束本次读操作。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库安全实战:访问控制与行级权限管理

title: 数据库安全实战:访问控制与行级权限管理 date: 2025/2/16 updated: 2025/2/16 author: cmdragon excerpt: 在数据泄露事件频发的今天,数据库访问控制是保护企业核心资产的最后一道防线。数据库安全体系的三大核心组件——用户角色管理、权限授权机制和行列级安全控制…

一款直流电机的拆解

未拆卸前:将减速器部分(涡轮部分)拿下来可以注意到,这是两个电刷。 之后, 是电机的核心部分,以及蜗杆部分、外壳部分。 然后再把电机的外壳拿走,可以看到露出绕组和电机输出轴。这个外壳上有两个永磁体:底端是编码器,是两个霍尔原件(磁编码器),可以测速。

ConcurrentHashMap扩容过程

一、ConcurrentHashMap扩容过程 1、ConcurrentHashMap扩容时新建数组 1.1 每个线程负责的数据迁移区域的长度:stride 1.2 关于transferIndex的说明 2、ConcurrentHashMap扩容时获取迁移数据区域 2.1 总结 3、判断数据迁移是否结束 3.1 每个线程完成自己区域内的数据迁移的判断…

DVWA SQL注入-Low

1. 注入点判断 1 and 1=11 and 1=21 and 1=11 and 1=2,没有返回结果由此可判断注入点为数据类型,单引号闭合 2. 判断表列数 3 order by 3 # 遍历order by 参数,判断查询过的列数为2列3.确认显示位4.获取数据库名5. 获取数据库表名6. 获取数据库信息7. 获取数据表信息

安装,删除JDK

安装JDK百度搜索JDK8,找到下载地址 同意协议 下载电脑对应版本 双击安装JDK 记住安装的路径配置环境变量我的电脑>右键>属性>高级选项环境变量>JAVA_HOME>JKD路径配置path变量>%JAVA_HOME%\bin​ %JAVA_HOME%\jre\b…

人人都看得懂的DeepSeek入门科普

当大家都在好奇下一代AI会怎样改变我们的工作与生活时,中国公司 DeepSeek 正以惊人的速度和态度闯进大众视野。它究竟是什么,能做什么,又为何能在AI热潮里高调崭露头角?本文带你了解 DeepSeek 及其最新推出的两款大模型,顺便一起讨论它如何搅动整个 AI 行业的水面。 1. De…

LGP11261 [COTS 2018] 直方图 学习笔记

LGP11261 [COTS 2018] 直方图 学习笔记 Luogu Link 前言 参考了这篇题解。算是对其更详细的一个解释。 题意简述 给定一宽为 \(n\) 的直方图,第 \(i\) 格的高度为 \(h_i\)。也就是说,对于 \(\forall 1\le i\le n\),第 \(i\) 格矩形的四个顶点分别为 \((i-1,0),(i,0),(i-1,h_…

【FOFA】借助测绘探寻Ollma调用

免责声明: ⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!Fingers:app="Ollama" && is_domain=false根据Ollma官方接口可知 GET /api/tags HTTP/1.1 …

LCT(link cut tree)入门

简述 我们有这样一个问题:修改点权,询问链上的点权和。这明显是个树链剖分模版。 但如果还有这些操作呢:断开一条边,连上一条边,保证一直是森林。这就是动态树的一种问题。 而 LCT 就是解决这些问题的优秀数据结构。 前言 建议是会 Splay,虽然 FHQ-Treap 也能写,但是多一…

P1441 砝码称重(dfs)

要注意sum+a[i]的位置,我放错了,不知道为什么会re #include<iostream> #include<cstring> #define int long long using namespace std; int n,m,ans,a[30],vis[2020]; int f[2020]; int maxs; void check(){int sum=0;vis[0]=1;for(int i=1;i<=n;i++){if(f[i…

【PHP免杀】使用分支对抗进行Webshell Bypass

# webshell免杀 # PHP # 稻妻雷元素方块阵免责声明: 由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!前言 对于webshell免杀来说类绕过是最有效果且不易被检测出来的,…

springcloud-conifg升级后的擦坑《一》

configServer的配置文件: 之前老板的的路径为: - /springcloud-config/order/order-dev.yml [版本HxtonSR12] client1请求的: client2请求的: 根目录下的config配置文件 本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaoh…