IIC、SPI、Uart、One-wire等常见协议

IIC协议

1.简介

IIC两线式串行总线,由数据线SDA和时钟线SCL构成,由于数据在同一条线上传输,因此IIC通信是半双工通信方式;

IIC使用多主从架构,每个器件都有唯一的识别地址,都可以作为一个发送器或接收器,这里的主从并没有绝对的概念,基本上谁控制时钟线谁就是主设备,此时从设备用于IIC的地址检测和停止位检测。

IIC传输速度:

        标准模式:100kbit/s

        快速模式:400kbit/s

        高速模式:3.4Mbit/s

术语 描述
主机 初始化发送、产生时钟信号和终止发送的器件
从机 被主机寻址的器件
多主机 同时有多于一个主机尝试控制总线,但不破坏报文
仲裁 是一个在有多主机同时尝试控制总线,但只允许其中一个控制总线并使报文不破坏的过程
同步 两个或多个器件同步时钟信号的过程

4413d9f31f4e7f07159fcf86f8978d7f.jpeg

2.通信流程 

678b4f4debda8face4db21bd73c2e2ae.jpeg

 1)主机发送一个1bit起始信号start;

2)发出一个7bit的地址,因为IIC可以有多个从设备,每个从设备出厂时有一个固定的设备地址,所以发出确定的地址来选择从设备;(既然有7位地址,那么理论上来说IIC总线可以接2^7个从设备,但实际上并不是,它差不多接5-6个设备,再接的话会由于电流等干扰造成不稳定)

3)发送1bit读写位,告诉从设备我是读取从设备的数据,还是写数据给从设备;

4)从设备回应,发送端每发送一个数据后,会在下一个时钟周期释放数据线接收对方的应答,当SDA是低电平时为有效应答(ACK),表示对方接收成功,当SDA是高电平时为无效应答(NACK),表示没有接收成功;

5)收到确认后开始发送一字节(8位)数据;

6)从机发送1bit确认位;

7)IIC的停止信号由主设备终止。

3.时序图解析 

3.1起始信号

6172d0e7c9eb0228eb2d7b151371a183.jpeg

 SCL信号为高电平阶段,SDA由高电平跳变到低电平,表示一个起始信号.

3.2 停止信号

636646fea0f728f9d90cd43598dedb1e.jpeg

 SCL为高电平阶段,SDA由低电平跳变到高电平,表示停止信号.

3.3 数据的有效性

01e8e7f6ab522fe2a9d7860aebf2e900.jpeg

IIC总线在进行数据传送时,在SCL的每个时钟周期传送一个数据为,为了保证传送数据的稳定性,时钟信号SCL为高电平期间,数据线SDA上的数据必须保持稳定,所以只有在时钟信号线SCL为低电平期间,数据线SDA的高低电平状态才允许变化;而根据上面的起始信号和停止信号的规定,SCL为高电平阶段,SDA的变化表示控制命令,即控制开始和结束信号;

 3.4 时序图案例

80e91cefcae75a6412ad6b18a83d4d5b.png

ACK应答信号 :在时钟信号SCL为低电平时,把数据线SDA设置为低电平,在时钟信号为高电平阶段保持不变;

ACK非应答:在时钟信号SCL为低电平时,把数据线SDA设置为高电平,在时钟信号为高电平阶段保持不变;

 4.注意点

4.1 延时

可以如下图所示时序图比上面多了4.7us的延时。

7b9e635fa299f5137ddff031c8c0973d.jpeg

e767ed1a03eb505cb2f1112077dd7b3b.jpeg

3dc4edc6fb3a832d7b78bff355581208.jpeg

 4.2 IIC的高阻态

在上面的IIC总线拓扑图当中,可以看到SCL和SDA都需要接上拉电阻,用于保证数据的稳定性,减少干扰,大小由速度和容性负载决定,一般在3.3K到10K之间。

为了避免总线信号的混乱,IIC的空闲状态只能有外部上拉,此时空闲设备被拉到高阻态,相当于断路,整个IIC总线只有开启了的设备才会正常进行通信,而不会干扰到其它设备;要求各设备连接到总线的输出端必须是漏极开路(OD)输出或集电极开路(OC)输出;

漏极开路(Open Drain)即高阻状态,适用于输入/输出,可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻。

4.3 IIC空闲状态 

在主机传输完一个字节之后,应该要释放总线(协议规定,当SDA和SCL同时为时&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Y_寒酥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值