IIC协议

IIC信号有三种信号构成,开始信号,结束信号,应答信号。
开始信号:当SCL为高电平是,SDA信号从高电平变成低电平时,为开始信号。
结束信号:当SCL为高电平时,SDA信号从电平变成高电平,为结束信号。
应答信号:当主机发送完数据后,将SCL置为高电平,读取SDA信号,如果是低电平,就视为IIC设备接收到了数据。
应答信号:当IIC设备接收到主机发送的8bit数据后,会发送一个特定的低电平信号,当主机接收到这个电平信号后,决定是否继续发送数据。如果没有收到电平信号,那么就表示IIC设备没有收到完整的数据。
空闲状态:空闲状态SDA信号要为高电平,由上拉电阻上拉。
SCL信号:SCL信号一般不为晶振的信号,因为我们无法保证SCL什么时候为高电平,就无法确认什么时候控制SDA信号,可以直接使用两个pin进行IIC模拟通信。
开始信号的SCL和SDA信号:SDA信号从高电平变成低电平后,,SCL应延迟4.7us后变化电平。之前SDA保持在高电平至少4.7us。
停止信号的SCL和SDA信号:SDA信号从低电平变成高电平后,至少保持5us高电平。同时SCL要先于SDA在高电平4.7us。
忙状态:在起始信号开始后,总线处于忙状态,这个时候要设置标志位,不能让其它通信占用通信总线。
数据的有效性:当SCL为高电平时,SDA的电平必须稳定,不能出现跳变,只有当SCL为低电平的时候,SDA的电平才能发生变化。如果SCL为高电平时,SDA的电平发生了变化,就会被视为开始或结束信号。
应答信号简称:当检测到应答信号为低电平时,就称为ACK,如果是高电平时,就称为NACK。
应答信号的回应时间:当主机发送完8位数据后,在第九个时钟周期,从机必须要回复出应答信号,不然数据发送无法进行。
数据帧:IIC通信传输的数据帧一般有9帧,即8位数据位和1位应答位。
IIC数据传输起始位:IIC是从MSB开始传输数据。
IIC从机地址:多数地址为7位,也有10位,发送数据时一般是7为地址数据+1位读写功能码(或者叫做方向位)。
读写位:0表示主机向从机写数据,1表示主机向从机读数据。

IIC写数据步骤
1.主机发送开始信号。
2.主机发送8位从机地址数据,包含7位从机地址和1位写方向位。
3.主机等待应答信号,并接收应答信号。
4.主机发送要访问的数据地址。
6.重复第3步。
7.主机发送要传输的8位数据
8.重复第3步。
9.重复第7和第8步,直到发送完所有数据,
7.发送停止信号,结束通信。
IIC读数据步骤
1.主机发送开始信号
2.主机发送8位从机地址数据,包含7位从机地址和1位写方向位。
3.等待从机应答信号,并接收。
4.主机发送要访问的数据地址。
5.重复第3步。
6.主机发送开始信号,并向从机发送8位从机地址,此时方向位是1(表示读数据),这个时候主机进入接收数据模式,从机进入发送数据模式。
7.重复第3步。
7.从机发送1字节数据,主机接收完数据。发送一个应答信号。
8.当主机不再接收信号后,发送非应答信号。
8.主机发送停止信号,接束进程。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值