首页 > 编程知识 正文

iic总线协议详解,iic和串口通信的区别

时间:2023-05-05 05:22:53 阅读:10696 作者:2816

IIC协议概述集成电路(IIC )总线支持用于处理器和几个外围设备之间接口的设备之间的短距离通信,并且需要两条信号线来完成信息交换。 IIC特殊工艺的优点之一是微控制器只需要两个通用I/O引脚和软件就可以控制芯片网络。 IIC最初由飞利浦于1982年开发设计,用于自己的芯片,最初只允许100Khz、7-bit标准地址。 1992年,IIC的第一个公共规范发行,添加了400Khz的快速模式和10位地址扩展。

IIC协议内容IIC协议将发送的消息分为两种帧。

地址帧slave,其中-master指示消息的目标;

数据帧“单个”或“连续”master发送到slave或从slave接收的数据。 一次读写的单位为8bit,从上位开始

注: IIC的读写是对主机进行的。 http://www.Sina.com/http://www.Sina.com /

IC总线进行数据传输时,在时钟信号为高电平期间,数据线上的数据必须稳定,仅在时钟电平为低电平期间,数据线上的高电平或低电平的状态允许变化。

也就是说,必须在时钟线SCL的上升沿到来之前准备数据,并在下降沿到来之前保持稳定。IIC总线的数据传送

IIC总线的数据线SDA和时钟线同时为高电平时,规定为总线空闲状态。 此时,每个装置的输出级的场效应晶体管处于关断状态,即开路总线,并且在两条信号线的上拉电阻的作用下上升电平。1、数据位有效性的规定:

在SCL为高电平期间,SDA信号线通过从高电平向低电平的变化而表示开始信号; 在SCL为高电平期间,SDA通过从低电平向高电平的变化而表示结束信号。

SDA :从低到高启动信号

SDA :从高到低终止信号

开始信号和停止信号由主机发送,在产生开始信号后,总线处于被占用的状态,在产生停止信号后,总线处于空闲状态。

2、空闲状态:

每发送一字节(8位),发射器在时钟脉冲9期间释放数据线,从接收器反馈响应信号。

如果响应信号为低电平,则定义为有效响应(ACK,简称为响应位),其指示接收器成功接收了该字节

如果响应位为高电平,则它被定义为非响应信号(NACK ),其通常指示接收器没有接收到字节。

对反馈的有效响应信号ACK的请求是使数据线SDA在直到第九时钟的低电平周期中下降,并且在该时钟的高电平周期中保持稳定的低电平。 如果接收器是主接收器,则在接收到最后的字节之后,发送NACK信号来通知受控发送器数据发送结束,释放数据线SDA,以使主接收器发送停止信号p。3、起始和终止信号:

)1)字节传输和响应:每个字节必须保证长度为8bit。 在数据传输时,必须先传输最高有效位(MSB ),每个传输的字节后跟1位响应位) (即每帧的数据共有9位)。

)与时钟脉冲对应于(或同步控制的) IIC总线上传输的每一位数据的SCL串行时钟协作,以通过SDA串行地传输每一位数据。 数据位的传输是边缘触发器。4、应答信号:

(1) IIC协议规定采用7位的地址字节(地址字节或者开始信号后的第一个字节),其位定义如下。

|位|7|6|5|4|3|2|1|0|

用D7 ~ D1位构成从站地址。

在数据传输方向上,D0位指示主设备将数据写入从设备,而1:指示主设备从从设备读取数据。

)主设备向从设备写入寄存器。 数据传输格式如下。

1 )首先从主机发送开始信号,

2 )然后,主机向数据线广播从机地址

3 )决定数据的传输方向(读写) ) )。

4 )“a”表示响应,表示主机找到了从机。

5 )主设备发送1字节数据,当从设备接收到数据时,它向主设备返回NACK信号,指示在主设备发送数据结束之前或从设备不再接收主设备发送的数据。 主机发送停止信号。 这次的数据传输完成了。

(2)主机读取从机寄存器值:

1 )首先从主机发送启动信号

2 )然后主机在数据总线上广播地址

3 )决定数据的传输方向(导线1 ) ) )。

4 )从机返回“a”代表响应,指示主机找到了从机。

5 )从站返回读取的数据

6 )主机返回指示从机成功接收到数据的响应信号

7 )主机接收完数据后,返回非响应信号“NACK”,从机释放数据总线,然后主机发送“p”信号,指示本次数据传输结束。

1 )主机首先产生开始信号

2 )然后发送从站地址。 此时,注意到该地址的第8位为0,表示正在向从站写入命令。

3 )主机等待来自从机的应答信号(ACK )

4 )主机接收到响应信号后,发送要访问的地址,继续等待来自从机的响应信号,

5 )当主机接收到响应信号时,主机将更改通信模式(主机从发送变为接收,从机从接收变为发送),因此主机将重新发送启动start信号,然后发送从机地址。 此时,请注意地址的第8位是1。 表示主机已设置为接收模式,已开始读取数据。

6 )主机等待来自从机的响应信号,当主机接收到响应信号时,可以接收1字节的数据,接收完成后,主机发送非响应信号,表示没有接收到数据

7 )主机还会产生停止信号,结束传输过程。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。