快速了解I2C

I2C的本质是两个器件的通讯方式,两条线(CLK、SDA),半双工,一个主机负责计步,卡准节奏,也就是clk,一个或者一堆从机根据主机的要求,接收或者发送数据,主要是3个过程

开始

数据传输、应答

结束

快速了解I2C_第1张图片

硬件结构是两边的SDA都是开漏的,也就是两边都只有主动拉低和放开SDA控制两个情况

放开拉低就自动通过上拉电阻拉高,该总线上就是读取到高电平

开始标志

CLK还在高处的同时,SDA拉低,保持一小会,开始传输数据,然后传输方会控制SDA,发送从机地址和指令,指名道姓是告诉某个设备,执行某个任务,读取或者写入,然后发送数据或等待数据发送过来

数据传输、应答

接收方接受了一个byte就会给一个应答,应答就是你发了一个byte给我,然后你放手了,SDA就变高了,这个时候我去把SDA拉低,再保持一个clk,这样代表我接收到你的数据了。

结束标志

CLK还在高处的同时,SDA拉高,代表通讯结束了

快速了解I2C_第2张图片

 这是发送一个A0的过程,9个CLK最后一个被拉低了,代表有ACK(应答)

总结

简单快速了解I2C,首先知道硬件原理,其次是双方通讯的机制是主机作为开始、结束、节奏的控制者,通过地址检索从机,从而使总线上能够挂大量不同地址的从机。

你可能感兴趣的:(c语言,单片机,mcu,物联网,嵌入式硬件)