当前位置:首页 >> 电力/水利 >>

iic总线协议描述


iic 总线协议 出去面试居然考的是 iic 总线,好久没有看了居然有些忘记了,现在贴点出来温习一下! 什么是 I2C 协议? I2C 协议是单片机与其它芯片常用的通讯协议,由于只需要两根线,所以很好使用。

1. I2C 总线的特点 (1)只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL (2) 每个连接到总线的器件都可以通过唯一的地址和一

直存在的简单的主机/从机关系软件 设定地址;主机可以作为主发送器或主机接收器 (3)它是一个真正的多主机总线, 如果两个或更多主机同时初始化数据传输可以通过冲突检测 和仲裁防止数据被破坏 (4) 串 行 的 8 位 双 向 数 据 传 输 位 速 率 在 标 准 模 式 下 可 达 100kbit/s 快 速 模 式 下 可 达 400kbit/s 高速模式下可达.4Mbit/s (5)片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整 (6) 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制 I2C 协议总线信号时序分析 1 .数据的有效性: SDA 线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在 SCL 线的 时钟信号是低电平时才能改变。 2 .起始和停止条件 当 SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件。 当 SCL 线是高电平时,SDA 线由低电平向高电平切换表示停止条件。如图 3.2 I2C 起始和停 止条件所示。 3. 总线空闲状态 SDA 和 SCL 两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的

上拉电阻把电平拉高; 4 .数据传输与应答信号 ACK 发送到 SDA 线上的数据必须是 8 位的。每次传输可以发送的数据不受限制。每个字节后必须 在时钟的第 9 个脉冲期间释放数据总线(SDA 为高) , 由接收器发送一个 ACK(把数据总线的电平拉低)来表示数据成功接收。如图 3.3 I2C 总线响 应。 首先传输的是数据的最高位(MSB) 。如果从机要完成一些其他功能后(例如一个内部中断服 务程序)才能接收或发送下一个完整的数据字节, 可以使时钟 SCL 保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释 放时钟线 SCL 后,数据传输继续。如图 3.4 I2C 总线数据传输所示。 4. 地址格式 数据的传输遵循如图 4.1 完整的数据传送所示, 在起始条件之后, 发送一个 7 位的从机地址, 紧接着第 8 位是数据方向(R/ — W) ,0-表示发送数据(写) , 1-表示接收数据(读) 。数据传输一般由主机产生的停止位(P)终止。但是如果主机仍希望 在总线上通讯,它可以产生重复起始条件(Sr) ,和寻址另一个从机, 而不是首先产生一个停止条件。在这种传输中,可能有不同的读/写格式结合。如图 3.5 I2C 总线完整的数据传输。

现代电子系统中, 有为数众多的 IC 需要进行相互之间以及与外界的通信。 为了提供硬件的效 率和简化电路的设计, PHILIPS 开发了一种用于内部 IC 控制的简单的双向两线串行总线 I2C。I2C 总线支持任何一 种 IC 制造工艺, 并且 PHILIPS 和其他厂商提供了种类非常丰富的 I2C 兼容芯片。作为一个专利的控制总线, I2C 已经成为世界性的工业标准。 每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD 驱动器)或者可以接 收也可以发送的器件(例如:存储器) 。 发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是 仅仅被寻址。I2C 是一个多主总线,即它可以由多个连接的器件控制。 基本的 I2C 总线规范于 20 年前发布,其数据传输速率最高为 100Kbits/s,采用 7 位寻址。 但是由于数据传输速率和应用功能的迅速增加, I2C 总线也增强为快速模式(400Kbits/s)和 10 位寻址以满足更高速度和更大寻址空间的需 求。 I2C 总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式, 其速度可达 3.4Mbits/s。 它使得 I2C 总线能够支持现有以及将来的高速串行传输应用,例如 EEPROM 和 Flash 存储器。

