分享

单片机工程师面试题

 Houblt 2017-04-13

一、

什么是TTL电平,什么是CMOS电平,他们的区别
(
)TTL高电平3.6~5V,低电平0V~2.4V 
CMOS
电平Vcc可达到12V 
CMOS
电路输出高电平约为0.9Vcc,而输出低电平约为 
0.1Vcc
 
CMOS
电路不使用的输入端不能悬空,会造成逻辑混乱。 
TTL
电路不使用的输入端悬空为高电平 
另外,CMOS集成电路电源电压可以在较大范围内变化,因而对电源的要求不像TTL集成电路那样严格。 
TTL电平他们就可以兼容
(
)TTL电平是5VCMOS电平一般是12V 
因为TTL电路电源电压是5VCMOS电路电源电压一般是12V 
5V
的电平不能触发CMOS电路,12V的电平会损坏TTL电路,因此不能互相兼容匹配。
(
)TTL电平标准 
输出 L <0.8V H>2.4V 
输入 L <1.2V H>2.0V 
TTL
器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1 

CMOS
电平: 
输出 L <0.1*Vcc H>0.9*Vcc 
输入 L <0.3*Vcc H>0.7*Vcc. 

一般单片机、DSPFPGA他们之间管教能否直接相连. 一般情况下,同电压的是可以的,不过最好是要好好查查技术手册上的VIL,VIH,VOL,VOH的值,看是否能够匹配(VOL要小于VILVOH要大于VIH,是指一个连接当中的)。有些在一般应用中没有问题,但是参数上就是有点不够匹配,在某些情况下可能就不够稳定,或者不同批次的器件就不能运行。 

例如:74LS的器件的输出,接入74HC的器件。在一般情况下都能好好运行,但是,在参数上却是不匹配的,有些情况下就不能运行。  


74LS
54系列是TTL电路,74HCCMOS电路。如果它们的序号相同,则逻辑功能一样,但电气性能和动态性能略有不同。如,TTL的逻辑高电平为>  2.7V,CMOS>  3.6V。如果CMOS电路的前一级为TTL则隐藏着不可靠隐患,反之则没问题。

*****************************************************************************************************************

TTL电平:
   
输出高电平  2.4V         输出低电平 0.4V
  
在室温下,一般输出高电平是3.5V  输出低电平是0.2V
   
最小输入高电平和低电平
   
输入高电平  =2.0V          输入低电平  =0.8V   
它的噪声容限是0.4V.
CMOS
电平:
  1
逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。

电平转换电路:因为TTLCOMS的高低电平的值不一样(ttl 5v《==》cmos 33v),所以互相连接时需要电平的转换:就
是用两个电阻对电平分压,没有什么高深的东西。


OC
门,即集电极开路门电路,它必须外界上拉电阻和电源才能将开关电平作为高低电平用。否则它一般只作为开关大电压和
大电流负载,所以  又叫做驱动门电路。

TTL
COMS电路比较:
1
TTL电路是电流控制器件,而coms电路是电压控制器件。
2
TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。
   COMS
电路的速度慢,传输延迟时间长(25--50ns),但功耗低。
   COMS
电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。
3
COMS电路的锁定效应:
   COMS
电路由于输入太大的电流,内部的电流急剧增大,除非切断电源,电流一直在增大。这种效应就是锁定效应。当产生
锁定效应时,COMS的内部电流能达到40mA以上,很容易烧毁芯片。
防御措施:
  (1)
、在输入端和输出端加钳位电路,使输入和输出不超过不超过规定电压。
  (2)
、芯片的电源输入端加去耦电路,防止VDD端出现瞬间的高压。
  (3)
、在VDD和外电源之间加线流电阻,即使有大的电流也不让它进去。
  (4)
、当系统由几个电源分别供电时,开关要按下列顺序:开启时,先开启COMS电路得电源,再开启输入信号和负载的电
源;关闭时,先关闭输入信号和负载的电源,再关闭COMS电路的电源。

4
COMS电路的使用注意事项
  (1)
COMS电路时电压控制器件,它的输入总抗很大,对干扰信号的捕捉能力很强。所以,不用的管脚不要悬空,要接上拉
电阻或者下拉电阻,给它一个恒定的电平。
  (2)
、输入端接低内组的信号源时,要在输入端和信号源之间要串联限流电阻,使输入的电流限制在1mA之内。
  (3)
、当接长信号传输线时,在COMS电路端接匹配电阻。
  (4)
、当输入端接大电容时,应该在输入端和电容间接保护电阻。电阻值为R=V0/1mA.V0是外界电容上的电压。
  (5)
COMS的输入电流超过1mA,就有可能烧坏COMS 
   


5
TTL门电路中输入端负载特性(输入端带电阻特殊情况的处理):
  1
、悬空时相当于输入端接高电平。因为这时可以看作是输入端接一个无穷大的电阻。
  2
、在门电路输入端串联10K电阻后再输入低电平,输入端出呈现的是高电平而不是低电平。因为由TTL门电路的输入端负载
特性可知,只有在输入端接的串联电阻小于910欧时,它输入来的低电平信号才能被门电路识别出来,串联电阻再大的话输入
端就一直呈现高电平。这个一定要注意。
COMS
门电路就不用考虑这些了。


6
TTL电路有集电极开路OC门,MOS管也有和集电极对应的漏极开路的OD门,它的输出就叫做开漏输出。
   OC
