4.2 I2C通信协议

1. I2C通信的基本流程

2. I2C的数据帧格式

对于串口一次只能传输8-9个比特位

而I2C总线一次可以传输多个字节

3.起始位和停止位

所谓起始位就是SCL高电压的时候,SDA出现下降沿,而停止位就是SCL高电压的时候,SDA出现上升沿

4.寻址

RW是方向位,Read Write ,写是0读是1,主机发送完之后,就会等待被寻址的从机给它应答,从机会发送一个ACK来应答,这个ACK应答信号相当于主机叫从机的名字,从机答到。当主机收到ACK之后就意味着主机寻址成功了,才会进入下一步数据传输阶段

主机首先释放SDA,也就是SDA引脚写1,当主机给SDA写1的时候,那这个SDA就会从总线上的SDA断开,这条线就悬空了,但是由于上拉电阻的作用,那这条SDA呈现高电压,如果没有设备应答它的时候,就始终维持高电压,这时候就等于没有收到应答信号。而如果有设备应答它的时候,这个设备就会把它重新拉低,那主机就会检测到一个低电压,主机只要检测到了低电压,就知道收到这个ACK了

5.传输数据

当寻址阶段成果之后,下一阶段就可以传输数据,传输数据一次性可以传输多个字节,发送方发一个字节,接收方就回复一个ACK

6.例子

从机0x20读一个字节(0x64),注意最后并没有发送ACK,因为只发送一个字节,就不需要发ACK了,也就是NAK

相关推荐
iCxhust2 分钟前
8088单板机C语言汇编混合编程实验方法与步骤
c语言·汇编·单片机·嵌入式硬件·微机原理
正运动技术7 分钟前
全国产强实时运动控制内核(十二):实时在线变速实现多段速的软着陆
嵌入式硬件·c#·运动控制·运动控制器·运动控制卡·正运动·pc上位机
坏一点40 分钟前
Yocto项目构建(3)——构建和部署树莓派镜像
linux·驱动开发·嵌入式硬件
逆小舟41 分钟前
【RTOS】任务间通信IPC
单片机·嵌入式硬件
电化学仪器白超1 小时前
《可编程固定阻值电子负载的制作与自动化标定技术》
python·单片机·嵌入式硬件·自动化
三佛科技-134163842121 小时前
LP3799FAES-B 反激式电源控制器芯片 典型应用电路
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
黑客思维者1 小时前
XGW-9000 网关 DDR4/LPDDR4 内存子系统信号完整性仿真细化设计
开发语言·python·嵌入式硬件·ddr4·信号仿真
风行男孩2 小时前
stm32基础学习——按键的使用
stm32·嵌入式硬件·学习
小热茶2 小时前
浮点数计算专题【五、 IEEE 754 浮点乘法算法详解---基于RISCV的FP32乘法指令在五级流水线的运行分析与SystemC实现】
人工智能·嵌入式硬件·算法·systemc