版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
济南大学毕业设计济南大学毕业设计2-1-毕业设计题目基于ARM的电阻抗成像系统激励信号源设计学院自动化与电气工程学院专业电气工程及其自动化二〇一PAGE49-摘要电阻抗成像技术EIT是一种主要应用于医学检查的新兴的成像技术。它在物体表面通过电极或磁场施加电流或电压,经过物体内部后,再测量物体的电参数,应用重组算法计算电参数的分布,得到物体内部结构的图像。本设计在分析研究国内外电阻抗断层成像技术现状基础上,了解了EIT的发展瓶颈和遇到的挑战。重点研究解决EIT的信号电源——恒流激励源,设计出基于DDS芯片的信号发生模块和以ARM处理器为控制核心的简易信号源。本设计中的信号源将EIT的信号源频带拓宽到了MHz以上。在高频下将能提取更丰富的复阻抗信息,为实现多频EIT技术提供了可能。EIT激励信号源系统主要包括以下几部分:信号发生部分,包括采用DDS芯片组成的信号源硬件电路模块和VI转换电路模块;输出检测部分,用IO采集与正弦波同频率的方波来计数频率值,采用ARM自带的AD对电流值进行实测,然后将数据送给处理器显示;显示部分,采用128×64点阵式液晶显示屏实时显示设定值和频率电流实测值。关键词:电阻抗成像;多频恒流激励源;DDS;ARM应用ABSTRACTElectricalimpedanceimagingtechnology(EIT)isakindofthenewimagingtechnologybeingmainlyusedinmedicalexamination.Itinjectelectriccurrentorvoltagethroughtheelectrodeorthemagneticfieldonobjectsurface,afterinternalobjects,measuringelectricparametersoftheobject,usingrestructuringalgorithmtocalculateelectricalparametersofthedistribution,tocalculatetheinternalstructureoftheimage.Intheanalysisofresearchonthebasisofdomesticelectricimpedancetomographyimagingtechnology,ThisdesignunderstandsthedevelopmentbottleneckofEITandthechallenges.ThisdesignfocusontheEITsignalpowersupply--constantcurrentsource.ItmakesoutasignalsourcebasedonDDSchipmoduleandtheARMprocessor.TheSignalsourceofEITinthedesignhasafrequencybandabovethe1MHz.underthehighfrequencywewillbeabletoextractmorecompleximpedanceinformation,inordertorealizemulti-frequencyEITtechnology.TheEITsignalsourcesystemmainlyincludesthefollowingseveralparts:signalpart,includingtheuseofDDSchipsourcehardwarecircuitmoduleandtheVIconversioncircuitmodule;Outputdetectionpart,IOacquisitionandsinewavewiththefrequencyofsquarewaveisusedtocountfrequencyvalues,usingARM'sownADtomeasurementofcurrentvalue,andthensenddatatotheprocessor;Displaypart,usingthe128*64dot-matrixLCDtodisplayrealtimefrequencyandcurrentvalue.Keywords:EIT;Multiplefrequencyconstantcurrentsource;DDS;ARMapplication目录摘要 IABSTRACT II1前言 11.1电阻抗成像技术(EIT)及其电源的国内外研究现状 11.2电阻抗成像技术的基本原理 21.3电阻抗成像技术的发展瓶颈及前景 32系统总体设计方案 42.1本设计主要解决的问题 42.2总体方案概述 42.3DDS技术的基础研究 53各硬件电路模块设计与相关芯片选型 73.1主控芯片ARM9处理器简介 73.1.1ARM9(S3C2440A)最小系统 73.2电源电路设计模块 83.3信号发生设计模块 93.3.1数字信号发生器方案设计 93.3.2直接数字式频率合成器DDS芯片的选定 93.3.3信号发生电路结构的设计 113.4输出检测模块的电路设计 163.5按键电路设计 163.6LCD液晶显示电路设计 173.7硬件原理图与PCB制图软件的简介 194程序设计及相关开发软件简介 204.1程序设计及开发环境介绍 204.2整体程序设计流程图 214.3按键扫描程序设计 224.4ARM控制AD9850信号发生程序 234.5频率检测和电流检测程序设计 254.6LCD12864液晶显示程序 255EIT激励信号发生器性能测试 275.1测试的前的准备 275.2测试步骤 275.3测试结果与数据分析 28结论 30参考文献 31致谢 33附录 34附录一.电路原理图 34附录二.部分ARM程序 37附录三.部分实物图和其他使用到的软件 48前言电阻抗成像技术(EIT)及其电源的国内外研究现状电阻抗成像技术(EIT)是生物电阻抗成像技术(biologicalelectricalimpedanceimaging,BEII)的一个重要分支。其他有关于BEIT的成像研究包括:电阻抗层析成像(ElectricalImpedanceTomography,EIT)、磁感应电阻抗成像(MagneticInductionTomography,MIT)、核磁共震电阻抗成像(MagneticResonanceElectricalImpedanceTomography,MREIT)、磁声层析成像(Magneto-AcousticTomo-graphy,MAT)、磁感应磁声层析成像(Magneto-AcousticTomographywithMagneticInduction)等一系列生物电阻抗层析成像方式。生物医学作为二十一世纪的朝阳产业,而在医学成像研究领域,电阻抗成像已然成为21世纪的成像领域的热点。不仅如此,在工业监测、无损探伤等研究方面电阻抗成像也引起了工业界的集大关注。电阻抗成像与CT(x射线计算机断层成像)、核磁共振(MRI)相比有着卓越的优势。它较之于前一代无损成像技术(包括结构成像、形态成像)有着更为显著的特点,电阻抗成像因为只是在物体表面操作实施,所以无创伤;也不使用放射性射线,所以无损害;因为无创无损,所以可以多次反复重复测量使用;并且因为造价低廉,成像设备相对简单,操作方便,所以相关产品更易推广[1]。电阻抗成像技术按照激励信号源的不同,可以分为注入式电阻抗成像,感应电流式电阻抗成像,多频电阻抗成像三种主要方式。注入式电阻抗成像是最初的传统成像方式,因为皮肤的角质层阻抗很大,电极放于皮肤之上,阻抗信息将受到皮肤阻抗很大的影响,所以电极上要注入电流信息采集时要测量电压。故激励信号源应是恒流电源。现在大部分EIT系统采用16个电极,少数采用32或者64个电极的。随着电极数量的增加系统的分辨率、成像的质量也会相应的提高,但是相应的难度也会增加,数据量增大,重组算法也会更加复杂。感应电流电阻抗成像(MREIT)是一种新兴的无接触式的EIT成像技术,不同于传统注入式电极。MREIT只是在需要成像的物体的周围安装几个线圈,并在线圈上施加交变电流,以在目标物体内产生感应电流,再在物体表面的不同点设置若干电极测量不同电极间的电参数(电导率或电容率),然后进行算法重组图像处理分析。感应电流电阻抗成像的优点在于他把输入信号和检测信号隔离开来了,相互间的干扰大大减小了。多频电阻抗成像(Multi-frequencyElectricalImpedanceTomography,MFEIT)是在传统注入式电极电阻抗成像的基础上进行的,他需要在一个电极上施加不同频率的电流,或者在不同位置组合的电极上施加电流,这就需要激励信号源能够很好地控制电流信号输出。另外,在多个频率下测得的物体的复阻抗信息更丰富,能够更好的对不同组织在不同频率下的状态分析,以确定是否正常或病变。还可以选择一个最适合的自己需要的复阻抗信息的频率来成像。国外的EIT研究历史长,涉及范围广,相对成熟,包括二维、三维EIT成像技术。近几年来北美、欧洲各个EIT研究小组之间的交流与合作很好地促进了EIT技术的发展[1]。这些研究小组中,有的小组已经从理论方法研究的基础上,开始了临床实践应用研究[1]。下表1-1是一些EIT研究情况的对比。表1.1目前EIT硬件系统研究的情况对比技术指标系统名称NCKCEIT3RPIACT4SheffieldMark3.5Dartmouth
H-FEIT电极个数3232-72864频率单一频19.53KHz多频多频多频分辨率16bits14bits12bits16bits采样频率500KHz1MHz500kHz1MHz成像类别静态式动态式动态式--图像重建算法NOSER算法NOSER算法反投影算法--国内的EIT技术方面的研究还处在初级阶段,但也发展迅速。电阻抗成像技术的基本原理电阻抗成像技术一般是通过在物体表面安装若干数量的电极,再在选定的电极上施加特定模式的电流,(或者是通过磁场施加电压)然后测量各电极的电压,再将这些测得的电流、电压数据,依据图像重建算法,构造出物体内部的未知阻抗图像。以上是电阻抗成像技术的基本实现方法。而21世纪医学成像之所以能够成为电阻抗成像技术(EIT)主要应用方面,是因为生物不同组织有不同的电导率和电容率(当然也可以是其他导电参数,主要是这两个),还因为就算是同一生物的同一部位的同一组织在病变时这些导电参数也会和正常时有所不同,甚至是明显不同。这样,电阻抗成像技术就能依据电导率的变化,找到病源所在了。而电阻抗成像技术(EIT)应用于其他方面的道理于此类似,根据不同环境下,物体电导率或电容率变化构建图像。进一步,导电参数的获得取决于加在选定电极上的电流信号,那么此激励信号的产生显得尤为重要了。电容率是指在外加电场的情况下材料的储电能力,电导率则表示材料的导电能力。直流信号和交流信号都能通过电阻小电导率高的材料,电容率高的材料却只能让交流信号通过。所以,本设计方案中就是设计这种具有一定指标的交流电激励信号。深刻理解电阻抗成像技术(EIT)及原理,从更深层次,定性,定量分析成像对其信号源的性能要求,才能更好的设计激励电源。电阻抗成像技术的发展瓶颈及前景一般的EIT电阻抗成像系统大致分为三部分:信号的注入与提取、信号与计算机接口通信、图象重建与显示。EIT技术的主要瓶颈是其空间分辨能力差。这是因为在EIT系统中,由于不同组织器官,导电特性不同,注入电流呈散射状,指向性很弱,稳定性差(与成像目标物体接触的很小电压也可能引起阻抗参数的很大的变化),数据处理难度大,因此重建图像的算法大都是近似处理的简化模型。因此成像分辨率很差。这也就造成了EIT分辨率差的结果。近些年来,提高图像的空间分辨力和复阻抗信息的提取一直是EIT技术进入临床应用的两大难题,是促进EIT发展道路上必须要清除的两大技术障碍,也是世界各研究小组长期奋斗的目标[2]。虽然EIT技术有上述诸多缺点,但是它也有着很广大的应用潜力和前景。在EIT系统中提取的复阻抗信息以及后期的算法重组得到的图像能够很好地反应目标物体的生理,物理信息,这些都能够用于对物体的内部病理或结构的诊断。也就是说复阻抗信息包含丰富的生理信息,因此如何增加复阻抗信息以及如何更好的提取复阻抗信息,是以后EIT发展需要解决掉的重要任务[2]。研究表明,复阻抗信息的虚部包含信息丰富,但它十分微弱,极难提取。大量研究还表明,虚部信息的丰富度随着激励源信号频率的增加而增加[2]。在不久的将来,相信电阻抗成像在下列方面得到长足发展:多频电阻抗成像、快速的重组算法、成像设备的硬件系统的提高、对体组织电特性的研究分析、电磁无接触式阻抗成像(EMIT)。系统总体设计方案本设计主要解决的问题多频MFEIT系统与常规的EIT技术相比,最重要的特点是MFEIT系统工作频带的延宽和所测频率数的增加。为了丰富复阻抗信息,增加激励信号源的频率,本设计将做出能提供MHz以上的激励信号的多频恒流激励源,并做出能够控制输出信号,显示输出信号的简易信号发生器(详细内容见第三章)。总体方案概述在本设计中,采用强大的嵌入式微处理器ARM9作为整个系统的控制、显示和输出检测核心。多频恒流激励源的信号发生模块是重点,激励信号发生模块采用AD公司生产的DDS直接频率合成器,通过ARM的控制产生多种频率的激励信号,然后经过放大电路,滤波电路,并将其经电压控制电流源(VCCS)电路转换成为生物电阻抗激励所需电流信号。另外,还有按键控制模块,LCD液晶显示模块,输出检测模块,电源模块等。输出检测部分:采用ARM自带的AD对电流值进行实测,频率检测电路对信号频率检测,然后将数据送给处理器显示等。具体各模块电路设计见第三四章,以下是总体系统结构框图(如图2.1示)图2.1总体系统结构框图DDS技术的基础研究DDS(DirectDigitalSynthesizer)是直接数字式频率合成器的英文缩写,它和DSP(DigitalSignalProcessing)数字信号处理一样是一种关键的数字化技术。直接数字频率合成(DDS)是从相位概念出发提出的直接合成所需要的波形的一种频率合成技术。通常相位累加器、波形存储ROM、D/A数模转换器和低通滤波器(LPF)构成了一个典型的直接数字频率合成器。典型的DDS原理框图如图2.2所示。图2.2典型的直接数字频率合成器原理框图假设参考时钟频率用fclk表示,相位累加器的位数用N表示,频率控制字用K表示,相位累加器对ROM的寻址位数用M表示,D为ROM数据位及D/A转换器的字长(以二进制表示的),输出信号的频率用fout表示[3]。那么,直接数字频率合成器的合成信号波的过程大致如下:在时钟fclk线的拉低拉高拉低的时序下,相位累加器以频率控制字K为单位累加,那么,波形ROM的地址就是相位控制字P和相位累加器输出的N位二进制码之和,按照此地址对波形ROM查找表,查找表后,得到幅度码S(n)再经D/A转换器输出阶梯形信号波,最后经过低通滤波器滤波处理使阶梯波趋于平滑,就产生了所需的激励波形(一般为正弦波)。当时钟频率给定后,频率控制字决定了输出信号的频率,频率分辨率由累加器位数决定。当需要产生方波时,DDS内部高速比较器就与上面产生的波形比较,就得到了方波。ROM的地址线位数决定相位分辨率,幅度量化噪声决定了ROM的数据位字长和DAC位数[2]。查表后得到的波形ROM地址不一样,波形ROM里面存放的幅度码也就不一样,产生的波形也就各不一样,所以DDS技术理论上可以产生所需的任意波形[3]。直接数字频率合成DDS技术和直接式频率合成技术、间接式频率合成技术相比较有着卓越的特点优点,这决定着以后它将得到广泛应用。(1)频率切换时间很短。可以近似认为频率控制字的传输时间就是它的频率切换换时间,为单个时钟周期。在时间上DDS的相位序列是离散的,在频率控制寄存器值K改变以后,以新的累加寄存器输出的累加相位数据去与频率频率控制数据相加得到输出频率,则要等到下一个时钟周期[3]。一般情况下,时钟频率是很高的,在10MHz以上时,转换时间是很短的。集成DDS产品的频率转换时间已经可达10ns的量级,而目前常见的锁相频率合成技术不可能达到10ns量级的。频率切换时间是衡量DDS直接数字频率合成器性能的一项很重要的标准[3]。(2)频率分辨率高。由式可知,频率分辨率就是DDS的最小变化量。也就是说累加器的位数决定了分辨率的大小,而累加器的位数是可以足够多的[3]。相比传统的频率合成技术是不可能有这么精细的分辨率的[3]。(3)集成度高,使用方便,DDS中集成了DAC和低通滤波器等现成模块,使用方便。DDS频率合成器也有着它自身结构决定的缺点,输出信号中杂散信号太多和输出信号带宽受限。DDS技术关系到信号的发生,对其深刻理解才能选好信号发生的方案,为整个系统设计奠定基础。各硬件电路模块设计与相关芯片选型主控芯片ARM9处理器简介以ARM9微处理器作为核心的典型的嵌入式系统具有一般嵌入式系统的所有优点:软硬件可裁剪,功能强大且专一,可靠性强,成本低,体积小易于携带,功耗低。在本设计方案中,我们选用三星公司的16/32位精简指令集(RISC)微处理器S3C2440A。S3C2440A微处理器因为其高性能、低功耗和微小型的特点,可被广泛的应用于手持设备和普通应用,其中成像系统S3C2440A基于ARM920T处理器核心,而ARM920T是一个16/32位RISC处理器,它是著名的AdvancedRISCMachines(ARM)公司设计的。与传统处理器核心ARM920T有着很多突出优点,实现了1.1MIPS/MHz的哈佛结构,MMU,AMBA总线等高速缓冲体系结构。这一结构支持独立的16KB数据Cache和16KB指令Cache,具有更高的指令和数据处理能力[5]。ARM920T采用5级整数流水线,指令执行效率更高。具有32位ARM指令集和16位Thumb指令集,支持32位的高速AMBA总线接口[5]。全性能的MMU,支持Android、WindowsCE、Linux等多种主流嵌入式操作系统[5]。S3C2440A的全静态设计,特别适用于对成本和功率敏感型的情况,因此具有简单、精致、低功耗等特点[5S3C2440A提供了一整套丰富的内部外设,为产品开发降低了成本。下面是本系统设计中主要用到的S3C●LCD控制器(最大支持4K色STN和256K色TFT)提供1通道LCD专用DMA●3通道UART(IrDA1.0,64字节发送FIFO和64字节接收FIFO)●2通道SPI●8通道10位ADC和触摸屏接口。8通道多路复用ADC,最高500KSPS和10位分辨率,内置FET给线性触屏接口。本设计中,用ARM作为控制器,可以是简单的不带OS的裸机程序,也可以是带操作系统的代码移植,这为以后Eit整个系统的搭建留了回旋的余地。ARM9(S3C2440A)最小系统能良好工作的最小系统包括最基本的电路:主芯片,稳定的电源管理模块电路和时钟电路,复位电路,适当的扩展端口模块。下面是以三星的S3C2440A图3.1ARM最小系统实物图它包含最基本的电源电路(5V供电)、复位电路、标准JTAG调试口、调试LED指示灯以及核心的CPU和存储单元等。电源电路设计模块在本EIT激励信号源设计中,需要供电的模块很多,但对电源要求并不高。ARM9最小系统、LCD12864液晶显示模块等需要5V直流供电,信号发生模块和输出检测模块的一些电路,如滤波电路,电压电流转换电路等要用到9V和5V的正负电源,或3.3V电压。所以本系统中,利用变压器集成稳压芯片制作出简易线性稳压电源。线性电源原理图如图3.2所示:图3.2线性电源原理图信号发生设计模块数字信号发生器软件方案设计查阅大量文献,归纳总结出,电阻抗成像多频激励恒流源设计的解决方案大多属于以下三种:(1)利用直接数字合成技术(DDS)产生正弦电压信号,并将其经电压控制电流源(VCCS)电路转换成为生物电阻抗激励所需电流信号。但这种设计方案大都只是仅仅产生激励信号,未能形成完整的硬件系统,更没有相关便携,操作方便的仪器仪表。(2)基于小规模CPLD/FPGA平台的多频恒流激励源设计,但该设计也是基于DDS技术的,运用FPGA与外部DA转换器实现DDS功能。这种设计需要熟悉硬件描述语言VHDL(或Verlog语言),并且对DDS原理应了如指掌,另外,FPGA价格昂贵,不利于以后产品的推广。所以,开发难度大,成本高,不宜选择此方案。(3)采用模拟分立元件或者单片压控函数发生器MAX038来产生正弦波,再通过放大电路,滤波电路,因为频率高,可能还需要光耦隔离电路。当然这种方式也不可能产生太高的输出频率。而其输出信号频率通过调节外接电容或电阻来调节也很不方便,无法实现频率步进调节,不便于扩展和较高的使用要求。电路的性能与外接元器件息息相关(外接的电阻电容对参数影响很大)。结果,产生的激励信号的频率不稳定、精度低、抗干扰能力很低、使用极为不便。与前三种方案相比,本设计方案有着显著优势:ARM9处理器的应用,为以后电阻抗成像整个系统的搭建及带操作系统的图像处理留有足够大的选择空间。采用AD公司生产的DDS直接频率合成器降低成本的同时,也使开发难度减小,使开发出操作简单,便携的发生器成为可能。直接数字式频率合成器DDS芯片的选定根据2.1.2章节可知,DDS芯片的性能指标主要有工作频率范围,频率切换时间,频率分辨率等等。下面是三款DDS直接数字频率合成器芯片简介:AD9952是一款完整高性能可程控直接数字高频合成器,特点如下400MHZ的内部时钟CLK,速度快[6]。内部集成14位(DAC)数模转换器。32位控制频率控制字,可快速转换频率,可以很小的步进调节频率,分别率高[4]。相位噪声≤−120dBc/Hz(1kHz偏移,DAC输出)。动态性能>80dBSFDR(AOUT为160MHz±100kHz偏移时)。与控制器I/O进行串行通信。支持大部分数字输入的5V输入电平,1.8V电源,程序控制或硬件控制低功耗模式。48引脚TQFP_EP封装,额定工作温度范围为−40°C至+105°C价格15.7$无样片。AD9850芯片也是完整高性能可程控直接数字高频合成器,特点如下可外置最高125MHZ的精密时钟源,AD9850的电路架构允许产生最高达到基准时钟频率一半(或62.5MHz)的输出频率[6]。内部集成14位(DAC)数模转换器共40位频率和相位控制字,可快速转换频率,可以以很小的步进调节频率,对于125MHz基准时钟输入,输出频率分辨率可以达到0.0291Hz[6]。40位控制字中,五位用于相位调节,能够调制出以180°、90°、45°、22.5°、11.25°或者是这些相角任意组合的相位的输出波形[6]。与控制器进行通用的并行或串行I/O通信,并行时是8位迭代加载方式支持大部分数字输入的5V输入电平,3.3V或5V单电源,程序控制或硬件控制低功耗模式(380mW(125MHz,5V)155mW(100MHz,3.3V))节省空间的超小型28引脚SSOP表面贴片封装,额定工作温度范围为−40°C至+85°C[6]。价格12.14$无样片AD9835是一款数控振荡器,简单的DDS芯片特点:5V电源最高50MHz时钟速率10位DAC数数模转换器低功耗16引脚TSSOP封装,温度适应范围:−40°C至+85°C6$有样片从性能的要求上,应选宽频带,高分辨率,高速率切换的芯片,首选AD9852,但从读写芯片的难易程度和价格上考虑,因为产品还处于研发实验阶段,还有许多理论方案去验证,所以我们选择性能中端的AD9850芯片是可以满足要求的。经过多方面考虑,DDS芯片最终选定为AD9850。图3.3AD9850管脚定义图D0~D7:并行8位数据输入口,串行是只有D7一个数据引脚。作用是给内部控制寄存器装入40位控制数据。AGND:模拟地。AVDD:模拟电源。DGND:数字地。DVDD:数字电源。W_CLK:字装入时钟信号,上升沿有效。FQ-UD:频率更新控制信号,时钟上升沿确定输入数据有效。CLK_IN:外部时钟信号输入IOUTB:“互补”DAC输出。IOUT:内部DAC输出端。RESET:复位端。RESET、DAC:外部复位连接端。VINN:内部比较器的“-”输入端。VINP:内部比较器的“+”输入端。信号发生电路结构的设计EIT信号发生电路主要包括以下四部分(1)基础DDS正弦激励信号发生电路应用AD9850芯片搭建该模块时应注意,尽量节省IO口,所以ARM9与AD9850采用串口很方便的实现串行通信而不是并行通信。在电路中,注意共地,加滤波电容等问题。基础信号发生电路原理图如图3.4所示图3.4基础激励信号发生电路原理图图3.5基础DDS信号发生模块PCB(2)信号放大电路基础信号发生模块AD9850产生正弦波的后,内部集成的高速电压比较器接受DAC后的正弦波(经过滤波之后的)输出,就可以产生方波输出。这为我们检测激励信号频率提供的很大的便利。在本设计方案中,在经过对方波放大后,以便达到IO口能识别的高低电平的范围。所以说,这里的放大电路实质上是输出检测电路频率检测的一部分。用高频高精度运放OP37组成电压负反馈放大电路。该放大电路可以实现增益值连续可调,最高稳定放大倍数为70倍。放大器的增益为:Au=R1/R3,R1连续可调。图3.6方波放大电路(3)滤波电路由于AD9850采用DDS技术,而DDS的输出信号有个不可避免的缺点,谐波信号多,杂散信号多,这就需要我们把无用的杂波滤除。根据模拟电路技术课程的学习,我们知道滤波电路大致分为有源滤波电路和无源滤波两种。考虑到功耗,这里我可以不妨先试一下无源滤波电路的效果,如果效果不好,再着手有源滤波器的搭建。在本设计中,由DDS方程可知AD9850的最高输出频率为时钟频率125MHz的一半,也就是62.5MHz,那么我们可以设计一个低通滤波器,因为网上有一些非常实用的滤波电路设计软件(如FilterSolutions10.0软件,他们能提供固定常用的滤波电路形式,这里省略不做详细介绍),只需要我们输入相关参数如中心截至频率,电路形式(巴特沃斯Butterworth,切比雪夫Chebyshev,贝塞儿)即可算出我们需要的电容电阻值,无须再公司推导。图3.7滤波电路设计软件操作界面电路图设计出来后,我们可以再到Multisim11.0里去仿真测试一下。最终的电路设计结果如图3-8所示图3.8七阶低通滤波电路(截止频率70MHz)(3)压控电流源电路压控电流源实质上是一种电压-电流转换电路,是一种电流源,理想电流源的性质是电阻抗无穷大,输出电流值不会因为负载的变化而变化。在EIT系统中,因为皮肤的角质层阻抗很大,电极放于皮肤之上,阻抗信息将受到皮肤阻抗很大的影响,所以电极上要注入电流信息,采集时要测量电压,而不是注入电压,采集电流。这种注入电流是驱动电流,属于压控电流源。电压转换成电流电路有经典的豪兰德(Howland)电流源电路,采用并联电流负反馈。这种并联电流负反馈电路有着重大的缺陷,电压输出效率不高,电压输出柔性差,因为反馈采样电阻占据了大部分电压。并且这种电流源电路对运放的开环放大倍数要求很高,电路阻抗也易随着负载[8]。另外有一种双运放的改进Howland电流源电路,如图,但不能消除直流信号,并要求外接精密电阻R1=R2=R3=R4条件苛刻[8]。本设计中采用三运放电压控制电流源(VCCS),反馈电路中添加了一个电压跟随器。图3.9单个运放的豪兰德电流源电路图3.10双运放电压电流转换电路图3.11三运放构成的电压控制电流源(VCCS)原理图输出检测模块的电路设计对于频率的检测,如前面放大电路所述,我们可以巧妙的利用基本波形发生电路也可产生同频率方波的原理,处理器IO口判断方波的高低电平,然后,再计数一秒内高低电平的变化次数,从而得出正弦激励信号的频率。对于电流实时值的检测,现在看来实际意义并不大,因为激励信号是正弦交流信号,故我们可以选择对电流的幅值测量显示,也就是一个周期内电流的最大值,这就需要在上一步已经测出电流信号频率的基础上进行。硬件电路上从信号输出口连接一个采样电阻,然后用AD采集上面的电压,再在程序设计上经过一系列的计算转换得到电流值。这样EIT激励正弦信号的频率值,电流值就可以通过LCD显示了。按键电路设计按键电路主要有两种形式,独立按键电路和矩阵按键电路。这两种按键各有各的特点和优缺点。矩阵按键电路,适用于多于8个以上数量的按键的情况,这是因为矩阵键盘能够节省硬件IO资源,比如一个4*4的16个按键键盘只需要8个IO。但是矩阵按键电路复杂,并且需要通过复杂的软件程序来得到键值(主要有逐行扫描和反转扫描两种得到键值的方式)[9]。独立按键的每一个按键就需要一个IO口,适用于按键数量不多的情况,它电路结构简单只需要一个上拉电阻,程序设计方面也是比较简单的。因为本设计方案中主要是多频率信号的输出,从基础信号发生器的设计中可知输出频率是0~50MHz(理论上),我们可以分为三段波段通过按键进行设置,一段是10kHz以下的频段;一段是10KHz以上100KHz以上的频段;还有1MHz以上的频段。10KHz以下的频段以1KHz步进;10KHz以上的频段以10KHz步进;1MHz以上的频段以1MHz步进。另外,为了降低功耗我们可以通过一个按键控制LCD液晶的显示与否。最终确定需要4个按键:一个频段选择,一个显示选择,两个调节频率大小,“+”加频率键,“-”减频率键。原理图如下图3.12按键原理图LCD液晶显示电路设计根据本设计的需要,EIT激励信号是多频变化的,所以需要对当前信号的频率,电流值显示。显示电路有多种选择,数码管,段式液晶,普通液晶LCD,彩屏显示等。数码管电路结构复杂,显示时对扫描速度有要求,且容易出现重影现象,不能显示中文。而我们本设计中需要显示中文。所以,我们采用普通的LCD12864点阵液晶显示,可以显示字母,数字,汉字和图形,内部RAM包含8192个汉字(16*16点阵)、128个字符(8*16点阵)和64*256点阵。各个管脚具体功能如下表3.1所示:表3.1液晶12864管脚定义引脚号引脚名称形态电平功能描述并口读写串口读写1VSSI-电源地2VCCI-模块电源输入(可以为5V,3.3V,默认为5V)3V0I-LCD对比度调节端4RS(CS)IH/L(H)数据或(L)指令寄存器选择端片选,高有效5R/W(SID)IH/L读、写选择线:H读;L写串行数据口6E(SCLK)IH/L使能信号同步时钟信号7-14DB0-DB7I/OH/L并行8位数据总线空接15PSBIH/L并/串行接口选择:H-并行,L-串行16、18NC--空脚17RSTI-复位低电平有效19LEDAI-背光源正极(或名A,BLA)20LEDKI-背光源负极(或名K,BLK)本设计方案中,考虑到节省IO口资源,尽量缩小产品体积,我们选择3线制的串行读写方式来控制12864。图3.13LCD12864液晶显示电路原理图硬件原理图与PCB制图软件的简介一个完整硬件系统产品从设计到制作出PCB印制电路板,大致需要经过以下基本过程:制作原理图库;原理图中元器件的布局布线,电气检查;制作PCB封装库;设置PCB规则;元器件从原理图导入到PCB图;PCB图中元器件的布局布线;信号完整性分析;各种文件报表的生成;送工厂加工制板[9]。目前,市场上面绘制原理图,PCB的软件有很多种,主要流行的有Altium公司、MentorGraphics公司和Cadence公司的相关制图产品。这些产品各有各的优势特点,但也都大同小异。本设计中使用的Altium公司的AltiumDesigner6.9,该软件可以说是Altium公司早期的Protel画板软件的升级版本。该软件不仅集成了设计原理图,电路仿真,PCB绘制等基本功能,还加入了FPGA设计和嵌入式系统设计功能。AltiumDesigner6.9界面灵活人性化,操作快捷方便。图3.14AltiumDesigner6.9操作界面程序设计及相关开发软件简介程序设计及开发环境介绍本设计中的C程序设计都是在ARM裸机编译环境ADS1.2下进行的。强大的ADS1.2集成开发环境包括Codewarrior编译器和AXD仿真调试器两大部分,当然ADS还支持外来的插件,这就使得ADS的功能可以外扩到很大。Codewarrior编译器支持汇编语言,C语言,C++和javascript语言的程序编译[13]。该软件使用方便,容易上手,非常适和初学者。下图是ADS下Codewarrior编译器界面图4.1Codewarrior编译器界面整体程序设计流程图在本设计中,主要涉及DDS信号发生的控制程序,按键扫描检测程序,输出信号频率电流幅值检测程序和ADC程序,LCD液晶显示程序等模块程序。整体程序流程框图如下开始开始ARM系统上电初始化设置按键扫描有无按键按下?对应按键值,将新的频率或相位控制字送给DDS芯片,使其输出对应频率信号结束初始化ADC、DDS模块和液晶,使信号输出频率为一定值,等待指令有无IO口采集同频率方波信号的频率,AD采集电压幅值,计算出电流值大小液晶上显示实测信号频率值,电流值图4.2整体程序流程框图如程序框图所示,上电后程序进行AD9850芯片,AD和液晶等初始化,扫描按键后,检测是否有按键按下,如果有,则对应按键值,将新的频率或相位控制字送给AD9850芯片,使其输出对应频率信号,同时IO口对同频率的方波输出(为了使方波的高低电平能被IO识别,已经对该信号进行了适当放大)进行检测。最后把检测值(频率值电流值)送到液晶显示。具体程序代码见附录按键扫描程序设计按键扫描程序流程图初始化初始化扫描键盘消抖,延时一段时间按照对应键值去控制操作结束是否开始是否有按键按下?是否有按键按下?否图4.3按键扫描程序流程图在本设计中按键控制的过程是:按下频段选择键,进行频段选择(系统程序默认情况下直接进入1MHz以下的频段),对于频率的调节,1MHz以下时,按“+”“-”按键以1kHZ的频率步进;1MHz以上时,按“+”“-”按键以2MHZ的频率步进;10MHz以上时,按“+”“-”按键以10MHZ的频率步进。这种方式能够设定的频率很有限,但是节省IO口资源和按键,有利于仪表微型化,只适合于初级阶段试验装置。ARM控制AD9850信号发生程序开始开始AD9850复位,初始化为串口读写方式,i=0w_clk线拉低,读取serialload线的高低,w_clk线拉高,读取一位数据i>40?即串行数据流位数是否大于40bit?否是40位频率相位控制字加载到AD9850,测试正弦激励信号结束图4.4AD9850基础信号发生的程序流程图AD9850内部共有5个8位输入数据寄存器,FSW频率控制字占其中的32位,其余是相位控制字,省电模式控制字和加载格式控制字等。单片机通过对32位控制字的赋值可精确控制最终合成的信号频率。AD9850与单片机采用并行通信方式或串行通信方式改变这40位数据寄存器的值。采用并行通信方式时,每次向数据输入寄存器加载8位数据,连续迭代装入5次8位数据,并行时序图如图图4.5AD9850并行频率或相位控制字下载时序图频率调谐字、幅值和相位控制字均以并行字节或串行加载格式载入AD9850。采用串行通信方式时,则是将40位串行数据流加载到单个引脚(D7脚)上的。本设计中采用串行通信格式实现ARM对AD9850的控制。图4.6AD9850串行通信方式初始化时序图4.7AD9850串行频率或相位控制字下载更新时序图频率检测和电流检测程序设计对于频率检测本设计巧妙的运用了AD9850产生的与正弦波同频率的方波(内部高速比较器将正弦波转换成方波),然后IO判断电平高低进行计频。即计数1秒内IO口拉高拉低的次数。而对于电流的检测则是对采样电阻上的电压用ARM片上内置ADC采集,再通过一定的换算得来。这两部分的程序见附录。开始开始初始化下降沿触发的IO中断初始化定时器,num=0;定时器计时是否IO中断?定时器中断?定时器清零,num++;定时器现在的时间+定时器溢出时间*num即是方波周期,求倒数,即为频率结束是否是否图4.8频率检测程序框图LCD12864液晶显示程序图4.912864串行写时序12864初始化后,等待控制器向其写命令或数据,先写命令控制LCD的显示状态模式,然后,写要显示的数据。其时序格式如图4-8所示。图4.10LCD12864液晶显示程序流程图EIT激励信号发生器性能测试测试的前的准备准备好信号发生器,双通道示波器,电源,杜邦线,小螺丝刀等器材。对于一些滤波电路、放大电路能仿真的先仿真后焊接,焊接好后,也要分段进行测试。测试步骤1,用杜邦线连接相关电路模块,线性直流电源,arm最小系统,AD9850电路,滤波放大模块,键盘输入模块,液晶12864模块。2,将正弦波信号输出脚,连接至示波器通道一的探头线,将方波信号输出脚,连接至示波器通道二的探头线,打开示波器(实物连接图见附录三)。3,对键盘进行相应操作:按下频段选择键,进行频段选择(系统程序默认情况下直接进入10KHz以下的频段),对于频率的调节,10KHz以下时,按“+”“-”按键以1kHZ的频率步进;10KHz以上时,按“+”“-”按键以10KHZ的频率步进;1MHz以上时,按“+”“-”按键以1MHZ的频率步进。4,待示数稳定后,同时观察示波器上的实测值和12864上显示的设定值和实测值。测得如表5-1和表5-2中的数据,并做好记录。5,测试记录完毕,关闭电源整理好器材。测试结果与数据分析表5.11MHz以下的输出信号测试数据频率设定值(Hz)示波器显示LCD12864显示实测值频率值(Hz)电流值(mA)频率值(Hz)电流值(mA)10001000.05.01000420002000.05.12001430003000.04.92990440004000.04.93996350005000.04.84993360006000.04.85877470007000.04.76550480008000.04.88022390009000.04.8900031000010000.04.8100303表5.210KHz以上1MHz以下的输出信号测试数据频率设定值(KHz)示波器显示LCD12864显示实测值频率值(KHz)电流值(mA)频率值(Hz)电流值(mA)1010.05.01000042020.05.12000043030.04.92990044040.04.93996035050.04.84993036050.04.85877047070.04.76550048080.04.88022039090.04.8900003100100.004.81003003表5.31MHz以上的输出信号测试数据频率设定值(MHz)示波器显示LCD12864显示实测值频率值(MHz)电流值(mA)频率值(Hz)电流值(mA)11.004.81000000322.004.72000000333.004.83000000344.004.84000000355.004.85000000366.004.72000000477.004.7——38——4.7——39——4.8——310——————从表中,除去一些明显错误的数据,可以看出示波器显示的数据和设定值之间存在一定的误差,这两者之间的误差可能来自示波器仪表本身和基础信号发生电路,滤波电路等。而LCD显示值与频率设定值也存在挺大的误差是因为中间又经过了放大电路,AD转化等过程。还存在着一个严重问题,当频率达到30MHz以上,随着频率的增大,波形越来越不干净,谐波大增以至于波形失真严重,测试出的频率混乱。结论在本设计中,设计出了基本上能够满足EIT电阻抗成像系统要求的多频激励信号源,实现了频带的增宽。从选题开始到做出毕业设计,我一直不曾停止过学习,越到细处,越发现需要学习的知识太多了。在完成本设计的过程中,学习收获了许多知识,主要有:搜集了大量相关资料,了解了EIT的国内外的发展状况及遇到的发展瓶颈;在选择信号发生方案时,对DDS直接频率合成又做了了解;在微处理器方面,学习了ARM9处理器和嵌入式方面知识,完成了ARM9最小硬件系统使用与调试;了解了ARM对应的程序编译器ADS,并编写了一些简单程序;学习了multisim等仿真软件和绘制原理、PCB的软件AltiumDesigner6.9;学会了硬件电路设计,绘制设计了设计中模块原理图与PCB。由于自己之前并没有怎么接触过ARM及嵌入式,只是学习过单片机的知识,本设计对于我是个不小的挑战。在这种情况下做出的EIT激励信号源设计肯定会有很多不足之处:控制程序出错,达不到想要的控制目的;输出信号波形失真,幅值衰减;整个系统运行不稳定等问题都存在。最终,恒流激励信号源系统基本上达到了要求:输出正弦波信号频率0~10MHz,输出电流基本稳定在4mA,并且对信号的输出与显示的控制基本上达到了要求。但待解决和需要改进的还很多。参考文献[1]董秀珍,生物电阻抗成像研究的现状与挑战,中国生物医学工程学报,2008,27(5):1~6[2]吴右,数字化EIT系统多频激励源及正交解调方法研究:硕士学位论文,北京;北京医学科学院,2010[3]赵翰林,基于FPGA的DDS直接数字频率合成器设计与实现,大众科技,2010,2(6):1~8[4]J.-L.Danger*,S.Guilley,P.Hoogvorst.HighspeedtruerandomnumbergeneratorbasedonopenloopstructuresinFPGAs[J].MicroelectronicsJournal,2009,40:1650-1656[5]王金宁,基于总线的嵌入式数据采集系统设计,北京化工大学,2009[6]赵俊杰,徐华中,高精度发动机转速信号的测量与模拟技术研究,计算机与数字工程,2010,9(9):1~10[7]黄根春,州立青,张望先,全国大学生电子设计竞赛教程-基于TI器件设计方法[M],北京:电子工业出版社,2011.4[8]陈晓艳,熊伟,生物医学电阻抗成像系统信号源的设计与实现,天津;天津科技大学电子信息与自动化学院,2011[9]陈尚松,郭庆,雷加,等,电子测量与仪器[M].第二版.北京:电子工业出版社,2009[10]谭浩强,C程序设计[M],北京:清华大学出版社,1991[11]马明建,周长城,数据采集与处理技术[M].西安:西安交通大学出版社,1998[12]韦东山,嵌入式Linux应用开发完全手册,北京:人民邮电出版社,2008[13]费业泰,误差理论与数据处理[M],第六版.北京:机械工业出版社,2010.6[14]杜春雷,ARM体系结构与编程[M],北京:清华大学出版社,2003[15]朱雯君,基于AT89C51的电阻抗数据采集系统,上海;上海大学通信工程系,2003[16]曹群,基于DDS的中功率低频信号源的设计,上海;上海交通大学仪器科学与工程系,2003[17]邱关源,罗先觉.电路[M].第五版.北京:高等教育出版社,2006.5[18]赵俊杰,民用飞机发动机综合仪表测试设备的研制,武汉理工大学,2010[19]童诗白,华成英.模拟电子技术基础[M].第五版,北京:高等教育出版社,2001[20]舒怀林,单片机原理与接口技术[M],武汉:华中科技大学出版社,2001[21](美)WilliamStallings,陈向群,陈渝译,操作系统:精髓与设计原理[M],北京:电子工业出版社,2010[22]沙占友,王彦朋,孟志永,等.单片机外围电路设计[M].北京:电子工业出版社,2003[23]刘明成,基于DDS技术的程控信号源设计,天津,天津大学,2006[24]初晨,高频数字低电平系统设计和Robinson不稳定性的研究,中国科学技术大学,2011[25]赵俊杰,民用飞机发动机综合仪表测试设备的研制,武汉理工大学,2010[26](美)Robertlove.LinuxKernelDevelopment(3rdEdition),Addison-WesleyProfessional
[27](美)Jonathan
Corbet,Alessandro
Rubini,GregKroah-Hartman,LinuxDeviceDrivers,3rdEdition.
o‘reilly2006.1致谢毕业设计是对大学学习生活的总结和对大学四年所学知识的高度概括。在这近半年的毕业设计时间里,我遇到了种种困难,明白了自己的不足,意识到了理论与实践的差距。在这大学四年的生活里,我要感谢的人很多。对于本设计的指导,首先要感谢的是任宏伟老师,他严谨的治学态度和科学的工作方法给了我极大的帮助和影响。从大二暑假,我有幸进入任老师的实验室学习,在这里我结识了上届的学长,他们在实验室的学习中给了我很大的帮助,从刚进实验室的新奇,到对调试程序的疲倦,中间有许许多多的挫折,在我无助迷忙时,是任老师和学长们给了我鼓励,给我耐心认真的指导。对此,我感恩在心。当然,我必须还要感谢和我奋斗在一起的实验室的同学张欣欣、屈高鹏、王浩强等等。我们彼此帮助,彼此帮助,一起学习生活,一起参加电子大赛,正式因为这样良好的学习环境才使我们能够不断进步,不断成长。大学里我有温馨的宿舍,有团结友善的班级,有积极进取的实验室,感谢母校济南大学给予我那么多!最后感谢我的亲人和默默支持我的人,感谢我身边的所有人!谢谢你们!附录附录一.电路原理图ARM最小系统原理图(AltiumDesigner绘制)Part1Part2Part3EIT激励信号源系统原理图附录二.部分ARM程序//ARM内置ADC程序#include"def.h"#include"option.h"#include"2440addr.h"#include"2440lib.h"#include"2440slib.h"#defineREQCNT100//May08,2002SOP#defineADC_FREQ2500000//#defineADC_FREQ1250000//#defineLOOP1#defineLOOP10000volatileU32preScaler;//================================================================================== intReadAdc(intch){inti;staticintprevCh=-1;rADCCON=(1<<14)|(preScaler<<6)|(ch<<3); //setupchannelif(prevCh!=ch){ rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);//setupchannel for(i=0;i<LOOP;i++); //delaytosetupthenextchannel prevCh=ch;}rADCCON|=0x1;//startADCwhile(rADCCON&0x1); //checkifEnable_startislowwhile(!(rADCCON&0x8000)); //checkifEC(EndofConversion)flagishighreturn((int)rADCDAT0&0x3ff);}#include"def.h"#include"option.h"#include"2440addr.h"#include"2440lib.h"#include"2440slib.h"/****************************************************************************** 1X6矩阵键盘六个输入引脚: EINT8(GPG0) EINT11(GPG3) EINT13(GPG5) EINT14(GPG6) EINT15(GPG7) EINT19(GPG11) ******************************************************************************/U8Key_Scan(void){ Delay(80); if((rGPGDAT&(1<<0))==0) return1;elseif((rGPGDAT&(1<<3))==0) return2; elseif((rGPGDAT&(1<<5))==0) return3; elseif((rGPGDAT&(1<<6))==0) return4; elseif((rGPGDAT&(1<<7))==0) return5; elseif((rGPGDAT&(1<<11))==0) return6; else return0xff;}staticvoid__irqKey_ISR(void){ U8key; U32r; EnterCritical(&r); if(rINTPND==BIT_EINT8_23){ ClearPending(BIT_EINT8_23); if(rEINTPEND&(1<<8)){ //Uart_Printf("eint11\n"); rEINTPEND|=1<<8; } if(rEINTPEND&(1<<11)){ //Uart_Printf("eint11\n"); rEINTPEND|=1<<11; } if(rEINTPEND&(1<<13)){ //Uart_Printf("eint11\n"); rEINTPEND|=1<<13;} if(rEINTPEND&(1<<14)){ //Uart_Printf("eint11\n"); rEINTPEND|=1<<14; } if(rEINTPEND&(1<<15)){ //Uart_Printf("eint11\n"); rEINTPEND|=1<<15; } if(rEINTPEND&(1<<19)){ // Uart_Printf("eint19\n"); rEINTPEND|=1<<19; } }//#include"def.h"#include"option.h"#include"2440addr.h"#include"2440lib.h"#include"2440slib.h"//ad9850复位//////voidad9850_reset_serial(){ ad9850_w_clk=0; ad9850_fq_up=0; //rest信号 ad9850_rest=0; ad9850_rest=1; ad9850_rest=0; //w_clk信号 ad9850_w_clk=0; ad9850_w_clk=1;ad9850_w_clk=0; //fq_up信号 ad9850_fq_up=0; ad9850_fq_up=1; ad9850_fq_up=0;}//***************************************************////向ad9850中写命令与数据//////voidad9850_wr_serial(unsignedcharw0,doublefrequence){ unsignedchari,w; longinty; doublex; //计算频率的HEX值 x=4294967295/125;//适合125M晶振 //如果时钟频率不为180MHZ,修改该处的频率值,单位MHz!!! frequence=frequence/1000000; frequence=frequence*x; y=frequence; //写w4数据 w=(y>>=0); for(i=0;i<8;i++) { ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1; ad9850_w_clk=0; } //写w3数据 w=(y>>8); for(i=0;i<8;i++) { ad9850_bit_data=(w>>i)&0x01;ad9850_w_clk=1; ad9850_w_clk=0; } //写w2数据 w=(y>>16); for(i=0;i<8;i++) { ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1; ad9850_w_clk=0; } //写w1数据 w=(y>>24); for(i=0;i<8;i++) { ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1; ad9850_w_clk=0; } //写w0数据 w=w0; for(i=0;i<8;i++) { ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1; ad9850_w_clk=0; } //移入始能 ad9850_fq_up=1; ad9850_fq_up=0;}/****************************************************************NAME:u2440mon.cDESC:u2440monentrypoint,menu,download****************************************************************/#define GLOBAL_CLK 1#include<stdlib.h>#include<string.h>#include"def.h"#include"option.h"#include"2440addr.h"#include"2440lib.h"#include"2440slib.h"voidIsr_Init(void);voidClk0_Enable(intclock_sel); voidClk1_Enable(intclock_sel);voidClk0_Disable(void);voidClk1_Disable(void);externvoidTest_Adc(void); //adctestexternvoidKeyScan_Test(void);volatileU32downloadAddress;void(*restart)(void)=(void(*)(void))0x0;volatileunsignedchar*downPt;volatileU32downloadFileSize;volatileU16checkSum;volatileunsignedinterr=0;volatileU32totalDmaCount;intdownload_run=0;intmenuUsed=0;staticU32cpu_freq;staticU32UPLL;staticvoidcal_cpu_bus_clk(void){ U32val; U8m,p,s; val=rMPLLCON; m=(val>>12)&0xff; p=(val>>4)&0x3f; s=val&3; //(m+8)*FIN*2不要超出32位数! FCLK=((m+8)*(FIN/100)*2)/((p+2)*(1<<s))*100; val=rCLKDIVN; m=(val>>1)&3; p=val&1; val=rCAMDIVN; s=val>>8; switch(m){ case0: HCLK=FCLK; break; case1: HCLK=FCLK>>1; break; case2: if(s&2) HCLK=FCLK>>3; else HCLK=FCLK>>2; break; case3: if(s&1) HCLK=FCLK/6; else HCLK=FCLK/3; break; } if(p) PCLK=HCLK>>1; else PCLK=HCLK; if(s&0x10) cpu_freq=HCLK; else cpu_freq=FCLK; val=rUPLLCON; m=(val>>12)&0xff; p=(val>>4)&0x3f; s=val&3; UPLL=((m+8)*FIN)/((p+2)*(1<<s)); UCLK=(rCLKDIVN&8)?(UPLL>>1):UPLL;}voidMain(void){ char*mode; inti; U8key; U32mpll_val=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村环境卫生意识培训课程
- 趣味无穷的初中化学实验集
- 软件工程师面试全解析:技术难题与解决方案
- 旅游景区环境整治与提升计划
- 品牌推广与市场营销实战
- 水利工程中的大型起重机械操作要点
- 新材料产业发展规划与应用推广方案
- 平面设计中的插画与图形设计
- 铝镁合金的热处理技术探讨
- 中医药治疗手足口病的策略
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及答案详解(基础+提升)
- 职业危害事故处置及报告全流程培训
- 2026年无锡工艺职业技术学院单招职业技能考试题库有答案详解
- 物业服务标准与质量管理手册(标准版)
- 第34届河北省青少年科技创新大赛青少年科技创新大赛查新报告(参考样)
- 脉冲整流器主电路及其控制(由于公式编辑器版本问题不能保存为PPT格式)课件
- GB/T 13462-2008电力变压器经济运行
- GB 7912-2010食品安全国家标准食品添加剂栀子黄
- 品质工程监理实施方案
- 2023年汉字听写大赛题库全部词语拼音解释
- GA/T 882-2014讯问同步录音录像系统技术要求
评论
0/150
提交评论