现代电路与系统论文可调光源驱动设计Word文档格式.docx

上传人:b****4 文档编号:6437537 上传时间:2023-05-06 格式:DOCX 页数:25 大小:417.72KB
下载 相关 举报
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第1页
第1页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第2页
第2页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第3页
第3页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第4页
第4页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第5页
第5页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第6页
第6页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第7页
第7页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第8页
第8页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第9页
第9页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第10页
第10页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第11页
第11页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第12页
第12页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第13页
第13页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第14页
第14页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第15页
第15页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第16页
第16页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第17页
第17页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第18页
第18页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第19页
第19页 / 共25页
现代电路与系统论文可调光源驱动设计Word文档格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

现代电路与系统论文可调光源驱动设计Word文档格式.docx

《现代电路与系统论文可调光源驱动设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《现代电路与系统论文可调光源驱动设计Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。

现代电路与系统论文可调光源驱动设计Word文档格式.docx

DDS,programmablecircuit,voltage-controlledcurrentsource,light-driven

目录

摘要I

AbstractII

1.绪论1

1.1研究背景1

1.2研究内容2

2.硬件电路设计3

2.1系统总体方案3

2.2数字频率合成器的设计3

2.2.1频率合成简介3

2.2.2数字频率合成原理4

2.2.3DDS硬件设计5

2.3程控放大电路7

2.4压控电流源的设计7

2.5补偿电路9

3.软件设计10

1.绪论

1.1研究背景

在医学临床诊断中,血液的氧分压(pO2)和酸碱度(pH值)是评估病人病理生理状态的两个重要监测指标。

在休克、呼吸衰竭、脑损伤等危重病人监护和重大麻醉手术中,需要通过频繁测定血液或组织的pO2和pH来评价病人的氧供需平衡和酸碱平衡状态。

目前,临床多采用常规血气分析仪,通过间歇性的动脉采血,对血样进行离体的化学分析得出pO2和pH等多参量信息。

常规血气分析存在几大缺点:

间断的血气快照无法准确地反映连续的生理事件;

通常只在发生不良反应后行血气分析,可能延误治疗;

非实时的离体分析存在血样改变或污染的风险;

多次采血还可能造成医源性贫血。

毋庸置疑,能对血液、组织甚至是单个细胞进行原位、实时、无创、多参量监测,己经成为生物医学临床和生命科学研究中的迫切需求。

为了同时测量生物体内的多参量信息,人们先后提出了各种各样的生物医学多传感解决方案,如电化学微阵列、片上实验室(Labonachip)、微全分析系统(μTAS)、生物微机电系统(BioMEMS)等。

它们都为微尺度下多参量的原位分析提供了可行的实现手段,但大多存在着需消耗被测物、可靠性较差、制造平台要求高、检测系统复杂等问题。

与上述传感方案相比,荧光光纤传感器集合了光纤传感的微小、抗电磁干扰、遥测,以及荧光传感的不消耗被测物、特异性强、包含多维信息(发射光谱、荧光强度、荧光寿命、荧光偏振等)等独特优点,从众多传感器中脱颖而出,成为现代生物医学传感领域的研究热点。

本文的设计是在一个光纤传感项目的基础上进行探讨,而且项目处于初步探索阶段,对猜想和数学模型进行验证和校正,因此,设计一个功能比较齐全的光源驱动是这个项目的第一步。

1.2研究内容

光源驱动的设计包括以下几个模块:

数字频率合成器、程控电压放大器、压控电流源、温度补偿电路以及负载热插拔检测电路。

数字频率合成器主要是生成所需的调制波形,这里使用双频自动切换技术,在输入相应参数后,系统可自动输出相应幅度、相位、单个频率波形持续时间、相位无缝频率转换。

程控电压放大器用于控制频率合成器的输出增益和滤波带宽,能有效降低噪声对波形的干扰。

压控电流源将上述两个模块输出的电压信号转换为驱动光源的电流信号,由于光源发射光强由电流直接控制(发射光波长由光源本身决定),由此实现光的调制。

至于温度补偿电路是为防止温度波动使得光源电流偏置发生漂移而设计的,对温度进行检测并反馈到压控电流源上。

负载热插拔检测电路属于保护性电路,实现空载时候电路的零功耗,降低电路的发热损耗。

2.硬件电路设计

2.1系统总体方案

光源驱动的设计包括以下几个模块:

图1光源驱动器总体设计图

2.2数字频率合成器的设计

2.2.1频率合成简介

频率合成就是以一个或几个参考源为基准,产生多个频率的过程。

频率合成技术是近代通信系统的重要组成部分,在无线电技术与电子系统的各个领域中得到广泛的应用。

各种新型的频率合成器和频率合成方案还在不断涌现,现在己达到比较成熟的阶段。

目前频率合成主要有三种方法:

直接模拟合成法(DirectsimulationFrequencysynthesis)、锁相环合成法(Phase-locklinkFrequencySynthesis即PLL)和直接数字合成法(DirectDigitalFrequencySynthesis)。

直接模拟合成法利用倍频(乘法)、分频(除法)、混频(加法与减法)及滤波,从单一或几个参数频率中产生多个所需频率。

