IIC基础知识

一、物联网中常用的通信协议

 每一种通信协议的出现都是为了解决特定场景下的通信问题。这里的通信场景需要综合考虑:通信距离、通信速度、抗干扰能力以及是否有线通信。

IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI。

二、通信基础知识

2.1串行通信与并行通信

并行通信中数据一次8bit,串行通信中数据一次1bit。

2.2传输方向:单工、半双工、全双工

2.3通信方式:异步通信、同步通信

2.3.1异步通信

DHT11和超声波模块为异步通信。

  1. 首先主控拉低信号(粗黑线),表示:“我要接受温湿度信号”;
  2. DHT11接受到该信号就返回自己信号,由主控去读取。其中每一段时序都有严格的规定(如图),只需要按照规定时长去读取数据就可以读出。
  3. 当DHT11将数据发送给主控后,DHT11就不管这段数据了,至于读出什么样的数据由主控自行控制。

但是存在问题:主控读取数据过程中来了一个优先级更高的中断,主控需要处理该中断,主控处理回来之后中断返回,该处理中断的时间中的数据主控无法读取,所以就出现了一段空白期,数据已经错过了。

2.3.2同步通信

三、IIC基础知识

3.1定义

llc(inter-ntegrated circuit)中文称为集成电路总线,它是一种串行半双工通信总线,使用多主从架构,主要用于板内低速的芯片之间的通信。IC总线硬件结构简单,成本低,在各领域得到广泛的应用。

3.2连线图

SDA:date(数据);SCL:clock(时钟)。

IIC是一个两线串行通信总线,包含一个SCL信号和SDA信号,SCL是时钟信号,从主设备发出,SDA是数据信号,是一个双向的,设备发送数据和接收数据都是通过SDA信号。

外部电路有两个上拉电阻,表示SDA线和SCL线默认状态下保持高电平,当两者都高电平时,表示IIC处于空悬状态。

IIC的一个优点是它支持多主控(multimastering)其中任何一个能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

IIC主线上可以挂载128个设备,一个设备可以是主机也可以是从机。
主机:一次对话的发起者;从机:一次对话的响应者。

3.3粗略通信过程

3.3.1主机向从机发信息

(红)主机→总线(所有从机):王五在不在?我要发信息。

(蓝)王五→总线(主机可以收到):在,请发送消息。

主机主机收到后,开始向王五发送信息。

3.3.2主机向从机要信息

(红)主机→总线(所有从机):王五在不在?发信息给我。

(蓝)王五→总线(主机可以收到):在,这是我的信息。

主机收到后,王五开始发送。

3.4细节通信过程

SCL高电平SCL低电平
SDA由高变低(1→0)开始通信信号变化
SDA=0读取为0-
SDA=1读取为1-
SDA由低变高(0→1)结束通信信号变化

SCL高电平+SDA变化:仅用于通信的开始和结束

SCL高电平+SDA电平:读SDA电平

SCL低电平:仅用于数据的变化

通信还没有开始时,IIC的SCL和SDA都处于空悬的高电平状态,SDA变化为低电平表示开始通信。

四、IIC 总线数据传送完整过程

4.1响应位

每次传输必须以字节(8bit)为单位,每字节传输完成后必须跟一个响应位(ACK),响应位为低电平且响应位由接收者发送。

主机→从机
主机发送者→从机接收者

从机→主机
从机发送者→主机接收者

4.2寻址

IIC总线上可以挂载多个(最多2的7次方)设备,主机要进行一次对话,做的第一件事是呼叫对用从机。

每次对话发送的第一个字节必须用于寻址。每个设备都自己一个唯一的地址,来确保不同设备之间访问的准确性。

寻址:地址为一个7bit数据,占据一个字节的高7位。
字节最低位为数据方向位,0表示写(数据由主机→从机);1表示读(数据由从机→主机)。
主机发出的开始信号后面必须紧跟装载着从机地址的字节。

4.3完整的发送过程

4.3.1主机→从机

(1)主机→从机:主机向从机1001001发送一个字节数据01001011

(下图很重要!)

(2)主机→从机:主机向从机1001001发送2个字节数据01001011和10011100

4.3.2从机→主机

SDA:黑线-主机操作,红线-从机操作

注意:主机在接受完最后一个数据之后是不向从机响应的,为NACK

(1)从机→主机:从机1001001向主机发送一个字节数据01001011

(2)从机→主机:从机1001001向主机发送2个字节数据01001011和10011100

4.3.3主机←→从机

(1)主机←→从机:主机先向从机发送1个字节数据01001011,然后往从从机接收数据10011100

注意:当主机发送完成,从机响应后,发送的并不是停止信号。而是重新开始(Sr)信号;
           重新开始(Sr)信号就是开始信号,用来替代停止信号并马上开始信号。

           从机发送信息给主机,还要再次重新寻址

五、总线速度

(1)双向总线:

  • 标准模式(Sm),比特率可达100 kbit/s
  • 快速模式(Fm),比特率可达400 kbit/s
  • 快速模式增强(Fm+),比特率可达1 Mbit/s
  • 高速模式(HS模式),比特率高达3.4Mbit/s。

(2)单向总线:

  • 超快模式(UFm),比特率高达5 Mbit/s
  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值