做个企业网站的公司找人做网站属于了解些什么呢

张小明 2026/1/2 14:25:39
做个企业网站的公司,找人做网站属于了解些什么呢,挣钱最快的游戏,洛阳室内设计公司排名0#xff0c;引言 在上一篇文章我们讲解了《I2C从入门到精通之四#xff1a;I2C从设备的地址adress》#xff0c;今天我们继续接着介绍I2C通信协议Protocol中的写操作write operation。 所有I2C主题的文章都会收录在《深入浅出聊I2C》https://mp.weixin.qq.com/mp/appmsga…0引言在上一篇文章我们讲解了《I2C从入门到精通之四I2C从设备的地址adress》今天我们继续接着介绍I2C通信协议Protocol中的写操作write operation。所有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 通信帧FrameI2C 协议被分解为多个帧Frame。通信始于控制器设备在发送起始信号后发送地址帧Frame。地址帧Frame之后是一个或多个数据帧Frame每个数据帧由一个字节组成。每个帧还有一个确认位用于提醒控制器目标设备或控制器设备已接收到通信。图 2 展示了两个 I2C 通信帧的示意图。图2. I2C 地址和数据帧Frame在地址帧的开头控制器设备会发出“START”信号。控制器设备首先将 SDA 电平拉低然后将 SCL 电平拉低以触发“START”信号。这使得控制器设备能够独占总线而不会与其他总线上的控制器设备发生竞争。每个 I2C 目标设备都有一个相关的 I2C 地址。在与特定目标设备开始通信时控制器会使用目标设备地址在接下来的 I2C 帧中发送或接收数据。I2C 地址由 7 位组成I2C 总线上每个设备在总线上都有一个唯一的地址。7 位地址意味着有 2^7即 128个唯一的地址。然而有几个保留的 I2C 地址限制了可能的设备数量。保留地址将在第 5 节中进行讨论。该地址以 SDA 作为数据SCL 作为串行时钟的形式发送。有了这些信息您就可以通过设备的 I2C 通信来读取数据并理解控制器设备和目标设备之间来回传输的内容。此帧中的第8 位是读写R/W位。如果此位为 1则控制器表示要从目标设备读取数据。如果此位为 0则控制器表示要向目标设备写入数据。在任何通信字节之后会有一个额外的第9 位用于验证通信是否成功。在地址字节通信结束时目标设备在 SCL 脉冲期间拉低 SDA向控制器指示地址已被接收。这被称为确认ACK位。如果此位为高则表示没有目标设备接收到地址通信不成功。如果此位为高则称为 NACK表示没有 ACK。地址帧之后会跟随一个或多个数据帧。这些帧一次发送一个字节。在每个数据字节传输完成后会有一个另一个ACK。如果数据字节是要向设备写入的则目标设备将 SDA 拉低以确认传输。如果数据字节是要从设备读取的则控制器将 SDA 拉低以确认数据已接收。ACK 是一个有用的调试工具。如果缺少这一部分则可能表明目标外围设备未接收到进行通信所需的 I2C 地址或者控制器外围设备未接收到预期的数据。通信完成后控制器会发出I2C 停止“STOP”条件。首先释放 SCL然后释放 SDA。控制器利用此停止“STOP”信号表示通信已完成并释放 I2C 总线。这是控制器设备与目标设备之间任何I2C 通信的基本协议。通信可以包含多个字节的数据。在某些情况下如果目标设备具有多个数据和配置寄存器从设备的读取操作可以从对设备的写入操作开始以指示要读取的寄存器。以下部分将展示如何从不同数据转换设备进行读取和写入操作的示例。二、I2C写入操作Write示例1. I2C写操作的数据流过程I2CInter-Integrated Circuit写操作的数据流过程描述了主设备如何向从设备发送数据。这个过程通常遵循以下步骤如图3所示图3. I2C写操作Write的Frame结构1) 起始条件 (START Condition):当I2C总线空闲时SCL和SDA线都为高电平主设备通过在SCL线为高电平期间将SDA线从高电平拉低来发出起始条件。这标志着一次通信的开始。2) 发送从设备地址和写操作位 (Slave Address R/W bit):主设备接着发送一个8位字节。这个字节的前7位是从设备的唯一地址用于选择总线上特定的从设备。第8位是读/写 (R/W) 控制位。对于写操作此位设置为0表示主设备要向从设备写入数据。3) 从设备应答 (ACK from Slave):在主设备发送完地址和读/写位后它会释放SDA线。如果总线上存在与该地址匹配的从设备并且它已准备好通信它会在第9个时钟周期应答位将SDA线拉低发送一个应答信号 (ACK)。如果从设备发送NACKSDA保持高电平则表示从设备未收到数据或无法处理主设备通常会终止传输。4) 发送内部寄存器地址 (Register Address, if applicable):对于许多从设备如EEPROM或传感器主设备需要指定要写入数据的从设备内部寄存器地址。主设备会发送一个8位字节包含目标寄存器的地址。5) 从设备应答 (ACK from Slave):从设备接收到寄存器地址后会再次发送一个ACK信号确认已收到并准备好接收数据。6) 发送数据字节 (Data Bytes):主设备开始发送要写入从设备的数据字节。每个数据字节都是8位。每发送一个字节后主设备会释放SDA线并等待从设备发送ACK信号。如果从设备发送ACK主设备可以继续发送下一个数据字节。这个过程可以重复以传输多个数据字节。7) 从设备应答或非应答 (ACK/NACK from Slave):从设备在接收每个数据字节后都会发送ACK。如果从设备无法接收更多数据它可能会发送NACK。8) 停止条件 (STOP Condition):在所有数据字节都发送完毕并收到最后一个ACK后主设备通过在SCL线为高电平期间将SDA线从低电平拉高来发出停止条件。这标志着一次通信的结束并释放总线使其返回空闲状态。9) 关键点总结:主控一切: I2C通信始终由主设备发起和终止。SDA和SCL: SDA (串行数据线) 用于传输数据SCL (串行时钟线) 用于同步数据传输。数据有效性: 在SCL为高电平期间SDA线上的数据必须保持稳定。SDA上的电平变化只能在SCL为低电平期间发生。应答机制: 每传输一个字节地址或数据后接收设备都会发送一个应答位 (ACK/NACK) 来确认接收状态。读写位: 地址字节的最低位R/W位决定了主设备是向从设备写入数据 (0) 还是从从设备读取数据 (1)。2. DAC80501的功能本节通过两个示例展示了I2C 协议如何与不同的数据转换器进行通信。首先利用 I2C 协议向 DAC80501 的 DAC 数据寄存器写入数据以设定输出电压。其次利用 I2C 协议从 ADS1115 ADC 的转换寄存器中读取数据。DAC80501 是一款具有内部参考电压的 16 位高精度电压输出型数模转换器。在电源接通时若将 SPI2C 引脚设置为高电平则该设备将采用 I2C 接口并具备标准模式、快速模式以及快速模式加 I2C 模式等多种工作模式。图3 展示了该设备的功能框图。图4. DAC80501的内部功能模块DAC80501 有一个标有“A0”的地址引脚。该引脚用于选择四个 I2C 地址中的一个这意味着只要这些设备被编程为不同的地址就可以在同一总线上使用这四个设备。将 A0 引脚连接到 AGND、VDD、SDA 或 SCL该设备就可以设置为如所示的四个独特地址。在此示例中A0 被设置为 VDD因此地址为 49h。该设备有一组寄存器可用于启用DAC 参考和输出通过参考分频器或缓冲器增益来设置输出范围设置复位或启用 LDAC 触发器以及 DAC 输出代码。这些寄存器也可以读取以验证设置、根据不同版本的 DAC 分辨率和上电复位值识别设备并根据参考值检查低电源告警。DAC80501 有七个内部寄存器每个寄存器通过命令字另一个寄存器是 NOOP 寄存器无操作它是只读且不发送命令或设置寄存器值进行寻址。每个寄存器有 16 位数据通过两个数据字进行访问。在本示例中与命令或寄存器字节的通信是具有多个寄存器的 I2C 设备中常用的一种方法。数模转换器数据寄存器08h用于设定数模转换器的输出电压。对于本示例通过 I2C 协议对数模转换器数据寄存器进行写入操作以设定设备的输出电压。数据写入包括地址字节、寄存器字节以及两个数据字节总共需要四个通信帧。图5. DAC80501的pin脚定义3. DAC80501的写操作Write OperationI2C 写操作始于一个起始条件。SDA 被拉低然后 SCL 也被拉低。接着进行 I2C 地址的写入操作。当 A0 引脚连接到 VDD 时DAC80501 对应于地址 100 1001或 49h做出响应。读/写R/W位被设置为低电平表示控制器正在向设备写入数据。在完成地址字节之后DAC80501 通过将 SDA 下拉以拉低地址帧的最后一个位来确认地址。控制器向总线上所有目标发送地址以及读或写信息。如果目标的 DAC80501 有匹配的地址该设备会发送一个 ACK 以向控制器指示已接收到有效地址并且设备已准备好接收信息。在控制器向DAC80501 发送写入地址并写入数据之后控制器告知设备正在写入哪个寄存器。发送给目标设备的第二个字节是 DAC 数据寄存器的寄存器指针。在此处0000 1000 被发送给 DAC80501。作为响应DAC80501 通过拉低 SDA 来确认 ACK。再次目标设备会向控制器发送信号表明设备已接收到地址指针数据以及正在写入的寄存器。现在DAC 数据寄存器的值会以一个字节为单位依次发送给目标设备。对于这个字节发送 DAC 数据的第一字节。将 0100 1100 发送至 DAC80501。DAC80501 对该字节进行了确认。最后配置寄存器的最后一个字节会被发送至目标设备。这里将1100 1101 发送至 DAC80501。DAC80501 对这个第二个数据字节进行了确认。最后SCL 释放为高电平然后 SDA 也释放为高电平。在此操作中控制器通过发出停止条件来释放总线。将这些帧组合在一起I2C 写操作看起来如图5所示。这里该图展示了与所有帧的适当位设置相关的整个通信过程。如果示波器绘制出 SDA 和 SCL 的 I2C 通信图那么此图可以直接与用于调试的绘图进行比较。图6. 向 DAC80501 的 DAC 数据寄存器写入数据三 抛砖引玉在接下来的文章中我们将深入介绍I2C通信协议协议Protocol的写操作。既然有写操作write那么必然有读操作read operation。下一节我们将学习读操作为什么我们先介绍写操作write再介绍读操作read operation且听下一篇分解《I2C从入门到精通之五I2C通信协议Protocol-读操作》四参考文献需要以下参考文献I2C标准的朋友请关注本微信公众号“硬件工程师宝典”在对话框内回复“I2C”将获取标准下载连接。其中“I2C_Spec_Rev7_2021_UM10204.pdf”这份文件是最新的I2C specification, 希望大家重点阅读。百度网盘分享的文件
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