门在截止时有漏电流输出,那就是漏电流,为什么有漏电流呢?那是因为当三机管截止的时候,它的基极电流约等于
0
,但是并不是真正的为0,经过三极管的集电极的电流也就不是真正的0,而是约0。而这个就是漏电流。
   
开漏输出:OC门的输出就是开漏输出;OD门的输出也是开漏输出。它可以吸收很大的电流,但是不能向外输出的电流。所
以,为了能输入和输出电流,它使用的时候要跟电源和上拉电阻一齐用。

   OD
门一般作为输出缓冲/驱动器、电平转换器以及满足吸收大负载电流的需要。
7
、什么叫做图腾柱,它与开漏电路有什么区别?

TTL
集成电路中,输出有接上拉三极管的输出叫做图腾柱输出,没有的叫做OC门。因为TTL就是一个三级   关,图腾柱也就是
两个三级管推挽相连。所以推挽就是图腾。
一般图腾式输出,高电平400UA,低电平8MA 
  
TTL
电平(L电平:小于等于0.8V H电平:大于等于2V 
COMS
电平(L电平:小于等于0.3Vcc H电平:大于等于0.7Vcc 

CMOS 
器件不用的输入端必须连到高电平或低电平这是因为 CMOS 是高输入阻抗器件理想状态是没有输入电流的如果不用的输入引脚悬空很容易感应到干扰信号影响芯片的逻辑运行甚至静电积累永久性的击穿这个输入端造成芯片失效.
另外只有 4000 系列的 CMOS 器件可以工作在 15伏电源下, 74HC, 74HCT 等都只能工作在 5伏电源下现在已经有工作在 3伏和 2.5伏电源下的 CMOS 逻辑电路芯片了
  
CMOS
电平和TTL电平: CMOS电平电压范围在315V,比如4000系列当5V供电时,输出在4.6以上为高电平,输出在0.05V以下为低电平。输入在3.5V以上为高电 平,输入在1.5V以下为低电平。而对于TTL芯片,供电范围在05V,常见都是5V,如74系列5V供电,输出在2.7V以上为高电平,输出在 0.5V以下为低电平,输入在2V以上为高电平,在0.8V以下为低电平。因此,CMOS电路与TTL电路就有一个电平转换的问题,使两者电平域值能匹 配。 
  
有关逻辑电平的一些概念 
要了解逻辑电平的内容,首先要知道以下几个概念的含义:
1
:输入高电平(Vih): 保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平。
2
:输入低电平(Vil):保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平。
3
:输出高电平(Voh):保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh
4
:输出低电平(Vol):保证逻辑门的输出为低电平时的输出电平的最大值,逻辑门的输出为低电平时的电平值都必须小于此Vol
5
 阀值电平(Vt):数字电路芯片都存在一个阈值电平,就是电路刚刚勉强能翻转动作时的电平。它是一个界于VilVih之间的电压值,对于CMOS电路的 阈值电平,基本上是二分之一的电源电压值,但要保证稳定的输出,则必须要求输入高电平> Vih,输入低电平<Vil,而如果输入电平在阈值上下,也就是VilVih这个区域,电路的输出会处于不稳定状态。
对于一般的逻辑电平,以上参数的关系如下:
Voh > Vih > Vt > Vil > Vol

6
Ioh:逻辑门输出为高电平时的负载电流(为拉电流)。
7
Iol:逻辑门输出为低电平时的负载电流(为灌电流)。
8
Iih:逻辑门输入为高电平时的电流(为灌电流)。
9
Iil:逻辑门输入为低电平时的电流(为拉电流)。
 电路输出极在集成单元内不接负载电阻而直接引出作为输出端,这种形式的门称为开路门。开路的TTLCMOSECL门分别称为集电极开路(OC)、漏极 开路(OD)、发射极开路(OE),使用时应审查是否接上拉电阻(OCOD门)或下拉电阻(OE门),以及电阻阻值是否合适。对于集电极开路(OC 门,其上拉电阻阻值RL应满足下面条件:
1): RL < VCCVoh/n*Iohm*Iih
2):RL > VCCVol/Iolm*Iil
其中n:线与的开路门数;m:被驱动的输入端数。
:常用的逻辑电平
·
逻辑电平:有TTLCMOSLVTTLECLPECLGTLRS232RS422LVDS等。
·
其中TTLCMOS的逻辑电平按典型电压可分为四类:5V系列(5V TTL5V CMOS)、3.3V系列,2.5V系列和1.8V系列。
·5V TTL
5V CMOS逻辑电平是通用的逻辑电平。
·3.3V
及以下的逻辑电平被称为低电压逻辑电平,常用的为LVTTL电平。
·
低电压的逻辑电平还有2.5V1.8V两种。
·ECL/PECL
LVDS是差分输入输出。
·RS-422/485
RS-232是串口的接口标准,RS-422/485是差分输入输出,RS-232是单端输入输出。

******************************************************************************************************************

1.CMOS是场效应管构成,TTL为双极晶体管构成 
2.COMS
的逻辑电平范围比较大(515V),TTL只能在5V下工作 
3.CMOS
的高低电平之间相差比较大、抗干扰性强,TTL则相差小,抗干扰能力差 
4.CMOS
功耗很小,TTL功耗较大(15mA/门) 
5.CMOS
的工作频率较TTL略低,但是高速CMOS速度与TTL差不多相当。

*******************************************************************************************************************

OC门,又称集电极开路(漏极开路)与非门门电路,Open CollectorOpen Drain)。为什么引入OC门? 

