聊一聊IIC总线设计

FPGA学习交流 2018-06-22 10:32 次阅读

     大家好,又到了每日学习的时间了,今天咱们来聊一聊 IIC 总线设计。
       


       一、概述:
       IIC 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。
       IIC 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。
       SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)
       SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。

       二、输出级
       
       112519piicokk1x5k2kcxs.png



       每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点:
       1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为 1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。
       2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为"时钟同步"和"总线仲裁"提供了硬件基础。
       
       三、主设备与从设备

       系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型,由生产厂家制定,低3位为器件引脚定义地址,由使用者定义。主控器件通过地址码建立多机通信的机制,因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少个器件,其系统仍然为简约的二线结构。终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容 400pF的限制。  

       * 主端主要用来驱动SCL line;
       * 从设备对主设备产生响应;

       二者都可以传输数据,但是从设备不能发起传输,且传输是受到主设备控制的。
       112520lr2xkjcx2o6s92la.png



       四、速率:

       普通模式:100kHz;
       快速模式:400kHz;
       高速模式:3.4MHz;
       没有任何必要使用高速SCL,将SCL保持在100k或以下,然后忘了它吧。



       时序部分:

       1.空闲状态 

       I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 

       2.起始位与停止位的定义: 

       * 起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
       * 停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。
       
       113412kv2dc8e9ee85pgp0.png



       3.ACK
       发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。 应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。 对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。 如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。
       113412jugvzny1gsvsgeui.png



       如下图逻辑分析仪的采样结果:释放总线后,如果没有应答信号,sda应该一直持续为高电平,但是如图中蓝色虚线部分所示,它被拉低为低电平,证明收到了应答信号。

       这里面给我们的两个信息是:
       1)接收器在SCL的上升沿到来之前的低电平期间拉低SDA;
       2)应答信号一直保持到SCL的下降沿结束;正如前文红色标识所指出的那样。
       113412g4q241qaatmohxd1.png



       4.数据的有效性: 
       IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。 

       我的理解:虽然只要求在高电平期间保持稳定,但是要有一个提前量,也就是数据在SCL的上升沿到来之前就需准备好,因为在前面I2C总线之(一)---概述一文中已经指出,数据是在SCL的上升沿打入到器件(EEPROM)中的。
       113413ud9fl666z1gl19l9.png



       5.数据的传送:
       在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。



       工作过程

       总线上的所有通信都是由主控器引发的。在一次通信中,主控器与被控器总是在扮演着两种不同的角色。

       1.主设备向从设备发送数据

       主设备发送起始位,这会通知总线上的所有设备传输开始了,接下来主机发送设备地址,与这一地址匹配的slave将继续这一传输过程,而其它slave将会忽略接下来的传输并等待下一次传输的开始。主设备寻址到从设备后,发送它所要读取或写入的从设备的内部寄存器地址; 之后,发送数据。数据发送完毕后,发送停止位:

       写入过程如下:
       
       发送起始位
       * 发送从设备的地址和读/写选择位;释放总线,等到EEPROM拉低总线进行应答;如果EEPROM接收成功,则进行应答;若没有握手成功或者发送的数据错误时EEPROM不产生应答,此时要求重发或者终止。
       * 发送想要写入的内部寄存器地址;EEPROM对其发出应答;        
       * 发送数据
       * 发送停止位.
       * EEPROM收到停止信号后,进入到一个内部的写入周期,大概需要10ms,此间任何操作都不会被EEPROM响应;(因此以这种方式的两次写入之间要插入一个延时,否则会导致失败)
       113413fw4338hlcao874hd.png



       详细:
       113413n9q4f3qfwgz2d5qd.png



       需要说明的是:①主控器通过发送地址码与对应的被控器建立了通信关系,而挂接在总线上的其它被控器虽然同时也收到了地址码,但因为与其自身的地址不相符合,因此提前退出与主控器的通信;

       2.主控器读取数据的过程:
       读的过程比较复杂,在从slave读出数据前,你必须先要告诉它哪个内部寄存器是你想要读取的,因此必须先对其进行写入(dummy write):

       发送起始位;
       * 发送slave地址+write bit set;
       * 发送内部寄存器地址;
       * 重新发送起始位,即restart;
       * 重新发送slave地址+read bit set;
       * 读取数据
       * 主机接收器在接收到最后一个字节后,也不会发出ACK信号。于是,从机发送器释放SDA线,以允许主机发出P信号结束传输。 
       * 发送停止位   
       113414vha4orleob3i4art.png



       详细:
       113414e8xgr6808gyhx6kx.png



       今天就聊到这里,各位,加油。

