数字量输入输出与抗干扰设计技术.docx
《数字量输入输出与抗干扰设计技术.docx》由会员分享,可在线阅读,更多相关《数字量输入输出与抗干扰设计技术.docx(19页珍藏版)》请在冰豆网上搜索。
数字量输入输出与抗干扰设计技术
可控硅型光耦
还有一种光耦是可控硅型光耦。
例如:
MOC3063、IL420;它们的主要指标是负载能力;例如:
MOC3063的负载能力是100mA;IL420是300mA;
MOC3020、MOC3021、MOC3023、MOC3030可控硅驱动输出。
MOC3040、MOC3041、MOC3061、MOC3081过零触发可控硅输出
双向可控硅过零电压触发驱动电路(MOC3040应用电路)
双向可控硅过零电压触发驱动电路(MOC3040应用电路)
这种器件是一种单片机输出与双向可控硅之间较理想的接口器件。
它由输入和输出两部分组成,输入部分是一砷化镓发光二极管。
该二极管在5~15mA正向电流作用下发出足够强度的红外线,触发输出部分。
输出部分是一硅光敏双向可控硅,在紫外线的作用下可双向导通。
该器件为六引脚双列直插式封装,其引脚配置和内部结构见下图:
有的型号的光耦合双向开关可控硅驱动器还带有过零检测器。
以保证电压为零(接近于零)时才可触发可控硅导通。
如MOC3030/31/32(用于115V交流),MOC3040/41(用于220V交流)。
下图是过零电压触发双向可控硅驱动器MOC3040系列的典型应用电路。
【例2】用过零触发可控硅控制交流灯泡【CAP11-双向可控硅-交流】
开关按下时,过零时灯亮;松开时,过零时熄灭。
【例3】用过零触发可控硅控制直流灯泡【通过CAP11-双向可控硅-直流】
【可以看出,开关按下时,灯亮;松开时,灯仍然亮,因为是直流电源,没有过零。
】
TLP521-1单光耦、TLP521-2双光耦、TLP521-4四光耦、TLP621四光耦
TIL113达林顿输出
TIL117TTL逻辑输出
PC814单光耦
PC817单光耦
H11A2晶体管输出
H11D1高压晶体管输出
H11G2电阻达林顿输
*过零触发含义是在零电压和零电流状态下导通可控硅,可以承受大的电流,同时触发完后免除了电流和电压的冲击,对可控硅的使用寿命有很好的保护作用
2.2线性光耦的选取原则
在设计光耦反馈式开关电源时,必须正确选择光耦的型号及参数,选取原则如下:
(1)光耦的电流传输比(CTR)的允许的范围是50%~200%,这是因为当CTR<50%时,光耦中的LED就需要较大的工作电流(IF>5.0mA),才能正常控制单片机开关电源IC的占空比,这会增大光耦的功耗。
若CTR>200%,在启动电路或者当负载发生变化时,有可能将单片开关电源误触发,影响正常输出。
(1)在控制系统与智能仪器中,被测物理量多为模拟量,而计算机只能接收数字量。
(2)在检测/控制系统中,必须先把传感器输出的模拟量转换成数字量,才能送到单片机进行数据处理,实现控制或显示。
(3)能够把模拟量转换为数字量的器件称为模/数转换器(简称A/D转换器)。
(4)经单片机处理后的以数字量输出。
(5)大多数执行机构只能接收模拟量(如电动执行机构、气动执行机构及直流电机等)。
所以必须把数字量变成模拟量,即完成数.模转换(简称D/A转换)。
可见:
A/D、D/A转换是单片机接收、处理、控制模拟量参数过程中必不可少的环节。
它们的使用方法是一致的,唯一的区别就是2803可以驱动8位管脚,2003只有7个管脚,COM脚的作用是当使用ULN2803(2003)来驱动继电器时,可以将COM脚接到继电器的VCC端,利用ULN2803(2003)内部的反向二极管作保护继电器,消除继电器闭合时产生的感应电压。
COM端主要有两种用途:
(可悬空)1试验用----接地:
假如它的输出端都接发光二极管,那么,只要将COM端接地,则所有的发光二极管都将亮起,否则,可能是二极管坏或其它什么地方坏了。
这对检修是很有利的。
2保护用----接电源正:
假如这个器件是接继电器或针式打印头,因为电感的作用,会在开关过程中产生低于地电位和高于电源电位的反电动势,这样,很容易击穿器件。
A-为了防止这种现象的发生,可将COM端接到电源正,来削减冲击电压低到二极管压降加电源电压的幅度----可以使得内部的三极管受到最小的正电压冲击。
B-至于达林顿关断时产生的负电压我们不必管,因为器件内部就有二极管并接到地的(见图2)----专门用来削减冲击电压至电源地减去一个二极管正向压降----可以使得内部的三极管受到最小的反偏电压冲击。
3阅读提示:
A-类似这样的保护方法,在许多器件(如AD7710)的输入端或输出端都是有的,请留意。
B-以上两种用法并不是矛盾的,通过适当的电路控制,可以一并利用它的功能。
它的内部结构也是达林顿的,专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。
ULN2003的输出端允许通过IC电流200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。
ULN2803的驱动负载电流为500mA,驱动电压50V。
3.达林顿驱动电路【在Proteus中,选“AnalogICs”,有ULN2003、ULN2803】
ULN2003和ULN2803都是集电极开路输出。
ULN2000和ULN2800系列是高压大电流达林顿晶体管阵列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的系统。
ULN2003适于5V的TTL,ULN2004适宜6-15V的CMOS。
输出电压
50V
50V
95V
50V
50V
95V
输出电流
500mA
600mA
500mA
500mA
600mA
50mA
型号
型号
普通
PMOS、
CMOS
ULN2001
ULN2011
ULN2012
ULN2801
ULN2811
ULN2821
14~25V
PMOS输入
ULN2002
ULN2012
ULN2022
ULN2802
ULN2812
ULN2822
5VTTL、CMOS
ULN2003
ULN2013
ULN2023
ULN2803
ULN2813
ULN2823
5~15V
PMOS、
CMOS输入
ULN2004
ULN2014
ULN2024
ULN2804
ULN2814
ULN2824
高输出TTL接口
ULN2005
ULN2015
ULN2025
ULN2805
ULN2815
ULN2825
ULN2000系列能够同时驱动7组高压大电流负载,ULN2800系列则能够同时驱动8组高压大电流负载。
其中:
1B~7B为输入,1C~7C为输出;1B~8B为输入、1C~8C为输出。
对ULN2000系列的引脚9接电源;对ULN2800系列的引脚10接电源;
【注意:
输出和输入为反向】
【例题】用74LS07、74LS245、ULN2003、ULN2823来驱动LED显示
#include【CAP11-4bit_ULN2003已通过】
unsignedcharcodeledmod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f};//共阴方式段码
voidDelay(unsignedintcount)
{unsignedchari;
while(count--)
for(i=0;i<120;i++);
}
voiddisp4_cathod(unsignedintx4)//共阴方式,公共端接低电平时显示
{unsignedcharpos=0x01;//因为ULN2003为反相输出;~(0x01)=0xFE
P2=pos;
P0=ledmod[x4%10];//ledmod[9];//个位
Delay(4);
pos=(pos<<1);//左移,最低位补0
P2=pos;
P0=ledmod[(x4/10)%10];//ledmod[8];//十位
Delay(4);
pos=(pos<<1);
P2=pos;
P0=ledmod[(x4/100)%10];//ledmod[4];//百位
Delay(4);
pos=(pos<<1);
P2=pos;
P0=ledmod[x4/1000];//ledmod[5];//千位
Delay(4);
}
voiddisp4_annode(x4)//共阳方式,公共端接高电平时显示
{unsignedcharpos2=0xfe;//~(oxFE)=0x01;
P3=pos2;
P1=~ledmod[x4%10];//个位
Delay(4);
pos2=(pos2<<1)|0x01;//左移,最低位补0,再或1,保持只有一位为0
P3=pos2;//经过ULN2803后,只有一位为1
P1=~ledmod[x4/10%10];//十位
Delay(4);
pos2=(pos2<<1)|0x01;
P3=pos2;
P1=~ledmod[x4/100%10];//百位
Delay(4);
pos2=(pos2<<1)|0x01;
P3=pos2;
P1=~ledmod[x4/1000];//千位
Delay(4);
}
voidmain()
{unsignedintx;
x=3659;
while
(1)
{disp4_cathod(x);
disp4_annode(x);
}
}
【教材P192的智能仪器】
74LS04(非门),输出高电平时的电流为400uA,输出低电平时的电流为8mA。
【教材上用74LS04来驱动六位LED是不合适的,可以换ULN2303】
电机模型在“Electromechanical”中,选择“MOTOR-STEPPER”
#include
#include
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
#define UP 20
#define DOWN 30
#define STOP 40
void delay()//延时程序
{
unsigned i,j,k;
for(i=0;i<0x02;i++)
for(j=0;j<0x02;j++)
for(k=0;k<0xff;k++);
}
main()//主函数
{
unsigned char temp;
while
(1)
{
if(p10==0)
{temp=UP;//控制正转
P2=0X00;//停止
delay();
}
if(p11==0)
{
temp=DOWN;//控制反转
P2=0X00;//停止
delay();
}
if(p12==0)
{
temp=STOP;//控制停止
P2=0x00;
}
switch(temp)
{
case DOWN :
P2=0X01;//控制反转 //0011
delay();
delay();
P2=0X02;//0110
delay();
delay();
P2=0X04;//1100
delay();
delay();
P2=0X08;//1001
delay();
delay();
break;
case UP :
P2=0X08;//控制正转
delay();
delay();
P2=0X04;
delay();
delay();
P2=0X02;
delay();
delay();
P2=0X01;
delay();
delay();
break;
case STOP :
P2=0X00;//控制停止
delay();
delay();
break;
}
}
}
【教材P179例题】
(1)稳压管在“Diode”中,稳压管“BZX284C3V0”,稳压范围2.94~3.06V;
(2)变压器在“Inductors”中选择;
(3)灯泡用“LAMP”选择;
(4)可控硅在“SwitchingDevice”中;
(5)交流220V在“Alternator”中。
具体的设置如下:
Amplitude为幅度,Frequency为频率。
Proteus变压器参数的设置
选“P”进入元件选择界面,在“Inductors”(电感)中,选“Transformors”,右边出现变压器器件列表,选择“TRAN-2P2S”后,点“OK”,这个是理想变压器的模型。
在“Inductor”(电感)下的“Transformers”下,目前最高版本7.8下共有以下7个变压器:
TRAN-1P2S
TRAN-2P2S
TRAN-2P3S
TRAN-2P5S
TRSAT2P2S
TRSAT2P2S2B
TRSAT2P3S
分别为单输出、有公共端的双输出和无公共端的双输出几种,你只要输入“TRAN-”就可以看到它们了。
【注意:
变压器的左边为源边,右边为副边】
连线完成后,在电路中,双击信号源,出现设置对话框,可以设置幅度和频率值及相位等属性。
【理想变压器的两线圈的电感之比,是等于其匝数平方之比】
再双击变压器,出现元件属性设置对话框,有原边和副边的电感电阻、耦合系数等值,根据理想变压器原副边匝数比公式
,设置原副边电感值,这里设置为5:
1。