实际使用中,有时需要两个或两个以上与非门的输出端连接在同一条导线上,将这些与非门上的数据(状态电平)用同一条导线输送出去。因此,需要一种新的与非门电路--OC门来实现线与逻辑 

OC
门主要用于3个方面: 
1
 

实现与或非逻辑,用做电平转换,用做驱动器。由于OC门电路的输出管的集电极悬空,使用时需外接一个上拉电阻Rp到电源VCCOC门使用上拉电阻以输出高电平,此外为了加大输出引脚的驱动能力,上拉电阻阻值的选择原则,从降低功耗及芯片的灌电流能力考虑应当足够大;从确保足够的驱动电流考虑应当足够小。 
2
 
线与逻辑,即两个输出端(包括两个以上)直接互连就可以实现“AND”的逻辑功能。在总线传输等实际应用中需要多个门的输出端并联连接使用,而一般TTL门输出端并不能直接并接使用,否则这些门的输出管之间由于低阻抗形成很大的短路电流(灌电流),而烧坏器件。在硬件上,可用OC门或三态门(ST门)来实现。 OC门实现线与,应同时在输出端口应加一个上拉电阻。 
3
 
三态门(ST门)主要用在应用于多个门输出共享数据总线,为避免多个门输出同时占用数据总线,这些门的使能信号(EN)中只允许有一个为有效电平(如高电平),由于三态门的输出是推拉式的低阻输出,且不需接上拉(负载)电阻,所以开关速度比OC门快,常用三态门作为输出缓冲器。

*******************************************************************************************************************

        a) 什么是Setup Holdup时间? 
 
建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。
  
  b)
什么是竞争与冒险现象?怎样判断?如何消除?
   
信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在"冒险"。用D触发器,格雷码计数器,同步电路等优秀的设计方案可以消除。 

  c)
请画出用D触发器实现2倍分频的逻辑电路?
   
就是把D触发器的输出端加非门接到D端。


  d)
什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求? 
   
将几个OC门结构与非门输出并联,当每个OC门输出为高电平时,总输出才为高,这种连接方式称为线与。
  
  e)
什么是同步逻辑和异步逻辑? 
   
整个设计中只有一个全局时钟成为同步逻辑。
   
多时钟系统逻辑设计成为异步逻辑。
    f)
请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。
   
是不是结构图?


  g)
你知道那些常用逻辑电平?TTLCOMS电平可以直接互连吗?
   TTL,cmos
,不能直连
   LVDS:LVDS
Low Voltage Differential Signal)即低电压差分信号,LVDS接口又称RS644总线接口,是20世纪90年代才出现的一种数据传输和接口技术。
   ECL
:(EmitterCoupled Logic)即射极耦合逻辑,是带有射随输出结构的典型输入输出接口电路
   CML: CML
电平是所有高速数据接口中最简单的一种。其输入和输出是匹配好的,减少了外围器件,适合于更高频段工作。

二、

最近一个项目总体方案设计为分布式系统,于是在通讯上纠结于CAN总线还是RS485。因此在网上搜索一些了一些关于RS485CAN总线的资料,除进一步认识RS485通讯特点外,认识了CAN总线的特点及其与RS485的比较,总结如下:

 

注:以下是从网上搜索总结的。

 

CAN总线特点:

1、国际标准的工业级现场总线,传输可靠,实时性高;  
2
、传输距离远(最远10Km),传输速率快(最高1MHz bps); 
3
、单条总线最多可接110个节点,并可方便的扩充节点数;  
4
、多主结构,各节点的地位平等,方便区域组网,总线利用率高;  
5
、实时性高,非破坏总线仲裁技术,优先级高的节点无延时;  
6
、出错的CAN节点会自动关闭并切断和总线的联系,不影响总线的通讯;  
7
、报文为短帧结构并有硬件CRC校验,受干扰概率小,数据出错率极低;  
8
、自动检测报文发送成功与否,可硬件自动重发,传输可靠性很高;  
9
、硬件报文滤波功能,只接收必要信息,减轻cpu负担,简化软件编制;  
10
、通讯介质可用普通的双绞线,同轴电缆或光纤等;  
11
CAN总线系统结构简单,有极高的性价比。

 

RS485接口标准特点:

1 RS-485的电气特性:逻辑"1"以两线间的电压差为+2-6V表示;逻辑"0"以两线间的电压差为-2-6V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
2 RS-485的数据最高传输速率为10Mbps
3 RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。
4 RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。但RS-485总线上任何时候只能有一发送器发送。
5 RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 
6 因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 

 

CAN总线与RS485的比较:

1,速度与距离:CANRS4851Mbit/S的高速率传输的距离都不超过100M,可谓高速上的距离差不多。但是在低速时CAN5Kbit/S时,距离可达10KM,而485再低的速率也只能到1219米左右(都无中继)。可见CAN在长距离的传输上拥有绝对的优势。

2,总线利用率:RS485是单主从结构,就是一个总线上只能有一台主机,通讯都由它发起的,它没有下命令,下面的节点不能发送,而且要发完即答,受到答复后,主机才向下一个节点询问,这样是为了防止多个节点向总线发送数据,而造成数据错乱。而CANbus是多主从结构,每个节点都有CAN控制器,多个节点发送时,以发送的ID号自动进行仲裁,这样就可以实现总线数据不错乱,而且一个节点发完,另一个节点可以探测到总线空闲,而马上发送,这样省去了主机的询问,提高了总线利用率,增强了快速性。所以在汽车等实性要求高的系统,都是用CAN总线,或者其他类似的总线。

