现代电路与系统论文-可调光源驱动设计_第1页
现代电路与系统论文-可调光源驱动设计_第2页
现代电路与系统论文-可调光源驱动设计_第3页
现代电路与系统论文-可调光源驱动设计_第4页
现代电路与系统论文-可调光源驱动设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号 1049721202900课程名称:现代电路与系统学 院:信息工程学院专 业: 电子与通信工程班 级: 信研 1203姓 名:杨顺生指导老师:娄平2013 年 6 月 11 日I摘 要本文的设计内容是基于一个光纤传感项目,主要是光源驱动的设计,设计中涉及数字频率合成器、程控电压放大器、压控电流源、温度补偿电路以及负载热插拔检测电路的设计,并对程控电路有了新的认识。通过理论分析、波形仿真和实际电路的搭建,深入理解了系统设计的技术思想。同时对基于直接数字频率合成技术的波形发生器的输出特性进行了分析,对输出波形频率带宽,频率分辨率进行了讨论,并在 ISE 中进行了系统设计,并在 Modelsim 中进行了仿真,并对数模转换器件参数及性能作了一定的认识。最后,本文基于光源驱动的性能优点上对今后实现技术进行了展望。关键字:数字频率合成器,程控电路,压控电流源,光源驱动IIAbstractThis design is based on a project associated with optical fiber sensing, mainly light-driven design, the design involves digital frequency synthesizer, programmable voltage amplifier, voltage-controlled current source, temperature compensation circuit and a load hot plug detect circuit design brought a new understanding of programmable circuits to me. Through theoretical analysis, waveform simulation and actual circuit building, I obtain in-depth understanding of the technical ideas of system design. At the same time, I analyzed output characteristics of the direct digital frequency synthesis technology based on waveform generator, discussed the output waveform frequency bandwidth, frequency resolution and carried out system design in the ISE and carried out simulation in Modelsim, and the parameters and performance of DAC members made a certain understanding. Finally, I will discuss the performance advantages of technology for future implementation based on the light source driving.Key Word: DDS, programmable circuit, voltage-controlled current source, light-driven目 录摘 要 IAbstract .II1. 绪论 .11.1 研究背景 .11.2 研究内容 .22. 硬件电路设计 .32.1 系统总体方案 .32.2 数字频率合成器的设计 .32.2.1 频率合成简介 .32.2.2 数字频率合成原理 .42.2.3 DDS 硬件设计 52.3 程控放大电路 .72.4 压控电流源的设计 .72.5 补偿电路 .93. 软件设计 .1011. 绪论1.1 研究背景在医学临床诊断中,血液的氧分压(pO 2)和酸碱度(pH 值)是评估病人病理生理状态的两个重要监测指标。在休克、呼吸衰竭、脑损伤等危重病人监护和重大麻醉手术中,需要通过频繁测定血液或组织的 pO2 和 pH 来评价病人的氧供需平衡和酸碱平衡状态。目前,临床多采用常规血气分析仪,通过间歇性的动脉采血,对血样进行离体的化学分析得出 pO2 和 pH 等多参量信息。常规血气分析存在几大缺点:间断的血气快照无法准确地反映连续的生理事件;通常只在发生不良反应后行血气分析,可能延误治疗;非实时的离体分析存在血样改变或污染的风险;多次采血还可能造成医源性贫血。毋庸置疑,能对血液、组织甚至是单个细胞进行原位、实时、无创、多参量监测,己经成为生物医学临床和生命科学研究中的迫切需求。为了同时测量生物体内的多参量信息,人们先后提出了各种各样的生物医学多传感解决方案,如电化学微阵列、片上实验室(Lab on a chip) 、微全分析系统(TAS) 、生物微机电系统(BioMEMS )等。它们都为微尺度下多参量的原位分析提供了可行的实现手段,但大多存在着需消耗被测物、可靠性较差、制造平台要求高、检测系统复杂等问题。与上述传感方案相比,荧光光纤传感器集合了光纤传感的微小、抗电磁干扰、遥测,以及荧光传感的不消耗被测物、特异性强、包含多维信息(发射光谱、荧光强度、荧光寿命、荧光偏振等)等独特优点,从众多传感器中脱颖而出,成为现代生物医学传感领域的研究热点。本文的设计是在一个光纤传感项目的基础上进行探讨,而且项目处于初步探索阶段,对猜想和数学模型进行验证和校正,因此,设计一个功能比较齐全的光源驱动是这个项目的第一步。21.2 研究内容光源驱动的设计包括以下几个模块:数字频率合成器、程控电压放大器、压控电流源、温度补偿电路以及负载热插拔检测电路。数字频率合成器主要是生成所需的调制波形,这里使用双频自动切换技术,在输入相应参数后,系统可自动输出相应幅度、相位、单个频率波形持续时间、相位无缝频率转换。程控电压放大器用于控制频率合成器的输出增益和滤波带宽,能有效降低噪声对波形的干扰。压控电流源将上述两个模块输出的电压信号转换为驱动光源的电流信号,由于光源发射光强由电流直接控制(发射光波长由光源本身决定) ,由此实现光的调制。至于温度补偿电路是为防止温度波动使得光源电流偏置发生漂移而设计的,对温度进行检测并反馈到压控电流源上。负载热插拔检测电路属于保护性电路,实现空载时候电路的零功耗,降低电路的发热损耗。32. 硬件电路设计2.1 系统总体方案光源驱动的设计包括以下几个模块:数字频率合成器、程控电压放大器、压控电流源、温度补偿电路以及负载热插拔检测电路。P C客户端S T M 3 2 F P G A D A C 1D A C 2I / V 转换 程控放大器压控电流源光源温度传感器 补偿电路插拔检测电流检测图 1 光源驱动器总体设计图2.2 数字频率合成器的设计2.2.1 频率合成简介频率合成就是以一个或几个参考源为基准,产生多个频率的过程。频率合成技术是近代通信系统的重要组成部分,在无线电技术与电子系统的各个领域中得到广泛的应用。各种新型的频率合成器和频率合成方案还在不断涌现,现在己达到比较成熟的阶段。目前频率合成主要有三种方法:直接模拟合成法(Direct simulation Frequency synthesis)、锁相环合成法(Phase-lock link Frequency Synthesis 即 PLL)和直接数字合成法(Direct Digital Frequency Synthesis)。直接模拟合成法利用倍频(乘法) 、分频( 除法)、混频(加法与减法)及滤波,从单一或几个参数频率中产生多个所需频率。直接频率合成中,基准信号通过脉冲形成电路,产生谐波丰富的窄脉冲。该方法频率转换时间短(小于 100ns),用这种方法合成的频率范围将受到限制,更重要的是由于采用大量的倍频,混频,分频,滤波等装置,使得频率合成器不仅带来了庞大的体积和重量,而且输出的谐波,噪声及寄生频率都难以抑制,目前己经基本不被采用。锁相环合成法通过锁相环完成频率的加、减、乘、除运算。该方法结构简4单、便于集成,且频谱纯度高,目前使用比较广泛,但存在高分辨率和快转换速度之间的矛盾,一般只能用于小步进频率合成技术中。DDS 或 DDFS 是 Direct Digital Frequencysynthesis 的简称,通常将此视为第三代频率合成技术。它突破了前两种频率合成法的原理,从“相位”的概念出发进行频率合成。这种方法不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位,还可以用 DDS 方法产生任意波形,它是把一系列数字量形式的信号通过 DAC 转换成模拟量形式的信号的合成技术。2.2.2 数字频率合成原理DDS 与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散序列后可不可以由这些离散序列恢复出原始模拟信号的问题。奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散序列无失真地恢复出原始模拟信号。只不过在 DDS 技术中,这个过程被颠倒过来了。DDS 不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。DDS 电路一般由参考时钟、相位累加器、波形存储器、D/A 转换器(DAC)和低通滤波器(LPF)组成。N 位加法器N 位寄存器波形存储器 DAC LFPN foNKA D参考时钟 fc图 2 DDS 原理图假设系统时钟频率为 fc,DDS 系统输出频率为 fo,当 fo 非常接近 fc/2 时,非谐波分量 fc-fo 也接近 fc/2,且两者幅度趋于相等,这是很难设计出能滤除 fc-fo 分量的低通滤波器,这是 DDS 最大输出频率不取 fc/2 而取 0.4fc 的原因,因为5实际的低通滤波器总存在一定的过渡带,在设计 DDS 最大输出频率是一定要留有一定的余量。为了取出干净的主频 fo,常在 D/A 输出端接入截止频率为 fc/2的低通滤波器以抑制杂散信号。图 3 DDS 输出信号频谱分量2.2.3 DDS 硬件设计在 DDS 系统中,波形的幅度值被量化成数字值存储在 ROM 中,通过一组数据线输出代表二进制编码的电平信号。为了将数字信号转换成模拟信号,需要用到数/ 模转换器,简称 DAC(Digital-Analog Converter)。为了数据处理结果的准确性,DAC 转换器必须有足够的转换精度,同时为了能够在较高频率下工作,它必须有足够快的转换速度。因此,转换精度和转换速度是衡量 DAC 转换器性能优劣的主要指标。本文的设计使用 DAC902,这是带有 12bits 分辨率以及 165M 的转换速率的电流型 DA 转换器。图 4 DAC902 外围接口电路6本设计使用两片 DAC902,一片负责对 DDS 输出内容进行转换,另一个为前者提供参考电压,假设 DDS 用的 DAC1 采样电阻使用 2K 欧姆和 50 欧姆的负载电阻,而为 DAC1 提供参考电压的 DAC2 使用内部参考源即 1.24V,其满偏输出范围于 01.25V,对应于最大电流摆幅 020mA,因此 DAC2 应该使用 63 欧姆的负载电阻。假设后面的电路增益为 1,则 DDS 幅度调节精度为241.24363.051VkV在 DAC 后紧接着是带增益低通滤波器,由于项目需求,DDS 输出可调频调幅,频率范围为 1kHz1MHz,这里使用的转换时钟为 25MHz(或者 50MHz) ,由上述,LPF 通带范围为 0.4fc,应为 10MHz,其原理图如下:图 5 0dB 增益的有源低通滤波器这里的运放使用 AD8656,其带宽与供电范围满足要求。上图的低通滤波器幅频相频特性如下:图 6 LPF 幅频特性与相频特性7图 7 DAC+LPF 的 PCB 布局2.3 程控放大电路程控放大电路使用模拟开关实现不同增益通道的选通,但需要注意的是模拟开关的导通电阻随供电电压的增大而下降,而且存在导通电容,这里使用MAX4983 的单刀双掷模拟开关芯片,这款芯片属于低压高速 CMOS 模拟开关,在 5V 的贡献下,导通电阻仅有 8 欧姆,寄生电容为 5pF,图 8 程控电路示意图图中的开关均为模拟开关,程控电路工作流程如下:C9 与 R18 组成交流耦合,U3A 组成电压跟随器,用于隔离和增加输出阻抗,U3B 为可选增益反相放大电路,U4A 则将 U3B 的负增益转化为正增益。这里需要说明一点的是,对于精密仪表电路而言,使用模拟开关还需要考虑为消除开关电阻而进行的补偿,由于模拟开关的电阻随温度呈非线性关系,还可以对其建立数学模型以提高补偿精度。2.4 压控电流源的设计在经过 DDS 与增益放大器后,将得到的调制电压信号转换为调制电流信号,8这里使用双反馈电路设计压控电流源。OP37 运放属于高速运放,带宽比较宽,而且具有低偏置电流以及低失衡电压。运放输出接入射极放大电路对电流进行放大,从而为光源提供足够电流。R6 属于采样电阻,这里使用大功率金属膜电阻。图 9 压控电流源电路图 10 模拟输入设置以及仿真结果9图 11 采样电阻上的波形2.5 补偿电路为降低温度的波动对器件稳定工作的影响,引入温度补偿电路是很有必要的。温度补偿电路如下所示:图 12 简单的温度检测电路U5A 属于比较器,VRon_off 用于数字输入,对温度补偿电路进行开关控制,当使能温度补偿电路,Q1 导通使得+5V 由 R19、RT 以及可调电阻共同决定补偿电压,补偿电路后面还可以接程控放大电路以进行非线性的温度补偿设定。补偿信号则由加减法电路使得反馈信号进入控制电路:图 13 加法减法电路引入反馈信号103. 软件设计软件设计主要围绕着 STM32 与上位机的通信协议、STM32 与 FPGA 的接口时序、STM32 外围电路控制程序以及 FPGA 的 DDS 生成器。STM32 与上位机通信使用串口通信,在 STM32 方使用字节序列检测方法检测命令,命令由上位机决定,支持非定长命令与数据长度。其流程图如下:串口配置开始串口中断 ?起导码 ?命令 1 操作命令 n 操作有效命令 ?命令字节比较检测 结束YNYNYN图 串口通信协议流程至于 STM32 关于 LCD 屏幕菜单、键盘及其他控制程序,由于篇幅有限,这里不详细说明。STM32 与 FPGA 通信采用 8080 时序,其接口有WR、RD、EN、RS、D0D7,并行口的设计有助于降低 FPGA 的设计难度。FPGA 的 DDS 模块流程如下:11开始等待调制输出指令读取配置寄存器内容产生频率为 w 1时长为 t 1 的正弦调制信号产生波形转换间隔时间调制波形产生完成中断信号产生频率为 w 2时长为 t 2 的正弦调制信号YN图 FPGA 的调制波流程图DDS 模块部分代码如下:module Sine_Waveform(sysclk, nrst, start, eint, sine_waveform_dout, ROM_addr, daclk);parameter reg_freq_size = 28; /为保证输出精度,频率控制字位数不超过(频率累加位数-波形寻址位数)即 reg_addrcnt_size-reg_outputaddr_sizeparameter reg_cycle_size = 4; /最多可连续产生 16 个周期信号parameter reg_addrcnt_size = 32; /累加寄存器parameter reg_phase_size = reg_addrcnt_size; /可调相位 0 到 360 度parameter reg_outputaddr_size = 10; /输出 12 位分辨率精度, 10 位寻址,最多 1024个采样点if (!nrst)begindaclk = 0;div_clk = 0;endelse if (div_clk8h02)begindiv_clk = div_clk+1;endelsebegindaclk = daclk;div_clk = 0;endend/频率控制字计算公式如下:/delta_f=2(reg_addrcnt_size-reg_outputaddr_size)/(f_osc/f_define)reg reg_freq_size-1:0 freq1;reg reg_freq_size-1:0 freq2;/相位初始位移 p 度(即 p/360*2*pi 弧度)的增量计算公式如下:1 弧度相当于频率控制字增加 2(reg_addrcnt_size-reg_outputaddr_size)/delta_p=2(reg_addrcnt_size-reg_outputaddr_size)*p_define/360*2*pireg reg_phase_size-1:0 phase1; reg reg_phase_size-1:0 phase2;12reg reg_cycle_size-1:0 cycle1;reg reg_cycle_size-1:0 cycle2;reg 31:0 time_protect;/ROM_addr 恒等于 ROM_addr_cnt 的高 reg_outputaddr_size 位reg reg_addrcnt_size-1:0 ROM_addr_cnt;reg reg_outputaddr_size-1:0 ROM_addr_cnt_shadow;reg reg_outputaddr_size-1:0 ROM_addr; /截取查找地址reg 31:0 time_protect_cnt;reg reg_cycle_size-1:0 cycle_cnt;reg 2:0 state;reg 19:0 eint_pulse_width;reg 1:0 cycle_state;reg 2:0 start_edge;/start 端口上跳沿开始执行always (posedge sysclk)beginif(nrst) beginstart_edge = 3b000;endelse beginstart_edge2:1 = start_edge1:0;start_edge0 = start;endendreg action;/dds 动作使能位always (posedge sysclk)beginif(nrst) beginaction = 0;endelse beginif(start_edge2:1 = 2b01) beginaction = 1;endelse if(start_edge2:1 = 2b10) beginaction = 0;endendend/有状态机完成always (posedge daclk)beginif(nrst) begin /参数控制13freq1=68710000;/1M /3355;/10Kfreq2=103079000;/500K/6711;/20Kphase1 = 0;phase2 = 0;cycle1 = 1;cycle2 = 1;time_protect= 32h00000000;/实时运行参数cycle_cnt = 0;cycle_state = 0;time_protect_cnt = 0;ROM_addr_cnt = 0;ROM_addr_cnt_shadow = 0;eint_pulse_width = 0;/中断信号/eint = 0;/状态机状态state = 3b000;end/*/else if(action = 0) begin /实际使用else if(start = 0) begin /调试使用state = 3b000;cycle_state = 2b00;eint_pulse_width = 0;end*/else begin/if(action = 1) begin /实际使用/if(start = 1) begin /调试使用case (state) /state 采用格雷码3b000 : begin/从外部获取参数/*freq1=频率控制字freq2=phase1=初始相位位移phase2=cycle1=波形产生周期数cycle2=*/state = 3b001;end3b001 : begin/初始化运行参数cycle_cnt = 0;time_protect_cnt = 0;ROM_addr_cnt = 0;/ROM_addr_cnt_shadow = 0;eint_pulse_width = 0;ROM_addr_cnt = phase1;ROM_addr_cnt_shadow=phase1reg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1;14state = 3b011;cycle_state = 2b00;end3b011 : begin/产生 cycle1 个周期的波形 1if(cycle_cnt cycle1) begin/ROM_addr_cnt_shadow = ROM_addr_cnt;ROM_addr_cnt = ROM_addr_cnt + freq1;case (cycle_state)2b00 : beginif(ROM_addr_cnt_shadow!=ROM_addr_cntreg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1) begincycle_state = 2b01;endend2b01 : beginif(ROM_addr_cnt_shadow=ROM_addr_cntreg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1) begincycle_state = 2b11;endend2b11 : beginif(ROM_addr_cnt_shadow!=ROM_addr_cntreg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1) begincycle_state= 2b10;endend2b10 : begincycle_state = 2b00;enddefault: beginendendcaseif(cycle_state = 2b10) begincycle_cnt = cycle_cnt + 1;endendelse begincycle_cnt = 0;ROM_addr_cnt = 0;ROM_addr_cnt_shadow = 0;state = 3b010;cycle_state = 2b00;end15end3b010 : begin/波形间保护间隔if(time_protect_cnt time_protect) begintime_protect_cnt = time_protect_cnt + 1;endelse begintime_protect_cnt = 0; /可省略ROM_addr_cnt = phase2;ROM_addr_cnt_shadow= phase2reg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1;state = 3b110;cycle_cnt = 0;cycle_state = 2b00;endend3b110 : begin/产生 cycle2 个周期的波形 2if(cycle_cnt cycle2) beginROM_addr_cnt = ROM_addr_cnt + freq2;case (cycle_state)2b00 : beginif(ROM_addr_cnt_shadow!= ROM_addr_cntreg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1) begincycle_state = 2b01;endend2b01 : beginif(ROM_addr_cnt_shadow= ROM_addr_cntreg_addrcnt_size-1:reg_addrcnt_size-reg_outputaddr_size-1) begincycle_state = 2b11;endend2b11 : beginif(ROM_addr_cnt_shadow!= ROM_addr_cntreg_addrcnt_size-1:reg_addrcnt_size-reg_outputadd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论