iic总线

本文介绍了IIC总线的基本概念,包括其作为高性能串口总线的特性、两根信号线的工作原理以及总线仲裁机制。内容涵盖了数据传输的细节,如数据位的有效性、起始和终止信号、字节传送与应答以及寻址方式。此外,还提到了IIC总线的寻址规则和不同数据传输模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 概述

  1. IIC总线是PHILIPS公司推出的一种串口总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串口总线。

  2. IIC总线只有两根双向信号线。一根是数据线SDA,一根是时钟线SCL。

  3. 连接到相同总线的IC数量,受总线最大电容400pF的限制。

  

  4. IIC总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任何一个器件输出的低电平,都将使总线的信号变低,

  即各器件的SDA和SCL都是线“与”的关系。

  

  5. 每个连到总线上的器件都有一个唯一的地址。主机与其他器件的数据传送可以使主机发送数据到其他器件,这时主机就是发送器。在总线上

  接受数据的器件则为接收器。

  6. 在多主机系统中,可能同时有几个主机企图启动总线发送数据,为了避免混乱,IIC总线要通过总线仲裁,以决定由哪一台主机控制总线。

 

二、 IIC总线的数据传送

  1. 数据位的有效性

  IIC总线在进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定;只有在时钟线上的信号是低电平时,数据线上的电平才允许变化。

  

### IIC 总线协议及其工作原理 #### 1. IIC 总线概述 IIC(Inter-Integrated Circuit)是一种用于短距离通信的同步串行总线,广泛应用于嵌入式系统中的芯片间通信。它通过两根双向线路完成数据交换:一根是时钟线 SCL(Serial Clock Line),另一根是数据线 SDA(Serial Data Line)。其设计旨在简化硬件连接并减少所需的信号线数量。 #### 2. 特点 IIC 总线具有以下特点[^1]: - **简单性**:仅需两条线即可实现多设备间的通信。 - **灵活性**:支持多种速率模式(标准模式、快速模式、高速模式等)以及不同类型的地址分配机制。 - **多功能性**:允许同一总线上挂载多个主控器和从属器件,并可通过软件配置来管理这些资源。 #### 3. 数据传输协议 在 IIC 协议下,所有的操作都基于特定的时间序列来进行控制。以下是几个关键概念: ##### (a) 起始与终止条件 - 主机启动一次新的事务处理之前会先发出 START 条件通知所有节点准备接收指令;当整个过程完成后则会产生 STOP 条件告知其他潜在使用者可以重新占用这条路径[^4]。 ##### (b) 寻址流程 每台接入此网络内的装置都会被赋予独一无二的逻辑编号以便识别身份。通常情况下采用7位或者更少见些的是10位长度编码形式表示目标单元位置信息[^2]。 ##### (c) 非应答信号 如果某个阶段不需要回应,则可以通过专门函数如 `sendIICNAck` 实现不发送确认消息的功能[^3]: ```c void sendIICNAck(void) { IIC_SDA_OUT(); IIC_SDA_H(); IIC_SCL_H(); Delay_us(IIC_SPEED); IIC_SCL_L(); } ``` #### 4. 工作原理详解 在一个典型的 IIC 交易周期里,包含了以下几个主要环节: - 发送起始信号; - 广播目的地址连同读/写标志位; - 进行实际的数据块传送动作——既可以是从主机到外设也可以反过来; - 接收方返回 ACK/NACK 反馈状态给发送端知晓当前情况如何继续下一步骤直至最后关闭链接为止。 值得注意的是,在某些特殊场景下为了提高效率还可以利用所谓的“重复开始”技术即无需经历完整的停止再重启全过程就能切换下一个命令对象从而节省时间成本。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值