热门推荐

收藏 人收藏
分享:

评论

相关推荐

从接口定义和实现两个方面,深入理解AWbus-lite

在使用AWBus-lite对设备进行管理时,无论设备处于 AWBus-lite拓扑结构中的哪个位置,....

的头像 周立功单片机 发表于 07-23 09:08 253次 阅读
从接口定义和实现两个方面,深入理解AWbus-lite

请问当用RX23T的硬件IIC做从机模式,主机向他请求数据时,会触发哪个中断?

发表于 07-23 06:21 3次 阅读
请问当用RX23T的硬件IIC做从机模式,主机向他请求数据时,会触发哪个中断?

请问关于瑞萨RX23T硬件IIC读取从机的寄存器问题

发表于 07-23 05:13 9次 阅读
请问关于瑞萨RX23T硬件IIC读取从机的寄存器问题

请问硬件IIC和软件IIC的区别是什么?

发表于 07-23 04:59 5次 阅读
请问硬件IIC和软件IIC的区别是什么?

请问硬件IIC从机如何向主机返回数据?

发表于 07-23 03:40 5次 阅读
请问硬件IIC从机如何向主机返回数据?

请问我的硬件iic读取MPU6050的id一直都不出来是什么原因?

发表于 07-23 02:48 8次 阅读
请问我的硬件iic读取MPU6050的id一直都不出来是什么原因?

请问我按照例程配置简易IIC,但是用示波器看没有波形输出是什么问题?

发表于 07-23 02:21 8次 阅读
请问我按照例程配置简易IIC,但是用示波器看没有波形输出是什么问题?

单片机总线时序是什么?51单片机总线时序详细分析

计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的....

的头像 MCU开发加油站 发表于 07-19 17:15 191次 阅读
单片机总线时序是什么?51单片机总线时序详细分析

基于51的IIC通讯原理及协议介绍

发表于 07-19 05:33 11次 阅读
基于51的IIC通讯原理及协议介绍

如何使用STB_O?如何使用ACK_O、ERR_O和RTY_O?如何使用TAG类型?

可以通过用户自定义信号(即标签技术,tagging)来对Wishbone接口进行修改。标签是微处理器....

的头像 电子技术应用ChinaAET 发表于 07-13 09:10 269次 阅读
如何使用STB_O?如何使用ACK_O、ERR_O和RTY_O?如何使用TAG类型?

各类总线大全和汽车网络中的LIN与CAN总线

控制总线:用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的;也有是....

的头像 电子发烧友网 发表于 07-12 09:56 272次 阅读
各类总线大全和汽车网络中的LIN与CAN总线

标准Wishbone协议:流水线Wishbone协议

注意3.30:在总线周期期间置位ERR_I信号,会立即结束该周期,意味着从机通知主机在该周期期间发生....

的头像 电子技术应用ChinaAET 发表于 07-12 08:38 134次 阅读
标准Wishbone协议:流水线Wishbone协议

Wishbone总线周期之复位操作

规则3.20:以下主机信号必须在RST_I置位(变为1)后的第一个时钟上升沿复位(变为0),直到RS....

的头像 电子技术应用ChinaAET 发表于 07-11 09:07 106次 阅读
Wishbone总线周期之复位操作

分享一个通讯及供电的整体解决方案

发表于 07-10 16:36 332次 阅读
分享一个通讯及供电的整体解决方案

怎么样使用传感器来控制平衡小车的直立控制和倾角及角速度

在直立控制原理的章节中,我们学习到,完成小车的直立控制需要测量小车的倾角和角速度。如图1所示。本节我....

发表于 07-09 08:00 64次 阅读
怎么样使用传感器来控制平衡小车的直立控制和倾角及角速度

Wishbone规范支持的互联类型有几种?

十字交叉互联方式较共享总线互联方式略复杂。共享总线互联方式在任一时刻只允许最多有一对主设备和....

的头像 电子技术应用ChinaAET 发表于 07-08 09:08 207次 阅读
Wishbone规范支持的互联类型有几种?

Wishbone一般总线规范的共同特点

支持用户定义的标签。这些标签可以用于为地址、数据总线提供额外的信息如奇偶校验,为总线周期提供额外的信....

的头像 电子技术应用ChinaAET 发表于 07-06 08:07 166次 阅读
Wishbone一般总线规范的共同特点

_SPI_总线协议及时序介绍

发表于 07-06 07:24 61次 阅读
_SPI_总线协议及时序介绍

关于基于现场总线的氙气灯多级调光安定器的设计与实现

在照明领域中,高强度气体放电(High Intensity Discharge,HID)灯是用途比较....

的头像 电子设计 发表于 07-05 11:34 228次 阅读
关于基于现场总线的氙气灯多级调光安定器的设计与实现

片上总线与板上总线存在若干明显差异

IP复用是片上系统时代的核心技术之一。由于IP核的设计千差万别,它们要能够直接连接,就要遵守相同的接....

的头像 电子技术应用ChinaAET 发表于 07-04 09:02 371次 阅读
片上总线与板上总线存在若干明显差异

DIMM被分为single-rank和double-rank

作为对single-sided和double-sided的补充,DIMM还被分为single-ran....

的头像 电子技术应用ChinaAET 发表于 06-28 09:07 429次 阅读
DIMM被分为single-rank和double-rank

sysfs platform总线

发表于 06-26 05:43 165次 阅读
sysfs   platform总线

dsPIC30F系列参考手册之附录

本文主要介绍了dsPIC30F系列参考手册之附录.

发表于 06-25 03:20 35次 阅读
dsPIC30F系列参考手册之附录

dsPIC30F系列参考手册之I2C总线

I 2C™ 模块是用于同其他外设或单片机进行通信的串行接口。这些外设可以是串行 EEPROM、显 示....

发表于 06-22 08:20 24次 阅读
dsPIC30F系列参考手册之I2C总线

AWBus-lite的拓扑结构及应用设计

为了管理系统中各式各样的硬件设备(或虚拟硬件设备),AWorks推出了领先的轻量级总线管理框架:AW....

的头像 ZLG致远电子 发表于 06-21 09:10 731次 阅读
AWBus-lite的拓扑结构及应用设计

AWorks如何编写开发设备驱动程序

本文详细介绍了AWorks中开发设备驱动的一般方法。基于这些通用的方法,用户可以尝试独立开发一些设备....

的头像 周立功单片机 发表于 06-20 09:58 752次 阅读
AWorks如何编写开发设备驱动程序

stm32的总线AMBA、AHB、APB

系统中的各个模块之间相互通信是通过总线,总线的作用,就是把数据和地址从设备A搬运到设备B上。

发表于 06-14 10:13 222次 阅读
stm32的总线AMBA、AHB、APB

密码锁控制器如何采用IIC通信方式使密码锁的密码掉电不丢失的程序

该密码锁控制器 ,键盘上有0-9个数字按键,功能键:确认和取消等,可设置复合键。密码的位数及密码可以....

发表于 06-06 08:00 64次 阅读
密码锁控制器如何采用IIC通信方式使密码锁的密码掉电不丢失的程序

AT24C02的IIC写入过程和时序详解(中文资料)

