基于ARM的信号发生器_第1页
基于ARM的信号发生器_第2页
基于ARM的信号发生器_第3页
基于ARM的信号发生器_第4页
基于ARM的信号发生器_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

基于ARM的模拟信号发生器【摘要】:在设计研究中信号发生器的应用非常广泛,种类也相当繁多。为了满足用户的需求,使设计更加便捷与直观,本文介绍的是基于ARM的模拟信号发生器,系统采用ARMSTM32Open103Z为控制核心,通过USB接口连接线向控制板供电。信号产生主要通过软件完成,设计一个模拟波形界面,实现其波形幅度,频率,相位及偏移量可调。而参数的输入主要通过串口完成,波形的变换由按键选择实现。当开机显示初始界面后,按键进入主界面,这时就可以通过串口选择设定的变量值,再通过按键选择需要的波形,LCD就会将波形及对应的参数显示出来。经过不断测试,波形显示完整,界面清晰友好,但是画线部分是通过Bresenham画线算法完成,所以频率控制的并不是很准确。【关键词】:信号发生器;波形;模拟Abstract:ThisdesignisbasedontheARManalogsignalgenerator,thesystemusesARMSTM32Open103Zasthecontrolcenter,poweredthroughtheUSBinterfacecabletothecontrolpanel.Applicationofthesignalgeneratorisveryextensive,speciesarequitenumerous.Signalgeneratoroutputwaveformcanbedividedbythesinewavegenerator,pulsegenerator,functiongeneratorandarbitrarywaveformgenerators10l.Inthispaper,themainsignalisgeneratedbythesoftwareiscomplete,thedesignofananalogwaveforminterface,andcanbecontrolledviatheserialportthewaveformamplitude,frequency,phase,andoffset.Whenthedisplayaftertheinitialbootscreen,thebuttontoenterthemaininterface,thenyoucanchoosetosetthevalueofavariablethroughtheserialport,andthenselectthedesiredwaveformthroughthekey,LCDwillbethewaveformandthecorrespondingparametersaredisplayed.Throughcontinuoustesting,waveformdisplaycomplete,clearandfriendlyinterface,butthepartisdonebydrawingalineBresenhamlinedrawingalgorithm,sothefrequencycontrolisnotveryaccurate.Keywords:Signalgenerator;waveform;simulation第页目录前言.1第1章信号发生器概述.2第1.1节函数信号发生器的应用.2第1.2节信号发生器的发展.2第2章系统总体设计.4第2.1节控制模块比较与选择.4第2.2节信号产生模块选择.5第2.3节显示模块比较与选择.6第3章硬件设计.8第3.1节STM32Open103Z简介.8第3.2节串口模块设计.8第3.3节LCD模块.9第3.4节按键的使用.9第4章软件设计.11第4.1节图像及汉字和文本的显示.11第4.2节波形显示窗口.12第4.3节串口输入.12第4.4节按键选择.12第4.5节模拟波形界面.13第5章系统测试.16第5.1节测试准备.16第5.2节波形测试.16第5.3节方案调整.19第5.4节测试总结.19结论.20参考文献.20致谢.21附录.22附录1:实物照片说明.22附录2:部分源程序.24第0页前言信号发生器是是一种常用的信号源,广泛应用于电子电路、自动控制和科学试验等领域,用来提供各种测量所需信号的仪器。在电子线路分析时,常常需要了解输入信号与输出信号之间的关系,信号发生器通过产生信号来激励系统,以便观察、分析它对激励信号的反映。自十九世纪六十年代以来,信号发生器迅速发展,各类信号发生器的主要性能指标也都有了大幅度的提高,同时在简化机械结构、小型化、多功能等各方面也有了显著的进展。信号发生器按输出波形又可分为正弦波形发生器、脉冲信号发生器、函数发生器和任意波形发生器等1。函数信号发生器是一种能产生如三角波、锯齿波、矩形波(含方波)、正弦波多种波形的器件。它在电路实验和设备检测中具有十分广泛的用途。在外场试验中,经常要用一些信号作为测量基准信号或输出信号,然而传统的信号源采用振荡器,只能产生少数几种波形,自动化程度较低,且仪器体积大,灵活性差,不利于试验的进行。而ARM芯片在当今由于其高性能、低成本、低功耗,可扩展性强,正被广泛应用于便捷式仪器的设计。因此,为了满足试验对仪器便捷灵活及待机时间长等的要求,本文利用通过ARM技术控制,设计了一种波形可变换的模拟的信号发生器。论文研究的内容及安排本论文介绍了传统信号发生器与现在函数信号发生器的区别与发展趋势和对直接数字函数信号发生器的原理进行研究。用32位ARM单片机实现数字函数信号发生器,使其实现正弦波,方波,锯齿波的产生,并实现波形选择、频率与幅度可控制等功能。最后对实验调试结果与理论分析结果进行对比,并得出结论。1、绪论:阐述信号发生器的应用及发展趋势和论文的组织;2、系统方案:对设计中的控制模块,信号发生模块,液晶显示模块进行方案论述。3、系统分析:首先对ARM进行概述,阐述软件设计中的具体应用;再接受波形产生的原理及总体方案设计。4、给出系统硬件设计:介绍基于ARM的主要功能和结构,然后介绍主结点和子结点的硬件设计所需电路,以及串口通信用到的芯片的连接原理图等;5、系统软件设计:详细叙述了信号发生的算法,汉字及图像的显示,串口的设计等,系统方案。6、系统测试:主要对串口数据输送及按键波形选择测试,然后进行系统分析,并了解其不足。第1页第1章信号发生器概述当我们想测试、研究或调整电子电路及设备时,为测定电路的一些电参量,如测量频率响应、噪声系数,为电压表定度等,都要求提供符合所定技术条件的电信号2。传统的函数信号发生器产生信号频率低,硬件设计繁琐,波形及频率的转换困难,大多使用运算放大器再加一些外围电路组成。本文通过open103z的板子模拟实现信号发生器的功能,实现频率、幅度的可调,并能产生正弦波、三角波、方波、锯齿波三种波形。第1.1节函数信号发生器的应用任意波形发生器可以产生各种理想及非理想的波形信号,广泛用于通信、雷达、探测、导航、宇航等领域3。(1)通常分类是按照产生信号产生的波形特征来划分:音频信号源、函数信号源、功率函数发生器、脉冲信号源、任意函数发生器、任意波形发生器、标准高频信号源、射频信号源、电视信号发生器、噪声信号源、调制信号发生器、数字信号源等。这种分类基本覆盖了航空航天、电子、电力等领域的每一个角落。(2)信号源按照应用领域分类:低频信号发生器(音频),高频信号发生器(射频通信信号),电视信号发生器(电视信号),电视扫频信号发生器(电视信号)等。纵观信号发生器的发展,直接合成数字信号发生器是近几年的发展趋势。随着智能电子技术的发展,未来的函数信号发生器将应用在更多的领域。第1.2节信号发生器的发展1.2.1.各阶段的发展1971年3月美国学者J.Tierncy,C.M.Rader和B.Gold首次提出了直接数字频率合成(DirectDigitalSynthesis)技术。这是一种从相位概念出发直接合成所需求的波形的新的全数字频率合成技术4。DDS技术的函数信号发生器以其输出频率稳定度高、范围宽、相位连续、分辨率高等优点成为了函数信号发生器的重要发展方向5。具体如图1-1所示:自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段6:第1阶段(19711976):信号发生器发展的初级阶段。发展了各种4位信号发生器,第2页第2阶段(19761980):初级8位机阶段。以1976年Intel公司推出的MCS48系列为代表,采用将8位CPU、8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构,功能上可满足一般工业控制和智能化仪器、仪表等的需要。第3阶段(19801983):高性能信号发生器阶段。这一阶段推出的高性能8位信号发生器普遍带有串行口,有多级中断处理系统,多个16位定时器/计数器。片内RAM、ROM的容量加大,且寻址范围可达64KB。第4阶段(198380年代末):16位信号发生器阶段。1983年Intel公司又推出了高性能的16位信号发生器MCS96系列,网络通信能力有显著提高。第5阶段(90年代):信号发生器在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。图1-1信号发生器的发展1.2.2.发展方向目前,信号发生器正朝着高性能和多品种方向发展,尤其是八位信号发生器已成为当前信号发生器中的主流。信号发生器的发展具体体现在如下四个方面:1.CPU功能增强CPU功能增强主要表现在运算速度和精度的提高方面。为了提高运算速度和精度,信号发生器通常采用布尔处理机和把CPU的字长增加到16位或32位。2.内部资源增多目前,信号发生器内部的ROM容量已达32KB,RAM数量已达1KB,并具有掉电保护功能,常用I/O电路有串行和并行I/O接口,A/D和D/A转换器,定时器/计数器,定时输出和信号捕捉输入,系统故障监测和DMA通道电路等。3.引脚的多功能化随着芯片内部功能的增强和资源的丰富,信号发生器所需的引脚数也会相应增加,这是不可避免的。例如:一个能寻址1MB存储空间的信号发生器需要20条地址线和8条数据线。太多的引脚不仅会增加制造时的困难,而且也会使芯片的集成度大为减小。4.第3页低电压和低功耗在许多应用场合,信号发生器不仅要有很小的体积,而且还需要较低的工作电压和极小的功耗。因此,信号发生器普遍采用CHMOS工艺,并增加空闲和掉电两种工作方式。第4页第2章系统总体设计对于信号发生器的使用环境和系统的设计性能要求,在总体设计时需要考虑的主要因素有7:1、仪器的工作能力要求。选择合适的处理器或控制芯片,产生高速、高分辨率的波形输出要求。2、有效的中央控制功能。在仪器上建立友好的操作界面,设置一系列的可选择项,尽可能的满足用户的多种要求。3、仪器的可靠性要求。要求仪器的抗干扰能力和运行的可靠稳定。4、仪器的通信要求。方便数据交换。综合上述因素,信号发生器的总体设计方案如图2-1所示,整个系统包括两部分。硬件系统信号产生与调控模块控制芯片串口模块控制模块数据缓存GPIO接口电路软件单元嵌入式操作系统驱动程序信号算法处理程序显示界面程序图2-1系统总体设计方案由图2-1可知,本系统主要由控制模块、信号发生模块、显示模块组成,下面分别论证这几个模块的选择。第2.1节控制模块比较与选择方案一:采用FPGA做主控制器,由FPGA来完成采集和信号处理等底层的核心计算,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。但FPGA控制功能稍显不足,大电流小电压处理有些困难,但它的功能强大,功耗较低,可快速成品。方案二:采用AT89S52单片机做主控制器,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8KFlash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。它的成本低,易控制,易实现。缺点:运行速度慢,存储容量小,难以完成复杂的运算。第5页方案三:采用ARM微处理做主控芯片,ARM处理器是一个32位元精简指令集(RISC)处理器架构,因其计算速度快,耗电少、功能强、存储容量大,已被广泛地使用在许多嵌入式系统设计。主要不足是设计复杂,需要有一定开发经验。通过三个方案比较,为了实现电路设计的低功耗及高速的运算速度,故采用方案三。第2.2节信号产生模块选择方案一:函数发生器集成芯片(AD9833)AD9833是一款低功耗,可编程波形发生器,能够产生正弦波、三角波、方波输出。波形发生器广泛应用于各种测量、激励和时域响应领域,AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz.方案二:锁相环频率合成器(PLL)PLL频率合成器是由参考频率源、参考分频器、相位比较器、环路滤波器、压控振荡器、可变分频器构成,如图2-2所示。参考分频器对参考频率源进行分频,输出信号作为相位比较器参考信号。可变分频器对压控振荡器的输出信号进行分频,分频之后返回到相位比较器输入端与参考信号进行比较。当环路处于锁定时,有f1=f2,因为f1=frM,f2=fo/N,所以有fo=Nfr/M。只要改变可变分频器的分频系数N,就可以输出不同频率的信号。M参考分频器相位比较器环路滤波器压控振荡器N可变分频器参考频率源f1f2frfo图2-2锁相环频率合成器原理由于锁相环相当于一个窄带跟踪滤波器,所以锁相环频率合成的方法对杂散有很好的抑制作用。锁相式频率合成器还易于集成化。方案三:利用ARM实现直接数字频率合成器(DDS)原理,用定时器作为时钟,将函数波形的点数保存在ram里,根据所要的频率计算出相位递增量,再将输出的二进制幅度进行DA转换,从而得到完整的波形。方案一功能少,精度不高,调节方式也不够灵活,频率和占空比不能独立调节,二者相互影响,所以排除方案一。方案二频率转换时间比较长,而且在单环的情况下很难第6页做到很小的频率分辨率。方案三不只能实现波形频率高、转换速度快、频率分辨率高,而且可以实现调节方式灵活,硬件实现简单,集成了上述方案的各种优点。第2.3节显示模块比较与选择方案一:采用LCD1602。LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。而且它的体积小,质量轻,但是它显示单一,不可以显示汉字和图像。方案二:采用LCD12864。带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;该模块接口方式灵活,具备简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字。也可完成图形显示。而且低电压、低功耗,价格相比其他模块略低。方案三:采用3.2”TFTLCDILI9325模块。显示功能强大,可显示文字和图形,显示内容清晰,有相应的驱动程序和库函数支持。不足之处是程序较复杂,功耗稍大。综上所述,为了显示更全面的界面,我们选择方案三。2.3.1.控制模块分析本文的控制模块主要是基于ARM的研究,在此基础上选用了cortex-M3系列的处理器,下面主要以cortex-M3为主进行概述。Cortex-M3采用了新型的单线调试(SingleWire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。它也结合了多种突破性技术,令芯片供应商提供超低费用的芯片。该处理器还集成了许多紧耦合系统外设,令系统能满足下一代产品的控制需求。1)关于工作模式Cortex-M3处理器支持2种工作模式:线程模式和处理模式。在复位时处理器进入“线程模式”,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的8。2)关于工作状态Coretx-M3处理器有2种工作状态。Thumb状态:这是16位和32位“半字对齐”的Thumb和Thumb-2指令的执行状态。第7页调试状态:处理器停止并进行调试,进入该状态8。2.3.2.系统控制时序分析在显示开机界面后,通过USER进入主界面。可以通过串口输入设定的幅度、频率、相位,再通过按键选择需要的波形。通过ARM控制,再送入LCD,就可在波形显示窗口出现符合设定条件的波形。根据设计任务,设计的控制时序如图2-3所示。显示开机界面进入主界面送入设定参数选择波形显示处理图2-3控制时序2.3.3.模拟信号界面设计分析在波形设计界面中,主要以Bresenham画线算法为主,其设计步骤为:1.画起点(x1,y1)。2.准备画下个点。x坐标增1,判断如果达到终点,则完成。否则,由图中可知,下个要画的点要么为当前点的右邻接点,要么是当前点的右上邻接点。3.画点(U或者B)。4.跳回第2步。5.结束。图2-4Bresenham画线原理图如图2-4所示,模拟划线的时候像素块的选取。如果直线斜率K再大点,那么像素块U,否则取B。分支点就是直线与X=X+1的交点M的y坐标为y=y1+0.5。Bresenham算法的优点是:1、不必计算直线之斜率,因此不做除法;2、不用浮点数,只用整数;3、只做整数加减法和乘2运算,而乘2运算可以用硬件移位实现。因为采用第8页Bresenham画线算法第9页第3章硬件设计硬件设计首先要确定所需要的嵌入式系统开发板。这里的硬件设计并不是针对底层电路板的设计,而是针对嵌入式系统而言,应该根据涉及具体应用的不同,选择合适的硬件。由于嵌入式系统通常都是专用系统,所以硬件设计需要强调的是“够用”而不是“功能强大”。因此在完成功能实现的前提下,尽量去掉不用的接口和外设。根据国际电气和电子工程协会(IEEE)的定义9:嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。本设计选用的开发板为微雪STM32Open103Z。第3.1节STM32Open103Z简介STM32开发板Open103Z是一块以STM32F103ZET6为主控芯片的开发板如图3-1所示,它带有丰富的扩展接口,支持各类外围模块的接入。它使用高性能的ARMCortex-M332位的RISC内核,工作频率为72MHz,内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设还包含多个标准和先进的通信接口。图3-1Open103Z实物第3.2节串口模块设计在本文设计中串口模块主要是对波形的参数进行输送,并在LCD上显示具体的数值,在选择需要的波形后,通过软件控制,输出符合设定参数的波形。硬件电路图如图3-2所示:第10页图3-2串口电路图第3.3节LCD模块LCD模块主要用于I/O输出测试或显示程序运行状态。在本次设计中主要显示开机界面及主界面的波形和参数显示,以便于调试和检测产生的波形。硬件电路图如图3-3所示:图3-3LCD电路图第3.4节按键的使用在本文中按键模块主要起到界面切换的作用,当系统显示开机界面后,按下User键将进入主界面。Joystick键用来实现波形的选择,当串口输送完数据后,按下相应的按键,即可显示对应参数及类型的波形其电路图如图3-4所示:第11页图3-4按键电路图3.4.1.系统复位电路在本系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由简单的RC电路构成,也可使用其他的相对较复杂,但功能更完善的电路。这里采用较为简单的RC电路4。系统复位电路如图3-5所示:图3-5系统复位电路第12页第4章软件设计系统软件基于ARM系统open103z开发,在主程序中,首先对LCD等进行初始化,给任务变量赋初值。当进入主界面后,完成数据采集再进行AD转换及坐标数据转换并送LCD显示,同时等待中断。进入中断后,任务全局变量外部有输入时进行采样及数据处理,然后数据更新显示,等待下一次中断执行各任务。其软件流程图如图4-1所示:开始初始化开机界面主界面进入功能波形选择数据采集A/D转换数据处理LCD显示否是USER键是否按下串口输入图4-1软件流程图第4.1节图像及汉字和文本的显示图像的显示用于波形信号发生器显示开机画面或波形图像。其实现方法是将图像通过转换工具转换为数组数据,放在数组uint16_tgImage_picture11250中,然后将图片的始末地址送入LCD。并将数组文件加载到主函数文件下,再通过算法将转换后的数组在显示屏上显示图片。其显示格式为:/=放置图片voidLCD_DrawPicture(uint16_tStartX,uint16_tStartY,uint16_tEndX,uint16_tEndY,uint16_t*pic);汉字或文本的显示汉字及文本的显示优良中表示方法,一种可以使两者分开显示,但其具体位置显示不明确,需要准确的计算,工作量大。其格式为/-放置文本字符串GUI第13页voidGUI_Text(uint16_tXpos,uint16_tYpos,uint8_t*str,uint16_tColor,uint16_tbkColor);/-放置中文字符串GUIvoidGUI_Chinese(uint16_tXpos,uint16_tYpos,uint8_t*str,uint16_tColor,uint16_tbkColor);第二种就是汉字和文本放在一起显示,这种显示方法工作量小,显示明确,使用较方便。/-放置中文和西文字符串GUIvoidGUI_String(uint16_tXpos,uint16_tYpos,uint8_t*str,uint16_tColor,uint16_tbkColor);第4.2节波形显示窗口波形显示窗口分为动态显示和静态显示,本文通过LCD.c文件中具体的函数来编写确定其动态显示和静态显示,为了更直观的使其波形可见,本设计采用了静态显示图形的方法。串口的具体参数设置则在main.c文件中完成,它的串口显示函数为:/=窗口显示/w:窗口属性;voidLCD_WindowsDisp(Winw);第4.3节串口输入串口模块在本设计中主要起到输送数据的作用,通过输入数据的可变使波形在显示框中有动态的变化,主要实现的功能是控制波形频率,幅度,相位,偏移量的大小。if(USART_Receiver_Str(tt)cmd.nu=sscanf(tt,%s%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f,cmd.cmd,&cmd.p0,&cmd.p1,&cmd.p2,&cmd.p3,&cmd.p4,&cmd.p5,&cmd.p6,&cmd.p7,&cmd.p8,&cmd.p9,&cmd.p10,&cmd.p11,&cmd.p12,&cmd.p13,n=cmd.nu;if(n)sprintf(tt,%s,cmd.cmd);while(-n)/while/if/if再通过对串口设定不同的变量,就可以在串口界面输送数值。第4.4节按键选择第14页在按键设计上,本文通过JOYSTICK按键的多个方向控制来实现波形的选择,当对应方向的按键按下时,窗口显示波形,设定的LED灯亮,指示按键按下,且对应的汉字底色加深,示例程序如:caseJOY_A_KEY:LCD_WindowsDisp_tr(w0);GUI_Chinese(270,50,正弦,White,Blue2);GUI_Chinese(275,70,方波,White,Blue2);GUI_Chinese(270,90,三角波,White,Magenta);GUI_Chinese(270,110,锯齿波,White,Blue2);L.LED1=L.LED2=L.LED3=L.LED4=0;L.LED1=1;LED_lights(L);break;第4.5节模拟波形界面对于函数波形的产生可以分为模拟式和数字式两种10。模拟式多采用信号控制和专用函数发生器芯片产生波形。直接数字合成技术是建立在采样定理的基础上,其工作原理如图4-2所示。相位累加器波性存储器D/A转换器低通滤波器Kfsfo图4-2DDS原理图本文对于函数波形的产生采用模拟式的方法,使用ARM作为主控制器,通过Bresenham画线算法生成不同的波形、利用串口输入控制波形的参数,实现ARM程控信号发生器。4.5.1.正弦波生成界面本设计中信号的产生直接用ARM芯片上集成的D/A转换器和软件的结合来生成。波形的信号数据采用了函数计算的方法来取得:公式4-1ctA)sin(y其中,A表示幅度,表示角频率,t表示自变量,表示初相位角,C表示偏移量。令。其中,N表示所要取得的点数的多少。在设计中我选择N=628,即一个tN完整的基本的正弦信号有628个数据信号点组成。将数据存储到控制芯片的RAM当中,根据所要的频率来取得信号数据的多少,点数多少的计算如下:N=T/2d公式4-2第15页上式中,N表示点数,T表示所要产生的波形信号的周期,d表示定时器的时间长短。从RAM中取得点数的间隔为:M=628/N公式4-3其中M表示在RAM中的表格取得点数的间隔,根据不同的间隔的大小决定产生一个完整的波形信号所要的数据多少不同。其示例程序为:/-波形显示dx=w.x1-w.x0;/dy=w.y1-w.y0;/for(x=0;xw.y1)y=w.y1;LCD_SetPoint(x+w.x0,y,Red);/for/LCD_WindowsDisp_sine4.5.2.方波的产生界面方波的波形界面和正弦波画法相似,都采用采点法画图,其具体程序如下:for(x=0;xw.y1)y=w.y1;LCD_SetPoint(x+w.x0,y,w.pen1);/for4.5.3.三角波的产生界面在设计中,三角波的产生通过Bresenham算法划线产生,本算法由Bresenham在1965年提出。设直线从起点(x1,y1)到终点(x2,y2),直线可表示为方程y=mx+b。其中,第16页公式4-4dxyxym/12/*1bBresenham画线算法的思路如下:假设该线段位于第一象限内且斜率大于0小于1,设起点为(x1,y1),终点为(x2,y2).根据对称性,可推导至全象限内的线段。如图4-3所示:图4-3线段的发射方向及其对应象限的取值其对应的4a方向的示例程序为:temp=2*dy-dx;while(x0!=x1)LCD_SetPoint(x0,y1,color);x0+;if(temp0)y1-;temp+=2*dy-2*dx;elsetemp+=2*dy;LCD_SetPoint(x0,y1,color);4.5.4.锯齿波的产生界面锯齿波的产生同三角波相同,都是采用Bresenham画线算法实现波形显示。锯齿波是幅度线性递增,直到幅值处锐减为最低值,如此重复即可产生连续的锯齿波。第17页第5章系统测试为了更好地实现设计功能,找出设计中的不足,我们需要对硬件和软件进行测试,并不断分析,选择一个更优的设计方案。第5.1节测试准备作为测试的基础,我们先对软件和硬件分开测试,然后再软硬联调。硬件部分的测试相对重要,首先将需要的串口元件,LCD,USB接口,GPIO接入测试板,进行通电测试。要注意的是要仔细检查电路板,防止接口不对应,特别是串口部分,检查是否接入的是3.3v电源,否则电流过大会烧坏元件。当LCD显示正常,硬件部分就准备完毕了。在软件部分时,需要对程序进行编译,使编译结果0错误才是软件运行的基本,但是在程序最优时,我们也要使警告减小到最少。整个测试主要分为三个步骤。第一步进行硬件测试,检查硬件版的连接情况;第二步进行软件测试防止错误并减少警告;第三步软硬联调,测试分析信号产生模拟界面及串口数据的输入是否正常第5.2节波形测试5.2.1.波形选择测试在本设计中,为了更全面的使用测试版的功能,波形的选择主要通过Joystick按键完成,JOY_A_KEY对应三角波输出,JOY_B_KEY对应锯齿波输出,JOY_C_KEY对应方波输出,JOY_D_KEY对应正弦波输出。其初始值的测试波形为:JOY_A_KEY三角波输出JOY_B_KEY锯齿波输出第18页JOY_C_KEY方波输出JOY_D_KEY正弦波输出5.2.2.串口测试串口在本设计中主要起到参数输入的功能,实现波形幅度,频率,相位,偏移的可变。其对应的图形为:三角波幅度测试:第19页锯齿波幅度测试:方波幅度测试:正弦波幅度测试:第20页第5.3节方案调整前期的正弦波界面画法主要采用画圆法设计,需要将整个波形分为8块,根据波形画线方向的不同进行8的模块设计。但是画圆法设计复杂,控制参数调整不是很方便。为了正弦波的设计更加美观、可调。将正弦波采用画圆的算法改用公式画法,具体设计图如图5-1所示:图5-1方案调整第5.4节测试总结通过按键波形选择测试及串口数据输入测试,波形显示正常,可以实现波形幅度,频率,相位,偏移可调,基本实现设计要求。1、硬件电路完整,能够完成课题设计的要求。在元器件的选型上,以低功耗、高精度的器件为主,优化了整体电路的设计。2、信号产生模块以Bresenham画线算法为主,优化了程序的编写,减少相应的工作量。3、通过ARM控制的显示屏也较好的展示了设计的功能,数据显示及波形变换等。5.4.1.存在的问题1、因为采用Bresenham画线算法,画线角度最小值为45度,所以幅度需要小于频率的设定值。2、串口与按键分开处理,只有输送参数后,按键选择才会有对应的波形。第21页结论由于系统架构设计合理,巧妙利用Bresenham画线算法来产生波形,通过串口输送波形的具体参数,并借助ARM芯片的强大运算功能,快速得到符合设定参数的波形,利用彩色LCD屏显示用户界面。选用的处理器及元器件功耗低,精度高。提高了硬件电路的性能,功能电路实现较好,软硬件调试系统性能优良、稳定。控制时序设计合理,较好地达到了题目要求的各项指标。参考文献1.马忠梅.ARM嵌入式处理器与嵌入式系统,电子世界,第3期,200312.郭戍生,古天祥,陆玉新,张世萁,电子仪器原理,国防工业出版社,1989年10月第一版3.万永波,基于ARM的任意波形发生器开发研究.陕西科技大学,2006,54.林占江,林放编著.电子测量仪器原理与使用M.电子工业出版社,2006,45.黄家良,基于ARM和DDS技术的智能函数信号源设计.江西理工大学6.楚田田,基于ARM的函数信号发生器的设计.江苏大学,2010.57.王文华,基于DDS技术的任意波形发生器的研究.浙江大学,2002.28.信号发生器的发展和主要表现,/shownews.asp?id=449,2012-08-119.毛德操,胡希明.嵌入式系统采用公开源代码和StrongARM/XScale处理器.浙江大学出版社,200510.Cortex-M3嵌入式处理器原理与应用/范书瑞等编著.-北京:电子工业出版社,2011.1第22页致谢在论文完成的今日,衷心的向我的指导老师丁老师说声感谢,感谢他对我毕业设计的指导。也感谢他对于我设计中出现的问题给出不同的解答方案。对于完成毕业设计不仅是对于自己大学知识的一个检测,也是对于自己的肯定。从论文选题到搜集资料,从写稿到反复修改,这是一个漫长的过程,需要考虑的问题很多,还有很多意料之外的问题,这都需要我们耐心且认真的对待,相信这也是人生成长道路的考验吧。在进行软件编写部分,丁老师给予了很多指导。特别是针对我的波形生成部分,丁老师给了我好几个方案。刚开始的时候希望我用DDS模块来长生模块,但是附加的模块检测起来不是很方便。后来经过多次试验,决定采用基于ARM控制的模拟信号发生器,将波形和参数都可以显示在LCD窗口,使观察更加方便直观。对于这次波形的完整性研究,丁老师真的给了我很大的帮助。丁老师作为我的指导老师,虽然身负教学、科研重任,但仍抽出时间,多次询问研究进程,并为我们指点迷津,开拓研究思路。同时,我要感谢魏老师、彭老师、等几年来对我的栽培和教育。感谢学院所有给我上过课的老师,是你们传授给我方方面面的知识,拓宽了我的知识面,培养了我的功底,对论文的完成不无裨益。我还要感谢培养我长大含辛茹苦的父母,感谢所有在毕业设计中曾经帮助过我的良师益友们,以及在设计中被我引用或参考的论著的作者。最后,衷心地感谢为评阅本论文而付出宝贵时间答辩组的老师们!第23页附录:中英文文献翻译名称FirefaceUC(part1)第24页附录1:实物照片说明开机界面:方波:三角波:第25页锯齿波:正弦波:第26页附录2:部分源程序intmain(void)uint16_tkk;intn,n0,n1,n2,n3;Winw0;charnn050;charnn150;charnn250;charnn350;/定义1个窗口属性w0.dir=Left;w0.x0=10;/窗口原点,左上角x坐标w0.y0=30;/窗口原点,左上角y坐标w0.width=240;/窗口宽度w0.high=120;/窗口高度w0.x1=w0.x0+w0.width;/窗口对角点,右下角x坐标w0.y1=w0.y0+w0.high;/窗口对角点,右下角y坐标w0.bk=Black

温馨提示

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

评论

0/150

提交评论