IIC学习总结
一、基本概念
IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构。
二、模块结构
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
三、功能特性
3.1.协议限制
- 为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏极开路(OD)输出或集电极开路(OC)输出。
- 总线空闲时,因各设备都是开漏输出,上拉电阻Rp使SDA和SCL线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与”关系,SCL也是“与”关系。
- 只有在总线空闲的时候主机才可以启动传输。
- 总线上允许连接的设备数以其电容量不超过400pF为限。
- SDA线上的数据在时钟“高”期间必须是稳定的,只有当SCL线上的时钟信号为低时,数据线上的“高”或“低”状态才可以改变。
- 数据传送具有应答是必须的。与应答对应的时钟脉冲由主控制器产生,发送器在应答期间必须下拉SDA线。当寻址的被控器件不能应答时,数据保持为高并使主控器产生停止条件而终止传输。
- SCL线控制:SCL 线拉低是为了避免在接收时发生上溢错误以及在发送时发生下溢错误。在发送模式,当 TBE 和 BTC 被置位,发送器保持 SCL 线为低电平直到下一个发送数据写入传输缓冲区寄存器。在接收模式,当 RBNE 和 BTC 被置位,发送器保持 SCL线为低电平直到传输缓冲区寄存器里的数据被读出。
3.2.功能特性
- 主从机之间的双向数据传输(半双工)。
- 支持 7 位和 10 位的地址模式和广播寻址。
- 支持 I2C 多主机模式。
- 同一接口既可实现主机功能又可实现从机功能。
- 支持标速模式(最高 100 kHz)和快速模式(最高 400 kHz)。
- 总线仲裁:两个主机可能在START信号的最短保持时间内,同时在总线上产生START信号,这种情况下需要仲裁来决定由哪个主机来完成传输。仲裁逐位进行,在每一位的仲裁期间,当SCL为高时,每个主机都检查SDA电平是否和自己发送的相同。仲裁的过程需要持续很多位。理论上讲,如果两个主机所传输的内容完全相同,那么它们能够成功传输而不出现错误。如果一个主机发送高电平但检测到SDA电平为低,则认为自己仲裁失败并关闭自己的SDA输出驱动,而另一个主机则继续完成自己的传输。
- 时钟同步:SCL线和SDA线是各设备对应输出状态相“与”的结果,任一设备都可以用输出低电平的方法来延长SCL的低电平时间,以迫使高速设备进入等待状态,从而实现不同速度设备间的时钟同步。
四、通讯流程
4.1. 起始/停止信号
所有的数据传输起始于一个 START 结束于一个 STOP。
START 信号:在 SCL 为高时,SDA 线上出现一个从高到低的电平转换。
STOP 信号:在 SCL 为高时,SDA 线上出现一个从低到高的电平转换。
4.2. ACK/NACK
要求从机在接收到每一个字节后产生一个响应。因此,主机必须产生一个额外的时钟脉冲(第九个脉冲)用以和这个响应位相关联。从机在第9个时钟信号进行拉低回应,发出响应的从设备必须将SDA拉低并在时钟脉冲的高电平期间保持住。这表示该设备给出了一个ACK。如果它不拉低SDA线,就表示不响应(NACK)。
4.3. 数据传输
每个I2C设备(不管是微控制器,LCD驱动,存储器或者键盘接口)都通过唯一的地址进行识
别,根据设备功能,他们既可以是发送器也可作为接收器。
I2C从机检测到I2C总线上的START信号之后,就开始从总线上接收地址,之后会把从总线接收
到的地址和自身的地址进行比较,当两个地址相同时,I2C从机将发送一个确认应答(ACK),并响应总线的后续命令:发送或接收所需数据。此外,如果软件开启了广播呼叫,则I2C从机始终对一个广播地址(0x00)发送确认应答。
I2C主机负责产生START信号和STOP信号来开始和结束一次传输,并且负责产生SCL时钟。
4.3.1. 7位地址读写
4.3.2. 10位地址写/读
相关文章:
IIC学习总结
一、基本概念 IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构。 二、模块结构 I2C串行总线一般有两根信号线,一根是双向的数据线SDA&…...
【案例学习】暴力破解攻击(Brute Force Attack)
### 案例与影响 暴力破解攻击在历史上曾导致多次重大安全事件,特别是在用户数据泄露和账户被盗的案例中。随着计算能力的提升和密码管理技术的进步,暴力破解的威胁虽然有所减弱,但仍需警惕,特别是在面对高价值目标时。 【故事一…...
Python学习之基本语法
1.列表用[],元祖用(),字典用{},对字典中不存在的键赋值,将进行字典的添加操作 2.Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,这种灵活性使得不用使用…...
QT QDialog::exec()调用时清除部件所有焦点
最近在做项目时,遇到一个问题:在统信UOS系统编写的QT程序,其中进入某些页面时,或者显示模态窗时,按钮都会有一个焦点框,这个是不允许的,于是乎,开始了清理焦点的旅途。 一、清理QDia…...
uni-app @click.stop @click.stop.native均不生效
原因就是用了nvue导致的 vue等其他环境都可以 解决:e.stopPropagation() click"goExecute($event)" goExecute(e) {e.stopPropagation()}, uniApp官方真的是一坨大翔,不仅社区不维护,文档也写的跟粑粑一样,自创的nv…...
数据可视化工具深入学习:Seaborn 与 Plotly 的详细教程
数据可视化工具深入学习:Seaborn 与 Plotly 的详细教程 数据可视化是数据分析中不可或缺的一部分,能够有效地帮助我们理解数据、发现模式和传达信息。在众多可视化工具中,Seaborn 和 Plotly 是两个非常流行且强大的库。本文将深入探讨这两个…...
camera和lidar外参标定
雷达和相机的外参标定(外部参数标定)指的是确定两者之间的旋转和平移关系,使得它们的坐标系可以对齐。 文章目录 无目标标定livox_camera_calibdirect_visual_lidar_calibration 有目标标定velo2cam_calibration 无目标标定 livox_camera_ca…...
Redis慢查询分析优化
文章目录 一、定义二、慢查询参数配置三、慢查询日志四、排查步骤五、Redis变慢原因 一、定义 在Redis执行时耗时超过某个阈值的命令,称为慢查询。 慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间&…...
ETL处理全流程
ETL代表提取Extraction、转换Transform、加载Load——这个过程涉及从各种来源提取数据,将其转换为一致的格式,并将其加载到目标数据库或数据仓库中。这是数据集成和分析的一个重要步骤,因为它确保数据准确、可靠,并准备好进一步处…...
美畅物联丨掌握Wireshark:GB28181协议报文分析实战指南
Wireshark,一款在网络安全与协议分析领域享有盛誉的网络嗅探器,凭借其强大的功能集、直观的图形用户界面以及广泛的跨平台兼容性,已成为众多开发者不可或缺的得力助手。其开源特性吸引了大量开发者的积极参与,不断推动其功能的完善…...
【python】OpenCV—WaterShed Algorithm
文章目录 1、功能描述2、代码实现3、完整代码4、效果展示5、涉及到的库函数5.1、cv2.pyrMeanShiftFiltering5.2、cv2.morphologyEx5.3、cv2.distanceTransform5.4、cv2.normalize5.5、cv2.watershed 6、更多例子7、参考 1、功能描述 基于分水岭算法对图片进行分割 分水岭分割…...
CSS flex布局- 最后一个元素占满剩余可用高度转载
效果图 技术要点 height父元素必须有一个设定的高度flex-grow: 1 flex 盒子模型内的该元素将会占据父容器中剩余的空间F12检查最后一行的元素,高度就已经改变了;...
Camp4-L1:XTuner 微调个人小助手认知
书生浦语大模型实战营第四期-XTuner 微调个人小助手认知 教程链接:https://github.com/InternLM/Tutorial/blob/camp4/docs/L1/XTuner/README.md任务链接:https://github.com/InternLM/Tutorial/blob/camp4/docs/L1/XTuner/task.md提交链接:…...
Qt:语言家视图
1.一不小心将qt语言家点成这样 2.点击查看->视图 3.效果...
【Paper Note】利用Boundary-aware Attention边界感知注意力机制增强部分伪造音频定位
利用Boundary-aware Attention边界感知注意力机制增强部分伪造音频定位 摘要核心模块什么是边界?什么是边界特征? 写作背景解决的问题 方法1. 特征提取使用预训练好的自监督学习模型进行前端特征提取Attentive poolingQ:为什么使用Attentive …...
海外共享奶牛牧场投资源码-理财金融源码-基金源码-共享经济源码
新版海外共享奶牛牧场投资源码/理财金融源码/基金源码/共享经济源码...
iOS静态库(.a)及资源文件的生成与使用详解(OC版本)
引言 iOS静态库(.a)及资源文件的生成与使用详解(Swift版本)_xcode 合并 .a文件-CSDN博客 在前面的博客中我们已经介绍了关于iOS静态库的生成步骤以及关于资源文件的处理,在本篇博客中我们将会以Objective-C为基础语言…...
Python自动化:关键词密度分析与搜索引擎优化
在数字营销领域,搜索引擎优化(SEO)是提升网站可见性和吸引有机流量的关键。关键词密度分析作为SEO的一个重要组成部分,可以帮助我们理解特定关键词在网页内容中的分布情况,从而优化网页内容以提高搜索引擎排名。本文将…...
苏州金龙新V系客车创新引领旅游出行未来
10月25日,为期三天的“2024第六届旅游出行大会”在风景秀丽的云南省丽江市落下帷幕。本次大会由中国旅游车船协会主办,全面展示了中国旅游出行行业最新发展动态和发展成就,为旅游行业带来全新发展动力。 在大会期间,备受瞩目的展车…...
linux:DNS服务
DNS简介: DNS系统使用的是网络的查询,那么自然需要有监听的port。DNS使用的是53端口, 在/etc/services(搜索domain)这个文件中能看到。通常DNS是以UDP这个较快速的数据传输协议来查 询的,但是没有查询到完…...
传奇架设好后创建不了行会,开区时点创建行会没反应的解决办法
传奇架设好后,测试了版本,发现行会创建不了,按道理说一般的版本在创建行会这里不会出错的,因为这是引擎自带的功能。 建立不了行会虽然说问题不大,但也不小,会严重影响玩家的游戏体验,玩游戏为的…...
【小白学机器学习28】 统计学脉络+ 总体+ 随机抽样方法
目录 参考书,学习书 0 统计学知识大致脉络 1 个体---抽样---整体 1.1 关于个体---抽样---整体,这个三段式关系 1.2 要明白,自然界的整体/母体是不可能被全部认识的 1.2.1 不要较真,如果是人为定义的一个整体,是可…...
安全研究 | 不同编程语言中 IP 地址分类的不一致性
作为一名安全研究人员,我分析了不同编程语言中 IP 地址分类 的行为。最近,我注意到一些有趣的不一致性,特别是在循环地址和私有 IP 地址的处理上。在这篇文章中,我将分享我对此问题的观察和见解。 设置 我检查了多种编程语言&am…...
小小的表盘还能玩出这么多花样?华为手表这次细节真的拉满
没想到小小的表盘还能玩出这么多花样?华为这次细节真的拉满!还有没有你不知道的神奇玩法? 情绪萌宠,心情状态抬腕可见 好心情就像生活馈赠的糖果,好的心情让我们遇到困难也不惧打击!HUAWEI WATCH GT 5情绪…...
trueNas 24.10 docker配置文件daemon.json无法修改(重启被覆盖)解决方案
前言 最近听说truenas的24.10版本开放docker容器解决方案放弃了原来难用的k3s,感觉非常巴适,就研究了一下,首先遇到无法迁移老系统应用问题比较好解决,使用sudo登录ssh临时修改daemon.json重启docker后进行docker start 容器即可…...
数字孪生,概念、应用与未来展望
随着科技的飞速发展,数字化已经成为各行各业的发展趋势,在这个过程中,数字孪生作为一种新兴的技术,逐渐引起了人们的关注,本文将对数字孪生的概念、应用以及未来展望进行详细介绍。 数字孪生的概念: 数字孪…...
Chromium HTML Input 类型Text 对应c++
一、文本域(Text Fields) 文本域通过 <input type"text"> 标签来设定,当用户要在表单中键入字母、数字等内容时,就会用到文本域。 <!DOCTYPE html> <html> <head> <meta charset"ut…...
SpringMvc参数传递
首先对于post请求汉字乱码需要进行过滤器配置 普通参数传递 直接传递 客户端传递的属性名与我的bean中的函数参数名相同 映射传递RequestParam("XXX") 在我们方法参数中定义一个与客户端属性名一致 并绑定参数 POJO实体类传递 嵌套POJO传递 数组likes参数传递…...
西安国际数字影像产业园:数字化建设赋能产业升级与拓展
西安国际数字影像产业园的数字化建设,在当前经济与科技迅猛发展的大背景下,已然成为提升园区管理效率、服务水平以及运营效果的关键趋势。随着信息技术日新月异的进步,数字化更是成为这座产业园转型升级的核心关键词。如今,西安国…...
linux线程池
线程池: * 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着 监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利 用࿰…...
做营销网站要多少钱/百度开车关键词
写于 2017.05.04 相信不少使用Vue的开发者和公司都有定制一套属于自己的UI组件库的需求。但是要开发、测试、打包、发布这个组件库,却需要耗费较大的劳动力去搭建一整套的环境。针对这个问题,我搭建了一个专门用来构建Vue的UI组件库的开发框架࿰…...
专业做房地产网站建设/厦门seo优化多少钱
删除服务器木马 文章目录删除服务器木马一、木马症状二、分析1 查看该进程打开的文件2 查看进程的环境变量/proc/$pid/environ3 查看定时文件三、解决四、命令总结1 sar2 ss3 crontab一、木马症状 输入top命令后,发现某不知名进程ld-linux-x86-64占用全部CPU,该进程…...
雄县哪做网站/百家号权重查询
之前是学习字符设备驱动,但是在期间涉及到了一些设备模型中的东西,如自动创建设备节点,在这之后将深入学习这部分,从而也能更加清楚设备节点是如何创建的。这部分的东西较多,先整体理清框架,然后逐个去理解…...
成都兴光华城市建设公司网站/网络推广工作内容怎么写
一面是技术面,问的问题有: 1、nginx熟悉吗?做过什么? 自己测试的时候需要HLS格式的流,所以使用:NginxNginx扩展模块OBS,将电脑屏幕采集推流到网络中做测试,但是由于HLS分片的原因&am…...
dede手机网站/前端开发培训机构推荐
arc:画弧度cxt.arc( x, y, 半径, 开始角度,结束角度,是否逆时针 );x, y: 为弧度的中心横坐标和纵坐标,如果这是画一个圆.那么x,y就是圆的圆心.开始角度与结束角度都是以弧度单位,弧度与角度的换算关系为: 弧…...
网站建设服务的会计处理/友情链接怎么购买
今天写了一个demo,有一个问题,有很多cell,但是超过一页后往下翻,发现文字有重叠现象, cell用的是重用机制,按说不会这样,最终解决的方案: 勾选这个,clears graphics cont…...