为提高系统工作可靠性,尤其是系统供电的可靠性,经常需要提供两路稳定可靠性的工作电源,在一路电源出现故障时可以迅速切换到备路电源,但是切换电路的设计需要和系统进行适当的匹配设计,否则在电源主备路切换继电器在进行切换时,有可能导致系统工作异常,本文对故障产生原因进行了分析,对切换电路提出了优化改进方案,并通过试验验证了优化方案的正确性和可行性。
上传时间: 2013-11-09
上传用户:fdmpy
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
该系统采用STM32F103作为主控芯片,通过CAN总线控制多个电源模块并联工作并使其电流平均,达到大功率输出的目的。系统具有多种工作模式和外设接口,人机界面友善。实际应用表明,系统工作稳定,达到设计要求。
上传时间: 2013-11-09
上传用户:黄蛋的蛋黄
热插拔表示一个系统在输入端、输出端和信号总线都处于工作状态的情况下,安装或拆卸电源模块的能力。热插拔冗余电源系统增加了系统的容错程度,这对于要求紧急停机的系统格外需要。 为了实现一个热插拔电源系统,设计者应当深入了解一些电气方面的有关问题,比如冗余技术和电流共享,并且他还应当对散热、安全性和机械方面的问题加以注意。 电源系统的冗余通常用n+x的方法来描述,这里的n代表在满足系统最大供电要求时所需要的电源模块数量,x表示所安装附加电源模块的数量。所以,一个n+1的系统就表示系统有比能提供最大负载电流条件下所需最少的电源模块数还多1个的电源模块。 正如其它冗余电源系统一样,在热插拔系统中加上更多的电源模块可以增加冗余度,所以,如果在一个系统中安装了比能支持最大系统负载所需要的最少模块还多x个的电源模块,就能够在有x个模块失效的情况下仍保证维持系统全部正常工作。
上传时间: 2013-11-07
上传用户:gundamwzc
同步整流技术简单介绍大家都知道,对于开关电源,在次级必然要有一个整流输出的过程。作为整流电路的主要元件,通常用的是整流二极管(利用它的单向导电特性),它可以理解为一种被动式器件:只要有足够的正向电压它就开通,而不需要另外的控制电路。但其导通压降较高,快恢复二极管(FRD)或超快恢复二极管(SRD)可达1.0~1.2V,即使采用低压降的肖特基二极管(SBD),也会产生大约0.6V的压降。这个压降完全是做的无用功,并且整流二极管是一种固定压降的器件,举个例子:如有一个管子压降为0.7V,其整流为12V时它的前端要等效12.7V电压,损耗占0.7/12.7≈5.5%.而当其为3.3V整流时,损耗为0.7/4(3.3+0.7)≈17.5%。可见此类器件在低压大电流的工作环境下其损耗是何等地惊人。这就导致电源效率降低,损耗产生的热能导致整流管进而开关电源的温度上升、机箱温度上升--------有时系统运行不稳定、电脑硬件使用寿命急剧缩短都是拜这个高温所赐。随着电脑硬件技术的飞速发展,如GeForce 8800GTX显卡,其12V峰值电流为16.2A。所以必须制造能提供更大输出电流(如多核F1,四路12V,每路16A;3.3V和5V输出电流各高达24A)的电源转换器。而当前世界的能源紧张问题的凸现,为广大用户提供更高转换效率(如多核R80,完全符合80PLUS标准)的电源转换器就是我们整个开关电源行业的不可回避的社会责任了。如何解决这些问题?寻找更好的整流方式、整流器件。同步整流技术和通态电阻(几毫欧到十几毫欧)极低的专用功率MOSFET就是在这个时刻走上开关电源技术发展的历史舞台了!作为取代整流二极管以降低整流损耗的一种新器件,功率MOSFET属于电压控制型器件,它在导通时的伏安特性呈线性关系。因为用功率MOSFET做整流器时,要求栅极电压必须与被整流电压的相位保持同步才能完成整流功能,故称之为同步整流。它可以理解为一种主动式器件,必须要在其控制极(栅极)有一定电压才能允许电流通过,这种复杂的控制要求得到的回报就是极小的电流损耗。在实际应用中,一般在通过20-30A电流时才有0.2-0.3V的压降损耗。因为其压降等于电流与通态电阻的乘积,故小电流时,其压降和恒定压降的肖特基不同,电流越小压降越低。这个特性对于改善轻载效率(20%)尤为有效。这在80PLUS产品上已成为一种基本的解决方案了。对于以上提到的两种整流方案,我们可以通过灌溉农田来理解:肖特基整流管可以看成一条建在泥土上没有铺水泥的灌溉用的水道,从源头下来的水源在中途渗漏了很多,十方水可能只有七、八方到了农田里面。而同步整流技术就如同一条镶嵌了光滑瓷砖的引水通道,除了一点点被太阳晒掉的损失外,十方水能有9.5方以上的水真正用于浇灌那些我们日日赖以生存的粮食。我们的多核F1,多核R80,其3.3V整流电路采用了通态电阻仅为0.004欧的功率MOSFET,在通过24A峰值电流时压降仅为20*0.004=0.08V。如一般PC正常工作时的3.3V电流为10A,则其压降损耗仅为10*0.004=0.04V,损耗比例为0.04/4=1%,比之于传统肖特基加磁放大整流技术17.5%的损耗,其技术的进步已不仅仅是一个量的变化,而可以说是有了一个质的飞跃了。也可以说,我们为用户修建了一条严丝合缝的灌溉电脑配件的供电渠道。
标签: 同步整流
上传时间: 2013-10-27
上传用户:杏帘在望
AS1792直流稳压电源是由四路完全独立的稳压电源组成。其中一路稳压电源为0~30V连续可调稳压电源,并有两个电表分别指示该路电源的输出电压和负载电流。其它三路当中有两路是12V稳压电源,另一路是5V稳压电源。四路直流稳压电源的最大负载电流均为2A,机内并设有限流保护电路。
上传时间: 2013-11-02
上传用户:qiao8960
2THLxx可调恒流三极管系列产品 可调恒流三极管2THLxx(CRT)作为第二代半导体恒流器件,是一种能为LED 或其他器件在电源电 压变化时提供恒定电流的三端半导体器件,它和第一代产品CRD 的应用是兼容的。它利用一个可调整端, 通过外部元件在一定范围内连续调节其输出电流,实现简单可靠的恒流源或最大峰值电流限制电路,即 使出现电源电压供应不稳定或是负载电阻变化很大的情况,都能确保供电电流恒定。该器件具有外围电 路非常简单、输出电流可调、使用及其方便等特点,尤其适用于可调光LED 照明、动态LCD 背光、汽 车电子、通信电路、手持设备、仪器仪表和微型机器等场合。如果不用可调整端(空),和第一代产品 CRD 的使用完全相同。 ■ 电气特性
上传时间: 2014-01-09
上传用户:彭玖华
第八章 labview的编程技巧 本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。 8.1 局部变量 严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。在labview这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。在一般的代码式语言中,情况不是这样的。例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。前面所介绍的labview内容中,只有移位积存器即可输入又可输出。另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。还有其他需要,因此labview引入了局部变量。
上传时间: 2013-10-27
上传用户:xieguodong1234
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定义 sfr WDT_CONTR = 0xe1;//stc2051的看门狗?????? /**********全局常量************/ //写卡的命令 #define write_command0 0//写密码 #define write_command1 1//写配置字 #define write_command2 2//密码写数据 #define write_command3 3//唤醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //读卡的时间参数us #define ts_min 250//270*11.0592/12=249//取近似的整数 #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10调整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI总线 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//测试绿灯 sbit led_light1 = P1^5;//测试红灯 sbit led_light_ok = P1^1;//读卡成功标志 sbit fengmingqi = P1^5; /***********全局变量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存储卡上用户数据(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram uchar command; //第一个命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //缓存定时值,因用同一个定时器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //缓存定时值,因用同一个定时器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函数原型*****************/ //读写操作 void f_readcard(void);//全部读出1~7 AOR唤醒 void f_writecard(uchar x);//根据命令写不同的内容和操作 void f_clearpassword(void);//清除密码 void f_changepassword(void);//修改密码 //功能子函数 void write_password(uchar data *data p);//写初始密码或数据 void write_block(uchar x,uchar data *data p);//不能用通用指针 void write_bit(bit x);//写位 /*子函数区*****************************************************/ void delay_2(uint x) //延时,时间x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能频繁的复位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允许接收 //SCON =0x50; //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1, //REN=1允许接收 TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位) TCON = 0x40; //设定时器1 允许开始计时(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //启动定时器 WDT_CONTR = 0x3c;//使能看门狗 p_U2270B_Standby = 0;//单电源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//读卡 { EA = 0;//全关,防止影响跳变的定时器计时 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用唤醒功能来防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作码读0页 write_bit(0); write_password(&bankdata[24]);//密码block7 p_U2270B_CFE =1 ;// delay_2(516);//编程及确认时间5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断? while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定时器晚启动10个周期 //同步头 if((324 < a.W) && (a.W < 353)) ;//检测同步信号1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //读0~7块的数据 for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8个位 { //等待下降沿的到来 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再赋值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//读卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//写卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//写密码:初始化密码 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 for(i = 0;i < 35;i++) { write_bit(1);//写数据位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//测试使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密码存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡参数:初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密码写数据 { uchar data*data p; p = &bankdata[24]; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_password(p);//发口令 write_bit(0);//写锁定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//写数据 } else if(x == write_command3)//aor //唤醒 { //cominceptbuff[1]操作码10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密码 p_U2270B_CFE = 1;//此时数据不停的循环传出 } else //停止操作码 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密码 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密码 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作码10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//写新配置参数:pwd=0 //密码无效:即清除密码 DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密码 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密码 DATA = 0x80;//操作码10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//写新密码 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密码存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函数***********************************/ void write_bit(bit x)//写一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延时448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写0 } } /*******************写一个block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0数据 { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //读卡 f_writecard(command1); //写卡 f_clearpassword(); //清除密码 f_changepassword(); //修改密码 } }
标签: 12345
上传时间: 2017-10-20
上传用户:my_lcs
随着软开关技术和并联均流技术的发展,高性能的大功率高频开关电源的研究与开发已成为电力电子领域的重要研究方向。针对大功率电源在性能、重量、体积、效率和可靠性方面的要求,本文主要对高效率的开关电源主电路结构和并联均流控制技术进行研究,并研制出一种基于LLC谐振的交流电力机车智能控制充电机系统。交流传动电力机车对其所用的大功率蓄电池充电机的工作效率要求达到90%以上,这是采用硬开关技术的开关电源难以达到的。根据这种开关电源功率大、效率要求高的特点,充电机主电路采用了LLC谐振全桥电路的结构。选取谐振元件参数是设计LLC谐振全桥电路的重点和难点,本文通过建立LLC全桥谐振变换器的线性等效模型,详细分析了LLC谐振全桥的频率、短路和空载特性,提出一套完整的LLC谐振全桥电路结构的参数设计方法。本充电机最大输出电流为150A,为此设计采用了5个30A电源模块并联供电的模式。论文依据设计要求选取LLC谐振全桥电路的元件参数,利用 SABER仿真验证了参数的正确性:并完成了整个电源模块主电路其它器件的参数选择;控制电路采用通用PWM调制芯片SG2525实现PFM调频控制。实现了电源模块的高频ZVS(零电压开关)软开关,有效地提高了电源模块的转换效率,减小了单模块的体积。通过对几种常用的负载均流方法进行研究和电路分析,根据主从均流控制的特点,采用CAN总线实现主从均流法,数字均流的采用提高了系统的抗干扰能力;设计了监控模块对各电源模块和整体输出进行监控;通过CAN总线接口和人机接口的设计,提高了电源系统的智能化和可操作性。实现了多个电源模块并联供电的模式最后给出了电源模块的实验结果和电源系统并联运行的测量数据,实验证明了理论分析的正确性和设计方法的合理性。
上传时间: 2022-04-04
上传用户: