首页 > 编程知识 正文

gpsiic通信协议,iic协议百度百科

时间:2023-05-03 05:17:44 阅读:10702 作者:1083

所谓IIC通信协议,IIC协议层的开始信号和停止信号数据的有效性是什么

什么是IIC协议

集成电路(I2C )通信协议是飞利浦公司为连接微控制器及其外围设备而开发的双线串行总线。 是微电子通信控制领域广泛采用的总线标准。

IIC通信由信号线(SDA )和时钟线(SCL )两条线构成。 因此,IIC通信的物理层结构如下。

小心! 这里的信号线和地址线都是总线。 只要有一对设备在使用,总线1就被占用,其他设备不可用。

为了区分设备,连接到总线的每个设备都有一个独立的地址,主机可以使用该地址在不同设备之间进行访问。 如果多个主机同时使用总线,则以仲裁方式确定哪个设备占用总线,以防止数据冲突。

现在我来说明这个“地址”。 此地址是IIC设备的地址,在IIC通信中,必须指定转发设备的地址。 我想这很容易理解,最常用的IP协议也有IP地址一词,TCP协议也有端口一词。 如果不指定地址,就不知道数据将发送到哪里,无法配置通信。 这个不需要太多说明。

但是,笔者刚开始使用,不知道这个地址是以什么形式存在于通信中的。 在MCU中,初始化IIC接口时必须定义IIC地址。 这就是你IIC接口的通信地址。 (一般为0 )代码如下。

hi2c1.Init.OwnAddress1=0;

我们通常使用的IC芯片的地址是怎么知道的呢? 这个地址以什么形式存在? 连接到MCU后是MCU分配的吗?

IIC芯片的地址全部由IIC芯片自身决定。 而且,通常会提供几人(大多为3人)供用户定制。 就LM75A温度传感器芯片而言,IIC的通信地址为7位,前4位为用户定义的固定(1001 )后3位,旨在根据用户在引脚上输入的电平决定地址位的高低。 如果用户输入低电平,则表示该比特为0,如果用户输入高电平,则表示该比特为1。 如果降低后三位,地址为0x90。 图:

协议层

s表示传输开始信号,此时连接到I2C总线的所有从站都将接收此信

加上号码。

Slave Address表示从地址,可以是7位或10位。 主机广播的地方

如果地址与设备的地址相同,则选择此设备。

然后是R/W (传输方向选择位),该位为0时,表示随后的数据传输方向

主机向选定的从机写入信息; 1表示主机将从机读取信息。

如果从机和从机“匹配”,则此时主机或从机返回响应(ACK )

或NACK (如果不响应信号,主机只在收到信号后继续发送和接收数据。 这里提出“继续”是因为收发信部对应于来自从机的响应信号和来自主机的响应信号而重复。

主机向从站发送停止信号(p )后,数据将不再传输。 主机想停止时

接收时,如果向从站返回一个(NACK ),则从站自动停止数据传输。

这是IIC通信的数据帧。 我明白。 通信包括: 1位开始信号、7位地址位、1位表示读写的信号位、1位ACK应答信号、1字节的数据位、1位ACK应答信号、1字节的数据位……直到所有数据都已发送为止

IIC通信还支持比较复杂的通信模式。 通信时与设备所在的寄存器通信。 就像下面的数据帧一样。 在数据帧内发送了两级启动信号s。 在第一级数据的DATA中,经常用于表示内部寄存器地址,在第二次传送中,对内部寄存器进行访问和读写

以上是IIC通信协议层读写的基本过程。

让我们仔细看看每个信号是如何在IIC协议中规定的

开始信号和停止信号开始信号和结束信号是两种特殊的状态,如图所示,SLC为高电平时SDA

从高电平向低电平切换表示通信的开始; SCL为高电平时,SDA从低电平切换为高电平,表示通信停止。 这两种信号一般来自主机。 图:

数据有效性I2C的SDA用于传输数据,SCL同步数据,如下图所示。 SDA数据线在SCL的每个时钟周期传输1位数据。 有效和无效见图即可,需要主要的是当 SCL为低电平时,SDA 数据无效,一般此时 SDA 进行电平转换,为下一次表示数据做好准备

用R/W比特判断传输方向

应答信号:应答有应答(ACK )和非应答)两种。 设备(主机或从机)接收到I2C传输的1字节数据后,如果想继续发送数据,需要向对方发送响应(ACK )信号,发送方继续发送数据。 接收端在想要结束数据传输的情况下,向对方发送非响应(NACK )信号。 发送端接收后会产生停止信号,结束数据发送。

以上是IIC协议层的内容。 以下部分介绍了STM32的IIC体系结构以及如何使用STM32的IIC接口。

后篇: STM32IIC通信详细情况(硬件实现基于HAL的编程) ) ) ) )

是多个设备共用的信号线,1个I2C通信总线可以连接多个I2C

支持多个通信主机和多个通信从机的设备通信

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