直接频率合成中,基准信号通过脉冲形成电路,产生谐波丰富的窄脉冲。

该方法频率转换时间短(小于100ns),用这种方法合成的频率范围将受到限制,更重要的是由于采用大量的倍频,混频,分频,滤波等装置,使得频率合成器不仅带来了庞大的体积和重量,而且输出的谐波,噪声及寄生频率都难以抑制,目前己经基本不被采用。

锁相环合成法通过锁相环完成频率的加、减、乘、除运算。

该方法结构简单、便于集成,且频谱纯度高,目前使用比较广泛,但存在高分辨率和快转换速度之间的矛盾,一般只能用于小步进频率合成技术中。

DDS或DDFS是DirectDigitalFrequencysynthesis的简称,通常将此视为第三代频率合成技术。

它突破了前两种频率合成法的原理,从“相位”的概念出发进行频率合成。

这种方法不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位,还可以用DDS方法产生任意波形,它是把一系列数字量形式的信号通过DAC转换成模拟量形式的信号的合成技术。

2.2.2数字频率合成原理

DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。

奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散序列后可不可以由这些离散序列恢复出原始模拟信号的问题。

奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散序列无失真地恢复出原始模拟信号。

只不过在DDS技术中,这个过程被颠倒过来了。

DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。

DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成。

图2DDS原理图

假设系统时钟频率为fc,DDS系统输出频率为fo,当fo非常接近fc/2时,非谐波分量fc-fo也接近fc/2,且两者幅度趋于相等,这是很难设计出能滤除fc-fo分量的低通滤波器,这是DDS最大输出频率不取fc/2而取0.4fc的原因,因为实际的低通滤波器总存在一定的过渡带,在设计DDS最大输出频率是一定要留有一定的余量。

为了取出干净的主频fo,常在D/A输出端接入截止频率为fc/2的低通滤波器以抑制杂散信号。

图3DDS输出信号频谱分量

2.2.3DDS硬件设计

在DDS系统中,波形的幅度值被量化成数字值存储在ROM中,通过一组数据线输出代表二进制编码的电平信号。

为了将数字信号转换成模拟信号,需要用到数/模转换器,简称DAC(Digital-AnalogConverter)。

为了数据处理结果的准确性,DAC转换器必须有足够的转换精度,同时为了能够在较高频率下工作,它必须有足够快的转换速度。

因此,转换精度和转换速度是衡量DAC转换器性能优劣的主要指标。

本文的设计使用DAC902,这是带有12bits分辨率以及165M的转换速率的电流型DA转换器。

图4DAC902外围接口电路

本设计使用两片DAC902,一片负责对DDS输出内容进行转换,另一个为前者提供参考电压,假设DDS用的DAC1采样电阻使用2K欧姆和50欧姆的负载电阻,而为DAC1提供参考电压的DAC2使用内部参考源即1.24V,其满偏输出范围于0~1.25V,对应于最大电流摆幅0~20mA,因此DAC2应该使用63欧姆的负载电阻。

假设后面的电路增益为1,则DDS幅度调节精度为

在DAC后紧接着是带增益低通滤波器,由于项目需求,DDS输出可调频调幅,频率范围为1kHz~1MHz,这里使用的转换时钟为25MHz(或者50MHz),由上述,LPF通带范围为0.4fc,应为10MHz,其原理图如下:

图50dB增益的有源低通滤波器

这里的运放使用AD8656,其带宽与供电范围满足要求。

上图的低通滤波器幅频相频特性如下:

图6LPF幅频特性与相频特性

图7DAC+LPF的PCB布局

2.3程控放大电路

程控放大电路使用模拟开关实现不同增益通道的选通,但需要注意的是模拟开关的导通电阻随供电电压的增大而下降,而且存在导通电容,这里使用MAX4983的单刀双掷模拟开关芯片,这款芯片属于低压高速CMOS模拟开关,在5V的贡献下,导通电阻仅有8欧姆,寄生电容为5pF,

图8程控电路示意图

图中的开关均为模拟开关,程控电路工作流程如下:

C9与R18组成交流耦合,U3A组成电压跟随器,用于隔离和增加输出阻抗,U3B为可选增益反相放大电路,U4A则将U3B的负增益转化为正增益。

这里需要说明一点的是,对于精密仪表电路而言,使用模拟开关还需要考虑为消除开关电阻而进行的补偿,由于模拟开关的电阻随温度呈非线性关系,还可以对其建立数学模型以提高补偿精度。

2.4压控电流源的设计

在经过DDS与增益放大器后,将得到的调制电压信号转换为调制电流信号,这里使用双反馈电路设计压控电流源。

OP37运放属于高速运放,带宽比较宽,而且具有低偏置电流以及低失衡电压。

运放输出接入射极放大电路对电流进行放大,从而为光源提供足够电流。

R6属于采样电阻,这里使用大功率金属膜电阻。

图9压控电流源电路

图10模拟输入设置以及仿真结果

图11采样电阻上的波形

2.5补偿电路

