电子说
我们在设计数字电路时,都希望器件的功耗低、速度快并且封装(器件价格)便宜。但这如同所有的“神秘三角”一样,是不可兼得的。所有的逻辑器件都是在权衡了功耗、速度和封装之后的折衷方案:
——“神秘三角”有项目的管理三角:范围、时间和成本;病毒三角:传染性、毒性和适应性(新冠病毒之所以没有灭绝人类,就是因为它受到了这“神秘三角”的约束);等。
——器件之间的信号连接响应明显比同一封装内信号要慢,所需的功率更大;即,使得系统的性能降低,功耗增加。
——每个封装所允许的最大散热功耗限定了封装内的门电路数量。
——在相同制造工艺下,速度越高的器件功耗会越大。
所以对于逻辑门电路高速特性,我们主要考虑如下三个方面:
1, 理论上:数字逻辑的设计重点是关注 逻辑门电路的传输延时 ;
2, 实际上:通常取决于 最小输出转换时间(边沿时间) 。
——较快的转换时间会导致回流,串扰和振铃等与传输延时无关的问题倍增。
我们想要知道一个逻辑器件的功耗,一般会查看其数据手册上的典型电流值Icc,但这并非是器件的实际功耗,或则说在一些条件下器件的功耗会远大于标称的Icc电流值。举个栗子:常用的16位驱动器74LVTH16245,如果16个输出管脚同时快速翻转,那么其实际功耗应该会远超规格书中的Icc,如下图所示。
如下图所示,为一个简单的TTL反相器的内部逻辑结构,从功耗角度分为4部分:
——如下每一种功耗都可以进一步细分为:静态功耗和动态功耗。
这里非常重要的概念是:静态功耗和动态功耗。我们所有的功耗都可以将它分为这两部分。
静态功耗:指逻辑电路保持一个逻辑状态时消耗的功率。静态功耗可以由每个阻性单元两端电压V和电流I的乘积计算所得(P静态 = V*I),并且求和得到总功率,这是在没有负载情况下的静态功耗(即数据手册上看到的Icc标称值)。
——需要强调的是:静态功耗是不计负载损耗的器件自身功耗。
但实际上逻辑电路不跳变则无法传递信息,也就成了无用之物,我们需要器件“动”起来,那么器件就要消耗超过它正常静态功耗之外的“额外功率”。当这个变化很有节奏时,举个栗子:以时钟信号频率跳变;那么:动态功耗 = 周期频率* 每个周期额外的功率。
——动态损耗最常见的原因:负载电容(RC充电)和偏置电流。
如下图所示为驱动一个容性负载时的情形:
——该“死区时间”的原理同开关电源,在逻辑门电路中,其主要影响器件的功耗和电平切换速率(I/O管脚支持的最大速率)。
那么一个电压源通过电阻R对容性负载C充电或放电时,是如何计算它的功耗呢?
——如果有胖友还对这个问题有疑问:电容器有ESR,有寄生电阻呀等等;建议再回顾《阻容感基础01》中的内容,另外我想说的是:我们要区分电容与电容器这两个概念;电容是指容性,而电容器是指具体的器件,对于容性本身来说,它是不会造成电能的损耗,而造成损耗的是阻性。
1, 直接计算电阻R在充电RC充电电路中的功耗:P = I² * R,由于电流并非线性的,而是指数函数:(U/R)*exp(-t/τ);所以需要用到积分公式来进行计算,具体计算如下:
RC放电电路是充电的反向过程,同理其消耗在电阻R上的功耗也为(1/2)* CV²cc;所以充放电的总功耗为:P = CV²cc;
——指数函数的积分(面积)是1(即指数函数积分从-至x的积分值就是其本身,t 是-∞至0,那么可得积分为e⁰= 1),具体请参考《传递函数和波特图》的“说在开头”章节关于自然常数e的描述。
2, 将RC电路看成一个整体,同时将充电和放电看成一个整体;那么器件给R/C充电的总能量,就等于RC充电和RC放电两个过程中总共消耗的能量;电源消耗总能量:P = VccIt = VccQ = Vcc Vcc C = C V²cc;
——电源总能量是指器件Vcc通过“R充电”给容性负载C充电,然后由容性负载C通过“R放电”释放掉的总电能量;经过整个充电和放电过程,容性负载上并无能量储存,所以所有的能量都被电阻所消耗,即,我们可认为Vcc释放出来的能量都消耗在了电阻上。
3, 所以我们得到结论:对于恒压电源充电 / 放电电路来说 ,不管串接的电阻R阻值是多少,每个充电周期消耗掉的能量是总电源能量的一半:(1/2)* CV²cc;而整个充放电周期(管脚输出一个时钟周期)消耗的能量是:C V²cc。
——举个栗子:输出10MHz时钟信号,负载电容为10pF,电压为3.3V,那么驱动功率:1010⁶Hz1010⁻¹²F3.33.3V² ≈ 1.110⁻³W = 1.1mW;这么一算单个管脚的功耗还是比较小的;但这只考虑了理想情况,后续还有跟个详细的分析。
如上图TTL反相器的输出驱动电路在H(高电平)和L(低电平)之间较低转换,Q1和Q2交替处于导通状态,而非两者同时导通;这种电路配置有两个激励电路:一个把输出电压上拉到H,另一个将输出电压下拉到L,通常称之为推挽输出电路。TTL和CMOS都有推挽输出,如下左图为CMO推挽式输出电路。
TTL推挽式输出结构工作原理如上右图所示,结构中各个器件的作用如下:
——所有推挽式输出电路都需要有保护电路,防止高驱动和低驱动电路同时导通。
——对于一个快速的输入转换,重叠电流脉冲的大小和波形在每个周期都是一致的,并且每个周期消耗的能量也相同,所以这部分额外功耗与转换速率成正比,与容性负载导致的功耗不同:交越电流产生的功耗并不随电源电压的平方增加。
——减缓输入电压的转换时间往往会延长交越时间,导致T3和T4同时导通的电压附近停留的时间会更长,所以很多器件会对输入信号边沿时间有要求。
——因此TTL电路不适合用作线性的小信号处理器(如:振荡器),因为它们在线性工作状态是要消耗额外的能量。
芯片的输入功耗,来自于输出器件,并由它来激活输入电路。对于输入电路的偏置和触发来说是必需的。如下表对比了4种不同逻辑器件的静态和动态输入特性:
——这些功耗相对比较小,只有较大数量扇出(Fanout)或系统要求在极低功耗运行时,才能体现其重要性。
内部功耗是指逻辑器件内部偏置电流和内部逻辑翻转的功耗,包括静态和动态功耗。
——动态常数K动态表示周期频率每增加1Hz将额外消耗的功率。
——动态频率在相对较频率(>10MHz)时才会比较明显。
在非常宽的频率范围内,CMOS器件的内部功耗和周期频率呈明显的线性关系,这是因为CMOS电路的内部静态功耗非常低;而TTL器件由于内部静态功耗较大,所以直到工作频率接近器件的最大工作频率时才呈现出线性关系。如下图所示为不同类型TTL逻辑器件的门电路内部功耗与工作频率的关系曲线:
CMOS器件数据手册用等效电容Cpd来表示内部功耗,CMOS内部功耗 = Cpd * V² * f。可得到CMOS器件功耗的关联因素:
1,器件工作频率越来越高,是整个行业的发展方向,所以不能以降低管脚工作频率为代价来减小器件功耗;
2,负载电容与器件封装技术相关,器件小型化是发展趋势,但负载电容不能无限制地减小,需要付出更多的成本代价。
——减小I/O工作电压对功耗影响非常大(平方正比关系),是最明确可行的方案,举个栗子:I/O电压从5V减小至1V,那么功耗将减小至1/25;所以我们看到器件工作电压是越来越小的趋势。
逻辑器件中的主要能量消耗在输出驱动电路上,而驱动电路功耗由:输出电路的结构、逻辑电平、输出负载以及运行速度决定。我们主要考虑2种输出结构:
如下左图所示为理想TTL驱动器在H(高电平)和L(低电平)状态下的静态功耗,对于标准TTL器件来说Q2处于饱和状态(低电平)时的压降VL固定在大约0.3V;在高电平H状态下,压降由Q1的VBE和正向偏置二极管D1钳位(Vcc - VHI),约为1.4V。此时TTL驱动电流电路总静态功耗平均值近似为:P静态 = (0.3I灌+1.4I源)/2。
——此时Q1不会进入饱和状态,因为其B极电压不会上升到高于它C极电压(三极管饱和状态判断,具体参考《三极管原基础》相关章节)。
如上右图所示为CMOS驱动器电路,MOS管的导通压降很低,通常等效串联了上拉和下拉电阻;所以CMOS驱动器在高电平和低电平状态下的静态功耗:P静态 = (RbI²灌+RaI²源)/2。
——举个栗子:某器件VOL(Io = 4mA),25℃时典型值为0.15V,最大值为0.33V;某器件VOH(Io = -4mA),25℃时典型值为4.32V,最大值为3.48V;那么根据R = V/I,可计算Ra的阻抗范围是:37Ω83Ω;Rb的阻抗范围是:45Ω165Ω。在不同电源电压下,CMOS驱动器的输出电阻变化很大。
推挽电路输出负载能力,如果只按照所接负载直流输入要求进行计算,使输出负载能力达到它的直流最大扇出,特别是CMOS总线理论上的扇出能力是无限的;重负载的总线结构会带来两个问题:
输出总负载电容为:器件管脚寄生电容(10pf/pin)+PCB走线寄生电容(2pf/in)。举个栗子:我们有20个负载和10in长度的PCB走线,那么总电容 = 负载电容+走线电容 = 2010pf/pin + 10in 2pf/in = 220pF;此时信号边沿时间会变缓以及线路延迟会非常大。充电时间常数约等于驱动器输出电阻乘以输出负载电容,Trc = RC = 110Ω 220pF = 24ns(假设总线驱动器输出电阻为110Ω)。
——充电时间常数是指:电容从0充电至0.63Vcc所需的时间,升至高电平90%所需时间是Trc的两倍多:T10-90 = 2.2Trc = 53ns。
计算推挽电路动态输出功耗:f * C* V²cc;假设最差供电电压为5.5V,负载电容如上所述为220pF,信号线输出频率为10MHz,那么可得每个驱动器的功耗:1010⁶Hz22010⁻¹²F5.5V² ≈ 0.067W,如果这是一个16bit的驱动器,那么同时翻转产生的器件总功耗:P总 = 16*0.067w ≈ 1.1W。而且当上升时间缓慢时,驱动器的功耗会更高。
如下图所示为ECL射极跟随器输出电路,该电路在HI(高电平)和LO(低电平)两个状态下都有电流流过。HI(高电平)和LO(低电平)输出电压都是相近的,这些器件一般用-5.2V电源供电,高电平VHI= -0.9V,低电平VLO = -1.7V;同时射极耦合逻辑电路需要有一个上拉电阻R,用于端接至Vt = -5.2V或中间电压 -2.0V(戴维南匹配,具体参考《反射与阻抗匹配》),那么可得输出电路的静态功耗:
P静态 = (1/2) [(Vcc-Vhi) (Vhi-Vt)+(Vcc-Vlo)*(Vol-Vt)]/R
其中,Vcc =0V,VHI= -0.9V,VLO = -1.7V, Vt = -5.2V;那么计算可得:P静态 = 4.91/R。
同样,如果将R下拉至-2.0V时,可以计算得到:P静态 = 0.75/R。
那么我们可以得到:对于相同的电阻值R,使用中间电压(-2.0V)端接时表现出明显的功耗优势;这是因为当电源电压被下拉到-2.0V时,下拉电阻汲取的电流比较小(意味着低功耗)。
——上图中给出Re = 7Ω,当给容性负载C充电时,其充电时间常数为:Trc = Re* C;而充电至90%所需的时间为T10-90 = 2.2*Trc。
——如果Q1完全截止(忽略其漏电流),从90%-10%的下降时间为:T90-10 = RpdCln[(1-0.1K)/(1-0.9K)];其中常数K = (Vhi-Vlo)/(Vhi-Vi);如上面栗子参数(Vt = -5.2V),可计算K = 0.186, T90-10 = 0.164RpdC。若Vt = -2.0V,那么计算K = 0.727,T90-10 = 0.987RpdC。
——同时考虑其它方面:1,采用Vt = -5.2V不需要引入单独的新电源;2,采用Vt = -2.0V时下拉电阻范围在50100Ω,正好可以作为线路的终端匹配(阻抗匹配),而Vt = -5.2V时端接电阻在330680Ω,不适合做终端匹配(关于终端匹配相关知识参考:《反射与阻抗匹配》章节内容)。
1, 由于电压摆幅小,所以电路动态功耗非常小(下拉电阻产生的损耗);
2, 没有推挽输出电路的高低电平切换“死区时间”,切换的速率更快,且无额外损耗。
全部0条评论
快来发表一下你的评论吧 !