《嵌入式系统原理与接口技术》——嵌入式系统接口应用基础
本文为我负责编写的电子工业出版社出版的《嵌入式系统原理与接口技术》一书第七章部分,这里整理的仍然是修改稿,供需要的同学参考,本书为普通高等教育“十二五”规划教材,电子信息科学与工程专业规划教材,如果你对本书的内容感兴趣,可以通过各渠道购买。
由于博客排版比较麻烦,部分地方可能还有点混乱,后续的电子版整理可以关注本博客,也欢迎各位针对书中内容提出建议或意见。
第7章 嵌入式系统接口应用基础
7.1嵌入式系统的接口类型
根据数据的通信形式,嵌入式系统接口可以分为串行数据传输接口和并行数据传输接口两种形式。串行数据传输接口又分为数字数据传输接口和模拟数据传输接口两种形式,即通过数据线上的信号形式来进行划分,目前使用的大多数串行数据传输接口均为数字式。串行数字数据传输接口又有单极性/双极性、差分/非差分、同步/异步、全双工/半双工、归零/非归零之分;模拟数据传输接口又有幅值键控ASK(Amplitude-Shift Keying)、频移键控FSK(Frequency-Shift Keying)、相移键控PSK(Phase-Shift Keying)之分。
单极性/双极性是指数据线传输数据时的电平情况,差分信号传输则需要两根数据线,两根数据线上的电平完全相反,当有外部干扰信号时,仍然能够通过两个电平完全相反的信号得到正确的数据,因此差分数据传输能够有效地抵制干扰,提高数据传输的距离。同步/异步是指收发双方是否需要同步时钟信号。全双工/半双工是针对接收与发送能否同时完成而言,能够同时收发的就是全双工形式,否则就是半双工形式。要实现全双工串行数据收发需要收发各一路信号,而半双工收发数据可以共用一路信号。归零是指每一位二进制信息传输后均返回到零电平。
根据以上介绍,很容易对常见的串行接口进行划分。如UART RS-232-C接口是双极性、非归零、全双工异步串行接口。I2C、JTAG、1-Wire接口是单极性、非归零、半双工串行接口。USB、1394、RS-485、CAN、EMAC等接口是非归零、差分串行接口。对更详细的分类感兴趣的读者可以自己归纳总结。
从实现的功能上接口类型还可以分为人机通信接口、工业板卡接口、现场总线接口等多种形式。常见的嵌入式接口及其类型划分如图7-1所示。
7.2嵌入式系统的电平匹配
由于外部设备种类丰富,当外部设备与微处理器之间通过接口进行连接时往往存在接口类型匹配、电平匹配、通信速度匹配、数据格式匹配等一系列匹配问题。一项不匹配都有可能导致通信无法进行或者造成通信错误。因此本节主要介绍与嵌入式接口应用最基础的电平匹配问题。
7.2.1 电平匹配概述
在混合电压系统中,不同电源电压的逻辑器件相互连接时会存在三个主要问题:第一是加到输入和输出引脚上的最大允许电压的限制问题;第二是两个电源之间的电流互串问题;第三是必须满足输入转换门限电平的问题。这些问题都是在嵌入式系统接口设计中需要首先考虑的问题。
1.电平类型及主要参数
电平是指能够被识别成一定逻辑信号的一个电压范围,在外部设备与嵌入式微处理器的接口应用中,涉及的电平可能有很多种,因此电平匹配问题是嵌入式系统应用中芯片之间能够相互连接、协同工作的基础。电平匹配问题在嵌入式系统设计中非常常见,随着低电压器件的增多,在嵌入式系统中往往存在着很多不同工作电压的器件,如嵌入式微处理器的工作电压为3.3V,而AD、DA、液晶屏等外部器件工作电压为5V,工作电压不同,相应的接口往往具有不同的逻辑电平,这时就需要考虑之前所提到的三个问题。
常用的逻辑电平有TTL、CMOS、LVTTL、LVCMOS、CML、ECL、PECL、LVPECL、 LVDS、GTL、RS-232、RS-422等多种,其中TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列、3.3V系列,2.5V系列和1.8V系列。5V TTL和5V CMOS逻辑电平是通用的逻辑电平。ECL/PECL/LVPECL、CML和LVDS是差分输入输出。RS-422/485和RS-232是串口的接口标准,RS-422/485是差分输入输出,RS-232是单端输入输出。
在逻辑电平的匹配问题中的主要参数如下:
(1)输入高电平(Vih): 保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平:
(2)输入低电平(Vil):保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平:
(3)输出高电平(Voh):保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh:
(4)输出低电平(Vol):保证逻辑门的输出为低电平时的输出电平的最大值,逻辑门的输出为低电平时的电平值都必须小于此Vol:
(5)阀值电平(Vt):数字电路芯片都存在一个阈值电平,就是电路刚刚勉强能翻转动作时的电平。它是一个界于Vil、Vih之间的电压值,对于CMOS电路的阈值电平,基本上是二分之一的电源电压值,但要保证稳定的输出,则必须要求输入高电平>Vih,输入低电平<Vil,而如果输入电平在阈值上下,也就是在Vil~Vih这个区域,电路的输出会处于不稳定状态。
对于一般的逻辑电平,以上参数的关系如下:Voh > Vih > Vt > Vil > Vol。表7-1给出了常用电平的主要参数,因此在涉及电平匹配的应用设计中最主要的就是要考虑以上的相关参数,这是电平能否被识别的基础。当然不同类型的电平还具有各自的特点,这将在下面进行分别介绍。
2.TTL电平与CMOS电平
在选用74系列芯片时,经常出现同一种类型的芯片有多种型号的情况,如74HC595、74LS595、74LVC595、74HCT595等多种,这些芯片的功能往往是相同的,不同的是具体性能的差别,如功耗、速度、驱动能力等,因此这里不得不提到最常见的两种电平TTL与CMOS的区别。在常用的芯片中绝大多数都是采用这两种类型的电平,74系列的芯片是一个典型的代表。在嵌入式微控制器中,其I/O口根据设计的不同,同一芯片中可能同时存在这两种形式的电平。
TTL(Transistor-Transistor Logic)全名是晶体管-晶体管逻辑电路,是一种电流型驱动器件,主要有54/74系列标准TTL、高速型TTL(H-TTL)、低功耗型TTL(L-TTL)、肖特基型TTL(S-TTL)、低功耗肖特基型TTL(LS-TTL)五个系列。对于大部分采用5V电源供电的TTL电平器件来说,根据以上介绍的主要参数,输出高电平Voh≥2.4V,输出低电平Vol≤0.4V,输入高电平Vih≥2.0V,输入低电平Vil≤0.8V。
CMOS(Complementary Metal Oxide Semiconductor),互补金属氧化物半导体,是一种电压型驱动器件,逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。输出高电平Voh≥4.45V;输出低电平Vol≤0.5V;输入高电平Vih≥3.5V;输入低电平Vil≤1.5V。
TTL与CMOS的主要区别:
(1)TTL电路是电流控制器件,而CMOS电路是电压控制器件。
(2)TTL电路的速度快,传输延迟时间短(5~10ns),但功耗大。
(3)CMOS电路的速度慢,传输延迟时间长(25~50ns),但功耗低。
(4)CMOS相对TTL有了更大的噪声容限,输入阻抗远大于TTL输入阻抗。
3.TTL与CMOS芯片的使用
在同样5V电源电压情况下,CMOS电路可以直接驱动TTL,因为CMOS的输出高电平大于2.0V,输出低电平小于0.8V;而TTL电路则不能直接驱动 CMOS电路,TTL的输出高电平为大于2.4V,如果落在2.4~3.5V之间,则CMOS电路就不能检测到高电平,低电平小于0.4V满足要求,所以在TTL电路驱动CMOS电路时需要加上拉电阻。如果出现不同电压电源的情况,也可以通过上面的方法进行判断。
如果电路中出现3.3V的CMOS电路去驱动5V CMOS电路的情况,如3.3V单片机去驱动74HC,这种情况有以下几种方法解决,最简单的就是直接将74HC换成74HCT(74系列的输入输出在下面有介绍)的芯片,因为3.3V CMOS 可以直接驱动5V的TTL电路;或者加电压转换芯片;还有就是把单片机的I/O口设为开漏,然后加上拉电阻到5V,这种情况下得根据实际情况调整电阻的大小,以保证信号的上升沿时间。
CMOS电路的使用有以下几点需要注意:
(1)CMOS电路是电压控制器件,它的输入总阻抗很大,对干扰信号的捕捉能力很强。所以,不用的引脚不要悬空,要接上拉电阻或者下拉电阻,给它一个恒定的电平。
(2)输入端接低内阻的信号源时,要在输入端和信号源之间串联限流电阻,使输入的电流限制在1mA之内。
(3)当接长信号传输线时,在CMOS电路端接匹配电阻。
(4)当输入端接大电容时,应该在输入端和电容之间接保护电阻。电阻值为R=V0/1mA,V0是外界电容上的电压。
(5)CMOS的输入电流超过1mA,就有可能烧坏CMOS。
74系列集成电路大致可分为6大类:
(1)74××(标准型);
(2)74LS××(低功耗肖特基型);
(3)74S××(肖特基型);
(4)74ALS××(先进低功耗肖特基型);
(5)74AS××(先进肖特基型);
(6)74F××(高速)。
近年来还出现了高速CMOS电路的74系列,该系列可分为3大类:
(1)HC为CMOS工作电平。
(2)HCT为TTL工作电平,可与74LS系列互换使用。
(3)HCU适用于无缓冲级的CMOS电路。
不同的74系列产品,只要后边的标号相同,其逻辑功能和引脚排列就相同。根据不同的条件和要求可选择不同类型的74系列产品,比如电路的供电电压为3V就应选择74HC系列的产品,常用的集中类型的典型参数如表7-2所示。
7.2.2 接口相关电路及概念
1.集电极开路输出
在电路中常会遇到漏极开路(Open Drain)和集电极开路(Open Collector)两种情形。漏极开路电路概念中提到的“漏”是指 MOSFET的漏极。同理,集电极开路电路中的“集”就是指三极管的集电极。在数字电路中,分别简称OD门和OC门。
典型的集电极开路电路如图7-2所示。电路中右侧的三极管集电极什么都不接,所以叫做集电极开路,左侧的三极管用于反相作用,即左侧输入“0”时左侧三极管截止,VCC通过电阻加到右侧三极管基极,右侧三极管导通,右侧输出端连接到地,输出“0”。
加上上拉电阻。因此集电极开路输出可以用做电平转换,通过上拉电阻上拉至不同的电压,来实现不同的电平转换。
集电极开路输出还常用做驱动器。由于OC门电路的输出管的集电极悬空,使用时需外接一个上拉电阻Rp到电源VCC。OC门使用上拉电阻以输出高电平,此外为了加大输出引脚的驱动能力,上拉电阻阻值的选择原则,从降低功耗及芯片的灌电流能力考虑应当足够大;从确保足够的驱动电流考虑应当足够小。
将OC门输出连在一起时,再通过一个电阻接外电源,可以实现“线与”逻辑关系。只要电阻的阻值和外电源电压的数值选择得当,就能做到既保证输出的高、低电平符合要求,而且输出三极管的负载电流又不至于过大。
集电极开路输出除了可以实现多门的线与逻辑关系外,通过使用大功率的三极管还可用于直接驱动较大电流的负载,如继电器、脉冲变压器、指示灯等。
2.漏极开路输出
和集电极开路一样,顾名思义,开漏电路就是指从MOSFET的漏极输出的电路。典型的用法是在漏极外部的电路添加上拉电阻到电源如图7-3所示。完整的开漏电路应由开漏器件和开漏上拉电阻组成。这里的上拉电阻R的阻值决定了逻辑电平转换的上升/下降沿的速度。阻值越大,速度越低,功耗越小。因此在选择上拉电阻时要兼顾功耗和速度。标准的开漏脚一般只有输出的能力。添加其他的判断电路,才能具备双向输入、输出的能力。
很多单片机等器件的I/O就是漏极开路形式,或者可以配置成漏极开路输出形式,如51单片机的P0口就为漏极开路输出。在实际应用中可以将多个开漏输出的引脚连接到一条线上,这样就形成“线与逻辑”关系。注意这个公共点必须接一个上拉电阻。当这些引脚的任一路变为逻辑0后,开漏线上的逻辑就为0了。在I2C等接口总线中就用此法判断总线占用状态。
同集电极开路一样,利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经上拉电阻,再经MOSFET到GND。IC内部仅需很小的栅极驱动电流,因此漏极开路也常用于驱动电路中。
3.推挽输出
在功率放大器电路中经常采用推挽放大器电路,这种电路中用两只三极管构成一级放大器电路,如图7-4所示。两只三极管分别放大输入信号的正半周和负半周,即用一只三极管放大信号的正半周,用另一只三极管放大信号的负半周,两只三极管输出的半周信号在放大器负载上合并后得到一个完整周期的输出信号。
推挽放大器电路中,一只三极管工作在导通、放大状态时,另一只三极管处于截止状态,当输入信号变化到另一个半周后,原先导通、放大的三极管进入截止,而原先截止的三极管进入导通、放大状态,两只三极管在不断地交替导通放大和截止变化,所以称为推挽放大器。输出既可以向负载灌电流,也可以从负载抽取电流。
4.上拉电阻与下拉电阻
在嵌入式接口的相关应用中经常提到上拉电阻与下拉电阻。顾名思义,上拉电阻就是把端口连接到电源的电阻,下拉电阻就是把端口连接到地的电阻。虽然电路形式非常简单,然而上拉电阻与下拉电阻在很多场合却发挥着非常重要的作用。
简单地说,上拉电阻的主要作用在于提高输出信号的驱动能力、确定输入信号的电平(防止干扰)等,具体的表现为:
(1)当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
(2)OC门电路必须加上拉电阻,以提高输出的高电平值。
(3)为加大输出引脚的驱动能力,有的单片机引脚上也常使用上拉电阻。
(4)在CMOS芯片上,为了防止静电造成损坏,不用的引脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
(5)芯片的引脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
(6)提高总线的抗电磁干扰能力。引脚悬空就比较容易接受外界的电磁干扰。
(7)长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效抑制反射波干扰。
上拉电阻阻值的选择原则包括:
(1)从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
(2)从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
(3)对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1~10KW之间选取。对下拉电阻也有类似道理。
5.嵌入式微控制器的I/O配置
上面介绍了嵌入式系统接口设计中相关的接口电路和概念,嵌入式微控制器的I/O是在嵌入式系统设计中最常用到的接口,很多微控制器的I/O口可以进行灵活配置,以本书介绍的STM32F10x为例,STM32F10x的I/O可以配置成如表7-3所示的八种模式。因此在I/O的应用中更为灵活。
STM32F10x端口位的基本结构和应用在第6章中已经做了详细的介绍,很多微控制器的端口和STM32类似,需要在不同的应用情形下,根据开漏输出和推挽输出的特点,灵活地配置工作模式。
7.2.3 电平匹配的电路设计
电平匹配电路的设计需要根据实际应用灵活选择,在本节以常用的3.3V和5V的电平匹配为例,来讲解不同应用环境下电平匹配电路的设计。
1.直接连接
虽然电平不同,但是能够直接连接就再好不过,能够直接连接需要满足以下几种情形。
(1)3.3V输出连接5V器件。
① 3.3V输出的Voh大于5V输入的Vih;
② 3.3V输出的Vol小于5V输入的Vil。
通过表7-1中常用电平的参数可知,能够使用这种方法的例子之一是将 3.3V LVCMOS输出连接到5V TTL输入。
(2)5V器件输出连接3.3V器件。
通过表7-1中常用电平的参数可知通常5V输出的Voh为4.7V,Vol为0.5V;而通常3.3V LVCMOS和LVTTL输入的Vih为2V左右,Vil为0.8V左右。因此当5V输出驱动为低电平时,电路连接不会有问题,而当5V输出为高电平时,4.7V的Voh大于2.1V的Vih,所以,我们可以直接把两个引脚相连,不会有冲突,但是很重要的一个前提是芯片I/O能够容忍5V的电压,对于本书所介绍的STM32来说部分I/O是容忍5V的,因此在很多应用中可以直接连接。
2.使用MOSFET或者三极管转换
如果5V输入的Vih比3.3V CMOS器件的Voh要高,则驱动任何这样的5V输入就需要额外的电路。图7-5所示为低成本的双元件解决方案。在选择R1的阻值时,需要考虑两个参数,即:输入的开关速度和R1上的电流消耗。当把输入从0切换到1时,需要计入因R1形成的RC时间常数而导致的输入上升时间、5V输入的输入容抗,以及电路板上任何的杂散电容。输入开关速度可通过下式计算:
由于输入容抗和电路板上的杂散电容是固定的,提高输入开关速度的唯一途径是降低R1的阻值。而降低R1阻值以获取更短的开关时间,却是以增大5V输入为低电平时的电流消耗为代价的。通常,切换到0要比切换到1的速度快得多,因为N沟道MOSFET的导通电阻要远小于R1。另外,在选择N沟道MOSFET时,所选MOSFET的VGS应低于3.3V输出的Voh。
使用三极管也可以完成同样的功能,由于三极管为电流型驱动,因此需要在输入端加入限流电阻,其他电路结构与MOSFET一致,一样需要考虑电平转换速度的问题。在STM32的应用中,针对这种情况,还可以把I/O设置为开漏输出,然后在片外使用电阻上拉到5V,其原理和上面介绍的一致,只不过用的是内部的MOSFET结构。
图7-5 使用MOSFET的电平转换电路
3.使用电阻分压
既然是分压,针对的当然就是高电压输出到低电压的情形。通常,输出端源电阻RS非常小(小于10W),如果选择的R1远大于RS,那么可以忽略RS对R1的影响。在接收端,负载电阻RL非常大(大于500kW),如果选择的R2远小于RL,那么可以忽略RL对R2的影响。电路图如图7-6所示。
在功耗和瞬态时间之间存在取舍权衡。为了使接口电流的功耗需求最小,串联电阻R1和R2应尽可能大。但是,负载电容(由杂散电容CS和3.3V器件的输入电容CL合成)可能会对输入信号的上升和下降时间产生不利影响。如果R1和R2过大,上升和下降时间可能会过长而无法接受。如果忽略RS和RL的影响,代入电压值,R1和R2的值由下面的公式确定。普通应用中可以根据经验取值,在对引脚时间要求比较严格的应用中还必须计算电平的上升与下降时间。
4.使用二极管补偿
从表7-1可以看出,5V CMOS输入的高、低输入电压阈值均比3.3V输出的阈值高约1伏。因此,即使来自3.3V系统的输出能够被补偿,留给噪声或元件容差的余地也很小或没有。我们需要的是能够补偿输出并加大高低输出电压差的电路。
设计一个二极管补偿电路(见图7-7),二极管D1的正向电压(典型值0.7V)将会使输出低电压上升,在5V CMOS输入得到1.1~1.2V的低电压。它安全地处于5V CMOS输入的低输入电压阈值之下。输出高电压由上拉电阻和连至3.3V电源的二极管D2确定。这使得输出高电压大约比3.3V电源高0.7V,也就是4.0~4.1V,很安全地在5V CMOS 输入阈值(3.5V)之上。
为了使电路工作正常,上拉电阻必须显著小于5V CMOS输入的输入电阻,从而避免由于输入端电阻分压器效应而导致的输出电压下降。上拉电阻还必须足够大,从而确保加载在3.3V输出上的电流在器件规范之内。
5.电压钳位连接
很多厂商都使用钳位二极管来保护器件的I/O引脚,防止引脚上的电压超过最大允许电压规范。钳位二极管使引脚上的电压不会低于Vss 超过一个二极管压降,也不会高于VDD超过一个二极管压降。要使用钳位二极管来保护输入,仍然要关注流经钳位二极管的电流。流经钳位二极管的电流应该始终比较小(在微安数量级上)。如果流经钳位二极管的电流过大,就存在部件闭锁的危险。由于5V输出的源电阻通常在10W左右,因此仍需串联一个电阻,限制流经钳位二极管的电流,如图7-8所示,图中是利用芯片内部的钳位二极管,如果芯片I/O结构中不带有钳位二极管也可以在外部等效地添加钳位二极管。使用串联电阻的后果是降低了输入开关的速度。
使用二极管钳位有一个问题,即它将向3.3V电源注入电流。在具有高电流5V输出且轻载3.3V电源轨的设计中,这种电流注入可能会使3.3V电源电压超过3.3V。为了避免这个问题,可以用一个三极管来替代,三极管使过量的输出驱动电流流向地,而不是3.3V电源。设计的电路如图7-9所示。
Q1的基极-发射极结所起的作用与二极管钳位电路中的二极管相同。区别在于,发射极电流只有百分之几流出基极进入3.3V轨,绝大部分电流都流向集电极,再从集电极无害地流入地。基极电流与集电极电流之比,由晶体管的电流增益决定,通常为10~400V,取决于所使用的晶体管。
6.使用电压比较器
使用电压比较器也是非常直接的一种方案,缺点是每一路信号需要使用一路运放或者电压比较器,电路略微复杂。
比较器的基本工作原理如下:
(1)反相(-)输入电压大于同相(+)输入电压时,比较器输出切换到Vss。
(2)同相(+)输入端电压大于反相(-)输入电压时,比较器输出为高电平。
为了保持3.3V输出的极性,3.3V输出必须连接到比较器的同相输入端。比较器的反相输入连接到由R1和R2确定的参考电压处,如图7-10所示。
R1和R2之比取决于输入信号的逻辑电平。对于3.3V输出,反相电压应该置于VOL与VOH之间的中点电压。对于LVCMOS输出,中点电压为:
图7-10 使用电压比较器的电平转换电路
如果R2取值1K则R1取值1.8K。要使运算放大器在5V供电下正常工作,输出必须具有轨到轨驱动能力。
7.使用电平转换器件
虽然本节中介绍了多种使用分立器件的电平转换方法,但是如果针对过多的电平转换,无疑会增加电路设计的复杂程度,而且以上转换多数还是单方向电平转换,在各种参数上也受到诸多限制,在这种情况下使用多通道电平转换芯片则是最好的选择。
电平转换器的使用范围比较广泛:有单向和双向配置、不同的转换电压和速度,在实际使用中需要根据实际应用需求选择最佳的方案。器件之间的板级通信(例如,MCU至外设)往往通过SPI或I2C来进行,这是最常见的。对于SPI,使用单向电平转换器比较合适;对于I2C,就需要使用双向解决方案。常用的电平转换芯片有SN74ALVC164245等。
7.3嵌入式系统通信形式的匹配
不同的外部设备在同嵌入式微处理器相连接时,即使是同一类型的接口也往往存在着通信速度、数据格式、数据类型等一系列的问题,而嵌入式处理器在设计时为了适应不同的外部设备,其端口大多可以根据实际外部设备的需求而通过寄存器对接口的工作方式进行灵活配置,因此在进行嵌入式系统的接口应用方面的设计时,要根据连接的外设弄清楚接口的工作方式并清楚微处理器对应的接口配置。
通信速度匹配,不同功能的外设对通信速度有着不同的要求,在异步通信中具有不同通信速度的设备之间是无法通信的,如UART、485总线、CAN总线等。在能够正常进行通信的情况下,速度的选择也要视情况而定,例如高速AD,由于有着大数据量的模拟量采集,因此需要很高的通信速度来完成采集数据的传输,而像微型打印机之类的设备,通信的数据量则非常有限,因此针对不同的应用通信速度需要根据实际应用综合考虑。
数据格式匹配,数据位数是8位还是16位,在串行通信中,发送数据时高位在前还是低位在前,同步串行通信中采样时间是在时钟信号上升沿还是下降沿,这些都是在通信中可能遇到的格式问题。在绝大多数微控制器中都可以通过配置寄存器的方式对这些进行灵活配置,微控制器与外部设备连接时一定要弄清楚外部设备接口详细的数据格式,并做出针对性的配置。
7.4嵌入式系统的电气隔离
7.4.1 电气隔离概述
1.电气隔离的必要性
电气隔离的主要目的是通过隔离元器件把噪声干扰的路径切断,从而达到抑制干扰保护电路不受危险电压和电路危害的效果,使电子电气设备符合电磁兼容性的要求,同时提升设备的可靠性。由于有的嵌入式系统需要工作在环境较为恶劣的环境中,可能受到电网谐波、雷击浪涌、高频干扰、电磁干扰等各种形式的干扰,因此,在嵌入式系统的设计过程中需要设计各种抗干扰措施,而电气隔离是最重要,也是普遍需要的一种抗干扰方式。
将嵌入式系统或者嵌入式系统的主要控制电路与供电电源、大功率设备、主要通信接口等进行电气隔离,可以有效保证嵌入式系统稳定运行。例如嵌入式系统通过隔离电源,即与供电电源隔离就可以避免供电电源中的谐波、脉冲等干扰,如果嵌入式控制器控制一些大功率设备,则可以将两者电源和控制信号分别进行隔离,这样可以避免大功率设备运行过程中造成电压波动、产生干扰等对微控制器造成影响。
2.需要电气隔离的场合
采用隔离技术的场合主要有两种:一种是在有可能存在损坏设备或危害人员的应用中进行电气隔离,如医疗上的应用、电动机控制、总线隔离等方面。第二种情况是:必须避免存在不同电位和分裂的接地回路的互联。两种情况都是采用隔离来避免电流流过,而允许两点之间有数据或者功率传送。
在许多嵌入式系统的应用中,经常需要数据链路之间进行非直接的导电连接,从而避免来自系统某一部分的危险电压(或电流)对其他部分造成破坏,或者避免系统中某一部分电路损坏时连带对其他电路造成影响和破坏,从而使整个系统瘫痪。造成这种破坏的原因可能是电源供电故障、接地故障、雷击和浪涌等情况。
此外,在通信节点的通信系统中,不同的节点可能位于不同的区域,并采用独立的供电系统,这些区域之间的电位差(可能含有DC偏压、AC谐波和各种瞬态噪声等)也有可能造成破坏。在实际工程应用中,还有可能发生通信电缆损坏以及人为的一些错误等,使通信线路出现重大错误,如果各通信节点没有和通信线路之间进行隔离则有可能出现通信节点的损坏,因此在嵌入式系统的工业应用中,需要和多个节点进行通信的通信接口一般是需要进行电气隔离的。
3.电气隔离的类型
根据隔离的信号类型不同,电路隔离主要有:模拟电路的隔离、数字电路的隔离、数字电路与模拟电路之间的隔离。所使用的隔离方法有:变压器隔离法、脉冲变压器隔离法、继电器隔离法、光电耦合器隔离法、直流电压隔离法、线性隔离放大器隔离法、光纤隔离法、A/D转换器隔离法等多种,本节将介绍在嵌入式系统中应用最为广泛的几种隔离方法。
7.4.2 供电系统的隔离
1.交流供电系统的隔离
由于交流电网中存在着大量的谐波,雷击浪涌,高频干扰等噪声,所以对由交流电源供电的控制装置和电子电气设备,都应采取抑制来自交流电源干扰的措施。采用电源隔离变压器,可以有效地抑制窜入交流电源中的噪声干扰。但是,普通变压器却不能完全起到抗干扰的作用,这是因为,虽然一次绕组和二次绕组之间是绝缘的,能够阻止一次侧的噪声电压、电流直接传输到二次侧,有隔离作用。然而,由于分布电容(绕组与铁芯之间,绕组之间,层匝之间和引线之间)的存在,交流电网中的噪声会通过分布电容耦合到二次侧。为了抑制噪声,必须在绕组间加屏蔽层,这样就能有效地抑制噪声,消除干扰,提高设备的电磁兼容性。随着技术的进步,国外已研制成功了专门抑制噪声的隔离变压器(Noise Cutout Transformer,简称NCT),这是一种绕组和变压器整体都有屏蔽层的多层屏蔽变压器。这类变压器的结构,铁芯材料,形状及其线圈位置都比较特殊,它可以切断高频噪声漏磁通和绕组的交链,从而使差模噪声不易感应到二次侧,故这种变压器既能切断共模噪声电压,又能切断差模噪声电压,是比较理想的隔离变压器。
由于在嵌入式系统的应用中,主要的控制电路部分都采用直流电源,因此在普通的应用中交流供电的隔离只需要普通的变压器即可,在有特殊需求的系统中需要额外考虑。
2.直流供电系统的隔离
当控制装置和电子电气设备的内部子系统之间需要相互隔离时,它们各自的直流供电电源间也应该相互隔离,其隔离方式如下:第一种是在交流侧使用隔离变压器;第二种是使用DC/DC隔离变换器。
使用隔离变压器的设计示意电路如图7-11所示。此种方式适用于系统使用交流供电的场合,需要进行隔离的电路通过不同的变压器与交流电源连接,每个电路有自己独立的整流、变压等电路。这种方式的缺点是普通变压器体积较大,同时会增加电路的设计成本,而且只适用于系统采用交流供电的场合。
图7-11 使用变压器进行的直流供电系统隔离
DC/DC隔离变换器具有体积小,使用灵活等优点,在嵌入式系统中有非常广泛的应用,目前很多公司都推出了不同功率和隔离级别的DC/DC 隔离变换器,可以适合各种场合的应用。如图7-12所示,为MORNSUN PWE_D-6W & PWF_D-6W系列DC/DC隔离电源模块,该系列模块产品特点如下:
(1)效率高达84%;
(2)工作温度:-40~+85℃;
(3)隔离电压3000VDC;
(4)输出短路保护(自恢复);
(5)内部贴片化设计;
(6)国际标准引脚方式;
(7)MTBF>1 000 000 h;
(8)符合RoHS指令;
(9)高低温特性好,满足工业级产品技术要求。
图7-12 DC/DC电源模块
7.4.3 数字信号的隔离
数字隔离技术常用于工业网络环境的现场总线、军用电子系统和航空航天电子设备中,尤其是一些应用环境比较恶劣的场合。数字隔离电路主要用于数字信号和开关量信号的传输。数字隔离器件的生产商很多,如安华高的HCPL系列、TI的ISO72XX系列、ADI的ADuM12/14XX系列、NVE的ILXX系列、芯科实验室的SI84XX等公司,各厂商的产品都得到了广泛应用。依照数字式隔离电路的生产工艺、电气结构和传输原理,数字隔离电路主要分为光电隔离、电磁隔离及电容隔离技术的数字隔离器件。
在进行数字信号的隔离时应该从以下三个方面综合考虑:
(1)通信速度:不同的隔离方式有不同的通信速度限制,由于不同的数字接口可能有较大的速度差异,而较快通信速度的通信接口隔离成本也较高,因此应该根据实际的应用需求选择合适的隔离方式。
(2)功耗限制:不同的隔离方式功耗差别较大,比如光电隔离,由于是使用LED发光的方式传递信号,因此相应的功率较大,在数字信号路数较多时应当考虑相应的功耗问题。
(3)电路设计复杂程度:有的隔离期间需要通过一些外部电路的配合才能够实现隔离信号的传递,如果单路信号的隔离电路较为复杂,那么在数字信号路数过多时就会增加电路设计的复杂程度。
下面就结合上面所介绍的几个方面分别介绍一下几种常见隔离方式的工作原理以及应用电路。
1.光电隔离
光电隔离器(Optoelectronic Isolator,简称OC)也称光电耦合器、光耦合器,简称光耦。光耦合技术是在透明绝缘隔离层(例如空气间隙)上的光传输,完成了电—光—电的转换,从而起到输入、输出隔离的作用。是应用最为广泛的隔离方式。
光耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。
光耦合器的主要优点是:信号单向传输,输入端与输出端完全实现了电气隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。光耦合器是20世纪70年代发展起来的新型器件,现已广泛用于电气绝缘、电平转换、级间耦合、驱动电路、开关电路、斩波器、多谐振荡器、信号隔离、级间隔离、脉冲放大电路、数字仪表、远距离信号传输、脉冲放大、固态继电器(SSR)、仪器仪表、通信设备及微机接口中。在单片开关电源中,利用线性光耦合器可构成光耦反馈电路,通过调节控制端电流来改变占空比,达到精密稳压目的。
最为常用的光电隔离电路如图7-13所示,应用最为普遍的光电耦合器如东芝TLP521等都可以使用此电路,电路的输入端使用一个限流电阻,输出端使用一个分压电阻,当左侧输入端输出高电平点亮LED,右侧接收到光信号后电阻变小,输出端输出低电平,否则输出高电平,如果要使输入输出端电平状态一致,可以将左侧改为灌电流输入的方式或者将右侧分压电阻接地连接。此电路还可以用于电平的转换,LED发射端通过限流电阻的配合可以承受比较宽的电压范围,因此可以实现不同的工作电压电平转换,这种形式经常应用于一些开关量控制或读取的电路中。
由于很多功率驱动电路经常需要进行电气隔离,因此将驱动电路与光电耦合器结合就成为具备功率驱动功能的光耦,如东芝公司的TLP250,其内部结构所图7-14如示。光耦采用8脚DIP封装,有一个光耦和一个推挽输出电路组成,最大可以输出1.5A电路,可以直接驱动IGBT、MOSFET等功率器件,极大方便了电路的设计,类似的产品还有安捷伦公司的HCPL-3120具备最大2.5A的输出电流。
普通的光电耦合器由于完成光电转换需要一定的时间,只适合在通信速率要求不高的情况下使用,如上文介绍的TLP521,在串口应用中9600以下的波特率还能够正常工作,再高的波特率就无法使用,因此在需要对高速信号进行隔离的场合需要使用针对高速隔离设计的高速光耦,6N137光耦合器是最常见的用于单通道隔离的高速光耦合器,其内部由一个850 nm波长AlGaAs LED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。具有温度、电流和电压补偿功能,高的输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd),5mA的极小输入电流,转换速率高达10Mbps非常适合用于各种高速通信接口等高速数字信号的隔离。与6N137类似的还有HCPL-2601/2611,双通道的HCPL-2630/2631等。其封装及内部结构如图7-15所示。
由于光电耦合隔离本身的一些特点,它还存在几个比较严重的缺点,同本节前面介绍的进行隔离设计所需要考虑的几个问题,光电隔离技术的缺点有:
(1)功耗大,由于需要LED进行信号的传输与转换,LED发射端需要约10mA的电流,路数较多时功耗大的缺点尤为明显。
(2)电路设计复杂,以电路结构较为简单的TLP521为例,进行一路信号的隔离就需要使用一个DIP4封装的芯片和两个电阻,在进行多路信号的隔离时会使电路设计、PCB布线更为复杂。
(3)通信速度受限,难以通信速率更高的应用。
(4)LED老化等影响隔离器件的使用寿命。
然而,由于光电隔离具有成本低、使用灵活等优势,在嵌入式系统的设计中有广泛的应用,很多情况下仍然是首选的隔离方式。
2.电磁隔离
与光耦合一样,电感耦合也有较长的应用历史,但通常仅用于电源或模拟隔离器,而非数字器件。电感耦合使用不断变化的磁场来通过隔离层实现通信。变压器是一个最常见的例子:初级绕组及次级绕组的结构(单位长度的圈数)、磁芯介电常数及电流强度决定了磁场强度。电感耦合的优势之一是可以在不明显降低差模信号的情况下最小化变压器的共模噪声。另一个优势是信号能量的转换效率极高,因而可以实现低功耗隔离器。
电感耦合的缺点之一是易受外部磁场(噪声)的干扰。在马达控制等工业应用在磁场环境中通常需要隔离。电感耦合另一个值得关注的问题是数字数据与数据游程长度(Data Run-length)(连续“1”或“0”的数目)的传输。初级绕组与次级绕组之间的耦合能够以可接受的衰减量传递一定频率范围的信号。数据游程长度的限制或时钟编码要求信号必须保持在变压器的可用带宽范围内。用电感耦合技术的通用数字隔离器要求信号处理随同传输低频率信号(1或0长字符)的方法共同对数字信号进行传输和重新构建。ADI(美国模拟器件公司)推出的iCoupler就使用了编码功能,并提供了支持从DC到100Mbps运行范围的数字隔离解决方案。
ADuM磁隔离是对ADI推出的ADuM、ADM系列数字隔离芯片的统称,是目前应用最为广泛的电磁隔离系列产品。ADuM磁隔离芯片采用ADI专利的iCoupler技术,即芯片级变压器隔离技术,来实现数字信号的隔离传输。
如图7-16所示,对于输入ADuM磁隔离芯片的数字信号,会先经过一个施密特触发器进行脉冲信号调整,使输入的波形为标准的矩形波。然后经过编码电路,以边沿触发的形式,将上升沿编码成一个1ns宽的脉冲;而将下降沿编码成两个1ns宽的脉冲。经变压器耦合,然后经过解码电路以相同的原理将信号还原,再经过施密特触发器进行脉冲信号调整后,将信号输出。
图7-16 ADuM磁隔离内部结构
此外,ADuM磁隔离芯片还独具直流较正功能,如果输入端逻辑电平超过2mS都没有任何变化,则校正电路会产生一个适当极性的校正脉冲,以确保变压器直流端输出信号的正确性,如果解码器一端超过5mS都没有收到任何校正脉冲,则会认为输入端已经掉电或不工作,由看门狗电定时器电路,将输出端强行置为固定状态。这对低速率信号或直流信号具有很重要的意义。
电磁耦合的主要缺点是对外部磁场(噪声)的磁化和受外部磁场干扰,那么ADuM系列在这方面的性能如何呢?iCoupler器件受外部磁场的影响较小,因为变压器的尺寸极小,其直径大约只有0.3mm。例如我们将一个频率为1MHz的电流置于距离iCoupler变压器5mm远处,要想破坏iCoupler的性能,其电流必须达到500A。这是一个频率较高,强度较大的磁场。尽管采用iCoupler器件的系统中包含了发电动机、电动机和其他涉及到强磁场的设备,但是还没有任何一个客户的应用会达到甚至接近这么高的磁场,所以,iCoupler产品抗外部磁场干扰能力极强。
ADuM磁隔离芯片采用磁隔离技术,与光耦的光电转换有本质区别。不仅克服了光耦的体积大、老化、速率低、功耗高等缺点,部分型号还集成了RS-485、RS-232等通信功能。
(1)体积小:最多集成5通道隔离,可降低70%以上PCB面积。
iCoupler磁耦产品是用薄片加工技术制造的,因此,多隔离通道能够有效地与其他半导体功能结合起来,例如,图7-17显示了一个典型的使用光耦的多路隔离设备和iCoupler磁耦技术在尺寸和成本上的比较。在图中我们可以看到,iCoupler磁耦技术在整体上的好处是能够减少40%~60%的尺寸和成本。
(2)性能高:更高的速率、更快的传输时间,瞬态共模抑制达25kv/m。
因采用高速CMOS技术与芯片级变压器技术相结合,因此在速率、传输延迟时间、瞬态共模抑制等方面均有光耦无法比拟的优势,可整体提升产品性能10倍以上。
(3)低功耗:最低可达0.8mA/通道。
光耦因需要驱动发光二极管,所以一般需要较大的工作电流。而ADuM磁隔离芯片采用CMOS电路,功耗仅相当于光耦的1/10。
(4)简化电路:无须限流与上拉电阻。
所有的iCoupler磁耦产品都有标准的CMOS数字输入输出接口,因此,没有外部组成部分需要通过其他数字设备连接到磁耦。此外,iCoupler磁耦产品的性能在温度,电压和整个寿命中是极稳定的。因此磁耦能够被快速地被应用到任何设计中而不需要复杂联合的光耦。
ADuM系列芯片型号丰富,提供了非常丰富的型号,单向隔离器主要有单通道数字隔离ADuM1100/3100,双通道数字隔离ADuM120X/121X/220X/320X/321X,三通道数字隔离ADuM130X/131X/330X,四通道数字隔离ADuM140X/141X/240X/340X/344X以及五通道数字隔离ADuM1500等,同时还有双向双通道数字隔离器ADuM125X等型号。
ADuM系列还具有和收发器相结合的隔离型收发器系列,如隔离型RS-232收发器ADuM3251E等,隔离型RS-485/422收发器ADuM2490E等,以及一系列磁耦隔离电源,集成A/D转换器的隔离器件等产品。
3.电容隔离
电容耦合使用不断变化的电场来通过隔离层实现信息传输。电容器极板之间的材料是电介质绝缘体,即隔离层。电极板的大小、板间距离及电介质材料决定了电气特性。采用电容隔离层的优势是效率高,无论在体积、能量转换还是在抗磁场干扰方面均如此。这种高效特性使得实现低功耗及低成本的集成式隔离电路成为可能。抗干扰性则使得器件可以在饱和或密集磁场环境下工作。
与变压器不同的是,电容耦合的缺点在于无差分信号,并且噪声与信号共用同一条传输通道。这就要求信号频率应远高于可能出现的噪声频率,以便使隔离层电容对信号呈现低阻抗而对噪声呈现高阻抗。如同电感耦合一样,电容耦合也存在带宽限制,同样需要时钟编码数据。下面以较为常用的TI公司的ISO721电容隔离芯片来简要说明一下电容隔离的基本原理。ISO721的内部结构示意图如图7-18所示。
图7-18 ISO721内部结构
由于电容耦合存在带宽限制,因此该隔离器输入分为两个差分信号路径:一条为高数据速率通道(称作AC通道),另一条为低数据速率通道(称作DC通道)。AC通道传输介于100 kbps和100 Mbps之间的信号,而DC-通道则涵盖了从100 kbps到DC的范围。高速信号由AC通道来处理,信号在通道中首先从单端模式转换为差分模式,然后被隔离层的电容-电阻网络差分为许多瞬态。后面的比较器再将这些瞬态转换为差分脉冲,从而设置和重置一个“或非”门触发器。相当于原始输入信号的触发器输出反馈至判定逻辑(DCL)和输出多路复用器。DCL包括一个看门狗定时器,该定时器用于测量信号转换之间的持续时间。如果两个连续转换之间的持续时间超出定时窗口(如低频信号的情况下),DCL则指示输出多路复用器从AC通道切换到DC通道。
由于低频信号要求大容量电容器,而这种电容器使片上集成变得很困难,因此DC通道的输入要有脉宽调制器(PWM)。该调制器利用一个内部振荡器(OSC)的高频载波对低频输入信号进行调制。在AC通道中对调制后信号的处理过程与高频信号相同。然而,在向输出多路复用器提交该信号以前,需通过一个最终低通滤波器(LPF)滤除高频PWM载波,以恢复原始、低频输入信号。
相比其他隔离器技术,电容隔离器的一个主要优点是其DC通道在上电和信号丢失(LOS)事件期间隔离器输出端拥有正确的输入极性。缺少这些特性的其他隔离器技术通常会在上电期间出现输出突波,或者在信号丢失以前一直保持在最后一个输入极性。
电容隔离的另外一个优点是每个电容123毫微微法拉(123×10-15F)的超低容量,从而允许极高的数据速率传输并实现多通道隔离器的微电容几何尺寸。
隔离器电流消耗高度依赖于内部结构。相比双通道隔离器,电感型隔离器似乎具有最低的DC电源电流。这是因为该器件只包含2条信号通道。而电容隔离器包含4条通道:2条AC通道和2条DC通道。因此,其DC的电流消耗更高,而且其可靠性也更高,因为在输入信号丢失的情况下其可确保正确的输出极性。
以上介绍了三种常用的电气隔离技术,三种技术的典型器件对比如表7-4所示。
表7-4 三种电气隔离期间参数对比
模拟电路的隔离比较复杂,要考虑模拟信号的精度、线性度、频率响应、噪声响应等,特别要考虑系统对传输通道的精度要求,对精度要求越高,其通道的成本也可能越高。模拟电路的隔离主要采用变压器、互感器、直流电压隔离器、线性隔离放大器等隔离方法。
对于高频交流模拟信号,变压器是最常见的选择,然而对直流信号却无法使用,数字信号中常用的光耦隔离由于线性度较差无法直接用于模拟信号的隔离。
1.光电隔离
在数字信号的隔离中光耦器件的接收端处于开关状态,由于光耦的传输特性,普通的光耦具有较大的非线性,如果直接用来传输模拟量,其线性度无法满足系统的性能要求。因此使用光耦器件来进行模拟信号的隔离一般引入差分反馈电路来进行补偿,使光耦器件的非线性得到改善,因此可以使用普通的光耦通过外部电路的配合,构成差分反馈电路从而达到使用非线性光耦实现模拟信号线性隔离的目的,另一种就是选用专门针对模拟信号隔离的线性光耦。
线性光耦并不是说本身是线性的关系,它的隔离原理与普通光耦没有差别,只是将普通光耦的单发单收模式稍加改变,增加一个用于反馈的光接收电路用于反馈。这样,虽然两个光接收电路都是非线性的,但两个光接收电路的非线性特性相同,这样,就可以通过反馈通路的非线性来抵消直通通路的非线性,从而达到实现线性隔离的目的。市场上的线性光耦有几种可选择的芯片,如Agilent公司的HCNR200/201,TI子公司TOAS的TIL300,CLARE的LOC111等。这里以HCNR200/201为例介绍线性光耦的工作原理。
HCNR200/201是一种高线性度模拟光电耦合器,主要应用在低成本的模拟信号隔离、工业过程控制、电子反馈回路、监测电动机电源电压、医疗等领域。其内部结构图如图7-19所示,它由一个AlGaAs制作成的高性能发光二极管和两个结构相同的光电二极管组成。其中一个光电二极管(PD1)在隔离电路的输入部分,另一个光电二极管(PD2)构成隔离电路的输出部分。由于光耦的封装,使每一个光电二极管可从LED上接收大致相同数量的光线。
图7-19 HCNR2001201内部结构图
其中1、2引脚作为隔离信号的输入端,3、4引脚用于反馈,5、6引脚用于输出。1、2引脚之间的电流记作IF,3、4引脚之间和5、6引脚之间的电流分别记作IPD1和IPD2。输入信号经过电压-电流转化,电压的变化体现在电流IF上,IPD1、IPD2基本与IF成线性关系,线性系数分别记为K1和K2,K1与K2一般很小(HCNR200是0.50%),并且随温度变化较大(HCNR200的变化范围在0.25%~0.75%之间),但芯片的设计使得K1和K2相等。后面可以看到,在合理的外围电路设计中,真正影响输出/输入比值的是二者的比值K3,线性光耦正是利用这种特性才能达到满意的线性度。
如图7-20所示,运用HCNR200/201光耦实现了一个简单的隔离放大电路。该电路由HCNR200/201高精度线性光耦和几个电容、电阻元器件组成。下面结合图对这个电路进行简要的分析。
放大器与PD1组成的外部反馈电路可用来监控发光二极管(LED)发出的光,并且可以补充流过LED的电流,起到对LED的调节作用。使得LED输出的光信号更加稳定,当PD2接收到光信号后,可以再通过另一个运算放大器把接收到的电流信号转化为电压信号。另外由于光耦会产生一些高频的噪声,通常在R2处并联电容,构成低通滤波器,具体电容的值由输入频率及噪声频率确定。
首先单独来分析此电路中的前级运放如图7-21所示,设运放输出端的电压为Vi,输出端电压为Vo,则在运放不饱和的情况下有:
Voo为运放输入差模为0时的输出电压,运放增益为G,一般情况下比较大。
图7-21 前级运放电路分析
根据运放的虚断原理,忽略负端的输入电流,可以认为通过R1的电流与PD1相等,则根据R1的欧姆定律可得:
通过R3两端的电流IF为:
其中为光耦2脚电压,考虑到LED导通时电压降基本不变,因此这里可以作为常数对待,将两个表达式代入光耦PD1的线性系数表达式中可得:
对上式进行变形可得到:
将上式再次代入到电流IF的表达式中可得:
考虑到G特别大,近似可得:
因此可以得到输出电压与输入电压的关系如下:
K1与K2一般相差很小(HCNR200是0.50%)所以就可以近似得到:
由此可见,输出电压与输入电压显线性关系,通过两个线性度非常近似的光电二极管,其中一个构成反馈的形式,来弥补光电二极管线性度差的缺点。以上的推导都是假定所有的电路都工作在线性范围内,通过合理的选型可以使设计的隔离电路具有非常好的线性度。
HCNR200/201可以用于隔离模拟信号,具有良好的稳定性、线性度、频带宽和低成本等特性。HCNR200/201具有非常灵活的特性,可设计相应的应用电路,能够在许多不同的模式下进行操作,包括:单极/双极、AC/DC和反向/正向。HCNR200/201很好地解决了许多模拟隔离问题。
HCNR200/201产品特点有非线性度高,数值为0.01%;HCNR200传递增益(IPD2/IPD1•K3)为±15%,HCNR201的传递增益为±5%;增益温度系数为-65ppm/℃;带宽>1MHz;封装形式分为8引脚DIP和贴片两种,允许灵活的电路设计。
2.基于电磁耦合技术的隔离放大器
AD202/AD204是一种变压器耦合、微型封装的精密隔离放大器。它通过片内变压器耦合,对信号的输入和输出进行电气隔离。片内的直流电压变换电路为输入级、外部传感器和信号处理电路提供±7.5V/2mA的隔离电源,从而优化了外围电路的设计,提高了芯片的性价比。
AD202和AD204的内部结构基本相同,仅是某些电气参数和供电方式略有不同。AD202是由+15V直流电源直接供电,AD204是由外部时钟源供电。AD202/AD204具有精度高、功耗低、共模性能好、体积小和价格低等特点。因此该芯片被广泛应用于多通道数据采集系统、电流短路测量、电动机控制、信号的处理与隔离及低漂移输入放大器等方面。
AD202/AD204的功能框图如图7-22所示。由图可见,该芯片由放大器、调制器、解调器、整流和滤波、电源变换器等组成。工作时,+15V电源连到电源输入引脚31,使片内(AD202)振荡器工作,从而产生频率为25kHz的载波信号,通过变压器耦合,经整流和滤波,在隔离输出部分形成电流2mA的±7.5V隔离电压。该电压除供给片内电源外,还可作为外围电路(如传感器、浮地信号调节、前置放大器)的电源。AD204电源是从33引脚用输入时钟提供。在输入电路中,片内独立放大器能够作为AD202/AD204输入信号的缓冲或放大。放大后的信号经调制器调制后能把该信号变换成载波信号,经变压器送入同步解调器,以致在输出端重现输入信号。由于解调信号要经过三阶滤波器滤波,从而使得输出信号中的噪声和纹波达到最小,为后级应用电路提供良好的激励源。
AD202/AD204可以很灵活地应用于各种模拟信号的隔离场合,图7-23给出了一种将4~20mA电流信号变换为隔离的0~10V输出电压的典型应用电路。4~20mA输入电流通过250W的电阻加到AD202或AD204片内输入放大器的同相端后,在隔离放大器的输出端便能得到与电流成比例的电压1~5V。为了实现电平移位,必须在隔离放大器输出低端LO加-1V参考电压,以使比例输出电压为0~5V,该电压经外接同相比例放大器(741)放大后,才能获得0~10V输出电压,从而达到变换和隔离的目的。
ADI的AD202,能够在直流到几干赫兹的频率内提供0.025%的线性度,但这种隔离器件内部先进行电压-频率转换,对产生的交流信号进行变压器隔离,然后进行频率-电压转换得到隔离效果。集成的隔离放大器内部电路复杂、体积大、成本高,不适合大规模应用。
图7-23 AD202/204应用电路
7.4.5 嵌入式系统的电气隔离设计
许多硬件设计任务主要围绕以下方面展开:数/模转换器(DAC)、模/数转换器(ADC)、输入和输出信号调理、输入/输出模块的电气连线、控制器之间及模块之间的隔离问题。各种传感器产生的数字信号都传送到一个中央控制器,进行处理和分析。为了保证用户接口端电压的安全性,同时防止瞬态尖峰的传输,需要实现电流隔离。对于传感器信号隔离,传统的模拟隔离方案(如隔离放大器AD202)成本太高,可以采用数字隔离方案——AMP→ADC→Digital Isolate→MCU降低成本。
数字隔离器用来将系统现场的ADC、DAC和信号调理电路与数字端的微处理器隔离开来。其中,需要隔离型DC-DC变换器来实现微处理器的信号线和电源线与ADC/DAC的信号和电源的相互隔离。隔离器件可选用ADI公司的iCoupler产品或TI公司的IO72xx数字隔离器。在满足应用需要的前提下,可以选用ADI公司集成3750V电压隔离的ADC(AD7400)来减轻设计负担。
在完全隔离的系统中,从系统端向现场端提供隔离的电源是另一个要面对的挑战,而在这方面也涌现出了新的解决方案。传统上,将电源从隔离的一端传递到另一端所用的技术包括使用单独的、尺寸较大的、昂贵的DC-DC变换器,或者设计及接口均较困难的分立器件。目前,一种更好的方法是采用完整的、全部集成化的隔离解决方案。这种方案可以通过微变压器实现跨越隔离点的信号和电源传输,其供电能力达50MW。例如isoPower系列产品ADuM524x可以提供高达2500V的信号和电源隔离度,不仅避免了采用分立的隔离电源,而且降低了隔离系统的总成本,减小了电路板面积,缩短了设计时间。
7.5嵌入式系统接口的保护
7.5.1 嵌入式系统接口的电源保护
1.过压与欠压保护
近年来,随着芯片制造工艺的进步,许多新型集成电路的工作电压越来越低,芯片承受过电压的能力也随之下降,嵌入式系统也朝着低电压方向发展,这就使得在嵌入式系统应用中的过压保护更加重要。
过电压保护简称OVP(Over Voltage Protection),过压保护电路根据具体应用的不同在设计上也有很大差别。最简单的过压保护电路可以是一个简单的稳压二极管,或通过比较器等电路控制MOSFET或继电器控制电路的通断等。
2.防掉电保护
在嵌入式应用中,嵌入式系统如果意外掉电,则可能导致数据的完整性或者控制状态不确定,系统运行中产生的一些数据也可能因此而丢失得不到保存,因此就需要加入防掉电保护,在系统检测到掉电时能够将数据完整储存到当前系统中,同时对于一些重要的控制系统还需要在掉电前调整到一个相对安全的状态,这就对系统的防掉电保护提出了更高的要求。
系统防掉电设计的目的是:采用一种机制,使得系统在意外失去供电的情况下,可以保证系统运行状态的确定性及记录数据的完整性;当系统供电恢复后,现场数据可以及时恢复,避免应用系统产生混乱。我们知道,在嵌入式系统设计与开发中越来越多地应用嵌入式操作系统。由于操作系统的引入,数据的读写往往是通过文件的方式完成,而不是直接对存储单元地址操作。用文件读写方式操作数据,在程序的运行过程中往往将数据暂存在易失性的存储空间,如SDRAM,一旦系统意外失电,这些数据往往被丢失。因此,当系统意外失电时必须采取一定的措施进行系统的掉电保护,以避免系统产生混乱。总的说来,防掉电程序的主要思路就是:产生掉电信号,捕捉掉电信号,处理掉电信号和数据以及恢复现场状态。
为了在突然掉电时能够保持数据存储器(RAM)的数据,保证嵌入式系统稳定、可靠地工作,保证数据信息处理的安全,虽然一般嵌入式系统的主电源里都有大容量滤波电容器,当掉电时,嵌入式微处理器靠储存在电容器里的能量,一般能维持工作半个周期(10ms)左右。为此,要求一旦市电发生瞬间断电时,必须要有一种电源能在小于10ms的时间内重新送电,确保单片机系统正常运行,这一任务就由UPS来完成。电源系统瞬时掉电所产生的干扰会造成微处理器的计算错误和数据丢失,有了UPS可以使单片机系统连续可靠地工作。
UPS的中文意思为“不间断电源”,是英语“Uninterruptible Power Supply”的缩写,它可以保障计算机系统在停电之后继续工作一段时间以使用户能够紧急存盘,使用户不致因停电而影响工作或丢失数据。UPS主要起到两个作用:一是应急使用,防止突然断电而影响正常工作,给计算机造成损害;二是消除市电上的电涌、瞬间高电压、瞬间低电压、电线噪声和频率偏移等“电源污染”,改善电源质量,为计算机系统提供高质量的电源。
从基本应用原理上讲,UPS是一种含有储能装置,以逆变器为主要元件,稳压稳频输出的电源保护设备。主要由整流器、蓄电池、逆变器和静态开关等几部分组成。UPS电源按其工作原理可分为后备式、在线式以及在线互动式三种。下面简单说一下UPS的工作原理。
后备式UPS:平时处于蓄电池充电状态,在停电时逆变器紧急切换到工作状态,将电池提供的直流电转变为稳定的交流电输出,因此后备式UPS也被称为离线式UPS。后备式UPS电源的优点是:运行效率高、噪声低、价格相对便宜,主要适用于市电波动不大,对供电质量要求不高的场合,比较适合家庭使用。然而这种UPS存在一个切换时间问题,因此不适合用在供电不能中断的关键性场所。不过实际上这个切换时间很短,一般介于2~10ms,而计算机本身的交换式电源供应器在断电时应可维持10ms左右,所以个人计算机系统一般不会因为这个切换时间而出现问题。后备式UPS一般只能持续供电几分钟到几十分钟,主要是让用户有时间备份数据,并尽快结束手头工作,其价格也较低。对不太关键的计算机应用,比如个人家庭用户,就可配小功率的后备式UPS。
通过理论和实践证明,对于5V供电的单片机当供电电压由5V下降到4~5V时单片机通常均能正常运行,但电压再往下跌落时,单片机就不能继续正常运行。在一般情况下CPU、CMOS、TTL电路将因电源电压跌落而首先不能正常运行,RAM在电压跌落到比较低时尚能工作。因为单片机使用的主电源均有大容量电容,所以在主电源失电时,如果按放电曲线在下跌到单片机能正常运行工作的最低电压之前,把后备电源接上便能保持单片机正常运行。
3.瞬态保护
在实际工程使用中,使用了上述数字隔离方案的系统,可靠性有了极大的提高,能消除噪声并能防止电流在两通信端之间流动,防止瞬态尖峰在系统内部的破坏性传播。但是尽管数字隔离器件以内的电路系统没有损坏,可是接口电路在有强烈的浪涌能量出现时,甚至可以看到收发器爆裂、线路板焦糊的现象,虽然不至于影响整个系统的安全性,但也会造成极大的不便。
出现该现象的原因:虽然隔离“切断”了由电路路径形成的环路,噪声电压只出现在隔离层上而非接收机或其他敏感组件上,但是接口电路必须要经过强烈能量的考验。常用的接地措施只对低频率的共模干扰有保护作用,而对于频率很高的瞬态干扰就无能为力了,因为引线电感的作用对高频瞬态干扰来讲,接地线实际等同于开路。这样的瞬态干扰可能会有成百上千伏的电压,但持续时间很短,在切换大功率感性负载(电动机、变压器、继电器),闪电等过程中都会产生幅度很高的瞬态干扰,如果不加适当防护就会损坏接口。
对于这种瞬态干扰,可以采取瞬态抑制方法加以防护。实际应用中采用两级防护措施:使用3个90V陶瓷放电管(3RM090L-8)(可承受10/700μs,10/700μs为通信线路中感应出的雷击电压波形,表示从零值上升至峰值的时间为10ms,下降至峰值一半的时间为700μs,8000V雷击测试)进行共模防护、差模防护,此时过电压被大大削弱到500V左右;再经过PTC(可以采用100~200mA、耐压250V以上的自恢复熔断器K250-120U)或10W左右的电阻限流。TVS瞬态抑制二极管的选择可以根据芯片的工作电压与耐压决定,一般略高于芯片最高工作电压,RS-485芯片可以选择P6KE15CA,RS-232芯片可以选择P6KE18CA。
7.5.2 静电保护
在电子通信设备的设计、试验、生产、调试、运行或维修过程中,由于静电放电(ESD),可能干扰设备的工作、引起设备电子元器件的损坏,导致设备故障甚至酿成严重事故,由此造成的损失是十分惊人的。因此在嵌入式产品的设计中需要考虑静电保护。
静电保护措施可以总结为:静电屏蔽,滤波去耦,绝缘隔离,接地泄放,良好搭接,瞬态抑制。
以上措施需要在进行PCB设计时充分考虑,主要措施有:
(1)PCB上应尽量缩短引线长度;
(2)PCB上所有的回路面积都应尽可能小,因为它们对瞬态ESD电流产生的磁场非常敏感,这不仅包括电源与地之间的回路,也包括信号与地之间的回路;
(3)安装在印制板上的具有金属外壳的元器件如复位按钮、拨码开关、晶振,其金属外壳一定要接地;
(4)对于双层板,在安全条件下,电源线应尽可能靠近地线,DIP封装的集成电路,+5V走线和地线走线应平行布于两排引脚之间;
(5)PCB上未用部分应用地平面填满;
(6)静电屏蔽:对干扰源、高频电路和静电敏感电路,应实现局部屏蔽或整板屏蔽,静电屏蔽的两个基本要点是:完善的屏蔽和良好的接地。
(7)滤波去耦:试验证明,静电放电引起的干扰脉冲是一个按指数规律衰减的受调制的正弦波,含有丰富的高频分量,因此,应对电源进线和信号进线用滤波器滤波,在电源和地之间用高频电容器去耦。
① 电源输入端可用LC网络(L(100μH),C1(100μF),C2(0.1μF))滤波;
② 对射频组件的向外引线应用穿心电容器滤波或采用带滤波器的插头;
③ 对于双层板,如印制板上的电源引线过长,每隔8cm应在电源与地之间接入一个去耦电容。
④ 集成电路的电源和地之间应加去耦电容(0.01μf~0.1μF),去耦电容要并接在同一芯片的电源端和接地端且紧靠被保护的芯片安装。对于电源和地有多个引脚的大规模集成电路,可设多个去耦电容。对于动态RAM,去耦电容的容量应较大(0.1μF)。
⑤ 大规模集成电路,尤其是EEPROM、FLASH MEMORY、EPLD、FPGA等类型芯片,每个去耦电容应并接一充放电电容。小规模集成电路,每10片也要加接一个充放电电容。该电容以10μF的钽电容或聚碳酸酯电容为宜。
7.6嵌入式系统接口的控制方式
7.6.1 程序轮询方式
在这种方式下,系统微控制器需要不停地查询外设状态,当外设准备就绪时才能够进行数据输入或者输出,否则微控制器就要继续等待循环查询。
以一个按键控制一个灯的亮灭为例,程序需要不停地查询按键对应的I/O状态来判断按键是否按下,检测到按下后翻转灯对应的I/O状态,实现控制信号的输出。这种方式是最简单、最基础的通信方式,其弊端也非常明显。一是系统需要不停地查询外设状态,耗费了大量时间。二是当微控制器需要处理其他任务时可能会错过查询,丢失数据,如按键数据,按键按下只有很短的时间,如果此时程序在执行延时或其他任务时就会错过按键的检测。
7.6.2 中断处理方式
在这种方式下,微控制器不需要被动等待或花费大量时间去查询外设状态,当外设数据交换准备就绪时会自动向微控制器发送中断请求,微控制器如果响应此请求便可以暂停当前任务的运行,转而执行与请求对应的中断服务程序,完成后可以继续执行原先被中断的程序。仍然以一个按键控制一个灯为例,设置按键对应的I/O口触发一个外部中断,在外部中断服务程序中改变灯的状态,这就是中断的处理方式。
中断处理方式的优点显而易见,这种方式不但使微控制器省去了查询外设和等待外设的时间,提高了工作效率,还满足了外设的实时性要求。此种方式需要为每个外设分配一个中断请求号和对应的中断服务程序,需要说明的是STM32F103系列微控制器有着非常强大的中断处理能力,UART、SPI、I2C、CAN等每个外设都可以设置独立的中断请求,非常适合这种方式的应用。
7.6.3 直接存储器存取DMA传送方式
直接存储器读取DMA(Direct Memory Access)是PC上的一个概念,主要指的是并行的外设与内存之间一种快速的数据传输方式。在现代微控制器及其系统中,也把它扩展到串行外设等各种类型的外设接口上。DMA最显著的特点是它不用软件参与而是采用一个专门的控制器来控制内存与外设之间的数据传输,无须微控制器的参与,这就节省了CPU的资源来做其他操作,此种方式特别适合于大数据量的数据传输,可以极大提高微控制器的工作效率。
需要进行DMA数据传输时,可以通过寄存器配置DMA数据传输的起始地址和目的地址,以及传输的数据格式等,DMA控制器会向系统申请总线的控制权,系统的微控制器如果允许,则将控制权交出,传输过程中总线控制权由DMA控制器掌握。传输结束后,DMA控制器将总线控制权交还给系统微处理器。
由于DMA这种优势,在进行大数据量的数据处理或者传输时应当首先考虑DMA方式,DMA传输本身也可以触发中断,因此很多情况下DMA又和中断配合使用。STM32F103系列的DMA控制器有着非常强大的功能,具体可以参见DMA控制器一节,这里不再赘述。
《嵌入式系统原理与接口技术》——嵌入式系统接口应用基础的更多相关文章
- 2017.11.1 微型计算机原理与接口技术-----第七章 中断系统与8237A DMA控制器
第七章 微型计算机原理与接口技术-----中断系统与8237A DMA控制器 (1)数据传送的两种方式:中断方式和直接存储器存取方式(DMA):中断是微处理器与外部设备交换信息的一种方式:DMA是存储 ...
- CUDA C编程接口技术分析
CUDA C编程接口技术分析 编程接口 CUDA C为熟悉C编程语言的用户提供了一个简单的路径,可以方便地编写程序供设备执行. 它由C语言的最小扩展集和运行库组成. 核心语言扩展已经引入:cuda c ...
- 嵌入式Linux系统Bootloader启动调试技术(回想)
嵌入式系统搭建过程中,对于系统平台搭建project师最初的一步一般是移植Bootloader ,当然移植有几个级别,通常最常见的是參考的EVM 的硬件有了改动(如更改了FLASH ,更改了SDRAM ...
- 嵌入式linux驱动开发之给linux系统添加温度传感器模块
忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢! 虽然说现在硬件的资源非常丰富而 ...
- 从原理到场景 系统讲解 PHP 缓存技术
第1章课程介绍 此为PHP相关缓存技术的课堂,有哪些主流的缓存技术可以被使用? 第1章 课程介绍 1-1课程介绍1-2布置缓存的目的1-3合理使用缓存1-4哪些环节适合用缓存 第2章 文件类缓存 2- ...
- 【嵌入式AI】全志 XR806 OpenHarmony 鸿蒙系统固件烧录
欢迎关注我的公众号 [极智视界],回复001获取Google编程规范 O_o >_< o_O O_o ~_~ o_O 大家好,我是极智视界,本教程详细记录了 ...
- 单片机的基本构成、工作原理 LET′S TRY“嵌入式编程”: 1 of 6
单片机的基本构成.工作原理 LET′S TRY“嵌入式编程”: 1 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识.有了电 ...
- Android中通过进程注入技术修改系统返回的Mac地址
致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过 ...
- 80x86/Pentium微机原理及接口技术-微处理器-学习笔记
80x86/ Pentium微机原理及接口技术 1. 计算机基础... 1 1.1常用术语... 1 1.2计算机中数与编码的表示方法... 1 1.2.1进制表示及进制转换... 1 1.2 ...
随机推荐
- 数据库相关--mysql中的单表查询
一.完整的单表查询语句 select [distinct] *|字段1,字段2, .... from 表名 [where 条件1] [group by 字段名 [having 条件2] ] [orde ...
- 戏说 Spring MVC 框架
Spring MVC 是 Spring 框架的一部分,和 Struts 一样都是属于 web 层框架,根据项目分层的思想,一个项目基本可以分为持久层,业务层和 web 层.而 Spring MVC 主 ...
- 【python学习-1】python环境设置与开发
开始学习python,打算把学习过程都记下来. 下载python,虽然推荐官网,但是感觉官网上面下载python太慢,所以我最后是在csdn上面下载的python版本(3.2.4 windows 64 ...
- MyBatis 从浅入深 随笔整理
MyBatis? archetypeCatalog = internal 本文档单独出现的_parameter都标识为变量名 一.三个基本要素: 核心接口和类 MyBatis 核心配置文件 SQL映射 ...
- HttpServlet Service方法
service() 方法是执行实际任务的主要方法.Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端. 每次服务器接 ...
- springmvc学习总结(一) -- 从零搭建,基础入门
1.新建maven项目 参考mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上)第一部分,修改配置 2.修改pom.xml 文件 <proj ...
- qunar-dns
去哪儿QInfra大会 IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/eventlist/detail/1313
- LOG EXPLORER ApexSQL Log
http://www.minisoft.cn/ https://www.apexsql.com/sql_tools_log.aspx
- C# Windows服务开发从入门到精通
一.课程介绍 大家都知道如果想要程序一直运行在windows服务器上,最好是把程序写成windows服务程序:这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需要用户直接登录,直接开机就可以启动 ...
- 多个RS-485设备怎么连接到一台电脑上?可以设置地址,有协议
计算机都是RS232的,所以要给计算机串口配一个232/485转换器,然后给所有485设备设置一个地址. 计算机用查询方式,根据设备地址查询指定设备. 比如,计算机发送5个自节 01 03 04 FF ...