GTL2002用于喷补收发器逻辑-收发器电压钳位(GTL-TVC)提供低通态电阻和最小广播延迟的高速电压转换
上传时间: 2013-10-29
上传用户:hasan2015
串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567
计算机应用中,有时需处理的信息不是数字量,而是一些随时间连续变化的模拟量,甚至是一些非电量,如温度、压力、速度等。模拟量的存储处理困难。首先将非电的模拟信号变成与之对应的模拟电信号,这要通过各种传感器来完成。计算机可处理的信息均是数字量(电脉冲信号)1和0,必须把要处理的模拟电量转换成数字化的电信号,这需要模拟(Analog)与数字(Digital)转换电路。数字到模拟转换:(Digital to Analog Convert, D/A) D/A转换电路是模拟电路加上电子开关。D/A转换电路的核心是一个运算放大器。运算放大器的特性:(Operation Amplifier) K->无穷大, V和->0 传递函数:V0 = -Vi * R0/Ri Ii->0, I和=If梯形R-2R电阻网络D/A转换器Ki受一个8位二进制代码控制 某位为1,对应开关K倒向右边; 某位为0,对应开关K倒向左边。Ki不论倒向哪边,均为接地VA-VH 的电位为: VREF,1/2VREF,..1/128VREFVO= -VREF *(1/2K7+1/4K6+…+1/256K0)V0= -(0-255/256)VREF 8位D/A转换器DAC0830系列器件国家半导体公司(NS)产品,0830、0831、0832。R-2R梯形电阻网络D/A转换器,双缓冲结构。单电源、低功耗、电流建立时间1uS。与微计算机接口方便。8位D/A转换器DAC0830系列器件ILE: 输入锁存允许; WR1#: 加载IN REG; WR2#: 加载DAC REG; XFER#: IN REG传到DAC REG; Iout1,Iout2: 外接OA输入; Rfb: 反馈电阻接OA输出; VREF: 参考电源,控制输出电压变化范围。
标签: AD转换
上传时间: 2013-10-16
上传用户:lu2767
本实验用DA转换+比较器的方法对外界模拟信号进行检测,同时这种联合装置加上CPLD可以代替低频AD转换器的功能。
上传时间: 2013-12-31
上传用户:zhanditian
编写一个单词转换程序,该函数具有一个char*参数.函数的功能: //* 将参数代表的字符串中的每个单词的第一个字母转换为大写字母, //* 并显示转换后的字符串.例如,假设函数参数的字符串如下: //* There are 100 students in the room. //* 那么采用函数转换后,该字符串为: //* There Are 100 Students In The Room.
上传时间: 2014-01-17
上传用户:开怀常笑
世界环境的日益恶化和传统能源的日渐枯竭,促使了对新能源的开发和发展。具有可持续发展的太阳能资源受到了各国的重视,各国相继出台的新能源法对太阳能发展起到推波助澜的作用。其中,光伏并网发电具有深远的理论价值和现实意义,仅在过去五年,光伏并网电站安装总量已达到数千兆瓦。而连接光伏阵列和电网的光伏并网逆变器便是整个光伏并网发电系统的关键。 本文根据逆变器结构以及光伏发电阵列特点,提出了基于DC-DC和DC-AC两级并网逆变器的结构。基于DC-DC和DC-AC电路的相对独立性,分别对DC-DC和DC-AC进行详尽分析,并提出了新的控制策略。在DC-DC转换器中,采用了Boost电路对太阳能阵列输出电压进行调制,并对系统进行最大功率点跟踪。针对固定电压法和扰动法跟踪最大功率点的缺点,提出三点最小二乘最大功率点跟踪的新算法,实验证明了该算法能够准确而迅速的跟踪系统最大功率点,从而提高系统的利用率,稳定系统的输出电压。在DC-AC转换器中,采用输出电流控制,根据正弦脉冲宽度调制的缺点,提出空间矢量脉冲宽度调制方法对逆变器进行控制,从而提高直流侧电压的利用率,减少谐波。基于SVPWM的控制原理,建立系统模型,结果表明输出电流与电网电压保持同相位,从而证明了该控制算法的可行性。 在提出新的控制策略的基础上,对2kW的三相并网逆变器进行硬件设计,包括主电路DC-DC和DC-AC,驱动电路以及电压电流检测电路,过零检测电路等,为类似结构的光伏并网逆变器提供了设计参考。
上传时间: 2013-07-16
上传用户:rishian
[学习要求]掌握A/D转换的基本概念和工作原理,掌握集成A/D转换器ADC0809的基本应用、设计方法与调试技术。[重点与难点]重点:集成A/D转换器的应用及主要性能指标。
上传时间: 2013-07-12
上传用户:ninal
本文首先介绍了利用FPGA设计数字电路系统的流程和雷达数字信号处理的主要内容。 在第二章中主要阐述了FIR数字滤波器的窗函数设计方法,并应用FIR滤波器设计数字动目标显示和数字动目标检测系统;脉冲压缩处理是现代雷达信号处理的一个重要组成部分,线性调频信号和二相巴克码的脉冲压缩处理方法在第三章做了重点描述。 Cyclone系列芯片是高性价比,基于1.5V、0.13um采用铜制层的SRAM工艺。它是第一种支持配置数据解压的FPGA芯片。论文设计的最后部分是利用Altera公司Cyclone系列FPGA芯片EP1C6F256C6和EPCS4配置芯片设计设计SD转换器,在QuartusⅡ4.0下采用VHDL语言和逻辑电路图结合的设计方法,经过仿真并最终实现了硬件设计。 设计结果表明电路性能可靠,SD转换的精度较高,完全满足设计的要求。
上传时间: 2013-06-26
上传用户:华华123
在传统的电力电子电路中,DC/DC变换器通常采用模拟电路实现电压或电流的控制。数字控制与模拟控制相比,有着显著的优点,数字控制可以实现复杂的控制策略,同时大大提高系统的可靠性和灵活性,并易于实现系统的智能化。但目前数字控制基本上限于电力传动领域,DC/DC变换器由于其开关频率较高,一般其外围功能由DSP或微处理器完成,而控制的核心,如PWM发生等大多采用专用控制芯片实现。FPGA由于其快速性、灵活性及保密性等优点,近年来在数字控制领域受到越来越多的关注。基于FPGA的DC/DC变换器是电力电子领域重要的研究方向之一。本文研究了同步Buck变换器的建模、设计及仿真,采用Xinlix的VIRTEX-Ⅱ PRO FPGA开发板实现了Buck变换器的全数字控制。 论文首先从Buck变换器的理论分析入手,根据它的物理特性,研究了该变换器的状态空间平均模型和小信号分析。为了获得高性能的开关电源,提出并分析了混杂模型设计方案,然后进行了控制器设计。并采用MATLAB/SIMULINK建立了同步Buck电路的仿真模型,并进行仿真研究。浮点仿真的运算精度与溢出问题,影响了仿真的精度。为了克服这些不足,作者采用了定点仿真方法,得到了满意的仿真结果。论文还着重论述了开关电源的数字控制器部分,数字控制器一般由三个主要功能模块组成:模数转换器、数字脉宽调制器(Digital PulseWidth Modulation:DPWM)和数字补偿器。文中重点研究了DPWM和数字补偿器,阐述了目前高频数字控制变换器中存在的主要问题,特别是高频状态下DPWM分辨率较低,影响控制精度,甚至引起极限环(Limit Cycling)现象,对DPWM分辨率的提高与系统硬件工作频率之间的矛盾、DPWM分辨率与A/D分辨率之间的关系等问题作了全面深入的分析。论文提出了一种新的提高DPWM分辨率的方法,该方法在不提高系统硬件频率的前提下,采用软件使DPWM的分辨率大大提高。作者还设计了两种数字补偿器,并进行了分析比较,选择了合适的补偿算法,达到了改善系统性能的目的。 设计完成后,作者使用ISE 9.1i软件进行了FPGA实现的前、后仿真,验证了所提出理论及控制算法的正确性。作者完成了Buck电路的硬件制作及基于FPGA的软件设计,采用32MHz的硬件晶振实现了11-bit的DPWM分辨率,开关频率达到1MHz,得到了满意的系统性能,论文最后给出了仿真和实验结果。
上传时间: 2013-07-23
上传用户:kristycreasy
由于旋转变压器的高精度高可靠性等特点,广泛的应用于如航空、航天、船舶、兵器、雷达、通讯等领域。旋转变压器输出模拟量交流信号,经过数字处理转换为数字角度信号才能进入计算机或其他控制系统,而这种数字处理比较复杂,采用专用的旋转变压器解码芯片想达到理想的精度通常需要较高的成本,限制了它在其他领域的应用。传统的角测量系统面临的问题有:体积、重量、功耗偏大,调试、误差补偿试验复杂,费用较高。 现场可编程门阵列(FPGA)是近年来迅速发展起来的新型可编程器件。随着它的不断应用和发展,也使电子设计的规模和集成度不断提高。同时也带来了电子系统设计方法和设计思想的不断推陈出新。 本文的目的是研究利用FPGA实现旋转变压器的硬件解码算法,设计基于FPGA的旋转变压器解码系统。 在本文所设计的系统中,通过FPGA芯片产生旋转变压器的激励信号,再控制A/D转换器对旋转变压器的模拟信号的数据进行采样和转换,并对转换完的数据进行滤波处理,使用基于CORDIC算法流水线结构设计的反正切函数模块解算出偏转角θ,最后通过串行口将解算的偏差角数据输出。本文还分析了该系统误差产生的原因和提高系统精度的方法。 实验结果表明,本文所设计的旋转变压器解码器的硬件组成和软件实现基本能够较精确的完成上述的信号转换和数据运算。
上传时间: 2013-05-23
上传用户:gdgzhym