请问:为何 IIC 传送过程中,其地址(slaver address)是 7bits? IIC 的书上说:送入 SDA 中的每个字节长度必须是 8-bits,在 IIC 总线上,START 信号后, 一个从地址(slave address)被传送, 在该字节中的 bit7 是一个读写选择信号, “0”表示写, “1”表示读。但在实际中传送的地址 是 8bits 的,如在我们门的一个系统中 EDID 的 地址是 0xA0,这种矛盾怎么解释?请 e-mail:xintan_chen@amlogic.com 你可能还没理解到,因为第一个字节(为 slave address)由 7 位地址和一位 R/W 读写位组成 的,这字节是个器件地址。 首先,你要知道:常用 IIC 接口通用器件的器件地址是由种类型号,及寻址码组成的,共 7 位。 如格式如下: D7 D6 D5 D4 D3 D2 D1 D0 1-器件类型由:D7-D4 共 4 位决定的。这是由半导公司生产时就已固定此类型的了,也就是 说这 4 位已是固定的。 2-用户自定义地址码:D3-D1 共 3 位。这是由用户自己设置的,通常的作法如 EEPROM 这些器 件是由外部 IC 的 3 个引脚所组合 电平决定的(用常用的名字如 A0,A1,A2) 。这也就是寻址码。所以为什么同一 IIC 总线上同 一型号的 IC 只能最多共挂 8 片同种类芯片的原因了。 3-最低一位就是 R/W 位。这位不用我多说了。 这没什么矛盾可解释,你再看看书本和多动脑子我想你很快就会明白的。 经你这么一说,我大概明白了,谢谢! 按你的说法:在 IIC 传送中,先传送最高位 D7,我现在明白为何在我们的系统中 EDID 有两 个地址是 0xA0/0xA1,一个是读地址,一个是写地址,我以前还真没搞懂 您好,有关 I2C 的传送又来请教你了。 1st、 在我们系统的主芯片与 MStar 芯片的通信过程中,传送的第一个数据的最高位总是为 低电平,比如我向某寄存器中先写一个数(0xff) , 再读取该寄存器,读出的数据的最高位总是为“0” (0x7f) 。不过这种错误仅仅在第一个数据 出现,以后的数据就正确了。 2nd、 在我们系统的主芯片与 EEPROM 芯片的通信过程中, 情况就更糟糕, 不管向 memory Addr 中写什么数据,然后再读取 这个 memory Addr 中数据,出来的数据总是“0xff” (note:slaver Addr 正确,芯片的电源 ok,也没有写保护 WP=0) ,我实验了两块板子, 不可能这两块板子的 EEPROM 都坏了吧!程序(与 1st 中的)是一样的,只是 slaver Addr 发生改变。 从你的资料看来,我无法总判定是那里或什么问题;估计很大程序上是你的程序问题。 要知道,主机向从访问时。

1-先向总线发出芯片地址 2-如果有芯片地址正确的芯片,会产生一个 SDA 上应答。 3-接着主机再发出应答过的芯片发出将要所进行操作的片内地址。 4-芯片地址正确的芯片,会再产生一个 SDA 上应答。 5-此时如果是读操作, 从芯片将输出数据到 SDA 上。 如果是写操作, 主机会将数据写到 SDA 上。 就这样可以完成了一个读或写的操作。当然这里面还开始和停止位这些动作。 对以此类的分析,我们一般建议学生使用我站销售的虚拟示波器来做分析,用 ezSDO 虚拟 示波器可以方便地为 IIC 总线进行分析, 因为有较深圳的波动存储功能。捕获回来的波形后,可以进行分析比较等动作。 以下就是一个实例波形,有关详细看查看本论坛上的虚拟示波器销售专区中的文章


相关文章:
IIC总线协议
IIC总线协议_信息与通信_工程科技_专业资料。iic 总线协议 I2C 协议是单片机与其它芯片常用的通讯协议,由于只需要两根线,所以很好使用。 1. I2C 总线的特点 (1)...
IIC总线协议最佳理解
IIC总线协议最佳理解_信息与通信_工程科技_专业资料。IIC总线协议最佳理解IIC 总线协议 1)IIC 总线的概念 IIC 总线是一种串行总线,用于连接微控制器及其外围设备,具...
IIC总线协议及应用
IIC总线协议及应用_IT/计算机_专业资料。本课题正是利用VHDL语言在FPGA上实现IIC总线控制器的功能。首先研究了I2C总线的规范,又简要介绍了QuartusⅡ设计环境以及FPGA的...
IIC总线协议
IIC总线协议_计算机软件及应用_IT/计算机_专业资料。通信协议:所谓通信协议是指通信...以下着重介绍 I2C 总线: 一、I2C 总线概述: I2C 总线是 PHLIPS 公司推出的一...
iic总线协议
iic总线协议_信息与通信_工程科技_专业资料。iic总线的协议和程序实例I2C 总线是英文 INTER IC BUS 或 IC TO IC BUS 的简称,十多年前由 PHILIPS 公司推出,是...
IIC通信协议总结
IIC通信协议总结_学习总结_总结/汇报_实用文档。IIC 通信协议 一. 概述 IIC 总线的优点:I2C 总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和...
IIC总线
IIC 总线协议 IIC 是作为英特尔 IC 的互补,这种总线类型是由菲利浦半导体公司在八十年代初设计 出来的,主要是用来连接整体电路(ICS) ,IIC 是一种多向控制总线,...
IIC协议使用
IIC协议使用_金融/投资_经管营销_专业资料。IIC 协议使用 I2C 总线串行接口应用设计 I2C 是一种较为常用的串行接口标准,具有协议完善、支持芯片较多和占用 I/O ...
详解IIC总线应用规范
IIC总线通讯协议详解 26页 免费详​解​I​I​C​总​线​应​用​规​范 暂无评价|0人阅读|0次下载|举报文档 详​细​介​绍​了...
关键字:iic总线 iic协议 iic总线协议 iic程序 i2c总线 i2c协议i2c
关键字:iic总线 iic协议 iic总线协议 iic程序 i2c总线 i2c协议i2c 隐藏>> 一. 技术性能: 工作速率有 100K 和 400K 两种; 支持多机通讯; 支持多主控模块,但...
更多相关标签:
iic总线协议 | iic总线 | iic总线读写时序图 | iic总线上拉电阻 | iic总线仲裁机制 | iic总线传输距离 | 单片机iic总线 | iic总线工作原理 |