单页面网站模板自己怎么做企业网站建设

连接5000个MQTT终端设备属于中小规模向中规模过渡的场景,资源需求比2000终端有明显提升,但仍无需高配服务器,重点优化内存、文件句柄和网络带宽即可,以下分单机部署和高可用部署两种方案:一、单机部署(适合…

张小明 2026/1/2 12:18:42 网站建设

网站关键词不稳定做网站怎么插音乐

如果你用大模型API搭建了AI应用,就必须警惕一个致命风险——Prompt注入攻击。毫不夸张地说,若不设防,你的AI应用很可能正在“裸奔”,随时可能被攻击者恶意利用,导致数据泄露或生成有害内容。 别慌,这篇文章…

张小明 2026/1/2 15:41:02 网站建设

网站建设和app制作wordpress搭建

YOLO训练数据集怎么选?专业建议助你少走弯路 在工业质检车间里,一台搭载AI视觉系统的设备正高速运转——相机每秒捕捉数十帧PCB板图像,YOLO模型实时判断是否存在焊点缺陷。突然,一个微小的虚焊被漏检,整条产线后续工序…

张小明 2026/1/1 11:20:58 网站建设

网络营销网佛山网站关键词优化公司

Anaconda是干嘛用的?Miniconda给出了更轻的答案 在人工智能和数据科学项目日益复杂的今天,你有没有遇到过这样的场景:刚接手一个开源模型代码,满怀信心地运行 pip install -r requirements.txt,结果报错一堆依赖冲突&…

张小明 2026/1/1 11:20:55 网站建设

商业网站北京建企业网站

Linux 系统音频光盘与音频文件处理全攻略 在 Linux 系统中,音频光盘和音频文件的处理有着丰富的工具和多样的方法。下面将详细介绍如何在 Linux 系统中操作音频光盘以及编辑音频文件。 1. 音频光盘的使用 在安装了 CD 驱动器和声卡的 Linux 系统中,就可以播放音频光盘。与…

张小明 2026/1/1 11:20:53 网站建设