3,错误检测机制,RS485只规定了物理层,而没有数据链路层,所以它对错误是无法识别的,除非一些短路等物理错误。这样容易造成一个节点破坏了,拼命向总线发数据(一直发1),这样造成整个总线瘫痪。所以RS485一旦坏一个节点,这个总线网络都挂。而CAN总线有CAN控制器,可以对总线任何错误进行检测,如果自身错误超过128个,就自动闭锁。保护总线。如果检测到其他节点错误或者自身错误,都会向总线发送错误帧,来提示其他节点,这个数据是错误的。大家小心。这样CAN总线一旦有一个节点CPU程序跑飞了,它的控制器自动闭锁。保护总线。所以在安全性要求高的网路,CAN是很强的。

4,价格与培训成本:CAN器件的价格大约是4852倍这样,485的通讯从软件上是很方便的,只要懂串行通讯,就可以编程,而CAN需要底层工程师了解CAN复杂的层,编写上位机软件也要了解CAN的协议。可谓培训成本较高。

5CAN总线通过CAN控制器接口芯片82C250的两个输出端CANHCANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象在RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于死锁状态。

6CAN具有完善的通信协议,可由CAN控制器芯片及其接口芯片来实现,从而大大降低了系统的开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。

 

   特性

RS-485

CAN-bus

单点成本

低廉

稍高

系统成本

较低

总线利用率

网络特性

单主网络

多主网络

数据传输率

容错机制

可靠的错误处理和检错机制

通讯失败率

极低

节点错误的影响

导致整个网络的瘫痪

无任何影响

通讯距离

<1.5km

可达10km5kbps

网络调试

困难

非常容易

开发难度

标准Modbus协议

标准CAN-bus协议

后期维护成本

 

三、

一、线性电源的原理

线性电源主要包括工频变压器、输出整流滤波器、控制电路、保护电路等。如图1

开关电源与线性电源的区别

1

线性电源是先将交流电经过变压器变压,再经过整流电路整流滤波得到未稳定的直流电压,要达到高精度的直流电压,必须经过电压反馈调整输出电压,这种电源技术很成熟,可以达到很高的稳定度,波纹也很小,而且没有开关电源具有的干扰与噪音。但是它的缺点是需要庞大而笨重的变压器,所需的滤波电容的体积和重量也相当大,而且电压反馈电路是工作在线性状态,调整管上有一定的电压降,在输出较大工作电流时,致使调整管的功耗太大,转换效率低,还要安装很大的散热片。这种电源不适合计算机等设备的需要,将逐步被开关电源所取代。

二、开关电源的原理:

开关电源主要包括输入电网滤波器、输入整流滤波器、逆变器、输出整流滤波器、控制电路、保护电路。如图

开关电源与线性电源的区别

2

它们的功能是:

1.输入电网滤波器:消除来自电网,如电动机的启动、电器的开关、雷击等产生的干扰,同时也防止开关电源产生的高频噪声向电网扩散。

2.输入整流滤波器:将电网输入电压进行整流滤波,为变换器提供直流电压。

3.逆变器:是开关电源的关键部分。它把直流电压变换成高频交流电压,并且起到将输出部分与输入电网隔离的作用。

4.输出整流滤波器:将变换器输出的高频交流电压整流滤波得到需要的直流电压,同时还防止高频噪声对负载的干扰。

5.控制电路:检测输出直流电压,并将其与基准电压比较,进行放大。调制振荡器的脉冲宽度,从而控制变换器以保持输出电压的稳定。

6.保护电路:当开关电源发生过电压、过电流短路时,保护电路使开关电源停止工作以保护负载和电源本身。

开关电源是将交流电先整流成直流电,在将直流逆变成交流电,在整流输出成所需要的直流电压。这样开关电源省去下线性电源中的变压器,以及电压反馈电路。而开关电源中的逆变电路完全是数字调整,同样能达到非常高的调整精度。

开关电源的主要优点:体积小、重量轻(体积和重量只有线性电源的2030%)、效率高(一般为6070%,而线性电源只有3040%)、自身抗干扰性强、输出电压范围宽、模块化。

开关电源的主要缺点:由于逆变电路中会产生高频电压,对周围设备有一定的干扰。需要良好的屏蔽及接地。

 

交流电经过整流,可以得到直流电。但是,由于交流电压及负载电流的变化,整流后得到的直流电压通常会造成20%40%的电压变化。为了得到稳定的直流电压,必须采用稳压电路来实现稳压。按照实现方法的不同,稳压电源可分为三种:线性稳压电源、相控稳压电源、开关稳压电源。其中开关电源代表低碳环保和先进电源的发展趋势。

  常用的低压直流开关电源就是将220V交流电经过EMI滤波器后直接整流成300V左右的直流电,通过电路控制开关管进行高速的道通与截止再转化为高频率的交流电提供给变压器进行变压,从而产生所需要的一组或多组电压,而后再整流成所需要电压的直流电。转化为高频交流电的原因是高频交流在变压器变压电路中的效率要比50Hz高很多,所以主变压器可以做的很小,且使用磁芯,它工作时也不是很热;另外,在高频下,贮存能量和滤波电容和电感要比50Hz 下小很多,成本很低。如果不将50Hz 变为高频那开关电源就没有意义!开关变压器也不神秘,就是一个普通的磁芯变压器!这就是开关电源。
  开关电源,是通过电子技术实现的,主要环节:整流成直流电——逆变成所需电压的交流电(主要来调整电压)——再经过整流成直流电压输出。
    
 开关电源的结构中由于中间没有笨重的变压器和散热片,因而体积非常小。同时,开关电源内部都是电子元件,效率高、发热小。虽然,具有电磁干扰大等缺点,但现在欧美日本土销售和中国制造但没有偷工减料的开关电源抗电磁干扰滤波器和屏蔽技术已经非常到位。
    
 开关电源大体可以分为隔离和非隔离两种,隔离型的必定有开关变压器,而非隔离的未必一定有。
