【常见通讯协议】之IIC

IIC通信协议

在这里插入图片描述
IIC总线硬件接线图
SDA: SDATA 数据线
SCL: SCLOCK 时钟线

一、百度百科介绍

IIC是由NXP(原PHILIPS)公司开发的两线式串行总线,IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,I²C的正确读法为“I平方C”(“I-squared-C”)。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

二、IIC的特点

1.主从设备:

IIC设备分为主从设备,基本上谁控制时钟线谁就是主设备(即控制SCL线上的高低电平)。

2.主从设备的功能:

(1)主设备:

产生时钟,产生起始信号和停止信号。(能主动开始传输或结束传输)

(2)从设备:

可编程的IIC地址检测,停止位检测。

3.多主控:

支持多主控,任何一个能够发送或接收信号的设备都可以成为主总线。任意时间只能存在一个主控(具有总线裁决功能),主控能控制信号传输和时钟频率。

4.支持不同的通讯速率:

标准速度(最高100khz),快速(最高400khz)

5.上拉电阻:

SCL和SDA都需要上拉电阻保证数值稳定性,减少干扰。

6.单向通信:

IIC是半双工,同一时间只能单向通信。

7.地址唯一:

IIC总线上的每个器件拥有唯一的地址(一般是7bit)。

8.短距离传输:

IIC多用于同一块板上不同芯片之间的传输,传输速率低,抗干扰能力差。

三、IIC的通信过程

①主机发送起始信号,启用总线,开始通信。(总线上所有设备接收信号,其它主控设备不能再开启总线,从设备准备接收信号)
②主机发送一个字节数据,指明从机地址与后续数据传输方向。(一个字节数据8bit,前7位为从机地址,第8位为传输方向,传输方向确定后不能更改,0表示为主机传输数据至从机,1表示从从机发送数据给主机)
③从机应答
④发送器发送一个数据。(发送器可以是主机或者从机)
⑤接收器应答。
⑥重复④⑤步骤
⑦数据传输完成后,主机发送停止信号释放总线使用权,停止通信。
芯片作为主机还是从机是一开始就确定好的,但对于可编程器件,如单片机,作为主机还是从机可以自己决定

四、信号与数据

1.起始信号与停止信号:

①起始信号:SCL保持高电平,SDA从高电平变为低电平。
②停止信号:SCL保持高电平,SDA从低电平变为高电平。
在这里插入图片描述

2.字节传送与应答:

数据传送时,发送器发送一个字节的数据,接收器发送一位数据应答,数据传送时从高位到低位传输。
在这里插入图片描述

3.同步信号:

(怎么知道某一段时间内发送了多少位数据,比如01和0011的波形相同,怎么知道发送的的数据是01还是0011?

在这里插入图片描述)
①SCL低电平,发送器发送1位数据,SDA显示为高电平或低电平
②SCL高电平,SDA高低电平不变,接收器接收①中发送的数据
③重复上述过程,一次只能发送1位数据,一个字节(8bit)需要重复8次

在这里插入图片描述

UART在解决上述问题时采用的是规定波特率的方法,即规定好发送一位数据用的时间,通过掐时间,对时间的计算得知发送的数据位数

4.IIC寻址:

IIC发送的数据可能是地址也可能是真正的数据
(如起始信号,就发送了地址)。
IIC发送起始信号后,各从机将发送的地址与自身地址对比,确认自己是否准备传输数据,确定被主机“呼叫”后,从机根据最后一位数字确定自身作为发送器或者接收器。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: IIC通信协议常见问题包括以下几个方面: 1. IIC总线的主设备如何结束通信过程?主设备可以通过产生一个停止条件来结束通信过程,停止条件由SCL上的0->1转换后SDA上的0->1(低到高)转换定义,SCL保持高电平。在正常的数据写操作时,SDA上的值应该不会在SCL为高电平时改变,以避免错误的停止条件。\[2\] 2. IIC总线的高级特性之一是10-bit地址是什么意思?10-bit地址是指在IIC总线中,地址可以使用10位来表示,相比于传统的7位地址,10-bit地址提供了更大的地址空间,可以连接更多的设备。\[3\] 3. IIC总线是一种多主机总线,如何处理多个主机同时启用总线的情况?当总线上有多个主机同时启用总线时,IIC总线具备冲突检测和仲裁的功能来防止错误产生。每个连接到IIC总线上的器件都有一个唯一的地址(7位),且每个器件都可以作为主机也可以作为从机,总线上的设备增加和删除不影响其他器件的正常工作。\[3\] 4. IIC通信总线的通信过程是怎样的?通信过程包括以下几个步骤:主机发送起始信号启用总线,主机发送一个字节数据指明从机地址和后续字节的传递方向,被寻址的从机发送应答信号回应主机,发送器发送一个字节数据,接收器发送应答信号回应发送器,循环进行数据传输,通信完成后主机发送停止信号释放总线。\[3\] 总的来说,IIC通信协议是一种串行、半双工的总线协议,主要用于近距离、低速的芯片之间的通信。它具有简单的硬件结构和低成本,并且在各个领域得到了广泛的应用。\[3\] #### 引用[.reference_title] - *1* *2* [【硬件通信协议】1. 详细解析IIC通信协议](https://blog.csdn.net/sishuihuahua/article/details/88128761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [stm32中常见的通信协议之IIC](https://blog.csdn.net/nbbskk/article/details/127861990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值