简洁IIC协议讲述

news/2024/12/22 16:46:21/

目录

一:首先,IIC传输是在2条线上传输的。

二:时钟信号的频率和占空比解释(可以看作PWM波形)

三:传输信号的流程图(起始和终止信号都是由主机(我)控制)

四:开始信号和结束信号的解释。

五:完整IIC传输波形分析





一:首先,IIC传输是在2条线上传输的。

一条叫时钟线。(SCL)

一条叫数据线。(SDA)

并且这两条线在空闲时候,都是默认被上拉电阻拉高的高电平




二:时钟信号的频率和占空比解释(可以看作PWM波形)

时钟始终有主机控制,谁发起IIC起始谁就是主机。

在标准模式(100 kHz内任意频率)和快速模式(400 kHz内任意频率)下虽然理论上时钟信号可以有任意占空比,但通常推荐50%的占空比。(能用多高频率要看设备支持多高)




三:传输信号的流程图(起始和终止信号都是由主机(我)控制)

【我发起始信号 】 --->【(底下IIC设备的地址码(读或写) 】(应答) ---> 【 (读或写)一个字节数据 】(应答)  --->【这里可以继续发送或接收下个字节数据】(应答) ---> 【我发停止信号】

示例一:现在需要向底下的IIC设备写入2个字节数据。

【我发起始信号 】 --->【(底下IIC设备的地址码(写) 】(对方应答) ---> 【 (写)一个字节数据 】(对方应答)  --->【 (写)一个字节数据 】(对方应答) ---> 【我发停止信号】

示例二:现在需要向底下的IIC设备读取2个字节数据。

【我发起始信号 】 --->【(底下IIC设备的地址码(读) 】(对方应答) ---> 【 (读)一个字节数据 】(我应答)  --->【 (读)一个字节数据 】(我不应答) ---> 【我发停止信号】



四:开始信号和结束信号的解释。

在时钟SCL为高电平时,数据SDA线上的任何变化都会被解释为起始或停止条件

也就是其他任何数据必须在时钟SCL低电平时候改变好。

数据和应答等等是在时钟上升沿中断中读取数据线电平(此时时钟SCL是高电平)




五:完整IIC传输波形分析

任何数据必须在时钟SCL低电平时候改变好。

数据和应答等等是在时钟上升沿中断中读取数据线电平(此时时钟SCL是高电平)

(读取到高电平代表数据1,低电平代表0)

设备地址有些是9个二进制位,这个要注意。一般都是7个。

读操作中的停止信号:
在读操作期间,主设备接收到来自从设备的数据,并在接收到所需的所有字节后发出非应答信号(NACK),表示不再需要更多数据。
接下来,主设备会在适当的时候发出停止条件来结束通信。这通常是在最后一个字节被成功接收并处理之后。


http://www.ppmy.cn/news/1557238.html

相关文章

2011年IMO几何预选题第7题

六边形 A F B D C E AFBDCE AFBDCE 外切于圆 O O O, 且 O O O 为 △ A B C \triangle ABC △ABC 的外心. N N N 为 F F F 在 B D BD BD 上的投影. 过点 F F F 的 D E DE DE 的垂线交直线 O C OC OC 于 L L L, L L L 在 C D CD CD 上的投影为 N N N. 求证: D M =…

黑客如何找到App中的源IP:原理与防范

在移动互联网时代,应用程序(App)已经成为人们生活中不可或缺的一部分。然而,随着App的广泛应用,安全问题也日益受到关注。其中,源IP泄露是一个潜在的安全风险,可能导致服务器遭受攻击、敏感信息…

ubuntu批量依赖库拷贝(ldd)

背景 如何将程序依赖的动态库拷贝到指定的目录? 例子 通过LDD查看依赖的动态库。 $ ldd extract_gpulinux-vdso.so.1 (0x00007ffd931e4000)libopencv_cudacodec.so.4.1 > /home/joyner/disk1/mmaction/third_party/opencv-4.1.0/build/lib/libopencv_cudacod…

lua dofile 传参数

cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua,结果为: First argument is: 111 Second argument is: 222 l…

kubeadm_k8s_v1.31高可用部署教程

kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**部署署架构****Load Balance****Control plane node****Worker node****资源分配(8台虚拟机)**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…

STM32相关知识及其创建工程

STM32 管脚 相关部件 基本部件: GPIO输入输出,外部中断,定时器,串口中断 基本外设接口: SPI,IIC,WDG,ADC/DAC,这些外设接口功能原理对每个芯片几乎都是一样 高级功能:RTOS,STM32CubeMx,HAL库LWP网络通信&a…

杂七杂八的网络安全知识

一、信息安全概述 1.信息与信息安全 信息与信息技术 信息奠基人:香农:信息是用来消除随机不确定性的东西 信息的定义:信息是有意义的数据,是一种要适当保护的资产。数据经过加工处理之后,就成为信息。而信息需要经…

门户系统需要压测吗?以及门户系统如何压力测试?

一、门户系统为什么要进行压力测试? 首先一点要明确一下,统一门户上线以后,将是所有应用系统的入口,对应门户稳定性要求较高,门户实现了统一入口和统一认证,系统宕机将影响其他系统使用。一般部署架构要求…