《光功率计设计思路》word版.doc_第1页
《光功率计设计思路》word版.doc_第2页
《光功率计设计思路》word版.doc_第3页
《光功率计设计思路》word版.doc_第4页
《光功率计设计思路》word版.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

光功率计的设计思路摘要本文首先对光功率计的组成原理进行了详细的分析,查阅大量资料并比较国内外产品的性能和价格,然后根据生产的实际需要进行低成本研发工作。在能满足生产的的要求基础上进行总体的设计规划,并给出各个电路的设计和说明,包括光探测器的选择、放大滤波电路的设计、AD转换、单片机控制、外围电路的设计、液晶显示电路、按键电路等设计。在选择芯片方面,我们尽量做到IC集成化,因为集成IC的整体功能更加稳定而且价格相对来说也比较便宜最后是对系统的各个模块的软件进行编写,我们摒弃用汇编语言开发下位机程序,而改用C语言,这样使得开发效率更高和程序的可读性更强。其中有下位机MCU自身的初始化,下位机MCU与外围芯片的通信,下位机与上位机的通信,上位机程序的书写等。关键词:单片机,智能仪表,光功率计1 绪论近年来,光纤通信已成为通信领域发展中的最前沿,它不仅在军用,而且在民用通信中也得到广泛应用。光纤通信系统的主要组件有:(1)光缆:它由一根或多根光纤、或光纤束制成的符合光通信要求的线缆。(2)光源:通常是可见光或红外光,常用光源是发光二极管(LED)和固体激光器。其光信号可以被调制,以使模拟信号或数字信号加至该光源的光束上。(3)检测器:它位于接收端,可将光信号转换为电信号。常用的检测器有PIN光电二极管或雪崩光电二极管,PIN光电二极管对低频信号有整流作用,但对射频信号和微波信号只有阻抗作用,因此可用来对信号进行控制。加反偏压或无偏压时,PIN的阻抗都很高。加正偏压时,载流子注入中间层,阻抗迅速变低。(4)连接口:光源到光缆的接口或光缆至检测器的接口都需要高效光学连接器,否则连接处会产生很大的信号损失。(5)标准通信电路:它位于光源前部和光检测器后部。八五一期间,我国光纤通信技术已进入迅速发展阶段,而近两、三年来,全国各省、市的有线电视系统又纷纷步入光纤传输。因此,光纤系统已担负起通信和广播电视两大信息传递任务。光纤通信的惊人发展,要求光纤测量技术和光纤测量仪器也必须同步发展起来。正如“任何科学领域的进步都依赖于对被研究对象做出精确测量”一样,光纤技术的进步也完全符合这一规律,电子测量仪器行业正面临着一个新的、广阔的市场。在整个光纤传输系统中,有源及无源部件如光发射机、光接收机、光接头、光耦合器、光隔离器等的接入对系统的传输特性都有相当大的影响,为了使系统达到应有的传输指标,必须对光缆、部件以及全系统进行一系列的检验和测量。例如,就拿光纤来说,在铺设前后都必须作检验,查一下有否断裂处,测量一下衰减变化。对于各部件而言,这些单元在安装进光纤系统后都会产生插入损耗量而引起系统指标的改变,因此,应进行插入功率损耗等参数的测量。当然,更重要的还有全系统指标功率、功率衰减及信噪比等传输特性的测量。据预测,在领导下一代通信测试的各类测试仪器中,光测试仪器成为最有潜力的仪器之一,光功率计正是诸多急待开发的光纤系统测量仪器中的常用的、重要的基础设备。它是光通信和光纤传感等一些高新技术领域中测试光功率、光衰减量必不可少的常用测量仪表。随着我国光纤应用技术的迅速发展,光功率计的需求量与日俱增,特别是用于工程施工现场的便于携带、操作简便、性能稳定的光功率计。目前国内所需的光功率计大多依靠进口,国外光功率计价格普遍偏高,所需配件品种多,使用操作也较复杂;而国内同类测试仪器存在价格偏高且测量精度偏低的不足。随着微电子技术的迅速发展,特别是单片机的出现和广泛应用,正在引起测量控制仪表领域的一场新的技术革命,测量仪器的智能化已成为现代仪器仪表发展的主要方向。智能光功率计是指含有微型计算机(pC)或微处理器,能对测量结果进行存储、运算处理及仪器本身能够按照人工的预先设置进行自动操作的具有智能特性的光功率测量仪器,它可广泛地应用于光通信、光学实验、激光医学、军事伪装及成像系统等方面。2 光功率计的设计2.1 光功率计的工作原理目前光功率测量方法有两种,一种是热转换型方式,其原理是利用黑体吸收光功率后温度的升高来计算光功率的大小,这种测量方法的优点是光谱响应曲线平坦、准确度高,缺点是成本高,响应时间长;另一种是半导体光电检测方式,一般被用来作为标准光功率计,本文也是采用这种检测方式。本次数字光功率计的内部机构如图2.1所示,将接收到的光信号投射在光探测器的光敏面上并由光电转换电路将其转变为电流,再经过l变换电路和放大电路得到电压信号,然后把这个信号送到低通滤波器进行滤波及响应度补偿放大,以得到与功率值相对应的电压,之后再将该电压经AD转换,以得到表示功率大小的数字量,最后通过CPU进行数据处理和判断后,将数据送入LCD显示器进行功率显示或指示。以下章节将分别讲解各个电路部分的设计和实现。图2.1 数字光功率计工作原理图2.2 光电转换电路设计光探测器是接收光的关键器件,它的功能是把光信号转换为电信号。目前常用的光检测器有PIN光电二极管和雪崩光电二极管(APD)2.2.1 光电二极管的工作原理光电二极管(PD)把光信号转换为电信号的功能,是由半导体PN结的光电效应实现的。在PN结的界面上,由于电子和空穴的扩散运动,形成内部电场。内部电场使电子和空穴与扩散运动方向相反的漂移运动,最终使能带发生倾斜,在PN结界面附近形成耗尽层。当入射光作用在PN结时,如果光子的能量大于或等于带隙(H仑Eg),便发生受激吸收,即价带的电子吸收光子的能量跃迁到导带形成光生电子一空穴对。在耗尽层,由于内部电场的作用,电子向N区运动,空穴向P区运动,形成漂移电流。在耗尽层两侧是没有电场的中性区,由于热运动,部分光生电子和空穴通过扩散运动可能进入耗尽层,然后在电场作用下,形成和漂移电流相同方向的扩散电流。漂移电流分量和扩散电流分量的总和即为光生电流。当与P层和N层连接的电路开路时,便在两端产生电动势,这种效应称为光电效应。当入射光变化时,光生电流随之作线性变化,从而把光信号转换成电信号。这种由PN结构成,在入射光作用下,由于受激吸收过程产生的电子空穴对的运动,在闭合电路中形成光生电流的器件,就是简单的光电二极管(PD)。根据结构的不同,光电二极管可分为P-N结型、PIN结型、雪崩型以及肖特基结型光电二极管(APD)。在光纤通信领域的应用中,为了克服光生载流子扩散时间长的缺点,在PN结间插入一层非掺杂或轻掺杂半导体材料,以增大耗尽区宽度W,达到减小扩散运动的影响,提高响应度的要求。由于PN结中间插入的半导体材料近似为本征半导体(Intrinsic),当管芯加上一定反向电压后,其耗尽区便可在整个I型层展开,亦即扩展了耗尽区,而光生载流子扩散区域则被压缩,这种结构的光电二极管称为PIN光电二极管。适合于光纤通信系统应用的光检测器有PIN光电二极管和雪崩光电二极管 (APD)。APD具有雪崩放大作用、响应度高,但附加噪声大、偏置电压高、温度稳定性差、结构复杂且价格高。因此作为光功率检测的仪器一般采用PIN光电二极管作为光电转换器件,所以通用光功率计一般是采用PIN光电二极管作2.2.2 PIN二极管的选择目前使用的PIN管主要有Si、Ge、InGaAs等,覆盖了从750nm到1800nm的波长范围,而PIN二极管型号的选择主要是根据所做光功率计的测量范围来确定的。常用的PIN二极管都是小信号工作器件,光敏面不合适,能接收的光功率范围很有限,所以一般不用来做光功率计的探测器。而InGaAsPIN是一种低噪声、高响应度的光电检测器,具有较高的测量灵敏度。当InGaAsPIN管接收光输入后,位于价带中电子吸收了光子而跃迁到导带,因而可产生一个电子空穴对。该电子空穴对若在耗尽区产生,那么在自建电场(PI管一般采用零偏压)的作用下,电子将向N区漂移,空穴向P区漂移,从而产生与输入光功率成正比的电流信号。InGaAsPIN的光响应度可达08A/W,波长范围为1100nm1700nm。故在本次设计上,基于暗电流、上升时间、带宽、偏置电压等综合考虑,我们最终采用InGaAs-PIN。表2.1 Si、Ge、InGaAs-PIN光电二极管的通用工作特性参数从表中可以得到,InGaAs-PIN用于长波长(1.3um和1.55um)系统,性能非常稳定,通常把它和使用场效应管(FET)的前置放大器集成在同一基片上,构成PINFET接收组件,以进一步提高灵敏度,改善器件的性能。这种组件已经得到广泛应用。新近研究的InGaAs-PIN的特点是响应速度快,传输速率可达到十几Gb/s,适用于高速光纤通信领域,下图为PIN光电二极管响应度与波长的关系。图2.2 PIN光电二极管响应度与波长的关系2.3 放大滤波电路的设计由于PIN二极管产生的光电流很小,不能直接用于测量,所以需要通过适当的低噪声放大后,再进行数据处理。光电探测器件往往都紧密连接一个低噪声前置放大器,它的任务是:放大光电探测器件所输出的微弱电信号:匹配后置处理电路与探测器件之间的阻抗。对前置放大器的要求是:低噪声、高增益、低输出阻抗、足够的信号带宽和负载能力,以及良好的线性和抗干扰能力。在结构上要求紧凑、靠近探测器件,良好的接地与屏蔽。低噪声前置放大器的设计,同一般放大器设计的根本区别是首先满足放大器的噪声指标,因此要考虑器件的选取和低噪声工作点的确立,还要满足信号源阻抗与放大器间的噪声匹配;其次要考虑电路的组态、级联方式及负反馈等以满足对放大器增益、频响、输入输出阻抗等方面的要求。另外,为了获得良好的噪声性能、通常还要采取避免外来干扰的多种措施。低噪声电路中,一般都选用金属膜电阻器和绕线电阻器,选用损耗较小的云母电容和瓷介电容来降低噪声,在大容量电容中,选用漏电流很小的钽电解电容。改多点接地为单点接地,这样就切断了地环流的干扰。通常在浮地端再用一个1.10k的电阻或一小电容接地,以加强对空间电磁场的屏蔽效果。光电探测器对于前置放大器的要求通常从两个方面考虑:一是要求功率传输最大,即放大器的输入电阻等于光电探测器内阻,工作于匹配状态,此时在一定的入射光功率情况下,从放大器输出端可得到最大输出电功率;其次,要求输出最小的噪声,即放大器工作在最佳源电阻的情况下,此时在放大器输出端可得到最大的信噪比。而在实际的光电探测系统中,最佳源电阻与匹配电阻往往是不相等的,的相差还很大。根据阻抗匹配及噪声要求,光电探测器通常常采用以下形式的前置放大电路,(1)低输入阻抗前置放大器低输入阻抗前置放大器可采用变压器耦合、晶体管共基极电路、并联负反馈及多个晶体管并联等作为放大器的输入级。此方案的优点是电路简单,不需要或只需要很少的均衡,动态范围较大,缺点是灵敏度低,噪声较高。(2)高输入阻抗前置放大器对于阻抗特别高的光电探测器,必须采用场效应管作为第一级输入电路,此方案的优点是噪声较低,缺点是动态范围小、高频分量损失太大对均衡电路提出很高要求(3)阻抗变换型放大电路(电流电压转换器)方案(3)频带宽(等效输入电阻很小)、低噪声(反馈电阻可以取得很大)、灵敏度高、动态范围大等综合优点,被广泛采用。由于PIN+运算放大器动态范围太小,精度也不够高,故在本次设计中不予采取;我们采用对数放大器,可以有很大的动态范围,同时又因为光功率的另一个单位dBmW(dBmW=1019(mW)的关系,就可以得到PIN二级管的输入光功率(P)和反偏电流(D的另一个非常线性的关系。这种设计方案集成化高,性能可靠,便于调试和校准。所以本此设计采用第三种放大电路,PIN管+对数放大器方案。众所周知,对数比放大器输入和输出呈对数关系,这样输入信号的动态范围可以很大。宽动态范围信号经过压缩之后,使用较低分辨率的测量电路既可实现信号精确测型1.71。假设输入信号范围从1 mV-10V,要求在l mV时的分辨率为l,为保证精度则在lV时分辨率就是0001。如果采用线性放大器,要求使用17位数模转换器。但是,如果采用对数比放大器,其输入动态范围为3个数量级,信号的分辨率保持l,则模数转换器用12位就可以了。此外,电路采用对数比放大器,不用切换量程,避免了换档误差,使得测量精度有很大的提高。在本次设计中我们采用AD8304芯片,下面是AD8304的内部原理图:图2.3 AD8304内部原理图它是一款动态范围为80 dB的对数比放大器,有专门的光电二极管接口,由内部提供光电二极管的偏置电压,使用方便。AD8304内部集成了温度补偿电路,提高了转换精度。其工作电压为3-5.5V。从功能上分,AD8304内部由两部分组成:对数比转换器和线性运算放大器。由于光电二极管输入的是微小的电流信号,对数比放大器完成电流到电压的对数比转换。在5 V电压时最大输出电压为5 V。为了适应不同的AD转换输入电压的要求,运算放大器作为缓冲级来调节这一电压值,以便最大限度地利用16 bAD转换的精度。由对数放大器输入和输出关系可以得到: (2-1) (2-2)式中:是AD831M输出电压;是光电二极管输出的电流;是光电二极管截止电流,一般为常数;和是常数,由芯片外部所接电阻网络决定:是光电二极管的响应度;是输入的光功率值。将(2-2)式代入(2-1)式可得: (2-3)可以看到,当(2-3)式中单位取mW时,(23)式P的单位即为dBm。而且式子中K:和G是常数,所以输出电压值和被测功率值P(以dBm表示)就成为简单的线性对应关系。这样避免了繁琐的对数运算,使得后继的程序处理和结果计算就变得简单了,以下是部分设计的电路图:2.4 单片机控制部分单片机由于具有功能强、体积小、功耗低、价格便宜、共组可靠、使用方便等特点被广泛应用于监控技术并使得工业生产更加现代化。C8051F02x系列器件使用Silicon Labs的专利CIP51微控制器内核。CIP51与MCS51TM指令集完全兼容,可以使用标准803x/805x的汇编器和编译器进行软件开发。CIP51内核具有标准8052的所有外设部件,包括5个16位的计数器/定时器、两个全双工UART、256字节内部RAM、128字节特殊功能寄存器(SFR)地址空间及8/4个字节宽的I/O端口。下面列出了一些在本次设计中用到的主要特性,更具体的细节请参见有关某一产品的具体资料:(1)高速、流水线结构的8051兼容的CIP51内核(可达25MIPS)(2)全速、非侵入式的在系统调试接口(片内)(3)真正12位(C805lF0201)ADC,带PGA和模拟多路开关(4)具有可编程数据更新方式64K字节可在系统编程的FLASH存储器(5)4352(4096+256)字节的片内RAM(6)可寻址64K字节地址空间的外部数据存储器接口(7)硬件实现的SPI、SMBusIIC和两个UART串行接口(8)5个通用的16位定时器(9)具有5个捕扭比较模块的可编程计数器定时器阵列(10)片内看门狗定时器、VDD监视器和温度传感器该MCU都可在工业温度范围(-45-+85)内用2.7V-3.6V的电压工作端口I/O、/RST和JTAG引脚都容许5V的输入信号电压2.4.1 复位电路设计任何微机都是通过可靠复位之后才开始有序执行应用程序的,所以系统复位电路的设计至关重要。单片机复位电路的结构并不复杂,且参考电路的形式较多,以下图最基本的RC复位电路来说明在本次设计中用到的复位电路。图2.5 基本复位电路该电路为低电平复位,S为手动复位开关,C可避免高频谐波对电路的干扰。从理论上说,51系列单片机复位引脚只要外加两个机器周期的有效信号即可复位,即只要保证t=RC2M(M为机器周期)便可。但在实际设计中,通常c取值为lOuF以上,忌通常取值lOk左右。实践发现,尼如果取值太小,则会导致RST信号驱动能力变差而无法使系统可靠复位。该电路还存在电源毛刺和电源缓慢下降(电压不足)等问题,而且调整RC常数改变延时会令驱动能力变差,所以在设计复位电路时,既要保证整个应用系统的可靠复位,又要考虑复位电路应具有较好的抗干扰能力。所以我们可以在复位电路增加续流二极管Dl,如下图2.6,对于改善复位性能,起到了重要作用。图2.6 增加放回路的RC复位电路2.4.2 晶振电路每个MCU都有一个内部振荡器和一个外部振荡器驱动电路,外部振荡器需要一个外部谐振器、并行方式的晶体、电容或RC网络连接到XTALl/XTAL2引脚(见图2.7),以下是本次设计的外部震荡电路:2.7 外部震荡电路2.4.3 AD转换电路由于C805IF020的ADC0子系统包括一个9通道的可编程模拟多路选择器 (AMUX0),一个可编程增益放大器(PGA0)和一个100ksps、12位分辨率的逐次逼近寄存器型ADC,ADC中集成了跟踪保持电路和可编程窗口检测器(见图2.8的原理框图)。图2.8 ADC0内部原理框图AMUX0、PGA0、数据转换方式及窗口检测器都可用软件控制特殊功能寄存器来控制。ADC0所使用的电压基准按“9x电压基准(C805IF020)”或“10 X14电压基准”选样。在本设计中,VREF采用AD8304内部输出的VREF,伏值为2 0V。2.4.4 与EEPROM通信的总线接口SMBUSSMBus0 I/O接口是一个双线的双向串行总线,SMBus0完全符合系统管理总线规范11版,与Pc串行总线兼容。系统控制器对总线的读写操作都是以字节为单位的,由SMBus接口自动控制数据的串行传输1241。SMBus0可以工作在主和/或从方式, SMBus0提供了SDA(串行数据)控制、SCL(串行时钟)产牛和同步、仲裁逻辑以及起始/停止的控制和产生电路。有三个与之相关的特殊功能寄存器:配置寄存器SMBOCF、控制寄存器SMBOCN及用于发送和接收数据的数据寄存器SMBODAT。图2.9 SMBus0接口电路图2.lO给出了一个典型的SMBus配置。SMBus0接口的工作电压可以在30V和5.0V之间,总线上不同器件的工作电压可以不同。SCL(串行时钟)和SDA(串行数据)线是双向的,必须通过一个上拉电阻或类似电路将它们连到电源电压。连接在总线上的每个器件的SCL和SDA都必须是漏极开路或集电极开路的,因此当总线空闲时,这两条线都被拉到高电平。图2.10 典型的SMBus配置2.4.5 电源部分交流电220V经变压、整流、滤波后得到直流电15V,然后通过DC-DC变换电路将直流电变为所需要的12V,12V除了给恒压控制回路和限流控制回路供电外,还经过DCDC变换器得到5V直流电,5V直流电给单片机模块供电。图2.11 电源设计电路图整流电路的任务是将交流电变换成直流电,这里采用的是桥式整流电路。滤波电路用于滤去整流输出电压中的纹波,在此选用的是由电容、电感组合而成的复式滤波电路。由于电抗元件在电路中有储能作用,故电容、电感具有平波作用。本次设计的电源系统最终要求实时输出我们想要的电压,故我们需要电压稳定的直流供电系统。本系统是将220V的交流电分别变为+5V单片机最小系统)和+12V(稳压、限流控制模块)的直流电压。3 软件部分3.1 下位机程序光功率计的程序分为上位机和下位机两个部分,下位机部分采用KEILC编写,为光功率计主体代码。上位机采用VC编,主要用于校准光功率计,也可用于平常使用,但使用时需要下位机配合。下位机上电复位后首先进入监控主程序,在开始的时候要先进行MCU初始化,包括晶振电路的选择和配置、定时器、端口设置、A/D转换、中断的开关等,然后再进入主循环,它的任务是识别命令、解释命令并获得完成该命令的相应模块的入口,并协调各部分软、硬件有条不紊地工作,光功率计系统主程序流程图如图3.1所示: 图3.1 主程序流程图程序片段如下:voidmain(void)SystcmInit();StateInit();GetBase(ALLBASE);/从EEPROM中得到参数库while(1)/主处理switch(MySystemCR堋Mode)根据运行模式选择子程序caseMODELP:/普通光功率计测量模式(含dBm和mw两种方法显示)RunLpDispose0;/普通光功率计模式运行子程序break;case MODE LP DIFF:/差值计算测量模式RunLpDiffDispose0;)break;case MODE SET ADDR:/机器地址设置模式RunSetAddrDispose0;break;caseMODE RL:/回损仪测量模式RunRlDispose0;break;c,ago MODE ADJ LP:/校准光功率计RunAdjLpDispose0;break;case MODE ADJ RL:/校准回损仪RunAajRIDispose0;break;default:RunLpDispose();保护:普通光功率计模式运行子程序)3.1.1 按键中断处理函数由于本系统包含的按键不多,使用频率不高,系统采用中断扫描工作方式,当有键按下的时候会先进入相应的中断,然后再执行扫描判断是哪个按键被按下,即只有当有键按下时才执行扫描任务,这样可以提高CPU的效率,避免空扫描。程序片段如下:voidScanKey(void)unsigned char keybuff2;if(KCONNET=0)if(KEYDELAY=o)PKEY=0:P4&=INX0;keybuff0=P4;P4I=INX0;P4&=一INXl:keybuff1=P4;P4INXl;keybuff1=4;keybuff1&=OxFO;keybufl0&=OxOF;keybuff0+=keybuff1;if(keybuffO!=0xFF)KEYDELAY=KEYDELAYTIMES;PKEY=keybuffO;elseKCONNET=O;3.1.2 USB编程固件是固化在单片机中的程序代码,它与USB控制器一起完成枚举过程和主机通信。设备端的USB程序主要可分为两个大的步骤:USB设备的枚举和USB数据通信控制,如果要让一个USB主机或设备能够识别一个USB设备,必须经过枚举过程,主机使用总线枚举来识别和管理必要的设备状态变化。只有完成了枚举,USB设备才可以使用。使用了PDIUSBDl2的端点0、端点1和端点2,端点0采用控制传输的数据传输方式,端点1采用普通输入输出,端点2采用批量传输的数据传输方式。上、下位机通过USS口进行数据传输,上位机向单片机发送命令,下位机接到命令后将存在外部RAM(AT28C56)中的数据传到上位机中。PDIUSBDl2的固件设计成完全的中断驱动,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试,下面是USB的主函数:Void USBmain(void)usbserve0; /*处理USB事件*/if(bEPPflags.bits.eP2_rxdone=1)RxScrve();/*从端点2收到数据*/DISABLE();/*数据处理*/bEPPflagsbitsep2_rxdone=O;/*清空端点2收到数据*/ENABLE();3.1.3 AD转换A/D转换后会自动进入相应的中断,以下是程序片段,开始的时候要进行A/D初始化,使A/D能按照我们想要的工作方式进行工作,具体说明参见程序中的注释:voidAdcInit(void)REFOCN=0x03; /使用ADC和DAC时BIASE位必须为1AMXOCF=Ox00; /所有的ADC为单端输入AMXOSL=0x00; /ADCIN0输入ADCOCF=Ox90; /采用外部时钟方式ADCCLK=24MHZADCOCN=0x80; /使能ADC,手动启动ADC,连续跟踪方式,右对齐PTESTAdcNum=O;PTESTAdcEnd=O;PTESTCOrgiAdc=O;/最后一次ADC转换测量的原值Unsigned char i;for(i=0;i3;i+)PTESTCAdci=0;PTESTCountVali=0;EIE2I=0x02; /使能ADC0中断根据ADC采集值转换为光功率值的方法存放在EEPROM中用于计算的数据库有三种,一种是ADC库,一种是K库,一种是B库。其软件转换的方法是将ADC转换出来的值与ADC库进行对比,设n=0,ADC库中存放的测试点总共为S,转换过来的ADC值为ADCx,ADC为ADC库中存放的数据。写一查找表程序使11从0至S,当ADCn=ADCxADC(n+1)时,暂存n值,然后根据n值从K库和B库中调用Kn和Bn,使用斜率公式Y=Kn*ADCx+Bn计算,结果Y就是此ADCx采集值所对应的光功率值。不同的波长需要做不同的曲线,每条曲线都要ADC库,K库,B库组成。当A/D转换完毕时会进入相应的中断,程序片段如下:Void AdcOInterrupt(void)interrupt 15PTEST.AdcAveragePTESTAdcNum=(unsigmxi int)ADCOH0xoff9)&(ADCOCF&0x07)-一0x0 1)/如果adc数值在倍数临界点以上ADCOCF&=0XfS;/PGA放大部数=1PTEST.AdeNum=0;/全部数据放弃,重新采集elsePTESTAdcNum+;)if(PTEST.AdcNum=ADCAVERNUM)/采集10次以做平均数/10次采完,做平均值unsignedint i;unsigned longbuf=O;for(i=O;I,ADCAVERNUM;i+)buf+=PTEST.AdcAveragei;)buf=buf/ADCAVERNUM;PTESTCOrgiAdc=(unsigned int)buf;if(ADCOCF & 0X01=0X01)/放大倍数=2时PTEST.COrgiAde=Ox8000;else放大倍数=1if(PTEST.COrgiAdc=0xofl9)/adc数值小于临界点ADCOCFI=0X01;/PGA放大倍数=2PTEST.AdeAum=0:PTEST:AdcEnd=l;ADCOCN & =(Ox20);3.1.4 与EEPROM通信与EEPROM的数据传输主要有从EEPROM读出数据和往EEPROM里写数据,程序片段如下:Uchar AT24CxxWriteByte(uchar c) /写函数uchari;ucharack;for(i=o;i8;i+)if(c&0x80)SET.SDA;elseCLR_SDA;EEPROM_Dday(EDEALY);SET_SCL;EEPROM_Delay(EDEALY);CLR_SCL;C=l;EEPROM_Delay(EDEALY);EEPROM_Delay(5*EDEALY);SET_SDA;EEPROM_Delay(EDEALY);SET_SCL;EEPROM_Setlnput0;EEPROM_Delay(5*EDEALY);If(P1&0x40)=0x40)ack=0;elseack=1;CLRSCL;EEPROM_Delay(5*EDEALY);EEPROM_SetOutput();return ack;Uchar AT24CxxReadByte(uchar*e,uchar ack) /读函数uchar i=o;uchar ret=O;SET_SDA;for(i=0;i8;i+)EEPROM_Delay(EDEALY);CLR_SCL;EEPROM_Delay(EDEALY);SET_SCL;EEPROM_Delay(EDEALY);ret=1;EEPROM_Setlnput();EEPROM_Delay(5*EDEALY);if(P1&0x40)=0x40)ret+:CLR_SCL;EEPROM_Delay(EDEALY);EEPROM_SetOutput0;AT24Cxx_ack(ack);*c=ret;return(ret);3.2 上位机程序上位机主要采用vc+6.0的MFC进行界面开发,它的主要功能是与下位机进行通信,并把数据显示在界面上,下面是上位机的界面开发

温馨提示

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

评论

0/150

提交评论