IIC通信协议(学习心得)

IIC协议是一种使用两根通信线SCL和SDA的半双工通信方式,具有应答机制并支持多个设备挂载。在传输过程中,SDA线会根据发送和接收状态在输入和输出间切换,为了避免总线冲突,采用外置弱上拉电阻和开漏输出。通信过程中,数据在SCL低电平时由主机放到SDA线上,从机在SCL高电平时读取。主机和从机通过发送和接收字节以及应答位进行交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IIC:同步半双工,2根通信线  SCL:时钟线 SDA:数据线
1.半双工
2.有应答机制
3.支持挂载多设备

SDA发送时是输出没接收时是输入,从机的SDA也会在输入和输出之间反复切换。为了避免总线没协调好(即两个引脚同时处于输出状态,又正好一个输出高电平,一个输出低电平),导致电源短路,因此禁止所有设备输出强上拉的高电平,采用外置弱上拉电阻加开漏输出的电路结构(强上拉用的上拉电阻阻值小,弱上拉用的电阻阻值较大驱动电流不同)。即SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右

 

起始条件:

        SCL高电平期间,SDA从高电平切换到低电平

终止条件:

        SCL高电平期间,SDA从低电平切换到高电平

 

发送一个字节:

        SCL低电平期间,主机将数据位依次放到SDA线上(高位先行),然后释放SCL,从机  将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节

 接收一个字节:

        与发送原理相同,从机放数据,主机读数据(主机接收前,需要释放SDA)

发送应答:

        主机在接收完一个字节之后,在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答(与发送一个字节其中一位是相同的)

接收应答:

        主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA)(与接收一个字节其中一位是相同的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学电路的小明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值