目录
IIC协议简介
IIC物理层
IIC协议层
IIC协议简介
IIC通信协议是由Phiilps公司开发,引脚少,硬件实现简单,扩展性强,多用于板内通讯。对于IIC通讯协议,可以以分层的方式理解,可以分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保数据在物理媒体中的传输。协议层主要规定通讯逻辑,同一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是肢体来交流,协议层规定我们用中文还是英文来交流。
IIC物理层
IIC通讯设备之间的常用连接方式如下图所示:
它的物理层有如下特点:
- 它是一个支持设备的总线,总线指多个设备共用的信号线,在一个IIC通讯总线中,可连接多个IIC通讯设备,支持多个通讯主机及多个通讯 从机;
- 一个IIC总线只使用两条总线线路,一条双向串行数据线(SDA),一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步;
- 每个连接到总线上的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问;
- 总线通过上拉电阻接到电源,当IIC设备空闲时,会输出高阻态,而当所有设备都空闲时,都输出高阻态时,由上拉电阻把总线拉成高电平;
- 多个主机同时使用总线时,为了防止数冲突,会利用仲裁方式决定由哪个设备占用总线。
IIC协议层
先看看IIC通讯过程的基本结构:
?
?
?这些图表示的是主机和从机通讯时,SDA线的数据包序列。
其中S表示由主机的IIC接口产生的传输起始信号,这时连接到IIC总线上的所有从机都会接收到这个信号。
起始信号产生后,所有从机就开始等待主机紧接下来广播的从机地址信号(SLAVE_ADDRESS)在IIC总线上,每个设备地址是唯一的,当主机广播地址与某个设备地址相同时,这个设备就被选中了,没被选中的设备就会忽略之后的数据信号。根据IIC协议,这个地址可以是7位或10位。
在地址位之后,是传输方向的选择位,给位为0时,表示后面的数据传输方向是由主机传输至从机,即主机向从机写数据。该位为1时,则相反,即主机由从机读数据。
从机接收到匹配的地址后,主机或从机会返回一个应答(ACK)或非应答(NACK)信号,只有接收到应答信号后,主机才能继续发送或接收数据。
|