波形采集存储与回放系统方案设计书报告2.docx
《波形采集存储与回放系统方案设计书报告2.docx》由会员分享,可在线阅读,更多相关《波形采集存储与回放系统方案设计书报告2.docx(32页珍藏版)》请在冰豆网上搜索。
波形采集存储与回放系统方案设计书报告2
波形采集、存储与回放系统设计
摘要
本设计是基于数字示波器的原理,以STM32-cortex-m3作为控制芯片,把波形采集分为A、B两个通道,对A通道的输入信号进行衰减,对B通道的输入信号进行放大,然后采用内部集成的高速AD对信号进行实时采样,方式为上升沿内触发,可以实现波形的单次和多次触发存储和回放显示,以及频率、周期、峰-峰值的测量和显示,并具有掉电存储功能。
由信号采集、数据处理、波形显示,控制面板等功能模块组成,整个系统分成A/D转换部分、D/A转换部分、波形存储部分、键盘输入控制四大部分,系统操作简便,输出波形可以在示波器输出显示,此存储示波器即具有一般示波器实时采样实时显示的功能,又可以对某段波形进行即时存储和连续回放显示,且界面友好,达到了较好的性能指标。
具体设计原理以及过程在下面章节中详细说明。
关键字:
STM32、波形采集、波形存储、波形回放
Abstract
Thedesignisbasedontheprincipleofdigitaloscilloscope,withSTM32-cortex-m3asthecontrolchip,thewaveformacquisitionisdividedintoA,Btwochannel,theAchannelinputsignalattenuationonBchannel,theinputsignalisamplified,thenusingtheinternalintegrationofhigh-speedADonrealtimedatasampling,asrisingedgetrigger,canachievewaveformofsingleandmultipletriggersthestorageandplaybackanddisplay,frequency,cycle,peaktopeakvaluemeasurementanddisplay,andpowerfailurememoryfunction.Thesignalacquisition,dataprocessing,waveformdisplay,thecontrolpanelandotherfunctionalmodules,thesystemisdividedintoA/Dtransformation,D/Aconvertingpart,waveformstorage,keyboardinputcontrolsystemfourparts,simpleoperation,theoutputwaveformcanbeoutputintheoscilloscopedisplay,thisstorageoscilloscopenamelyhasthecommonoscilloscopereal-timesamplingrealtimedisplayfunction,canbeareal-timestorageandcontinuousplaybackwaveformdisplay,andfriendlyinterface,hasachievedgoodperformance.Thedesignprincipleandprocessaredescribedindetailinthefollowingsections.
Keywords:
STM32,waveformacquisition,storage,waveformwaveformplayback
模拟路灯控制系统设计
一、总体方案思路及其设计
1、根据题目要求进行相关指标分析
根据题目要求A通道只是对单极性(高电平为4V,低电平为0V,频率为1KHZ)的信号进行采集、存储和连续回放;B通道需要对双极性(电压峰峰值为100mV、频率为10Hz~10kHz)的信号进行处理。
对信号的采集要通过前置电路接到AD转换器,把方波、正弦波和三角波的大小和周期转化成数字量让STM32-cortex-m3单片机进行处理。
对数据的存储和连续回放由单片机的内部程序来实现。
2、方案比较与分析
1.1、采样方式
方案一:
实时采样。
实时采样是在信号存在期间对其采样。
根据采样定理,采用速率必须高于信号最高频率分量的两倍。
对于周期的正弦信号,一个周期内应该大于两个采样点。
为了不失真的恢复原被测信号,通常一个周期内就需要采样八个点以上。
由于实时采样对波形逐点进行采集,可以实时显示输入信号的波形因此适合任何形式的信号波形,重复或者不重复的,单次的或者连续的。
由于所采集的信息是按时间顺序的,因而易于实现波形的显示功能。
方案二:
等效时间采样法。
采用中高速模数转换器,对于频率较高的周期性信号采用等效时间采样的方法,即对每个周期仅采样一个点,经过若干个周期后就可对信号各个部分采样一遍。
而这些点可以借助步进延迟方法均匀地分布于信号波形的不同位置。
其中步进延迟是每一次采样比上一次样点的位置延迟△t时间。
只要精确控制从触发获得采样的时间延迟,就能够准确地恢复出原始信号。
等效采样可以实现很高的数字化转换速率。
其基本原理就是通过多次触发,多次采样而获得并重建信号波形。
前提是信号必须是重复的。
等效采样通过多次采样,把在信号的不同周期中采样得到的数据进行重组,从而能够重建原始的信号波形。
等效时间采样虽然可以对很高频率的信号进行采样,可是步进延迟的采样技术与电路较为复杂。
再者,它只限于处理周期信号,而且对单次触发采样无能为力。
实时采样可以实现整个频段的全速采样,因此本设计采用方案一。
1.2、双踪示波器显示方式
方案一:
每个通道都有一套独立的ADC和存储器,双踪显示时,只需轮流选择不同通道的波形数据,就可以实现两路波形的同时显示。
方案二:
只使用一片ADC,一片存储器和一片DAC,在采样的时候,用存储器地址的最低位控制模拟开关。
通过切换两路模拟信号,将采集到的数据分别存储到存储器的奇地址和偶地址上,双踪显示时通过扫描存储器中的数据即可将两路波形同时显示出来。
方案二使用的硬件电路较少,故我们选择方案二。
1.3、控制部分方案的设计
方案一、单片机STM32Cortex-M3完成对其他各部分控制。
方案二、采用单片机STC90C51作为控制部分。
方案论证:
方案一STM32Cortex-M3是一种高速/低功耗/性价比高的单片机可完成对其他各部分的控制。
内部具有强大的存储空间且能够实现各种复杂的控制功能。
方案二STC90C51的功耗比较大,数据传输速率比较低,要实现比较复杂的控制功能较困难。
故本设计采用STM32Cortex-M3单片机。
1.4、显示方式
方案一、采用传统数码管作为显示。
方案二、采用液晶屏作显示。
方案论证:
方案一采用数码管显示虽然控制简单,亮度大,价格便宜。
缺点是功耗较大,显示不清晰,操作不方便。
方案二液晶显示器则具有耗电少、配置简单灵活、安装方便、耐振动、使用寿命长、美观等优点。
同时可以显示菜单等复杂的界面,更易于操作。
本设计系统采用LCD显示器。
二、系统理论分析与功能模块设计
2.1、最小系统及A/D,D/A电路
图1
2.2、单元电路
1)数据存储电路
图3
2)按键电路
图4
3)电压比较器电路
图5
3、12864显示
三、软件设计
3.1、软件流程
图8:
主程序的流程图:
系统整体设计框图如图1-1所示。
模拟信号通过信号调理模块(阻抗变换、固定衰减/放大、触发电路)将模拟信号的幅值大小调理到高速AD的输入范围0——3.3V。
同时,两路信号经比较器得到方波,送处理器STM32进行测频。
处理器测得输入信号频率后控制内部AD以输入信号频率的80倍速率采样。
在STM32内部增加波形存储控制模块,当满足触发条件时ARM对AD转换得到的数据进行存储。
图9:
系统显示调用流程图
1)系统流程图:
首先,“开始”部分是将程序内容进行初始化,设定需采集数据的存储首地址。
“采集存储”部分启动对输入信号的A/D转换、执行延时程序等待转换结束、取回转换结果并存储和存储器地址加1,为下次存储做准备等程序。
其次,判断是否有触发。
该课题设计采用单次触发方式,即可以按下设定的功能键,在满足触发条件后,进行一次采集存储。
最后,通过设定初始地址,连续输出存储的数据,显示存储的波形
2)系统显示调用流程图:
初始化包括堆栈指针、位标志等。
接着键盘的扫描,判断是否有键按下,系统就执行该按键所对应的程序,循环读取数据进行A/D、D/A转换,在D/A转换完成后就自动跳回初始化之后继续循环。
五、总结
本次设计的波形采集、存储与回放系统,以STM32-cortex-m3单片机为核心,由信号采集、数据处理、波形显示、控制面板等功能模块组成。
整个系统分成A/D转换部分、D/A转换部分、波形存储部分、键盘输入控制四大部分组成。
本系统对数据存储、水平扫描速度输出功能进行了重点设计。
此存储示波器即具有一般示波器实时采样实时显示的功能,又可以对某段波形进行即时存储和连续回放显示。
输出波形可以在示波器输出显示。
3.2:
软件子程序
在本设计系统中,由于实现功能比较复杂,再加上传感器和处理模块非常多,放在一个文件中是不可行的,此时,我们采用进行模块化处理。
1:
1602子程序
#include"1602.h"
voidwrite_code(u8a)。
写1602
voidwrite_data(u8a)。
读1602
voidinit_1602(void)。
初始化602
2:
delay延时子程序
#include"delay.h"
voiddelay_init(u8SYSCLK)。
选择时钟频率
voiddelay_ms(u16nms)。
毫秒级延时
voiddelay_us(u32nus)。
微秒级延时
3:
DS1302时钟子程序
#include"DS1302.h"
voidWrite_Ds1302(u8address,u8dat)。
写ds1302
voidinit_1302DS(void)。
///初始化1302
voidReads_RTC(void)。
//一次性读取ds1302八个寄存器时间值
voidtimedeal_RTC(void)。
//处理读到的数据
4:
系统配置钟子程序
#include"RCC-GPIO.h"
voidRCC_Configuration(void)。
配置处理器时钟频率
voidGPIO_Configuration(void)。
配置处理器时钟频率管教
voidNVIC_Configuration(void)。
配置处理器中断优先级
voidEXTI_Configuration(void)。
配置处理器外部中断
voidTIM_Configuration(void)。
/配置处理器定时器
四、测试方案与测试结果
4.1测试仪器
示波器
万用表
信号发生器
4.2测试方案
4.2.1基本要求测试
a)功能测试
高低电平显示功能完成
周期显示完成
采样、回放功能完成
b)A通道电平测试
测试条件:
输入电压峰-峰值4V,最大电压4V的方波
输入频率:
1KHz
输入4V、4.12V高电平