引言
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其他设备的控制、监视或管理等功能。
不管是在科研设备中还是在家用微波炉中,都可以看到嵌入式控制技术的影子,嵌入式控制技术已经成功的应用在各种领域中,并且越来越广泛的进入到人们的生活中。
在控制电路的设计中,数据的输入/输出端口是控制器完成数据输出和接收功能的关键部分,因此这一部分电路设计的好坏关系到控制器能否正常工作。
1 数字输入端口逻辑设计分析 以控制器为中心,按照数据的流向分,控制器的端口分为数字输入端和数字输出端两种,其中最简单的一种I/O形式是数字输入。下面从最简单的数字输入端设计来讨论在输入端口设计中遇到的实际问题和解决方法。由于控制器的数据输入输出引脚数量少,并且在使用时要分时复用,因此一般控制器和外部设备之间使用缓冲器或锁存器连接。如图1所示,缓冲器74HC244放置在处理器和外部器件之间,当处理器要读取连接在外部接口上的设备信号时,处理器通过READ引脚使74HC244输出引脚有效。这样,外部设备数据就能够通过74HC244的A0~A3和B0~B3引脚传输到74HC244的缓冲器中,然后被送到数据总线上,微控制器就能够读入设备的数据了。
图1
图1所示的接口方式适合于输入端少的情况,而对于现在面向便携式设备的SoC设计,不仅要求性能高、体积小,更要求功耗低。一般而言,SoC的静态功耗很小,而对负载电容充放电的动态功耗很大。如果总线上挂着很多功能设备,那么会导致总线的电容负载很大。如果总线与片外设备联系,那么控制器还要驱动很长的片外连线以及片外设备。如果系统设计有许多数字输入端,那么采用74HC244这种输入方案就会有些问题。这是由于74HC244三态输出端的最小电容值为20 pF,比SoC内部各节点的电容负载0.05 pF高出三个量级,过多的74HC244连接会使处理器数据总线上的电容负载值比较大,使得数据总线无法接收数据。
为了减小电容对数据输入的影响,可以对图1所示的方案改进成如图2所示的方案,采用数据选择器来替代74HC244,比如用74HC257。74HC257输出端的最大电容值为15 pF,比74HC244的输出端电容稍小一些。从图2中可以看到,采用74HC257可以使控制器的一条数据总线连接两条输入端,这就相当于一条数据总线的输入电容值只有7.5 pF。当然,也可以采用8选1的数字逻辑电路,比如74LS138或74HC151,但是它们没有三态功能,因此要与74HC244结合使用,来提供数字输入功能。这样能使处理器每条数据总线的输入电容降为只使用74HC244时的1/8。
图2
如果系统设计中不需要对多于数据总线数量的数字输入端进行同时取样,以上的74HC244和74HC257方案就完全可以适用。如果在系统设计中,要求必须同时取样大量的数字输入端,就必须在电路设计中使用锁存器来锁存数据。在电路设计中,经常使用的锁存器是74HC374和74HC574,这两种锁存器的功能相当。由于74HC574的输入引脚和输出引脚分列在集成块的两边,这样的排列使制作印刷电路板时的布线比较简单;另一方面,74HC574的输出电容值为15 pF,这个值与74HC244的输出电容值几乎一样,因此在设计中一般选用74HC574,电路连接如图3所示,使用锁存器可以同时取样大量的数据输入端。
数据选择器可以降低每条总线的负载电容值,而不能同时取样数据输入端。使用数据锁存器,会增大数据总线的电容负载,这样就必须在取样数据线的数量和采用数据选择器的数量之间找到一个恰当的点。
图4给出了一个较好的解决方案。在电路中,移位寄存器74HC597被级联在一起,并且与控制器的总线相连接, 这样可以给处理器提供大量的数字输入引脚,同时每条总线上的电容负载值又可以达到最小。
74HC597是移位寄存器,它有8个触发器与输入引脚相连,这些触发器是边沿触发的输入锁存器;同时,74HC597有另外的8个边沿触发的锁存器串联在一起,构成移位寄存器。在图4中,当胶粘逻辑一个上升沿信号给RCLK时,数据输入引脚的信号被同时取样,接下来处理器通过胶粘逻辑传送一个信号给SRLOAD,使取样得到的数据从输入锁存器移入移位寄存器。在移位寄存器内,处理器通过SRCLK使数据每一时钟周期移动一位,数据在READ端允许读出时,由D0引脚送到数据总线上。
还可以对这个电路进行简单变形,将74HC597的QH信号引脚通过一个多路缓冲器连接到每一条数据总线上,比如采用74HC244,这样改进后,减少了处理串行数据的时间,并且可以一次读出。
2 数据输入端口保护设计分析 前面已经讨论了多种解决微处理器数据总线和外部设备接口的方法,下面将从实践的角度讨论避免系统外部干扰的方法。
在电路设计中,使CMOS器件的输入端悬空是一种不良的设计习惯,因为CMOS器件是电压控制,而未被连接的输入端有靠近CMOS门槛电压输入的趋势,使得芯片内部的三极管作不必要的开关动作,这既增加了噪声干扰,又耗费了系统的功率。一般,使用上拉电阻或下拉电阻,把未被连接的输入引脚与电源或接地点连接,使它们有一个确定的电压值。CMOS输入引脚的最大输入电流非常小,只有1 μA左右,因此选用1 MΩ作为上拉电阻或下拉电阻。
在许多嵌入式系统中,输入引脚的有效电压一般是5 V以上或为负值(对地),在这种情况下,使用几个电阻就可以防止输入引脚过压。如图5所示,CMOS集成块内部的2个二极管可以把电压钳位在CMOS器件输入电压值,这2个二极管是高速CMOS器件(74HC系列)静电保护措施的一部分。
如图6所示,在输入端连接2个肖特基二极管,这样可以更安全的保护输入端口,但是成本会高一些。前端电压降到集成块内部2个二极管导通电压的1/3,内部的2个二极管不会导通,电流全部通过前端正向偏压的肖特基二极管。这种电压保护电路在有些应用设计中是必须的。在一般设计中,没有输入引脚需要这样的额外保护,因为这样的外部电压保护需要使用非常讲究的印刷电路板,并且往电路板上安装这些元件也需要一些制造成本,对于只采用无源元件的设计来说,这个安装成本是不能忽略的。
图3
图4
图5 图6
图7给出了另外一种保护方法,它有两种作用:一是电容和电阻构成一个低通滤波器,用来减小输入信号的尖脉冲,而低频信号能够通过;二是低通滤波器还有静电保护的功能。
下面讨论这种设计,如果是理想电容器,1个0.1 μF的电容串联一个22 kΩ电阻就能够提供静电保护。但是实际器件是不会工作在理想状态下的,在电路中,有等效串联电阻和等效串联电感存在,如图8所示。
图7
图8
电容生产商通常会给出图表,用来描述他们生产的电容器的典型ESR(等效串联电阻)和ESL(等效串联电感),方便设计者建立适当的电路模型,分析电路的工作原理。但是建立这样的模型还是很困难,因为电路模型中有些器件的参数是不好确定的。解决这一困难的方法只有通过实验去验证,这要增加试验设备的成本。
电路中的防静电保护装置还有瞬态电压抑制器TVS(Transient Voltage Suppressor),它是一种二极管形式的高效能保护器件。当TVS二极管的两极受到反向瞬态高能量冲击时,它能以10-12秒量级的速度,将其两极间的高阻抗变为低阻抗,吸收高达数kW的浪涌功率,使两极间的电压箝位于一个预定值,有效地保护电子线路中的精密元器件,免受各种浪涌脉冲的损坏。由于它具有响应时间快、瞬态功率大、漏电流低、击穿电压偏差小、箝位电压较易控制、无损坏极限、体积小等优点,已广泛应用于计算机、数码相机等精密电子设备的保护电路中。如图9所示,是一个在实践中被很好保护的输入引脚,其中L1是电感线圈,用来减少射频干扰。
图9所示电路对于大多数设计来说显得过分复杂,但如果不使用光电隔离器件,对于精密的设计或者条件要求严格的设计来说,图9所示电路是最好的。在这样的设计中,元件价格和电路板元件位置的排列也是要考虑的要素。
由于在制造金属膜电阻时,金属线中插入了一些绝缘层来改变金属线的几何结构以达到一个准确的电阻值,而这使得静电容易从绝缘面渗入金属层。使用这种类型电阻构成的电路有两种后果:第一,当有静电电压时,实际有效电阻值会比其标称值小;第二,容易形成电离通道,改变电阻的实际值。表面贴片电阻有另外一个问题,那就是当有静电电压时,它们与金属层的焊接点会形成发热点,这是由于金属表面不均匀的电流密度引起的。这样会造成贴片电阻被静电电流烧毁,在电路中选用电阻时,普通的炭膜电阻是最好的选择。
图9光电隔离器件也可以用于数字输入引脚静电保护和防干扰,它们可以用来隔离几kV的电压,而输入设备必须提供比CMOS门电路需要的电流大1000倍的输入电流给光电隔离器件。光电隔离器件转换速度比较慢,并且在设计中还要考虑如何保护光电隔离器件中的LED不受静电的破坏,设计中,要根据设计的需要进行合适的选择。
结语 输入接口设计是嵌入式控制器系统的关键部分,因为嵌入式控制器外部数据的接收,外部设备状态的反馈都要通过接口才能交给处理器。设计输入端口时主要考虑两个方面的实际情况:一是负载能力,即输入信号能否被控制器接收,二是静电的防护,现在很多处理器采用CMOS工艺封装,这能够满足低功耗的要求,同时对静电防护要求更高。