首页 > 其他分享 >IIC时序(通俗易懂版,嘎嘎简单)

IIC时序(通俗易懂版,嘎嘎简单)

时间:2024-09-12 22:54:08浏览次数:13  
标签:主机 通俗易懂 时序 发送 从机 SDA IIC 数据

介绍

简述:IIC总线就是一个两根线的规则(半双工),规定通信双方如何传送数据,至于传送数据,无非就是主机给从机发送数据,或者从机给主机发送数据,其中加了一点发过去的数据有没有回应,也就是应答!或者不应答。还有一点IIC是一个多机通信的协议。话不多说,上才艺!跟着开心哥的小火车发车了!

作者:王开心

时间:2024.22.12

两根线:SCL时钟线,控制数据传送节拍的。SDA数据线,传送数据的线

(一)IIC时序

第一步

如上图书所示!起始信号也就是通信开始条件,IIC规定在SCL时钟为高电平的时候,且SDA由高到低的变化。即为通信开始!终止条件,也就是通信的结束条件,IIC同样规定SCL也是高电平期间,且SDA由低到高的变化。即为通信的结束!

第二步

发送一个字节,顾名思义就是发送8位二进制,利用一个循环将8个二进制给发送出去。一般我们编程都是以主控为编程期间,”显而易见“,发送一个字节,也就是说我们给主机编程让他发送一个字节数据,如何配置,IIC规定在SCL=0的期间,我们可以将想要发送的数据放到SDA这个数据线上(一次放一位二进制),等待发射信号也就是起发信号,IIC规定当SCL=1时,数据就可以通过SDA发送出去了(先发高位),发送期间不允许有数据变化!

第三步

接收一个字节,也很简单,对于主机而言的,接收一个字节,也就是从机发数据给主机,看图自己理解,比较简单!(也是从高位开始接收的)简单说一下,scl=0,允许SDA变化(也就是从机把数据放到SDA上),scl=1,从机把数据发送出去,主机接收!

注意:主机在接受数据前一定要释放SDA,不要一直抓着不放!会受不了的,用完就放开她,从机也要用的!

第四步

显而易见!应答,也就我数据发送出去有没有回应!形成闭环控制,一句话有始有终!也就是说,主机发送出去的数据,从机最起码要给出应答(我们采用第九位二进制表示)(可以参考数据帧,一帧数据,既包括地址,开始信号,数据位,停止位,奇偶校验位等等!)

(二)三种IIC数据帧格式

第一种

从机地址+读还是写(读:输入,从机发给主机。写:输出,主机发送给从机)

7位地址位加一个读写位。一般为7位,有更多的,,通过上图可知可以发送N个字节数据

RA=0,receive ack :表示接收应答信号,向谁发送数据,也就是从机地址(要发的给对象)

第二种

 注意:此时,R: 读操作,即从机向主机发送数据,也就是我们主机对SDA的控制权交给从机了,(写程序的时候一定要注意,主机发送完数据,一定要释放SDA数据线)

向谁收数据:从机地址

举个简单例子,如下图通信对话

: 小明你来回答这个问题,:小明说收到,,小明开始回答问题,,回答完毕,提问结束,

第三种(稍微有一点小难度)

W:写->主机发送送数据给从机,也就是主机对从机输入数据

R:读 ->主机接收从机的数据,也就是从机给主机发送数据,

举个简单例子:W:主机对从机说,你欠我的500元啥时候还我,R:从机回答说,没钱,不还。

AT24C02 的IIC通信(支持IIC通信的芯片采用IIC的符合格式,也就是第三种)

在程序设计的我们都会设计一个函数,如开始信号,写操作,读操作,介绍应答等,如发送一个字节需要一个参数,也就是传入从机地址(下一节实战AT24C02存储芯片-EEPROM实验)

(三)典型IIC时序介绍(中文)


IIC寄存器

标签:主机,通俗易懂,时序,发送,从机,SDA,IIC,数据
From: https://blog.csdn.net/qq_58662017/article/details/142186322