简单地说,开关电源的工作原理是:
  1.交流电源输入经整流滤波成直流;
  2.通过高频PWM(脉冲宽度调制)或者脉冲频率调制(PFM)控制开关管,将那个直流加到开关变压器初级上;
  3.开关变压器次级感应出高频电压,经整流滤波供给负载;
  4.输出部分通过一定的电路反馈给控制电路,控制PWM占空比,以达到稳定输出的目的.
    
 交流电源输入时一般要经过电感电容滤波器一类的东西,过滤掉电网上的干扰,同时也过滤掉电源对电网的干扰;在功率相同时,开关频率越高,开关变压器的体积就越小,但对开关管的要求就越高;开关变压器的次级可以有多个绕组或一个绕组有多个抽头,以得到需要的输出;一般还应该增加一些保护电路,比如空载、短路等保护, 否则可能会烧毁开关电源。
    
 以上说的就是开关电源的大致工作原理。
    
 其实现在已经有了集成度非常高的专用芯片,可以使外围电路非常简单,甚至做到免调试。
例如TOP系列的开关电源芯片(或称模块),只要配合一些阻容元件,和一个开关变压器,就可以做成一个基本的开关电源。
  开关电源&线性电源
  普通半桥开关电源的主要工作原理就是上桥和下桥的开关管(频率高时开关管为VMOS)轮流导通,首先电流通过上桥开关管流入,利用电感线圈的存储功能,将电能集聚在线圈中,最后关闭上桥开关管,打开下桥的开关管,电感线圈和电容持续给外部供电。然后又关闭下桥开关管,再打开上桥让电流进入,就这样重复进行,因为要轮流开关两开关管,所以称为开关电源。
    
 而线性电源就不一样了,由于没有开关介入,使得上水管一直在放水,如果有多的,就会漏出来,这就是我们经常看到的某些线性电源的调整管发热量很大,用不完的电能,全部转换成了热能。从这个角度来看,线性电源的转换效率就非常低了,而且热量高的时候,元件的寿命势必要下降,影响最终的使用效果 

     开关电源和线性电源的区别主要是他们的工作方式。
  线性电源的功率调整管总是工作在放大区,流过的电流是连续的。由于调整管上损耗较大的功率,所以需要较大功率调整管并装有体积很大的散热器,发热严重,效率很低。一般在40%~60%,还得说他是很好的线性电源。线性电源的工作方式,使他从高压变低压必须有将压装置,一般的都是变压器,也有别的像KX电源,再经过整流输出直流电压。这样一来他的体积也就很大,比较笨重,效率低、发热量也大。他也有他的优点:纹波小,调整率好,对外干扰小。适合用与模拟电路,各类放大器等。
  开关电源。它的功率器件工作在开关状态,在电压调整时能量是通过电感线圈来临时贮存,这样他的损耗就小,效率也就高,对散热的要求低,但它对变压器和贮能电感也有了更高的要求,要用低损耗高磁导率的材料来做。它的变压器就是一个字小。总效率在 80%~98%,开关电源的效率高但体积小,但是和线性电源比他的纹波,电压电流调整率就有一定的折扣了

  业余电台等无线电通信专用电源交流电源的特殊要求:

  1、电台使用比较规范的室外天馈系统,同轴电缆屏蔽层不参与无线电收发时主要考虑电源的ESD和电源稳压部分的抗干扰能力。原因是发射时电源负载阻抗瞬时变化很大,如果处理不当会造成稳压系统取样和执行紊乱,因此须在稳压系统取样与输出间加装低通滤波器。

  2、电台使用很随意的室外天馈系统,同轴电缆屏蔽层参与无线电收发。此时此刻还需要在220V输入端加装低通滤波器抑制干扰。

  3、使用昂贵的电台,因维修费用高,须加装并联型限压电路以确保在任何时候电台得到的电压不超过额定电压25%

  
开关电源设计的各项指标概念和定义

一. 描述输入电压影响输出电压的几个指标形式

1 绝对稳压系数

A.绝对稳压系数:表示负载不变时,稳压电源输出直流变化量U0 与输入电网变化量Ui 之比。即:K= U0/ Ui

B.相对稳压系数:表示负载不变时,稳压器输出直流电压 Uo 的相对变化量Uo 与输出电网 Ui 的相对变化量Ui之比。即:S= Uo/Uo / Ui/Ui

2. 电网调整率

它表示输入电网电压由额定值变化±10%时,稳压电源输出电压的相对变化量,有时也以绝对值表示。

3. 电压稳定度

