助力通关硬件开发基础面专刊<21/30>--第五章接口协议、基础元件、可靠性 ---I2C原理

5.1 接口协议

5.1.1同步通信与异步通信

【考点映射】
》》》什么是同步通信?
》》》什么是异步通信?
》》》两者的区别?
【出现频度】⭐⭐⭐
【难度】★★
【参考答案】
串行通信通常可以分为同步通信和异步通信

同步通信

同步通信是一种进行连续发送串行数据的通信。
同步通信在传输数据的时候,发送和接收双方需使用同频同相的时钟,使发送和接收双方保持同步。
在接收端识别到同步字节后,即开始连续传输字符,不用开始位和停止位。
优点:支持相对高速和大容量的数据传输
缺点:要求时钟同频同相,电路复杂。

异步通信

异步通信的发送端在发送字节的时候,字节之间的间隔可以任意的,字节内的间隔为固定。
因此,接收端需要时刻准备接收。
每个字节需要开始位和停止位,方便接收端接收每个字节。
优点:电路结构简单,价格便宜。
缺点:每个字节都需要开始位和停止位,信道利用率低。
两者区别
  • 1、同步通信需要发送和接收的时钟同频同相,异步通信不要时钟同步。
  • 2、同步通信字节之间时间间隔一致,异步通信的字节之间的时间间隔可以任意。
  • 3、同步通信的效率比异步通信效率高
  • 4、同步通信相比异步时钟,对时钟要求高,电路结构较为复杂。
  • 5、同步通信适合点对多点,异步通信适合点对点。
同步通信有:I2C、SPI
异步通信有:UART
下面将分别对这些通信进行介绍

5.1.2I2C总线的原理

【考点映射】
》》》I2C是双工通信吗?
》》》I2C的传输速率分别有哪几种?
》》》I2C的起始信号和终止信号是?
》》》能画一下I2C协议时序图吗?
【出现频度】⭐⭐⭐⭐⭐
【难度】★★
【参考答案】

I2C的通信方式

I2C通信总线中主要有两条信号线,一条是SDA数据线,另一条为SCL时钟线。
两条线都是支持双向传输的。但是由于只有一条SDA线,在某个时间内只支持单向通信,因此为I2C为半双工通信
I2C的通信原理就是根据着两条线的高低电平和时序,完成对信号的传输。

I2C的特征

1、SCL串行时钟线和SDA串行数据线为开漏输出,需要外接上拉电阻。
2、总线空闲时,SCL和SDA均为高电平。
3、I2C总线上的设备都可以作为主设备或者从设备,每个设备都有一个地址。

总线传输速度

1、标准模式下100kbit/s
2、快速模式下400kbit/s
3、快速模式+1Mbit/s
4、高速模式下3.4Mbit/s
5、超快速模式下5Mbits/s(仅支持单向传输)
PS(I2C的实际速度可以不只这四五种,可以处于这些速度范围内)

I2C的传输协议

根据14年的I2C标准协议https://www.nxp.com/docs/en/user-guide/UM10204.pdf中,
其规定,总线上的数据传输是以起始信号为开始条件,以结束信号为传输终止的条件。
起始和终止条件都是由主设备产生的。
起始条件发起后,I2C总线处于忙碌状态。终止条件后,处于空闲状态。
起始条件:当I2C总线处于空闲状态时,SCL和SDA保持着高电平,然后SDA从高电平向低电平切换,即产生了起始信号。
终止条件当I2C总线处于忙碌状态时,SCL保持高电平,SDA保持低电平,然后SDA从低电平向高电平切换,即产生了终止信号。

I2C协议的时序图,如图所示
主设备在传输数据前,要先传输从设备的地址,寻找对应的从设备。
传输从设备的地址跟传输数据是类似的,不过从设备的地址大都为7位,因此最低位用于表示数据传输的方向。
0:主设备往从设备写入数据;1:主设备从从设备读取数据
从图中,我们也可以看到,每一此传输的数据由9比特组成:8比特内容(地址7bit+读写)+1比特的应答位(ACK)。
一次数据传输的过程如下:
主设备在时钟线SCL上产生时钟,每个时钟都会让SDA进行传输一位数据,当数据从高位到低位(8比特)传输完成后,
然后拉低SDA线,等待从设备的应答,此时一次数据传输才算完成,


5.1.3建立时间和保持时间

【考点映射】
》》》建立时间和保持时间的含义是?
》》》能画一下时序图表示一下吗?
【出现频度】⭐⭐⭐⭐⭐
【难度】★★
【参考答案】

建立时间

时钟信号上升沿来临,数据保持不变的时间

保持时间

时钟信号下降沿来临,数据保持不变的时间

建立时间和保持时间的作用在于让数据在被时钟采样时是准确的,如果不满足要求,无法被触发器所采集,甚至可能会造成数据的错误。
其时序如图所示,tSU-DAT为建立时间,tHD-DAT为保持时间。



全部评论

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务