稳定可靠的I2C通信的设计计算

发布者:王岚枫最新更新时间:2014-01-07 来源: elecfans关键字:I2C通信  设计计算  同步总线 手机看文章 扫描二维码
随时随地手机看文章

  许多系统需要可靠的非易失性存储,对于这些系统,可选择EEPROM存储器技术。EEPROM技术具有稳定可靠的架构,供应商较多,并且经过了多年的改进。EEPROM器件可用于各种工业标准串行总线,包括I2C™、SPI、Microwire和UNI/O®总线。其中,I2C总线在单片机和其他芯片组中具有广泛的硬件支持,并且信号传递方式简单,可采用极小的硅片有效实现,因此占据了非易失性存储器市场约70%的份额。但是,I2C总线拓扑要依赖于阻值合适的上拉电阻才能实现稳定可靠的通信。电阻值选择错误不仅会造成电能浪费,还可能导致总线状态和传输过程由于噪声、温度变化、工作电压变化以及器件间的制造差异而出错。

  I2C是二线同步总线,使用总线主器件SCL线上产生的信号作为时钟。SDA线用于双向数据传输。当时钟处于特定状态时可修改数据线,以指示传输的开始和停止,从而避免使用更多的线。I2C总线以集电极开路输出为基础,其中,器件可通过接地晶体管拉低线的电平,如图1所示。这样便可轻松对总线控制进行仲裁,从而在一条数据线上实现双向通信以及多主器件支持。如图1所示,每条线都有一个外部电阻连接至Vdd,该电阻可在释放总线或总线空闲时拉高线的电平。

  

  图1 I2C™总线拓扑

  确定上拉电阻值(Rp)时需要考虑三个因素:

  • 电源电压(Vdd)

  • 总线总电容(CBUS)

  • 高电平总输入电流(IIH)

  以下面的条件为例计算理想的上拉电阻值:

  • 电源电压(Vdd)为5V

  • 时钟频率为400kHz

  • 总线电容为100pF

  电源电压(Vdd)

  I2C规范将低于VIL或低于电源电压30%的电压定义为逻辑低电平,同样,将高于VIH或高于电源电压70%的电压定义为逻辑高电平,如图2所示。这两个电平之间的电压属于不明确的逻辑电平。实际上,引脚会将该范围内的电平读为逻辑高电平或逻辑低电平,但在器件间可能不同,因为温度、电压、噪声源和其他环境因素会影响逻辑电平。

  

  图2 指定为逻辑高电平和逻辑低电平的电压电平[page]

  电源电压限制了可允许总线拉低的最小Rp值。过强的上拉会阻止器件充分拉低线的电平,导致无法确保逻辑低电平能被检测到。这是由上拉电阻与接地晶体管的导通电阻之间形成的分压器产生的,如图3所示。通常不会指定晶体管的导通电阻。相反,会给定使晶体管上的电压降低于输出逻辑低电压电平(VOL)的最大灌电流(IOL)。使用欧姆定律得出公式1。

  

  图3 集电极开路拓扑和等效电路

  对于Microchip的I2C EEPROM器件,规定在IOL为3mA时,VOL最大为0.4V,其他制造商的器件的范围与其相似。

  公式1:允许总线电压拉低的最小上拉电阻。

  

  

  

  如果总线上有多个器件,最小Rp由灌电流最低的器件决定。

  总线总电容(CBUS)

  在SCL和SDA线上,所有引脚、连接、PCB走线和导线都会引入电容。这些电容结合在一起称为总线电容,对于长走线和长连接来说,总线电容可能很大。集电极开路拓扑需要外部电阻才能在总线释放时拉高线的电平。上拉电阻(与总线电容耦合)具有一个RC时间常数,该常数限制了上升时间。随着时钟频率的增加,该常数愈发重要,因为需要更少的时间升高线的电平。如果所选电阻值过高,线的电平在下一次拉低之前可能无法上升到逻辑高电平。对于一条总线上具有多个器件的设计(通常具有较大的总线电容)来说,这是重要的考虑因素。

  总线电容可通过PCB走线长度和引脚分布电容计算,也可以使用电容探头或智能镊子量表进行测量。如果不能准确计算或测量总线电容,应高估最坏情况读数以提供安全的最大电阻值。

  公式2是用于确定充电电容负载两端电压(与时间成函数关系)的一般公式。这可以计算在特定上拉电阻和总线电容下,总线电压上升到特定值所需的时间。

  公式2:通过电阻对电容进行充电的一般公式。

  重新排列

  之后,我们可计算电压上升至VIL的时间(T1)、上升至VIH的时间(T2)以及精确计算这两个电平之间的时间(TR),如图4所示。由于VIL和VIH都是由Vdd产生的,因此该公式与电源电压无关,因为Vdd项已抵消。

  

  图4 逻辑低电平转换为逻辑高电平的充电时间

  求解

  求解

  

  各种工作电压的最大上升时间由I2C标准指定,并通过上拉电阻确定。根据该时间和总线电容,我们可以计算允许的最大上拉电阻(Rp)。当电压为5V,时钟频率为400kHz时,给定总线电容CBUS为100pF,则规定的最大上升时间(TR)为300ns。

  公式3:符合I2C上升时间标准的最小上拉电阻。

  

  

  

