1、苏州大学本科毕业设计(论文)目录中文摘要.1英文摘要.2前言.3第1章 绪论.4第1.1节 信号分析的意义和发展.4第1.2节 信号分析仪器的发展.4第1.3节 设计目标.5第2章 信号分析系统基础.6第2.1节 模数转换和奈奎斯特采样定律.6第2.2节 快速傅里叶变换.6第2.3节 功率谱估计.7第2.4节 电压噪声频谱密度估计.7第2.5节 采样率和存储深度.7第3章 方案设计.8第3.1节 硬件选择.8第3.2节 操作系统选择.8第3.3节 STM32的设计和实现方式选择.9第4章 系统框架设计.10第4.1节 系统总体框架.10第4.2节 硬件框架.10第5章 软件设计.13第5.1节
2、 软件框架.13第5.2节 圆绘制函数.15第5.3节 双缓冲显示技术.17第5.4节 时域波形触发和频率计算.17第5.5节 时域显示和采样率.18第5.6节 多次参数计算取平均值以限制结果显示刷新率.19第5.7节 功率谱和ST官方DSP库.20第6章 系统测试和结果分析.22第6.1节 峰峰值和频率测量.22第6.2节 人机界面显示效果.24第6.3节 噪声密度测试. 24第6.4节 频域频率分辨率.25第7章 总结27参考文献.28致谢.30附录.31摘要信号是信息技术领域的基本元素,信号是认识世界的重要媒介,而信号分析则是理解自然现象、开发新技术的基础手段,因此需要工具来捕捉、测量、
3、储存和分析信号。如今,依靠以微型处理器为核心的SOC(System On Chip,片上系统)加上一定的外围电路就可以完成对信号的捕捉和分析,大大方便了工程师的工作和关键技术的突破。本文设计和实现了基于STM32的信号时域和频域分析仪,该系统具有成本低,便携性好,结构简单的特点。对幅度和频率的测量误差小于5%,具有功率谱估计和噪声密度测量的功能,时域的测量带宽为1Mhz,频域的测量带宽为100KHz。本文首先介绍了信号分析系统的发展情况和本次基于STM32的信号分析系统的设计目标,从信号分析系统的基本理论和硬件平台的条件来论证本次设计的可行性,接着描述了软件设计的具体内容,包括操作系统的移植、
4、双缓冲显示、信号的触发和频率计算,波形显示和采样率的确定、ST官方DSP库FFT函数的使用等等,最后展示本次设计的成果和测试结果。关键词:信号分析,嵌入式系统,STM32,快速傅立叶分析。AbstractSignal is the basic element in the field of information technology. The signal, is an important medium for exploring the world and analyzing signals is the basic method to understanding natural phen
5、omena and developing new technology. So, tools to capture, measure, store and analyze signals are necessary. At present, by the means of SOC (System on chip) which take the microprocessor as the core, and fringe circuits, capturing and analyzing signals can be dong, which greatly helps engineers wit
6、h their work and the breakthrough of some significant technics. In this paper, the design and implementation of the signal analyzer of time domain and frequency domain based on STM32 is completed and the system has the characteristics of low cost, good portability and simple structure. The error of
7、the measurement of the amplitude and frequency is less than 5%. The system has the function of power spectrum estimation and the noise density estimation and its bandwidth is 1 MHz in time field and 100 KHz in frequency field.This paper firstly introduces the development of the signal analysis syste
8、m and the design purpose of the signal analyzing system based on STM32 of this time and prove the possibility according to the basic theories of the signal analyzing system and the resource of the hardware platform. Next, this paper characterizes the specific content of the software design, includin
9、g the port of the operation system, the double buffer display, the trigger of the signal and calculation of the frequency, the display of wave and the way to determine the sample rate, the usage of the FFT function of the ST official DSP library and so on. Lastly, the system and the test result will
10、 be displayed.Key words: signal analysis, embed system, STM32, Fast Fourier analysis.前言信号分析是当今信息技术发展的必要工具,信号分析由来已久,用于信号分析的仪器也经历了很长时间的发展,现在信号分析系统正朝着数字化,高精度,小型化和多功能的趋势发展。目前大部分信号分析系统都是建立在嵌入式系统的平台上,这类系统有便携性好,结构简单,成本低等特点。本文设计和实现了基于嵌入式芯片STM32F4的信号分析系统。本文立足于信号分析的基础理论,主要包括离散傅里叶变换,功率谱估计等等;以嵌入式软件技术、嵌入式操作系统C/O
11、S-和LCD图形显示等为工具;设计了在信号分析系统中非常重要的触发和采样率控制等关键算法。设计出的系统具有测量信号幅度、频率、功率谱和噪声密度等功能,可以在LCD上显示稳定的波形。同时,该系统还有友好的人机交互界面,方便测量时的操作和数据的读取。第一章(绪论)简要阐述了本次设计的选题意义,信号分析和嵌入式系统的发展情况,以及本次设计的设计目标。第二章介绍了本次设计需要的基础理论,主要是信号分析的基础理论。第三章从可行性和实用性的角度出发,论证了本次设计的设计方案。第四章以框图的形式展示了本次设计的系统框图、硬件框图和软件框图。第五章阐述了本次设计的具体细节,但是设计内容较多,这里选择了关键的软
12、件设计。第六章是本次设计的结果和测试。第1章 绪论1.1 信号分析的意义和发展信号分析是基于数学原理如傅里叶变换、数论变换,用计算机对信号本身或信号之间的性质进行分析。对于确定性信号是找出能描述这一信号特征变化的规律;对于随机信号是找出描述其统计规律的数学特征,如均方值、概率密度函数、自相关函数等。在通信等电子信息系统中,信息的利用程度决定于信号的分析处理能力。信号分析是一门捕捉和处理信号的综合技术,在当代科学技术中拥有重要的地位。科学研究中,常常需要观察一个信号的时域波形和频域频谱分布,所以人们需要专业的信号分析设备。许多用户只需对信号进行定性的分析,或需要分析的信号频率不高,所以对系统的要
13、求较低,而专业的设备往往价格昂贵,会造成资源的浪费。在这种情况下,使用目前发展迅速的嵌入式系统技术开发信号分析系统,是非常明智的选择1。嵌入式系统是嵌入式计算机系统的简称,它是一种嵌入在设备(或系统内部),为特定应用而设计开发的专用计算机系统。目前,嵌入式系统在应用数量上远远超过了各种类型的通用计算机系统。嵌入式系统正渗透到社会的各个领域,嵌入式系统的研发能力和产业化水平已经成为衡量一个国家经济发展、科技进步和国防实力的重要标志1。信号分析有着久远的历史,在航空航天、车辆、通讯、医学、原子能等领域展示了重耍的作用。信号分析的需求推动信号分析系统的发展,而电子技术和计算技术是信号分析系统发展的技
14、术基础。信号分析系统经历了由模拟式经模拟数字混合式到数字式的发展过程,从单功能系统发展到多功能系统以至综合信号分析系统。在1950年以前,模拟式信号分析仪占主导地位;1950年到1965年,是发展模拟式还是发展数字式信号仪的争论阶段;1965年以后,由于数字计算机的发展和FFT(快速傅里叶变换)算法的问世,数字式信号分析仪占据了主导地位,出现了以数字计算机为中心的综合信号分析系统3。数字式信号分析体现了信号分析的发展方向,其特点是高精度、高分辩力、分析速度快、分析频带宽。现代信号分析以数字信号处理为基础,近年来获得了迅速发展,出现了许多新的信号分析处理理论和方法,特别是自适应滤波、小波变换和神
15、经网络等分析方法的发展。1.2 信号分析仪器的发展最初的信号分析仪器是模拟式的,这类仪器的特点是结构简单,适合简单的周期信号的分析,缺点是分析时间长,精度低,分辨率低。为了提高分辨率,这类仪器通常使用窄带滤波器。这一时期出现过丹麦B&K33473三分之一倍频程实时分析仪和日本RIONSA-57三分之一倍频程实时分析仪等。之后出现了模拟-数字混合的信号分析仪器,这类仪器用数字技术提高分析速度的同时保留了模拟运算快的特点,提高了分析速度和分辨率。这类分析仪器有丹麦B&K3348和美日UA-500A等等。现代信号分析仪器以数字示波器为代表,以嵌入式系统为硬件平台,以数字信号处理技术为基础,具有精度高
16、,分析速度快,智能化,便携化的特定。同时种类也更加丰富,有将许多功能集成起来的多功能示波器,还有专门的频率计,波特仪和逻辑分析仪等。1.3 设计目标本次设计的目的是设计一个能够测量平稳电压信号的波形,初步分析其时域和频域参数,并将其显示在LCD(液晶显示屏)上的系统。设计功能和参数:A. 两通道电压输入,输入范围:103300mV, 1Hz1MHz。B. 测量低频信号时启用扫描模式。C. 时域频率、峰峰值、均方根值测量;频域功率谱、噪声密度估计。D. 波形显示,可调节的垂直和水平分辨率。E. 触摸屏控制。F. 追踪线,查看指定位置的波形信息。第2章 信号分析系统基础现代信号分析以数字信号处理为
17、基础,而数字信号处理以傅里叶变换为基础。因为数字计算机只能处理数字信号,所以必须使用模数转换器将模拟信号转换为数字信号,其中奈奎斯特采样定律是基础。在数字信号处理中,傅立叶变换是其核心,在此基础上可以进行功率谱估计,信噪比估计等一系列操作。2.1 模数转换和奈奎斯特采样定律模数转换的过程由保持、量化和编码组成,这个过程需要时间,即是说采样间隔不可能为零。采样过后得到信号的离散序列,若采样率过低,则采样得到的序列无法完整描述信号的特征,在频域上表现为频谱的混叠。奈奎斯特采样定律5:若要从采样后的信号频谱中不失真的恢复原信号,则采样频率fS必须大于或等于两倍的原信号频谱的最高截止频率fC,即fS2
18、fS。采样频率是影响系统输入信号带宽的极重要因素,在实际中通常选择采样频率为信号最高频率的3到4倍。2.2 快速傅里叶变换频域分析的主要方法是傅里叶变换。对离散信号序列进行傅里叶变换可以将其变换为频率连续、幅度离散的频域频谱,这个过程称为DTFT(离散时间傅里叶变换)。但是因为计算机无法表示连续的频率,DTFT不具有实用价值。DFT(离散傅里叶变换)是实际被应用的频谱分析方法,利用它可以得到频率离散、幅度离散的频域频谱。设x(n)是有限长信号,长度为N(信号分布在0,N-1区间,其余时间为0)。该信号的离散傅里叶变换如下:Xk=n=0N-1xne-j2Nkn, k=0N-1 (2.2.1)与k
19、相对应的频率值与采样频率有关:f=fS/Nk (2.2.2)这样,对离散信号进行离散傅立叶变化之后就可以得到信号的频谱,是一组复数序列。但是在实际应用中DFT有个很大的缺点:计算量大,不适用于高速计算。于是在DFT的基础上FFT被发展出来,它的功能与DFT完全一致,但是运算效率高很多。2.3 功率谱估计功率谱是功率谱密度函数的简称,定义为单位频带内的信号功率。它表示信号功率在频率域的分布情况。功率谱的估计方法粗略可分为经典谱估计和现代谱估计。经典谱估计可以分为两种:直接法和间接法。直接法:先对长度为N的有限长信号序列进行傅里叶变换,取其变换结果幅值的平方再除以N,作为序列的功率谱估计。间接法:
20、先计算有限长信号序列的自相关函数,再对自相关函数进行傅里叶变换,作为序列的功率谱估计。功率谱的数据是相对值,而不是实际绝对值,也可以对数据进行归一化。2.4 电压噪声频谱密度估计电压噪声频谱密度是指每平方根赫兹的有效(RMS) 噪声电压(通常单位为V/Hz),它用以表征噪声在频带上的平均分布。在已估计功率谱的情况下,可以将噪声频率的功率值积分,除以频带宽度,再开根号,可以求出电压噪声频谱密度。公式如下:NoiseDensity=(PNdf)BW (2.5.1)式中PN噪声功率,BW为频带宽度。2.5 采样率和存储深度存储深度是保存一组采样数据的内存占用大小,也就是一组采样数据的数据个数。存储深
21、度与采样率的关系如下式:采样率采样时间=存储深度 (2.5.1)采样率决定了信号分析系统能够测量的信号的最大频率,若要测量高频率的信号,那么采样率需提高,在存储深度不变的情况下,采样时间就会下降,同时处理频率就会提高,系统的负荷也会上升;若采样率过低则依照奈奎斯特采样定律,获取的波形并不是真正的信号波形。当信号频率较低时,若仍以高采样率进行测量,会使得在屏幕上显示的波形过分密集,很难仔细观察;但若采样率很低,采样时间会很长,那么测量和分析结果的刷新时间会很长,同样也不利于使用。所以需要设置调节采样率的机制,在不同的信号频率下采用合适的采样率。第3章 方案设计3.1 硬件选择本次设计以STM32
22、F4为核心芯片。STM32是意法半导体出品的,以ARM为内核的32位嵌入式片上系统。其特点为:高性能、低功耗和低成本。这个系列产品种类繁多,本次设计选用STM32F407ZGT6。此芯片以ARM Cortex-M4为核心,最高时钟频率168MHz,携载192KB SRAM和1MB FLASH(Flash EEPROM Memory,闪存),3个12位ADC,最大采样率:2.4MSap/s。拥有丰富的外设资源,满足本次设计的要求。另外还具有FPU(Float Point Unit,浮点运算单元)和DSP(Digital Signal Process,数字信号处理)的功能,使得匀速更加快速12。为
23、了接收用户的控制输入,需要一块触摸屏,目前常用的触摸屏有两种:电容式和电阻式。方案一:电容式触摸屏,以OTA2001A为驱动芯片。电容屏的优点是手感好、无需校准、支持多点触摸、透光性好;缺点是成本高、精度不高、抗干扰能力差。方案二:电阻式触摸屏,以XPT2046为驱动芯片。电阻屏的优点是精度高、价格便宜、抗干扰能力强、稳定性好;缺点是容易被划伤、透光性差、不支持多点触控。对比来说,作为一种测量仪器,不需要电容屏的舒适的手感和多点触控的功能,并且电容屏精度差,难以进行精确的定位输入,而且电阻屏的价格较低,更适合用于本次设计,所以选用电阻触摸屏,选择方案二。为了将触摸屏参数保存下来,避免重复调节触
24、摸屏的麻烦,使用I2C(Inter-Integrated Circuit,集成电路总线)总线连接一块容量为2Kb9的EEPROM(Electrically Erasable ProgrammableRead-Only Memory,电可擦可编程只读存储器)AT24C02。本次设计采用ILI9341作为LCD驱动芯片。3.2 操作系统选择鉴于硬件平台的内存较小且不需要图形库等复杂功能,本设计采用C/OS-作为操作系统。C/OS-是由Micrium公司开发的一个可剪裁、可固化、可剥夺型的实时操作系统内核,它针对以ARM Cortex为代表的新一代CPU,具有现代实时内核的所有功能,如资源管理、任务
25、间同步、任务间通信等,还能提供一些独特的功能,如在系统运行时做性能测试,向任务直接发信号量或消息和同事等待多个内核对象等3。C/OS-是这个内核系列的第三代,相较于第二代,它的最大任务数量无限制,增加时间片轮转调度功能,取消了消息邮箱等等,在速度和稳定性上有了很大的提升。3.3 STM32的设计和实现方式选择STM32的开发有两种方式:寄存器方式和库函数方式。寄存器方式指的是在C语言层级上直接操作芯片寄存器。所有对硬件的操作都可以由对寄存器值得操作来完成。寄存器方式的好处是运行效率高,但是因为需要查找繁多复杂的寄存器以及不同的寄存器工作方式不同,所以易出错且开发效率较低。库函数方式指在C语言层
26、级上调用由ST编写的官方库函数。库函数的内部实际上也是对相应寄存器的操作,只是这些函数由官方封装好且经过测试,使用方便且有参数验证功能,开发效率高且程序阅读性好,缺点是程序的运行效率较寄存器方式低。在本次的设计中,没有对硬件的高频率操作,硬件操作没有对速度高要求的关键算法,所以采用库函数开发方式。本次设计采用的是ST官方的库函数:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0。第4章 系统框架设计4.1 系统总体框架图4.1.1 系统总体框图中央控制模块由C/OS-操作系统担任,测量、分析和显示模块分别对应3个操作系统任务:测量任务、分析任务和显示任务。当测量模块模数转换
27、一组数据完成,会通知中央控制模块,由C/OS-的标志位功能实现。中央控制模块控制测量模块将数据传送到分析模块,当分析模块完成数据处理后以相同的方式通知中央控制模块,中央控制模块控制分析模块将分析结果传送到显示模块。若交互模块接收到用户输入,会对用户命令进行处理,将结果发送到中央控制模块,进行后续的操作。测量模块由STM32自带的ADC和DMA组成。DMA是Direct Memory Access的简称,它是一种硬件结构可以在CPU不参与的情况下在传输信息,是为CPU减负的常用手段。当ADC转换完成时,DMA自动将转换结果转移到指定的数组中。分析模块就是STM32的内核,因为其带有FPU和支持D
28、SP指令集,处理数字信号的能力较普通CPU有很大的提升。显示模块是一块宽240像素、高360像素的彩色TFT LCD。交互模块由触摸屏和按键组成。4.2 硬件框架硬件框架如图所示:图4.2.1 硬件框图系统的硬件框架由时钟电路、电源电路、按键电路、触摸显示屏模块和EPPROM组成。按键通过STM32F4的PE4连接到外部中断,并连接到地,在芯片内PE4被设置为上拉,所以当按键按下时系统会在PE4接收到一个下降沿。显示触摸屏模块通过 STM32F4的外设FSMC(Flexible Static Memory Controller,可变静态存储控制器)进行通信。电路连接如图4.2.2所示:图4.2
29、.2 显示触摸屏模块电路连接图图中FSMC_D015分别对应STM32F4的端口PD1415,PD01,PE715,PD810,是数据端口;FSMC_A6对应PF12,是地址选择端口;FSMC_NE4对应PG12,是片选信号端口;FSMC_NOE和FSMC_NWE分别对应PD4和PD5,是读是能信号端口和写使能信号端口。这些端口不需要软件操作,STM32F4会根据命令自动执行对LCD的读和写。T_MISO对应PB2,是屏幕触摸功能的数据输入端;T_MOSI对应PF11是屏幕触摸功能的数据输出端;T_PEN对应PB1,是笔触发功能呢端口,当有触摸事件发生时,这个端口的电平会发生变化;T_CS对应
30、PC13,是片选信号端口;T_SCK对应PC13,是时钟信号端口。EPPROM芯片AT24C02通过PB8(IIC_SCL)和PB9(IIC_SDA)相连接,借由I2C总线进行通信。电路如图所示:图4.2.3 EEPROM电路连接图WP是写使能控制端,低电平表示允许写入。A02是片地址选通信号端,它决定了I2C的地址码。第5章 软件设计5.1 软件框架系统的总体软件框架如图5.1.1所示:图5.1.1 总软件框图系统开机后首先进行初始化,包括硬件初始化和C/OS-操作系统初始化,之后操作系统会启动并接管CPU,开始多任务。系统主要有三个任务:处理任务、显示任务和用户交互任务。三个任务相互独立,
31、并行运行,由操作系统的标志位和消息队列功能进行通信。多任务的好处是提高了系统资源的利用率。系统主要用到两个中断:与外部按键相连接的外部中断,和AD转换相关的DMA中断。当按键被按下时,中断触发是系统进入触摸屏校准状态,校准完毕后系统会将校准后的触摸屏参数保存到EEPROM中。当STM32F4的AD转换器收集的数据达到系统的存储深度时,DMA触发中断,数据会被保存并且处理任务的相应标志位被置位,处理任务将会开始处理数据。处理任务软件框架如图5.1.2所示:图5.1.2 处理任务软件框图当DMA传输为完成时,处理任务不会运行,但在DMA传输后会立即执行。处理任务根据当前系统的状态(包括两个通道的运
32、行状态和运行域等),进行相应的操作。在数据处理完成后,处理任务会把处理结果(包括波形和参数等)传输到指定的寄存器,以供显示任务进行操作。以上操作完成后,到下个DMA传输完成之前,处理任务都将让出CPU资源,提供给其它任务。显示任务软件框架如图5.1.3所示:图5.1.3 显示任务软件框图显示任务总体是一个以一定刷新频率不停止的循环过程,若要使屏幕显示连续动态画面,这个频率不能低于20Hz,但刷新频率过高会占用大量系统资源且对系统的性能没有用处,所以本次设计采用40Hz的刷新频率。显示任务执行时会从指定的寄存器中读取由处理任务给出的处理结果和波形以及系统的状态标识等,并显示在屏幕上。系统使用ST
33、M32F4的组件FSMC与LCD进行通信,FSMC可以自动完成由CPU到LCD的数据传输。同时显示任务中使用了双缓冲显示的软件技术,避免了在一次刷新中对同一像素点的重复写入,这样做可以提高系统运行效率,避免屏幕闪烁。用户交互任务软件框架如图所示:图5.1.4用户交互任务软件框图用户交互任务主要完成对用户输入的接收和处理,主要包括按键和触摸屏。当没有按键按下或触摸屏事件时,用户交互任务处于睡眠状态,CPU资源被其它任务占有。当按键按下或有触摸屏事件时,用户交互任务立即执行,对用户输入进行相应的操作。5.2 圆绘制函数想要在LCD上显示图像,除了要编写硬件的基本驱动函数外,还要编写各种图形的显示函
34、数。通常在编写了与硬件密切相关的画单个点的函数后,绘制其它图形的函数都可以由画点函数衍生出来。一般的画直线和矩形的函数比较简单,用四则运算就能完成,运算时间很短。但对于画圆函数,若使用一般的三角函数,就需要用到float或double的数据类型,虽然本次使用的STM32具有FPU功能,浮点运算较快,但若能在算法级别将操作限定在四则运算范围内,运算速度将进一步加快。本次设计使用的是Bresenham画圆算法的改进算法4。如果能画出一个圆的/4的一段圆弧(如0,/4),那么根据对称性就可以画出其它7段圆弧。假设起点是(R,0),R是圆的半径,当前的点是P(xi,yi),那么下一个点是Ti(xi,y
35、i+1)或Si(xi-1,yi+1)中的一个。这两个点都不一定在圆弧上,如图所示,应该选择误差最小的一个。图5.2.1 点位置示意图设误差函数ep=x2+y2-R2,设di=eTi+eSi。如果Ti在圆弧外,Si在圆弧内,那么eTi0, eSi0,说明eTieSi,即Si的误差小,所以应选择Si点;反之则选择Ti点。如果Ti和Si都在圆弧内,此时di0且显然应选择Si点。总结以上三种情况,若di0则选择Si点作为下一个绘画点;若di0,选择Si点,则xi+1=xi-1,yi+1=yi+1,那么di+1可以表示为:di+1=di+4yi+6 (5.2.3)如果di0,选择Ti点,则xi+1=xi
36、,yi+1=yi+1,那么di+1可以表示为:di+1=di+4(yi-xi)+10 (5.2.4)因为起点是R,0,所以di的初始值d0=3-2R。重复上述过程,当x=y时,八分之一个圆弧就画好了,在根据圆的对称性,就能画出一个整圆。C语言代码如下:void LCD_DrawCircle(unsigned short centerx,unsigned short centery,unsigned short radius,unsigned short color,)short x,y;short d=3-radius*2;y=radius, x=0;while(y=x)LCD_DrawDot
37、(centerx+x,centery+y,color);/根据圆的对称性画点LCD_DrawDot(centerx-x,centery+y,color);LCD_DrawDot(centerx+x,centery-y,color);LCD_DrawDot(centerx-x,centery-y,color);LCD_DrawDot(centerx+y,centery+x,color);LCD_DrawDot(centerx-y,centery+x,color);LCD_DrawDot(centerx+y,centery-x,color);LCD_DrawDot(centerx-y,center
38、y-x,color);if(d0)d+=x*4+6;elsed+=(x-y)*4+10;x-;y+;5.3 双缓冲显示技术在显示信号的波形时需要以一定的时间间隔刷新屏幕,即向LCD的寄存器写数据,刷新一次称为一帧。一般情况下,刷新率在25Hz以上可以看到连续的动画。再这个频率下,一般CPU与LCD的接口可以流畅的传输数据并显示。但一帧的数据可能会遇到重复刷新的情况,以波形显示举例,需要以下几个步骤:1. 清除上一帧数据(在指定的区域写入同一指定颜色的数据)。2. 画网格。3. 画波形。4. 画其它辅助性图形等。在这些步骤中,可能出现段时间内对某个点的重复写数据,但这个过程是不必要的,且浪费了C
39、PU向LCD传输数据的时间。本次设计使用STM32自带的外设FSMC(Flexible Static Memory Controller,可变静态存储控制器),虽然写一个点的数据可以在1微秒内完成,但仍然可以看到LCD在刷新时闪烁,说明CPU到LCD的接口无法承受短时间内的这么高速度的数据传输。为了解决这个问题,需要用到双缓冲显示技术。这种技术的原理是在内存中开辟一块与LCD显示内存相同大小的区域,作为从CPU到LCD的镜像,CPU先在内存中执行显示步骤,再一次性将内存中的数据传输到LCD的显示内存中。这样以来,对于同一帧显示数据,有两级缓存,所以称为双缓冲。CPU处理前述的显示步骤的速度是远
40、远足够的,所以从CPU到LCD的数据传输只有一次,不会出现闪烁的现象。5.4 时域波形触发和频率计算触发是信号分析系统的重要功能,它能够隔离感兴趣的信号并稳定波形。触发的含义是指按照需求设置一定的触发条件,当波形流中的某一个波形满足这一条件时,示波器即实时捕获该波形和其相邻部分。如下图的上升沿触发:图5.4.1 触发示意图本次设计的存储深度为1024,即一次处理1024个模数转换而来的数据。但是因为屏幕宽度只有240,加上两边需要一定的空余,就有230个波形点会被显示,所以出发点的前115个点和后115个点会被显示。本次设计使用的是上升沿触发,算法步骤为:图5.4.2触发算法步骤在这个过程中,可以对时域参数如幅度均方值、幅度峰峰值和频率进行计算。计算频率时,需要连续两次触发,计算两次触发之间的数据索引差i,代入频率计算公式:f=1/(1SampleRatei)=SampleRate/i (5.4.1)式中SampleRate是AD转换的采样率。5.5 时域显示和采样率屏幕可以以不同的时间刻度显示波形,但波形数据的点数是不变的,即屏幕的每一列必定对应一个时刻的波形数据。当时间刻度减小时,屏幕上的波形被展宽