相关文章

  • 51单片机-AT24C02(IIC总线介绍及其时序编写步骤)-第一节(下一节实战)
    IIC开始通信(6大步)我以前的文章也有对基本常用的通信协议讲解,如SPIUARTIICRS232RS485CAN的讲解,可前往主页查询,(2024.9.12,晚上20:53,将AT24C02存储芯片,掉电不丢失,容量256字节)......
  • 常见的网络攻防技术(通俗易懂)
    前言提示:文章同样适用于非专业的朋友们,全文通俗化表达,一定能找到你亲身经历过的网络攻击(建议大家认真看完,这篇文章会刷新你对网络攻防的认知)前言在世界人口近80亿的地球上,每天尚且发生数以百万计的抢劫打架斗殴事件,网络更是如此,网络攻防战几乎每时每刻都在发生。如果说......
  • IIC通信中设备的交互流程
    本文主要叙述,当两个设备进行IIC通信时,两个设备的交互流程,即主机的动作和从机的动作。当通过软件编程的方式实现设备间的IIC通信时,我们就是按照主机的动作或从机的动作来编写对应的代码。实际上,主机和从机是按照IIC通信协议的要求完成相应的动作的( IIC通信协议在文章IIC......
  • 通俗易懂版经典的黑客入门教程
    第一节、黑客的种类和行为以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情,因为邪派黑客所从事的事情违背了《......
  • IIC工作模式时序分析
    IIC工作模式时序分析此处利用IO口模拟IIC通信过程中的时序。通信过程在IIC通信过程SDA存在两种模式(接收模式和发送模式),发送或接受一个字节(器件的7个bit+1个bit方向(1-读方向,0-写方向))模式配置当SDA为接入模式接收了1字节数据后在第九个时钟脉冲期间就要变成输出模式发送as......
  • RapidJSON 的坑--允许Object对象存在相同的key,且key为数字时序列化报异常
    RapidJSON的坑--允许Object对象存在相同的key,且key为数字时序列化报异常测试代码如下:1voidshow(rapidjson::Document&doc)2{3printf("-----------------foriterator\nMemberCount:%d\n",doc.MemberCount());4for(autoit=doc.MemberBegin();it!=doc......
  • TimesNet - 时序升维卷积任务通用模型 论文笔记 ICLR2023
    论文信息标题:Timesnet:Temporal2d-variationmodelingforgeneraltimeseriesanalysis作者:HaixuWu,TenggeHu,YongLiu,HangZhou,JianminWang,MingshengLong代码:https://github.com/thuml/TimesNet[原仓库,代码已迁移到TSLib]https://github.com/thuml/Time-Ser......
  • 如何通俗易懂的解释TON的智能合约
    文章目录一、小故事一则二、Ton的智能合约在小故事中三、python代码模拟一、小故事一则在一个遥远的国度里,有一个被魔法笼罩的小镇,这个小镇每年都会举办一场盛大的戏剧节。这个戏剧节不仅是演员们展示才华的舞台,更是他们交流心得、共同创作新剧目的盛会。今年的戏......
  • 一文讲清,常用通信协议IIC,SPI,串口,基于STM32
    目录一、通讯的基本概念1.串行通讯2.并行通讯3.传输模式(单工、半双工、全双工)二、常见通讯协议(串口、IIC、SPI)1.串口(1)UART和USART的区别是什么?(2)UART(TTL、RS232、RS485)(3)基于STM32的HAL库的串口配置2.IIC(1)物理层(2)协议层(3)软件模拟IIC通讯代码(4)有关IIC面试的问题(5)硬......
  • CNN-BiLSTMNTS-KDE多变量时序区间预测
     CNN-BiLSTMNTS-KDE多变量时序区间预测CNN-BiLSTMNTS-KDE多变量时序区间预测代码获取戳此处代码获取戳此处代码获取戳此处一、原理CNN-BiLSTMNTS-KDE模型结合了卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)、非参数时序建模(NTS)以及核密度估计(KDE)来进行多变量时序数据的......