[page]

  高电平总输入电流(IIH)

  即使没有器件拉低线的电平,线仍处于逻辑高电平时,电流仍会继续流过上拉电阻。该电流由总线上器件的数字输入的泄漏产生,也可能是质量较差的PCB材料以及焊接残留物所导致。其中一些因素是无法预见的,但采用高质量材料和良好的制造工艺时,输入引脚泄漏是主要原因。

  根据图2,没有器件拉低总线电平时,线的电平需要高于VIH才能被视为逻辑高电平。泄漏电流会限制Rp的最大值,这样其两端的电压降不会阻止线的电平被拉高至VIH以上。对于VIH规范,还应谨慎留出一些保护裕量,以防止噪声尖峰将电压拉低至VIH电平以下。要在高噪声环境下稳定工作,I2C规范建议采用0.2 Vdd作为高出VIH的适当裕量。

  公式4:逻辑高输入电平上的额外裕量。

  

  

  

  通常会在器件的数据手册中给出数字输入的泄漏电流,对于Microchip的I2C EEPROM器件,最大输入泄漏电流(IlIEE)为1µA。组成系统的最少元件是单片机I2C主器件和I2C从器件。对于本例,采用一个输入泄漏电流(IlIMCU)为1µA的单片机和四个I2C EEPROM器件,允许100%裕量,IIH为10µA。

  公式5:已定义总线的引脚泄漏产生的泄漏电流。

  

  

  

  应用欧姆定律,我们可以确定符合这些规范的Rp最大值。

  公式6:确保逻辑高电平的最小上拉电阻值。

  

  

  

  电阻值计算

  通过计算电源电压、总线电容和泄漏电流,我们可以得出RP值的范围。

  

  

  

  可以忽略由泄漏电流产生的 50KΩ(最大值),因为总线电容起主导作用。因此,可接受的电阻值的范围为:

  

  设计人员应选择范围中间附近的值,以尽可能提供较大的保护带。对于本例,2.2KΩ的上拉电阻较为理想。

  总线速度与功耗

  当提高总线速度或存在较大总线电容时,必须减小上拉电阻。阻值较低的电阻会导致电流消耗增加,因为总线上的每个逻辑低电平都会产生对地通路,从而对功耗造成负面影响。快速完成任务并使系统恢复到低功耗空闲状态,与较高总线速度要求所产生的额外电流消耗存在矛盾,总线速度可成为两者之间的权衡因素。对于功耗预算非常低的应用,SPI可能是更合适的总线协议,因为其使用驱动线路,而不是集电极开路。

关键字:I2C通信  设计计算  同步总线 引用地址:稳定可靠的I2C通信的设计计算

上一篇:一种实现VEM总线结构的软件无线电方案
下一篇:MAX3051低电源电流CAN收发器

推荐阅读最新更新时间:2024-05-02 22:54

基于SmartModule的雷达嵌人式计算设计
      1 引言   在传统的舰载雷达计算机系统中,一般采用双机(A,B机)体制:A机负责数据的采集、跟踪、解算,称为任务计算机;B机负责雷达综合态势与相关数据的显示与操控,同时完成对各种接口的操作,称为人机接口计算机。A,B机之间通过共享存储区交换数据。在这种系统中,双机都采用军用加固机,A机与雷达接口板、天线方位接口板等相连,而B机需要控制操作多种接口板卡,如显示接口板、对外接口板、数据存储板、网络接口板等。同时系统中还存在各种用于控制雷达分机的小系统,如伺服系统;提供舰艇经纬度信息的GPS系统,这些小系统与B机之间通过串口进行通信。可见,传统计算机系统组成板卡多、各板卡功能单一、系统组成结构复杂、可靠性差、且数据交换
