I2C 总线规范学习笔记

发布者:名字太长了吗最新更新时间:2015-10-19 来源: eefocus关键字:I2C  总线规范  学习笔记 手机看文章 扫描二维码
随时随地手机看文章
1、I2C 总线术语的定义

    术语      描述

    发送器  发送数据到总线的器件

    接收器  从总线接收数据的器件

    主机     初始化发送产生时钟信号和终止发送的器件

    从机     被主机寻址的器件

    多主机  同时有多于一个主机尝试控制总线但不破坏报文

    仲裁     是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程

    同步     两个或多个器件同步时钟信号的过程


2、I2C 总线上数据传输的过程

    I2C 总线是一个多主机的总线,这就是说可以连接多于一个能控制总线的器件到总线。由于主机通常是微控制器,让我们考虑以下数据在两个连接到I2C 总线的微控制器之间传输的情况。这突出了I2C 总线的主机--从机和接收器--发送器的关系。

    应当注意的是这些关系不是持久的,只由当时数据传输的方向决定。

    传输数据的过程如下:

    1)假设微控制器A 要发送信息到微控制器B

       --微控制器A 主机寻址微控制器B 从机

       --微控制器A 主机发送器发送数据到微控制器B 从机接收器

       --微控制器A 终止传输

    2)如果微控制器A 想从微控制器B 接收信息

       --微控制器A 主机寻址微控制器B 从机

       --微控制器A 主机接收器从微控制器B 从机发送器接收数据

       --微控制器A 终止传输,甚至在这种情况下主机微控制器A 也产生定时而且终止传输

3、I2C 总线的仲裁

    连接多于一个微控制器到I2C 总线的可能性意味着超过一个主机可以同时尝试初始化传输数据。为了避免由此产生混乱,发展出一个仲裁过程。它依靠线与连接所有I2C 总线接口到I2C 总线。如果两个或多个主机尝试发送信息到总线,在其他主机都产生“0” 的情况下,首先产生一个“1”的主机将丢失仲裁。仲裁时的时钟信号是用线与连接到SCL 线的主机产生的时钟的同步结合。

    在I2C 总线上产生时钟信号通常是主机器件的责任,当在总线上传输数据时每个主机产生自己的时钟信号。主机发出的总线时钟信号只有在以下的情况才能被改变:慢速的从机器件控制时钟线并延长时钟信号,或者在发生仲裁时被另一个主机改变。

4、I2C 总线的配置

    SDA 和SCL 都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压。当总线空闲时,这两条线路都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。I2C 总线上数据的传输速率在标准模式下可达 100kbit/s,在快速模式下可达 400kbit/s,在高速模式下可达 3.4Mbit/s 。连接到总线的接口数量只由总线电容是 400pF 的限制决定。

    1)数据的有效性:SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。

    2)起始和停止条件:在I2C 总线中唯一出现的是被定义为起始S 和停止P 条件的情况。其中一种情况是在SCL 线是高电平时,SDA 线从高电平向低电平切换这个情况表示起始条件;当SCL 是高电平时,SDA 线由低电平向高电平切换表示停止条件。

    起始和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后总线被认为再次处于空闲状态。如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便。但是没有这种接口的MCU,在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换。

    Hs 模式器件的系统的物理I2C 总线配置:主机器件的SDA 和SCL 管脚只在速度混合的总线系统中使用,在只有Hs 模式的系统中不需要连接。此时这些管脚有其他功能。

    可选的串连电阻RS 保护I2C 总线器件的I/O 级,防止总线上高电压的毛刺影响I/O 级并将振荡和干扰减到最小。

    上拉电阻Rp 使SDAH 和SCLH 线在总线空闲的时侯保持高电平,并确保信号在要求的上升时间内从低电平变成高电平。对于电容负载很高>100pF 的总线线路,为了符合上升时间的要求,可以用外部上拉电流源代替Rp 。除非跟着一个响应位,Hs 模式传输的SCLH 时钟脉冲上升时间被激活主机的内部电流源上拉电路MCS 缩短。