为降低温度的波动对器件稳定工作的影响,引入温度补偿电路是很有必要的。

温度补偿电路如下所示:

图12简单的温度检测电路

U5A属于比较器,VRon_off用于数字输入,对温度补偿电路进行开关控制,当使能温度补偿电路,Q1导通使得+5V由R19、RT以及可调电阻共同决定补偿电压,补偿电路后面还可以接程控放大电路以进行非线性的温度补偿设定。

补偿信号则由加减法电路使得反馈信号进入控制电路:

图13加法减法电路引入反馈信号

3.软件设计

软件设计主要围绕着STM32与上位机的通信协议、STM32与FPGA的接口时序、STM32外围电路控制程序以及FPGA的DDS生成器。

STM32与上位机通信使用串口通信,在STM32方使用字节序列检测方法检测命令,命令由上位机决定,支持非定长命令与数据长度。

其流程图如下:

图串口通信协议流程

至于STM32关于LCD屏幕菜单、键盘及其他控制程序,由于篇幅有限,这里不详细说明。

STM32与FPGA通信采用8080时序,其接口有WR、RD、EN、RS、D0~D7,并行口的设计有助于降低FPGA的设计难度。

FPGA的DDS模块流程如下:

图FPGA的调制波流程图

DDS模块部分代码如下:

moduleSine_Waveform(sysclk,nrst,start,eint,sine_waveform_dout,ROM_addr,daclk);

parameterreg_freq_size=28;

//为保证输出精度,频率控制字位数不超过(频率累加位数-波形寻址位数)即reg_addrcnt_size-reg_outputaddr_size

parameterreg_cycle_size=4;

//最多可连续产生16个周期信号

parameterreg_addrcnt_size=32;

//累加寄存器

parameterreg_phase_size=reg_addrcnt_size;

//可调相位0到360度

parameterreg_outputaddr_size=10;

//输出12位分辨率精度,10位寻址,最多1024个采样点

if(!

nrst)

begin

daclk<

=0;

div_clk<

end

elseif(div_clk<

8'

h02)

=div_clk+1;

else

=~daclk;

end

//频率控制字计算公式如下:

//delta_f=2^(reg_addrcnt_size-reg_outputaddr_size)/(f_osc/f_define)

reg[reg_freq_size-1:

0]freq1;

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*pi

reg[reg_phase_size-1:

0]phase1;

reg[reg_phase_size-1:

0]phase2;

reg[reg_cycle_size-1:

0]cycle1;

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;

0]ROM_addr;

//截取查找地址

reg[31:

0]time_protect_cnt;

0]cycle_cnt;

reg[2:

0]state;

reg[19:

0]eint_pulse_width;

reg[1:

0]cycle_state;

0]start_edge;

//start端口上跳沿开始执行

always@(posedgesysclk)

begin

if(~nrst)begin

start_edge<

=3'

b000;

elsebegin

start_edge[2:

1]<

=start_edge[1:

0];

start_edge[0]<

=start;

regaction;

//dds动作使能位

begin

action<

if(start_edge[2:

1]==2'

b01)begin

action<

=1;

end

elseif(start_edge[2:

b10)begin

//有状态机完成

always@(posedgedaclk)

if(~nrst)begin

//参数控制

freq1<

=68710000;

//1M//3355;

//10K

freq2<

=103079000;

//500K//6711;

//20K

phase1<

phase2<

cycle1<

cycle2<

time_protect<

=32'

h00000000;

//实时运行参数

cycle_cnt<

cycle_state<

time_protect_cnt<

ROM_addr_cnt<

ROM_addr_cnt_shadow<

eint_pulse_width<

//中断信号

//eint<

//状态机状态

state<

/*

//elseif(action==0)begin//实际使用

elseif(start==0)begin//调试使用

=2'

b00;

*/

else

//if(action==1)begin//实际使用

//if(start==1)begin//调试使用

case(state)//state采用格雷码

3'

b000:

//从外部获取参数

/*freq1=频率控制字

freq2=phase1=初始相位位移

phase2=

cycle1=波形产生周期数

cycle2=

*/state<

b001;

end

3'

b001:

//初始化运行参数

cycle_cnt<

time_protect_cnt<

ROM_addr_cnt<

//ROM_addr_cnt_shadow<

eint_pulse_width<

=phase1;

ROM_addr_cnt_shadow<

=phase1[reg_addrcnt_size-1:

reg_addrcnt_size-reg_outputaddr_size-1];

state<

b011;

cycle_state<

b011:

//产生cycle1个周期的波形1

if(cycle_cnt<

cycle1)begin

//ROM_addr_cnt_shadow<

=ROM_addr_cnt;

=ROM_addr_cnt+freq1;

case(cycle_state)

2'

b00:

if(ROM_addr_cnt_shadow!

=ROM_addr_cnt[reg_addrcnt_size-1:

reg_addrcnt_size-reg_outputaddr_size-1])begin

cycle_state<

b01;

end

end

b01:

if(ROM_addr_cnt_shadow==ROM_addr_cnt[reg_addrcnt_size-1:

cycle_state<

b11;

b11:

cycle_state<

b10;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2