负载电流保持为额定范围内的任何值,输入电压在规定的范围内变化所引起的输出电压相对变化Uo/Uo(百分值),称为稳压器的电压稳定度。

二. 负载对输出电压影响的几种指标形式

1 负载调整率(也称电流调整率)

在额定电网电压下,负载电流从零变化到最大时,输出电压的最大相对变化量,常用百分数表示,有时也用绝对变化量表示。

2 输出电阻(也称等效内阻或内阻)

在额定电网电压下,由于负载电流变化IL 引起输出电压变化Uo,则输出电阻为Ro=| Uo/ IL| 欧。

三. 纹波电压的几个指标形式

1 最大纹波电压

在额定输出电压和负载电流下,输出电压的纹波(包括噪声)的绝对值的大小,通常以峰峰值或有效值表示。

2 纹波系数 Y%

在额定负载电流下,输出纹波电压的有效值Urms与输出直流电压Uo之比,即:y=Umrs/Uo x100%

3 纹波电压抑制比

在规定的纹波频率(例如 50HZ)下,输出电压中的纹波电压 Ui~与输出电压中的纹波电压 Uo~之比,即:纹波电压抑制比=Ui~/Uo~

这里声明一下:噪声不同于纹波。纹波是出现在输出端子间的一种与输入频率和开关频率同步的成分,用峰-峰(peak to peak)值表示,一般在输出电压的 0.5%以下;噪声是出现在输出端子间的纹波以外的一种高频成分,也用峰-峰(peak to peak)值表示,一般在输出电压的 1%左右。纹波噪声是二者的合成,用峰-峰(peak to peak)值表示,一般在输出电压的 2%以下。

四. 冲击电流

冲击电流是指输入电压按规定时间间隔接通或断开时,输入电流达到稳定状态前所通过的最大瞬间电流。一般是 20A30A

五. 过流保护

是一种电源负载保护功能,以避免发生包括输出端子上的短路在内的过负载输出电流对电源和负载的损坏。过流的给定值一般是额定电流的 110%130%

六. 过压保护

是一种对端子间过大电压进行负载保护的功能。一般规定为输出电压的 130%150%

七. 输出欠压保护

当输出电压在标准值以下时,检测输出电压下降或为保护负载及防止误操作而停止电源并发出报警信号,多为输出电压的 80%30%左右。

八. 过热保护

在电源内部发生异常或因使用不当而使电源温升超标时停止电源的工作并发出报警信号。

九. 温度漂移和温度系数

温度漂移:环境温度的变化影响元器件的参数的变化,从而引起稳压器输出电压变化。常用温度系数表示温度漂移的大小。绝对温度系数:温度变化1引起输出电压值的变化UoT,单位是 V/或毫伏每摄氏度。相对温度系数:温度变化1引起输出电压相对变化UoT/Uo,单位是 V/

十. 漂移

稳压器在输入电压、负载电流和环境温度保持一定的情况下,元件参数的稳定性也会造成输出电压的变化,慢变化叫漂移,快变化叫噪声,介于两者之间叫起伏。

表示漂移的方法有两种:

1 在指定的时间内输出电压值的变化Uot

2 在指定时间内输出电压的相对变化Uot/Uo

考察漂移的时间可以定为 1 分钟、10 分钟、1 小时、8 小时或更长。只在精度较高的稳压器中,才有温度系数和温漂两项指标。

十一. 响应时间

是指负载电流突然变化时,稳压器的输出电压从开始变化到达新的稳定值的一段调整时间。在直流稳压器中,则是用在矩形波负载电流时的输出电压波形来表示这个特性,称为过度特性。

十二. 失真

这是交流稳压器特有的。是指输出波形不是正 波形,产生波形畸变,称为畸变。

十三. 噪声

30HZ18kHZ 的可听频率规定,这对开关电源的转换频率不成问题,但对带风扇的电源要根据需要加以规定。

十四.输入噪声

为使开关电源工作保持正常状态,要根据额定输入条件,按由允许输入外并叠加于工业用频率的脉冲状电压(0peak)制定输入噪声指标。一般外加脉冲宽度为 100800us,外加电压 1000V

十五. 浪涌

这是在输入电压,以 1 分钟以上的间隔按规定次数加一种浪涌电压,以避免发生绝缘破坏、闪络、电弧等异常现象。通信设备等规定的数值为数千伏,一般为 1200V

十六. 静电噪声

指在额定输入条件下,外加到电源框体的任意部分时,全输出电路能保持正常工作状态的一种重复脉冲状的静电。一般保证 510KV 以内。

十七. 稳定度

允许使用条件下,输出电压最大相对变化Uo/Uo