[嵌入式]
舰载军用加固计算机的热设计
摘 要:提出了舰载军用加固机散热设计的解决方案,该方案具有设计简单、可靠、经济的特点。 关键词:军用加固计算机;自然散热;强迫风冷;热设计 前言 ---作为信息系统的“中枢”,计算机在信息化战场上的作用和地位日益突出。为了保证计算机在复杂恶劣的战场环境中正常稳定地工作,需要对一般商用计算机进行特殊加固,以提高系统的稳定性和安全性。 ---舰载军用加固计算机由主机和显示器组成,考虑到防震和抗冲击的需要,均采用铝合金加固的形式。由于显示器的发热量较小,采用自然散热的方式即可以保证其正常工作,因此热设计的重点是加固计算机的主机箱。计算机的主机箱是19英寸标准机箱,采用浮动螺母的方式固定在工作舱的通信指挥台下。机箱内的电源、CPU等器
[传感技术]
英特尔将与Waymo合作 设计自动驾驶汽车计算平台
北京时间9月19日消息,据汽车新闻网报道,本周一,英特尔宣布将与谷歌旗下专注自动驾驶技术的子公司Waymo合作,设计一种能实时处理信息的自动驾驶汽车计算平台。 作为全球最大的电脑芯片制造商,英特尔方面称其自家研发的传感处理技术、数据处理技术和连通技术已在克莱斯勒Pacifica混合动力厢式旅行车上运用成功。而Waymo也早在2015年就开始利用该款车型测试其旗下的自动驾驶系统。 英特尔CEO Brian Krzanich在宣布与Waymo即将展开合作的发布会上表示:“随着Waymo的自动驾驶技术变得更加灵活和更具实用性,支撑其优异表现的软硬件系统也将需要更强大高速的计算能力”。 今年3月,英特尔以150亿美元收购了以色列Mobil
[汽车电子]
STM32F407和STM32F051主从I2C通信方法
M4作为主机:   int main(void)   {   /* USER CODE BEGIN 1 */   /* USER CODE END 1 */   HAL_Init();   /* Configure the system clock */   SystemClock_Config();   /* Initialize all configured peripherals */   MX_GPIO_Init();   MX_I2C1_Init();   MX_USART1_UART_Init();   /* USER CODE BEGIN 2 */   /* USER CODE END 2 */   /* Infin
[单片机]
CRM模式PFC设计之电感的计算
对于小功率电源一般都采用临界导通型(CRM)模式APFC,它出现在正弦波零跨越时,可以改变开关频率且可以使开关频率变得非常高,不过一般IC内部都有对频率上限进行限制,防止EMI测试无法通过。   CRM模式APFC原理图:      下面具体讲讲CRM模式APFC的电感的计算:   条件:   输入最低交流电压电压Vmin=85V,   输入最高交流电压电压Vmax=265V,   输入交流电源频率Fac=50Hz,   输出功率Pout=100W   输出直流电压Vout=390V   最低满载效率η=92%   开关频率f=100KHz   计算步骤如下:   1. 先根据效率计算出最大输入功率P
[电源管理]
CRM模式PFC<font color='red'>设计</font>之电感的<font color='red'>计算</font>
开关电源原理与设计(连载24)反激式开关电源变压器初级线圈电感量的计算
      反激式开关电源变压器初级线圈电感量的计算       反激式开关电源与正激式开关电源不同,对于如图1-19的反激式开关电源,其在控制开关接通其间是不向负载提供能量的,因此,反激式开关电源在控制开关接通期间只存储能量,而仅在控制开关关断期间才把存储能量转化成反电动势向负载提供输出。在控制开关接通期间反激式开关电源是通过流过变压器初级线圈的励磁电流产生的磁通来存储磁能量的。根据(1-98)式和(1-102)式,当控制开关接通时,流过变压器初级线圈的最大励磁电流为:             (1-123)式就是计算反激式开关电源变压器初级线圈电感的公式。式中,L1为变压器初级线圈的电感,P为变压器的输入功率,Ton为
[电源管理]
开关电源原理与<font color='red'>设计</font>(连载24)反激式开关电源变压器初级线圈电感量的<font color='red'>计算</font>
开关电源原理与设计(连载四)串联式开关电源储能滤波电容的计算
      1-2-4.串联式开关电源储能滤波电容的计算       我们同样从流过储能电感的电流为临界连续电流状态着手,对储能滤波电容C的充、放电过程进行分析,然后再对储能滤波电容C的数值进行计算。       图1-6是串联式开关电源工作于临界连续电流状态时,串联式开关电源电路中各点电压和电流的波形。图1-6中,Ui为电源的输入电压,uo为控制开关K的输出电压,Uo为电源滤波输出电压,iL为流过储能滤波电感电流,Io为流过负载的电流。图1-6-a)是控制开关K输出电压的波形;图1-6-b)是储能滤波电容C的充、放电曲线图;图1-6-c)是流过储能滤波电感电流iL的波形。当串联式开关电源工作于临界连续电流状态时,控制开关K的占
[电源管理]
开关电源原理与<font color='red'>设计</font>(连载四)串联式开关电源储能滤波电容的<font color='red'>计算</font>
FPGA设计频率的计算方法
我们的设计需要多大容量的芯片?我们的设计能跑多快?这是经常困扰工程师的两个问题。对于前一个问题,我们可能还能先以一个比较大的芯片实现原型,待原型完成再选用大小合适的芯片实现。对于后者,我们需要一个比较精确的预估,我们的设计能跑50M,100M 还是133M?   首先让我们先来看看Fmax 是如何计算出来的。图(1)是一个通用的模型用来计算FPGA的。我们可以看出,Fmax 受Tsu , Tco , Tlogic 和 Troute 四个参数影响。( 由于使用FPGA 全局时钟,时钟的抖动在这里不考虑)。   时钟周期 T = Tco + Tlogic + Troute + Tsu   时钟频率 Fmax = 1/Tmax
[嵌入式]
FPGA<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