5、I2C 总线的电平兼容

    I2C 总线器件的电气规范和连接到它们的总线线路特性:有1.5V 和3V 固定输入电平的 I2C 总线器件每个都有它们自己相应的电源电压上拉电阻必须连接到一个5V +-10% 的电源。输入电平连接到VDD 的I2C 总线器件必须有一条公共的电源线连接到上拉电阻。当有固定输入电平的器件与输入电平连接到VDD 的器件混合使用时,后者必须连接到一条公共的5V +-10% 电源线,而且必须连接上拉电阻到SDA 和SCL 管脚。

    如何将电压不同的器件通过连接到电源电压线的上拉电阻连接到相同的总线?尽管上述是最简单的解决方法,但低电压的器件必须能容忍5V,这将使它们的生产更昂贵。

    通过使用双向电平转换器,可以将电源电压和逻辑电平不同的两部分I2C 总线连接起来。“低电压”部分有上拉电阻,而且器件连接到3.3V 的电源电压;“高电平”部分有上拉电阻,器件连接到5V 电源电压。两部分的器件都有与逻辑输入电平相关的电源电压和开漏输出配置的I/O。

    每条总线线路的电平转换器是相同的,而且由一个分立的N通道增强型MOS-FET 管、串行数据线SDA 的TR1 和串行时钟线SCL 的TR2 组成。门极g 要连接到最电源电压VDD1,源极s 连接到“低电压”部分的总线线路,而漏极d 则连接到“高电压”部分的总线线路。

一些可使用的CAN高层协议有:制定组织                             主要高层协议 CiA (CAN in Automation)                  CAL协议 CiA (CAN in Automation)                  CANOpen协议 ODVA(Open DeviceNet Vendor Association)    DeviceNet 协议 (由Allen-Bradley原创)
Honeywell                                  SDS 协议 Kvaser                                     CANKingdom协议
SAE(Society of Automotive Engineers)       J1939

关键字:I2C  总线规范  学习笔记 引用地址:I2C 总线规范学习笔记

上一篇:I2C总线原理及应用实例
下一篇:SPI 总线 和 IIC 总线 的区别

推荐阅读最新更新时间:2024-05-03 00:02