十八. 电气安全要求(GB 4943-90

1   电源结构的安全要求

1 空间要求。ULCSAVDE 安全规范强调了在带电部分之间和带电部分与非带电金属部分之间的表面、空间的距离要求。ULCSA 要求:极间电压大于等于 250VAC 的高压导体之间,以及高压导体与非带电金属部分之间(这里不包括导线间),无论在表面间还是在空间,均应有 0.1 英寸的距离;VDE 要求交流线之间有 3mm 的徐变或2mm 的净空隙;IEC 要求:交流线间有 3mm 的净空间隙及在交流线与接地导体间的 4mm 的净空间隙。另外,VDEIEC 要求在电源的输出和输入之间,至少有 8mm 的空间间距。

2 电介质实验测试方法(打高压:输入与输出、输入和地、输入 AC 两级之间)。

3 漏电流测量。漏电流是流经输入侧地线的电流,在开关电源中主要是通过静噪滤波器的旁路电容器泄露电流。ULCSA 均要求暴露的不带电的金属部分均应与大地相接,漏电流测量是通过将这些部分与大地之间接一个 1.5K欧的电阻,其漏电流应该不大于 5 毫安。VDE 允许:用 1.5K 欧的电阻与 150nP 电容并接。并施加 1.06 倍额定使用电压,对数据处理设备,漏电流应不大于 3.5 毫安。一般是 1 毫安左右。

4 绝缘电阻测试。

VDE 要求:输入和低电压输出电路之间应有 7M 欧的电阻,在可接触到的金属部分和输入之间,应有 2M 欧的电阻或加 500V 直流电压持续 1 分钟。

5 印制电路板要求。要求是 UL 认证的 94V-2 材料或比此更好的材料。

2 对电源变压器结构的安全要求

1 变压器的绝缘。变压器的绕组使用的铜线应为漆包线,其他金属部分应涂有瓷、漆等绝缘物质。

2 变压器的介电强度。在实验中不应出现绝缘层破裂和飞弧现象。

3 变压器的绝缘电阻。变压器绕组间的绝缘电阻至少为 10M 欧,在绕组与磁心、骨架、屏蔽层间施加 500 伏直流电压,持续 1 分钟,不应出现击穿、飞弧现象。

4 变压器湿度电阻。变压器必须在放置于潮湿的环境之后,立即进行绝缘电阻和介电强度实验,并满足要求。潮湿环境一般是:相对湿度为 92%(公差为 2%),温度稳定在 20 30 摄氏度之间,误差允许 1%,需在内放置至少48 小时之后,立即进行上述实验。此时变压器的本身温度不应该较进入潮湿环境之前测试高出 4 摄氏度。

5 VDE 关于变压器温度特性的要求。

6 ULCSA 关于变压器温度特性的要求。

  3. 功率因数校正要求

  为减少开关电源对电网的污染,国际电工委员会和一些国家与地区推出了IEC1000-3-2EN61000-3-2等标准,对电流谐波作出了限量规定。为满足输入电流谐波限制要求,最有效的技术手段就有源功率因数校正(有源PFC)。

  图1是开关电源输入级的整流电路(不含EMC),开关电源因二极管的单向导电和滤波贮能电容充放电的作用,在AC线路电压的每个半周期内,只是在其峰值附近,二极管才会导通。虽然AC输入电压仍大体保持正弦波波形,但AC输入电流却呈高幅值的尖峰脉冲,如图2所示。这种严重失真的电流波形含有大量的谐波成份,引起线路功率因数严重下降。为解决因供电电流呈强脉冲状态而引起的电磁干扰(EMI)和电磁兼容(EMC)问题,现在的规范要求用电功率大于85W以上(有的资料显示大于75W)的此类容性负载用电器具,必须增加校正其负载特性的校正电路,使其负载特性接近于阻性(电压和电流波形同相且波形相近),这就是现代的有源功率因数校正(PFC)电路(见图3和图4)。

  低压直流输出的开关电源和线性电源 - 短波收听爱好者 - 短波收听爱好者

四、

既然讲到信号源有内阻,那么,输入电阻应当是主因。虽然放大器的开环放大倍数,也有一定的影响。

如果是输入电阻,应当是输出大的那个输入电阻大
如果是输出电阻,应当是输出小的那个输出电阻大

五、

差分线属于高速线,特点是等长,等距

具体绘制方法要看你使用的软件 一般不管什么软件,都是先定义两条线为差分线,定义有些在原理图里定义,有些在PCB里定义,然后走线前定义差分线走线规则,走线时软件就会按差分线的规则处理了;

六、

C语言中讲讲static变量和static函数有什么作用
static
关键字有两种意思,你看上下文来判断

1,表示变量是静态存储变量 
表示变量存放在静态存储区
2,
表示该变量是内部连接 
(
这种情况是指该变量不在任何{}之内,就象全局变量那样,这时候加上static) 
,
也就是说在其它的.cpp文件中,该变量是不可见的(你不能用).

static加在函数前面的时候 
表示该函数是内部连接,之在本文件中有效,别的文件中不能应用该函数
不加static的函数默认为是全局的
也就是说在其他的.cpp中只要申明一下这个函数,就可以使用它

1static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
   
答:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
   
从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。
    static
函数与普通函数作用域不同。static函数仅在本文件中使用。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
    static
全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
    static
局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
    static
函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

2、如何引用一个已经定义过的全局变量?
    
答:extern
    
可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间 会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
   
答:可以,在不同的C文件中以static形式来声明同名全局变量。
   
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

七、

volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错

八、

编写一个函数,要求输入年月日时分秒,
输出该年月日时分秒的下一秒。

#include<stdio.h> 
//
定义全局变量 
int year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0; 

//
函数的声明 
int inputDate(void); 
int nextSceond(void); 
int leapYear(int year); 
int dayMonth(int month); 

/* 
*
函数名:inputDate 
*
参数 :void 
*
返回值:void 
*
功能 :接受用户的输入,并对数据进行检查 
*/ 
int inputDate() 

int loop = 0; 
for(; loop < 3; loop++) 

printf("
请输入年月日:"); 
scanf("%d %d %d", &year, &month, &day); 
if(month < 1 || month > 12) 

printf("
月份输入错误!\n"); 
continue; 

else 

if(day < 1 || day > dayMonth(month)) 

printf("day
输入错误\n"); 
continue; 

else 

break; 




for(; loop < 3; loop++) 

printf("
请输入时分秒:"); 
scanf("%d %d %d", &hour, &minute, &second); 
if(hour < 0 || hour > 23) 

printf("hour
输入错误!\n"); 
continue; 

else 

if(minute < 0 || minute > 59) 

printf("minute !\n"); 
continue; 

else 

if(second < 0 || second > 59) 

printf("second!\n"); 
continue; 

else 

break; 







/* 
*
函数名:nextSecond 
*
参数 :void 
*
返回值:void 
*
功能 :计算下一秒的时间 
*/ 
int nextSceond() 

if(59 == second) 

minute += 1; 
second = 0; 
if(60 == minute) 

hour += 1; 
minute = 0; 
if( 24 == hour) 

day += 1; 
hour = 0; 
if(day > dayMonth(month)) 

month += 1; 
day = 1; 
if(13 == month) 

year += 1; 
month = 1; 






else 

second += 1; 


printf("%2d-%2d-%2d\n%2d:%2d:%2d\n",year,month,day,hour,minute,second); 


/* 
*
函数名:leapYear 
*
参数 :int year 
*
返回值:int 
*
功能 :判断是否为闰年 
*/ 

int leapYear(int year) 

if(0 == year % 4 && 0 != year % 100 || 0 == year % 400) 
return 1; 
else 
return 0; 


/* 
*
函数名:dayMonth 
*
参数 :int month 
*
返回值:int 
*
功能 :返回每个月份对应的天数 
*/ 
int dayMonth(int month) 

switch(month) 

case 1: 
case 3: 
case 5: 
case 7: 
case 8: 
case 10: 
case 12: 
return 31; 
case 4: 
case 6: 
case 9: 
case 11: 
return 30; 
case 2: 
if(0 == year % 4 && 0 != year % 100 || 0 == year %400) 
return 29; 
else 
return 28; 


int main() 

inputDate(); 
leapYear(year); 
dayMonth(month); 
nextSceond(); 
return 0; 
}

九、

递归(recursion:程序调用自身的编程技巧。

  递归满足2个条件:

    1)有反复执行的过程(调用自身)

    2)有跳出反复执行过程的条件(递归出口)

 

递归例子:

1)阶乘

         n! = n * (n-1) * (n-2) * ...* 1(n>0)

//阶乘

int recursive(int i)

{

         int sum = 0;

         if (0 == i)

                   return (1);

         else

                   sum = i * recursive(i-1);

         return sum;

}

2)河内塔问题

http://images./blog/202865/201302/21233227-fdbdf31ae5fe4ab7915f7b4352075ace.png

//河内塔

void hanoi(int n,int p1,int p2,int p3)

{

         if(1==n)

                   cout<<"盘子从"<<p1<<"移到"<<p3<<endl;

         else

         {

                   hanoi(n-1,p1,p3,p2);

                   cout<<"盘子从"<<p1<<"移到"<<p3<<endl;

                   hanoi(n-1,p2,p1,p3);

         }

}

3)全排列

  n个不同元素中任取mm≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

  1,2,3三个元素的全排列为:

  1,2,3

  1,3,2

  2,1,3

  2,3,1

  3,1,2

  3,2,1 

//全排列

inline void Swap(int &a,int &b)

{

         int temp=a;

         a=b;

         b=temp;

}

void Perm(int list[],int k,int m)

{

         if (k == m-1)

         {

                   for(int i=0;i<m;i++)

                   {

                            printf("%d",list[i]);

                   }

                   printf("n");

         }

         else

         {

                   for(int i=k;i<m;i++)

                   {

                            Swap(list[k],list[i]);

                            Perm(list,k+1,m);

                            Swap(list[k],list[i]);

                   }

         }

}

4)斐波那契数列

  斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1123581321……

  这个数列从第三项开始,每一项都等于前两项之和。

  有趣的兔子问题:

http://images./blog/202865/201302/21233239-44eda56a157844398e147ecaa5441486.png

 

  一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?

  分析如下:

  第一个月小兔子没有繁殖能力,所以还是一对;

  两个月后,生下一对小兔子,总数共有两对;

  三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,总数共是三对;

  …… 

  依次类推可以列出下表:

http://images./blog/202865/201302/21233247-26fa42141a6a42e48c25e9114dd0003c.png

//斐波那契
long Fib(int n)
{
 if (n == 0) 
  return 0;
 if (n == 1) 
  return 1;
 if (n > 1) 
  return Fib(n-1) + Fib(n-2);
}

十、

最精确的方法是接一个电流取样电阻1欧姆足够了,然后在电阻两端采集电压,然后减法器,减去4mA所产生的电压,再经过同向(反向)放大器,你需要选取合适的放大倍数,如果用1欧姆的采样电阻的话,需要将信号放大250倍,然后输出。 还有一种方法就是通过三极管的电流放大,把电流的输出接在三极管的基极上,然后三极管射级加一个电流采样电阻,你可以直接用这个电阻上的电压输出也可以经过适当的放大再输出。 还有一种办法是用电流互感器,实际上就是初级阻抗一定的变压器。当输入电流变化的时候,由欧姆定律可知初级线圈上的电压也在变化,通过变压器的升压,可以得到你想要的0-5V,这个变压器制作稍微麻烦点。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多