AT24C02是由ATMEL公司提供的,IIC总线串行EEPROM(electronic erase....

发表于 06-06 08:00 122次 阅读
AT24C02的IIC写入过程和时序详解(中文资料)

PCIe总线中的链路初始化与训练

前面的文章中介绍过,PCIe收发的都是差分信号,有的时候Link两端的设备的对应信号的极性可能是相反....

的头像 电子技术应用ChinaAET 发表于 06-05 09:06 624次 阅读
PCIe总线中的链路初始化与训练

I2C基本的传输方式知识整理

当I2C不工作时,SDA和SCL一样都处于高位HIGH,SCL保持为HIGH,SDA由HIGH变LO....

的头像 嵌入式ARM 发表于 05-25 15:09 872次 阅读
I2C基本的传输方式知识整理

PCIe总线实现了一种叫做Quality of Service(QoS)的机制

PCIe驱动程序(配置软件)通过修改VC资源控制寄存器(VC Resource Control Re....

的头像 电子技术应用ChinaAET 发表于 05-25 09:21 772次 阅读
PCIe总线实现了一种叫做Quality of Service(QoS)的机制

深度剖析RS-485组网问题及总线测试

RS-485总线优点众所皆知,并且为保证通信的稳定性,都会使用隔离RS-485模块进行信号隔离。但在....

的头像 ZLG致远电子 发表于 05-25 09:08 1943次 阅读
深度剖析RS-485组网问题及总线测试

Flow Control机制可以显著地提高总线的传输效率

PCIe Spec规定,PCIe设备的每一个端口(Ports)都必须支持Flow Control机制....

的头像 电子技术应用ChinaAET 发表于 05-24 09:26 512次 阅读
Flow Control机制可以显著地提高总线的传输效率

PCIe总线必须要先完成Flow Control初始化

由于VC0是默认使能的,所以当Flow Control初始化开始时,其会被自动的初始化。其他的Vir....

的头像 电子技术应用ChinaAET 发表于 05-24 09:18 759次 阅读
PCIe总线必须要先完成Flow Control初始化

详解SiP1205和SiP11206的中间总线转换器

中间总线电源架构正在迅速受到人们的青睐。根据Darnell Group的研究,预计未来几年中间总线转....

发表于 05-22 07:18 177次 阅读
详解SiP1205和SiP11206的中间总线转换器

单总线制多机通讯系统的总线设计

本设计实现的多机呼叫系统的主要功能是:分机呼叫主机,利用单片微机向主机发送数字呼叫信息,主机响应后,....

发表于 05-22 06:12 178次 阅读
单总线制多机通讯系统的总线设计

消息总线和消息队列的区别是什么?

消息队列的clientAPI大都面向协议、通信实现,面向可用性以及高性能,如果归类一下那就是面向技术....

发表于 05-21 10:18 569次 阅读
消息总线和消息队列的区别是什么?

总线的含义是什么?又有什么特性?

Altium Content团队很高兴地向您宣布,我们发布了1850个新元件,从而更新了FTDI目录....

发表于 05-21 10:18 445次 阅读
总线的含义是什么?又有什么特性?

一文详解存储器访问和总线

这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的。 这些东西都....

发表于 05-21 07:18 259次 阅读
一文详解存储器访问和总线

认识一下这款名叫“CAN总线存储器”的神器

CAN总线数据不能及时查看怎么办?CAN总线数据过多没时间处理怎么办?想要回看CAN总线历史数据又怎....

的头像 广成CAN总线 发表于 05-20 08:08 1946次 阅读
认识一下这款名叫“CAN总线存储器”的神器

SD卡两种总线方式

而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据....

的头像 电子工程专辑 发表于 05-18 08:46 885次 阅读
SD卡两种总线方式

一文读懂FPGA中的除法运算及初识AXI总线

FPGA中的硬件逻辑与软件程序的区别,相信大家在做除法运算时会有深入体会。若其中一个操作数为常数,可....

发表于 05-18 01:15 281次 阅读
一文读懂FPGA中的除法运算及初识AXI总线

简谈总线接口

大家好,又到了每日学习的时候了。今天我们来聊一聊总线接口。 一、I2C总线 I2C总线是PHLIPS....

的头像 FPGA学习交流 发表于 05-17 09:30 1397次 阅读
简谈总线接口

一些关于TLP路由的基础知识

可能有的人要有疑惑了,既然Message可以使用地址路由或者ID路由,为什么还要单独搞出来一个模糊路....

的头像 电子技术应用ChinaAET 发表于 05-11 09:35 532次 阅读
一些关于TLP路由的基础知识

一种基于EIA / RS-485和IEEE 802.15.4标准的通信总线

在能源管理领域,通过分散发电,简单,安全和可靠的当地资源,生产者和消费者之间的互联变得越来越必要。特....

的头像 华强LED网 发表于 05-09 14:07 864次 阅读
一种基于EIA / RS-485和IEEE 802.15.4标准的通信总线

关于电路设计的一些误区问题

除了少数特定信号外(如100BASE-T、CML),都是有过冲的,只要不是很大,并不一定都需要匹配,....

的头像 玩转单片机 发表于 05-08 17:10 1061次 阅读
关于电路设计的一些误区问题

BDF与配置空间

前面的关于PCI总线的文章介绍过PCI总线的配置空间,PCIe总线为了兼容这些PCI设备,几乎完整的....

的头像 电子技术应用ChinaAET 发表于 05-03 09:06 595次 阅读
BDF与配置空间

PCIe物理层的基本概念

需要注意的是,PCIe物理层处理可以转发LTP和DLLP之外,还可以直接发送命令集(Ordered ....

的头像 电子技术应用ChinaAET 发表于 05-02 10:06 592次 阅读
PCIe物理层的基本概念

一个简单地的例子来回顾PCIe总线的结构、事务层、数据链路层和物理层

如下图所示,Completer的应用层会根据接受到的信息进行相应的处理,处理完成后会将数据发送至事务....

的头像 电子技术应用ChinaAET 发表于 05-02 09:58 854次 阅读
一个简单地的例子来回顾PCIe总线的结构、事务层、数据链路层和物理层

modbus通信协议,profibus、FF、CAN总线等几种现场总线知识合集

物理传输介质可支持比绞线、光缆和无线发射,协议符合IEC1158-2标准。其物理媒介的传输信号采用曼....

的头像 工控云学堂 发表于 04-29 17:47 1623次 阅读
modbus通信协议,profibus、FF、CAN总线等几种现场总线知识合集

解析工程师所熟知的CAN、UART、IIC、USB等协议解码

随着硬件架构的不断更新,示波器早已不是只能“示波”的仪器了,协议解码就是典型代表!IIC、SPI、U....

的头像 ZLG致远电子 发表于 04-29 09:21 4266次 阅读
解析工程师所熟知的CAN、UART、IIC、USB等协议解码

嵌入式系统开发中的一些硬件相关的概念

做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究....

的头像 嵌入式资讯精选 发表于 04-27 15:29 576次 阅读
嵌入式系统开发中的一些硬件相关的概念

基于FPGA的FC总线通讯板的设计与验证

FC(Fiber Channel,光纤通道)标准是南美国工业协会( ANSI)制定的一种高速串行通信....

发表于 04-26 17:46 124次 阅读
基于FPGA的FC总线通讯板的设计与验证

现场总线制数据传输仪表精度检测系统设计

传统自动检测系统存在自动检测速率慢、准确率低、管线成本较高等问题,无法达到低成本、精准检测的标准。为....

发表于 04-26 11:35 78次 阅读
现场总线制数据传输仪表精度检测系统设计

全面的嵌入式基础知识总结

嵌入式基础知识做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。

的头像 ittbank 发表于 04-26 11:26 668次 阅读
全面的嵌入式基础知识总结

采用Flow Control机制的PCIe总线

PCIe总线为了解决这一问题,提出了Flow Control的概念,如下图所示。PCIe总线中要求接....

的头像 电子技术应用ChinaAET 发表于 04-26 08:54 507次 阅读
采用Flow Control机制的PCIe总线

数据总线是什么_数据总线工作原理及分类介绍

本文首先介绍了数据总线的概念和数据总线的技术指标,其次介绍了数据总线的分类与汽车数据总线种类,最后介....

的头像 电子魔法师 发表于 04-25 11:06 1159次 阅读
数据总线是什么_数据总线工作原理及分类介绍

详细地聊一聊Non-Posted Transaction

Locked Read主要用于支持一种叫做Atomic Read-Modify-Write操作,这是....

的头像 电子技术应用ChinaAET 发表于 04-25 09:14 606次 阅读
详细地聊一聊Non-Posted Transaction

总线型拓扑结构优缺点是什么

本文开始介绍了拓扑结构的概念和拓扑结构的分类,其次介绍了总线型拓扑结构的优缺点,最后介绍了总线型拓扑....

发表于 04-24 17:26 266次 阅读
总线型拓扑结构优缺点是什么