建造师免费自学网站网络营销品牌策划优化

张小明 2026/1/11 10:43:19
建造师免费自学网站,网络营销品牌策划优化,工作室网页,icp备案 网站名称0#xff0c;引言 在上一篇文章我们讲解了《I2C从入门到精通之五#xff1a;I2C通信协议Protocol-写操作》#xff0c;今天我们继续接着介绍I2C通信协议Protocol-读操作。读操作包含一次假写操作(Dummy Write)和一次读数据返回。那么为什么会这样呢#xff1f; 所有I2C主…0引言在上一篇文章我们讲解了《I2C从入门到精通之五I2C通信协议Protocol-写操作》今天我们继续接着介绍I2C通信协议Protocol-读操作。读操作包含一次假写操作(Dummy Write)和一次读数据返回。那么为什么会这样呢所有I2C主题的文章都会收录在《深入浅出聊I2C》https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzU3NDY3OTA2Nwactiongetalbumalbum_id4272525982776868870#wechat_redirect合集里欢迎评阅。通过这个专集的阅读你将成为I2C专家。百度网盘分享的文件上如是I2C学习资料和标准pdf格式需要下载的朋友请关注本微信公众号“硬件工程师宝典”在对话框内回复“I2C”将获取标准下载链接。其中“I2C_Spec_Rev7_2021_UM10204.pdf”这份文件是最新的I2C specification, 希望大家重点阅读。一、I2C读操作为什么包含一次假写操作(Dummy Write)I2C读操作通常包含一次“写”和一次“读”的过程这主要是为了指定从设备内部要读取的数据源例如寄存器地址。这种模式在许多具有内部寄存器映射的I2C从设备中非常常见例如传感器、EEPROM、ADC等。下面详细解释为什么会采用这种“先写后读”的模式1. 第一次“写”操作的目的指定内部寄存器地址许多I2C从设备不仅仅是一个简单的存储单元它们内部包含多个功能块或数据存储区域这些区域通过内部寄存器地址来区分。当主设备想要从从设备读取数据时它通常需要告诉从设备“请给我你内部某个特定寄存器的数据。”为了实现这个目的主设备首先会发起一个写操作发送从设备地址 写位 (R/W 0)这告诉总线上的所有设备主设备要与某个从设备通信并且是准备写入数据。发送内部寄存器地址主设备紧接着发送一个字节这个字节就是它想要读取的从设备内部的寄存器地址。从设备接收到这个地址后会将其内部的“数据指针”或“地址计数器”指向这个特定的寄存器。这个“写”操作本身并没有传输实际的数据到从设备它的作用是配置从设备告知它接下来要从哪个位置提供数据。这就是为什么我们先介绍写操作write的原因。2. 重复起始条件 (Repeated START) 的作用在指定完内部寄存器地址后主设备需要立即切换到读模式从该寄存器读取数据。如果主设备发送一个停止条件(STOP Condition)然后再发送一个起始条件 (START Condition) 来开始读操作那么总线会暂时释放其他主设备可能会趁机占用总线从而中断当前通信序列。为了保持总线控制权并确保读操作紧随写操作之后主设备会发送一个重复起始条件。重复起始条件允许主设备在不释放总线的情况下改变通信方向。3. 第二次“读”操作的目的实际读取数据在重复起始条件之后主设备会再次发送从设备的地址但这次会将读位(R/W 1) 设置为1。这明确地告诉从设备“现在我准备从你那里读取数据了请从你之前指向的那个内部寄存器开始发送数据。”从设备收到这个读请求后就会从其内部指定通过第一次写操作的寄存器开始将数据发送给主设备。主设备则接收这些数据并通过发送ACK/NACK来控制数据流。4. 总结来说第一次“写”不是为了写入数据而是为了设置从设备内部的“读取地址”或“数据源”。重复起始条件用于在不释放总线的情况下无缝地从设置模式切换到读取模式。第二次“读”才是真正从从设备获取数据的过程。二I2C读操作的数据流以下是I2C读操作的典型数据流过程如图1所示图1. I2C主设备master从从设备slave读取data的数据流1 起始条件 (START Condition):当I2C总线空闲时SCL和SDA线都为高电平主设备通过在SCL线为高电平期间将SDA线从高电平拉低来发出起始条件。这标志着一次通信的开始。2发送从设备地址和写操作位 (Slave Address R/W bit 0):主设备发送一个8位字节。这个字节的前7位是从设备的唯一地址。第8位是读/写 (R/W) 控制位此时设置为0表示主设备最初是向从设备发送一个写请求通常是为了指定要读取的内部寄存器地址。3 从设备应答 (ACK from Slave):在主设备发送完地址和读/写位后它会释放SDA线。如果总线上存在与该地址匹配的从设备并且它已准备好通信它会在第9个时钟周期将SDA线拉低发送一个应答信号 (ACK)。4 发送内部寄存器地址 (Register Address, if applicable):对于许多从设备如EEPROM或传感器主设备需要指定要读取数据的从设备内部寄存器地址。主设备会发送一个8位字节包含目标寄存器的地址。5 从设备应答 (ACK from Slave):从设备接收到寄存器地址后会再次发送一个ACK信号确认已收到并准备好进行后续操作。6 重复起始条件 (Repeated START Condition):此时主设备需要将操作从“写”切换到“读”。它不会发送停止条件来终止当前传输而是发送一个重复起始条件。重复起始条件与普通起始条件相同在SCL为高电平期间SDA从高电平拉低。这允许主设备在不释放总线控制权的情况下改变传输方向。7 发送从设备地址和读操作位 (Slave Address R/W bit 1):主设备再次发送从设备的7位地址但这次将读/写 (R/W) 控制位设置为1表示主设备现在要从从设备读取数据。8从设备应答 (ACK from Slave):从设备接收到其地址和读请求后会发送一个ACK信号确认它已准备好发送数据。9 从设备发送数据字节 (Data Bytes from Slave):从设备开始向主设备发送数据字节。每个数据字节都是8位。10 主设备应答或非应答 (ACK/NACK from Master):主设备在接收每个数据字节后通常会发送一个ACK信号表示它已成功接收该字节并希望接收更多数据。当主设备接收到最后一个期望的数据字节时它会发送一个非应答信号(NACK)即在第9个时钟周期保持SDA为高电平通知从设备不再需要更多数据并准备终止传输。11停止条件 (STOP Condition):在主设备发送NACK后它通过在SCL线为高电平期间将SDA线从低电平拉高来发出停止条件。这标志着一次通信的结束并释放总线使其返回空闲状态。12 关键点总结:重复起始条件:是读操作中一个重要的环节它允许主设备在不释放总线的情况下从写模式切换到读模式。主设备控制ACK/NACK:在读操作中主设备负责在接收每个字节后发送ACK或NACK以控制从设备是否继续发送数据。R/W位:地址字节的最低位R/W位在读操作中会发送两次第一次为0写以指定寄存器第二次为1读以获取数据。三I2C读操作实例我们以一款16 位精度的模数转换器ADS1115。ADS1115 具有 16 位的 ADC因此会输出 16 位的数据转换结果。控制器设备从转换寄存器读取以获取 ADC 转换数据。转换寄存器地址指针为 00h。转换数据以二进制补码形式呈现为 16 位的结果。正的满量程输入会产生 7FFFh 的输出代码而负的满量程输入会产生 8000h 的输出代码。当 ADDR 引脚连接到 GND 时该设备响应地址 48h。图 4-5 展示了在地址指针为 00h 时从转换数据寄存器读取的示例。图2. I2C主设备master从ADS1115读取数据data实例I2C 写操作始于一个起始条件。SDA 被拉低然后 SCL 也被拉低。接着控制器会写入 I2C 地址。同样设备会响应地址 100 10007bit 0x488bit 0x90。控制器首先需要告知设备要从哪个寄存器读取数据。为此通信首先向设备发送一个 I2C 写操作以便设置从 ADS1115 的数据转换寄存器进行读取。此时R/W 位被设置为低表示通信从设备开始是写操作。当地址帧完成后ADS1115 通过拉低地址帧的最后一个位来确认。在表明控制器正在从ADS1115 读取数据之后控制器告知设备要读取哪个寄存器。第二个字节是数据转换寄存器的寄存器指针。在此处向 ADS1115 发送 00h。作为响应ADS1115 拉低 SDA 以确认 ACK。最后控制器发出停止信号以释放总线。现在控制器已告知设备访问数据转换寄存器接下来控制器会执行从该寄存器的读取操作。控制器再次写入I2C 地址。控制器已经指明了要读取哪个寄存器现在控制器向设备发送读取指令以便读取 ADS1115 的数据转换寄存器。此时R/W 位被设置为高电平表示进行读取操作。同样在完成地址帧后ADS1115 会确认地址。接下来的两个数据字节用于读取该寄存器。第一个字节是转换数据的最高有效字节然后第二个字节是最低有效字节转换数据的读取。控制器每次读取一个字节后都会收到一个确认信号。最后控制器发送一个STOP 信号以结束 I2C 通信。与前面的例子一样图2是一个便于理解的示意图展示了与该设备的 I2C 通信情况。如果在通信过程中出现任何问题可以使用 SDA 和 SCL 的示波器波形图来进行对比以与本示例的描述进行对照。四 抛砖引玉在第五篇我们已经深入介绍I2C通信协议协议Protocol的写操作。这一节我们又学习了读操作读操作包含一次假写操作(Dummy Write)和一次读数据返回。I2C的其它operation都是在读写操作的基础上组合而来在此不一一赘述。敬请关注下一篇《I2C从入门到精通之七I2C设备的电气特性electrical specifications》五参考文献需要以下参考文献I2C标准的朋友请关注本微信公众号“硬件工程师宝典”在对话框内回复“I2C”将获取标准下载连接。其中“I2C_Spec_Rev7_2021_UM10204.pdf”这份文件是最新的I2C specification, 希望大家重点阅读。百度网盘分享的文件
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

如何做能放照片的网站网站设计部的优化

提示工程架构师职业规划:AI提示系统创新突破的3条发展路径 引言:AI大模型时代,你需要成为“提示系统建筑师” 当你用ChatGPT写产品文案时,是否遇到过“答非所问”的尴尬? 当你用AI客服解决问题时,是否觉得…

张小明 2026/1/5 22:00:54 网站建设

深圳网站建设公司麦济南外贸建站

当 IBM 用 AI 智能体处理考勤管理、联合利华借助 AI 优化人才配置、德勤通过 AI 提升员工服务品质,可以发现人力资源领域的 AI 应用已从 “关注兴奋”“观望疑惑” 迈入 “主动实践” 的深水区。行业数据显示,AI 对 HR 管理的渗透深度与广度持续拓展&…

张小明 2026/1/4 18:53:40 网站建设

怎么做网站的签约编辑泉州网站建设工作室

还在为GitHub下载速度慢如蜗牛而苦恼吗?Fast-GitHub这款免费浏览器插件就是你的救星!通过智能网络优化技术,它能将GitHub的下载速度提升数倍,让开发者从此告别漫长的等待时间。 【免费下载链接】Fast-GitHub 国内Github下载很慢&a…

张小明 2026/1/10 18:34:54 网站建设

网站开发中英文版如何写中国招标信息公开网

想要让静态照片"开口说话"吗?SadTalker作为当前最先进的语音驱动人脸动画技术,能够将任意单张人物照片与音频结合,生成生动自然的说话视频。本文为你带来全新视角的部署教程,告别传统安装方式,体验更高效的配…

张小明 2026/1/5 21:37:26 网站建设

太和县建设银行网站长清网站建设电话

你是否曾经在QQ音乐上发现一首心仪的歌曲,想要保存到本地却因为会员限制而无法实现?或者想要批量下载整个歌单,却需要一首一首手动操作,既费时又费力?今天我要为你介绍一款专业的QQ音乐下载工具,它能帮你轻…

张小明 2026/1/6 5:08:11 网站建设

手机网站制作教程软件推广网站的几种方法

树莓派5上手全记录:从开箱到稳定运行的实战经验 刚拿到树莓派5时,我满心期待——更强的CPU、更快的内存、终于来了的PCIe接口。可第一次通电后,屏幕没亮;第二次烧卡成功却频繁重启;第三次风扇狂转但温度居高不下……这…

张小明 2026/1/10 12:23:50 网站建设