I2C接口的数字温度传感器TMP101及其应用
摘要:TMP101是TI公司生产的12位低功耗、高精度数字温度传感器,较宽的温度测量范围和较高的分辨率使其可以广泛应用于许多温度测量场合。TMP101可通过串行总线接口方便地与数字系统相连,同时还具有关闭模式和报警输出。文中介绍了TMP101的内部结构和主要特性,并给出了与PrPMC800模块的接口应用。 关键词:温度传感器;I2C;SMBus;PrPMC800;TMP101 1 TMP101的引脚功能和主要特性 TMP101是TI公司生产的12位低功耗、高精度的数字温度传感器它采用与I2C和SMBus相兼容的2线数字接口,可应用于许多高分辨率和宽量程温度测量场合,如温度控制系统、个人计算机保护、电子测试仪器、办公设备以
[传感技术]
IT8528存储器学习笔记
IT8528E,该芯片内部集成多个外设模块,内核为8032,使用8051指令集。 因此这颗 MCU“内核”为51核。 可以简单地认为这是一个外设资源更丰富的8051单片机,框图如下: IT8528相关储存器主要有三个部分: iRAM : 8032内部 256Byte 的 RAM,这部分属于8032内核。 XRAM : 内核外部 4K 的 RAM,这部分在 IT8528 芯片内部。 XROM : 外接 Flash ROM,大小不确定,一般为64K--128K,通过SPI连接。 内部RAM 它属于8032内核部分,访问速度快,容量很小。逻辑地址和 SFR 寄存器复用。 低128字节的数据存储器既可以直接寻址也可以间接寻址。
[单片机]
IT8528存储器<font color='red'>学习</font><font color='red'>笔记</font>
STM8S GPIO模拟I2C的底层代码
底层代码 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 GPIO初始化设置 这颗STM8S上,具有真·开漏功能的引脚是PB4和PB5,这两个引脚也正是片上I2C外设的默认引脚。端口设置如下: PB4 :I2C的SCL时钟线,开漏输出模式 PB5 :I2C的SDA数据线,开漏输出模式 SCL和SDA初始化时,推荐选用高阻态输出 /** * @brief I2C端口初始化 * @param None * @retval None */ void I2C_GPIO_Init(void) {
[单片机]
MSP432学习笔记:比较器E模块
ComaratorE是具有用于多达16个通道一般比较器的功能的模拟电压比较器。 23.1 COMP_E简介所述COMP_E模块支持精确的斜率模 - 数转换,电压监控及外部模拟信号的监视。 COMP_E的特点包括 • 反相和同相端子输入多路复用 • 对于比较器输出软件可选RC滤波器 • 提供给定时器A捕捉的输入输出 • 端口输入缓冲器的软件控制 • 中断能力• 可选择的参考电压发生器,电压发生器的滞后 • 从共享基准参考电压输入 • 超低功耗比较器模式 • 中断驱动的测量系统, 用于低功率操作支持图23-1 示出了COMPE框 23.2 COMP_E操作 所述COMP_E模块由用户软件
[单片机]
MSP432<font color='red'>学习</font><font color='red'>笔记</font>:比较器E模块
(5)I2C总线的10bit地址以及通用广播地址
其实,10bit地址我没用过,通用广播地址更没用过.通用广播地址应该是在多个mcu之间用i2c进行通信时使用的.虽说没用到,但还是做了翻译,说不定以后有机会用到: 10bit地址 10bit的寻址扩展可能寻址的数目.有7bit地址和10bit地址的设备可以连接到相同的I2C总线上,而且7bit寻址和10bit寻址都可以用在所有的总线速度模式下.不过,10bit寻址用的不多. 10bit的从机地址由开始条件(S)或重复开始条件(Sr)后的两个字节组成.第一个字节的前7位是1111 0XX,XX是10bit地址的最高有效位的前两位.第一个字节的第8bit是读写位,决定传输方向. 尽管1111 XXX有8种可能的组合,然后只有111
[单片机]
(5)<font color='red'>I2C</font><font color='red'>总线</font>的10bit地址以及通用广播地址
STM8学习笔记三——错误:no definition for "assert_failed"
在STM8程序编译过程中,我碰到了这样的错误: Error : no definition for assert_failed 出现这个问题的原因是因为: void assert_failed(u8* file, u32 line); 这个函数在“stm8s_conf.h”这个文件中只是单纯的声明,他的作用来在我们在做串口调试时返回值验证出错的时候调用。因此我们需要在某个地方将这个函数进行实现。一般将他放在“main.c”进行实现。 解决方法如下: 1、在main.c代码里添加以下代码: #ifdef USE_FULL_ASSERT void assert_failed(u8* file, u32 line) { /* Use
[单片机]
MSP430学习笔记:UART
串通可以两种方法其现 一、USART硬件直接实现 二、通过定时器软件实现 该模块可现现: UART异步串行通讯 SPI同步串行通讯 I2C同步串行通讯 UxCTL控制寄存器 7:PENA 6:PEV 5:SPB 4:CHAR 3:LISTEN 2:SYNC 1:MM 0:SWRST PENA 校验允许位 0 校验禁止 1 校验允许 校验允许时,发送端发送校验,接收端接收该校验,地址位多机模式中,地址位包含校验操作. PEV 奇偶校验位,该位在校验允许时有效 0 奇校验 1 偶校验 SPB 停止位选择.决定发送的停止位数,但接收时接收器只检测
[单片机]
MSP430<font color='red'>学习</font><font color='red'>笔记</font>:UART
汇编语言学习笔记——————寄存器
CPU概述 内部总线 一个典型的CPU由运算器,逻辑控制器,寄存器等器件组成,这些器件靠内部总线相连。 内部总线与外部总线的区别 内部总线实现CPU内部各个器件之间的联系。 外部总线实现CPU和主板其他器件的联系。 寄存器 8086CPU有14个寄存器,他们的名称为:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW。 通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节。 AX,BX,CX,DX通常用来存放一般性数据被称之为通用寄存器 下图是AX通用寄存器的寄存器图: 一个16位的寄存器可以存储一个16位的数据 8086上一代CPU中的寄存器都是8位的,为了保
[单片机]
汇编语言<font color='red'>学习</font><font color='red'>笔记</font>——————寄存器
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved