【I²C(iic)-总线协议详解及故障分析】

1 IIC的基本介绍

对于嵌入式开发人员来说,IIC通信大家应该都很熟悉,

1.1 IIC的简介

IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。

IIC总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
IIC总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

2 IIC数据格式

2.1 字节传输

在每个时钟脉冲期间传输一个数据位。SDA行上的数据必须在时钟脉冲的HIGH期间保持稳定,因为此时SDA行上的变化将被解释为START或STOP。位传输说明如下。
在这里插入图片描述

2.2 开始和结束条件

当总行不忙时,SDA和SCL行都保持高电平。SDA在SCL为HIGH时从高到低的转变定义为START条件(S), SDA在SCL为HIGH时从低到高的转变定义为STOP条件§。START和STOP条件如下所示。

在这里插入图片描述

2.3 系统调整

系统调整如上所示,下面解释了一些单词的定义:
a.发送器:将数据发送到总行的设备。
b.接收器:从总行接收数据的设备。
c.主控:发起传输的设备产生时钟信号,并终止传输。
d.从机:由主机寻址的设备。
e.多主站:多个主站可以尝试同时控制总行而不会损坏消息。
f.公断:确保在多个主机试图同时控制总行时,只允许一个主机这样做并且消息不会损坏的过程。
g.同步:同步两个或多个设备的时钟信号的过程。
在这里插入图片描述

3 总线挂死原因

在排除硬件错误的前提下去分析:

3.1 主机信号挂死

造成主机信号挂死的原因有 硬件IO损坏、软件状态机异常。需要从硬件角度和代码去分析解决。

3.2 主机信号异常

主要原因也在于代码问题

3.3从机拉死总线

IIC数据线是主机从机数据相与的,从机拉低后主机无法再次拉高拉起新的通信。此现象大多出现在信号被干扰时从机丢失Clock或者增加了Clock导致双方时序没有对齐。从机还在维持发送0的状态,从而把SDA拉低了。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shake boom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值