基于stm32的数字示波器设计方案

发布者:WanderlustSoul最新更新时间:2016-11-22 来源: eefocus关键字:stm32  数字示波器 手机看文章 扫描二维码
随时随地手机看文章

0 引言

随着集成电路的发展和数字信号处理技术的采用,数字示波器已成为集显示、测量、运算、分析、记录等各种功能于一体的智能化测量仪器。数字示波器在性能上也逐渐超越模拟示波器,并有取而代之的趋势。与模拟示波器相比,数字示波器不仅具有可存储波形、体积小、功耗低,使用方便等优点,而且还具有强大的信号实时处理分析功能。因此,数字示波器的使用越来越广泛。目前我国国内自主研发的高性能数字示波器还是比较少,广泛使用的仍是国外产品。因此,有必要对高性能数字示波器进行广泛和深入研究。

本文通过采用高速高性能器件,设计了一实时采样率为60 msa/s的宽带数字示波器。

1 数字示波器的性能参数设计

数字存储示波器的指标很多,包括采样率、带宽、灵敏度、通道数、存储容量、扫描时间和最大输入电压等。其中关键的技术指标主要有采样率、垂直灵敏度(分辨率)、水平扫描速度(分辨率)。这几项指标直接与所选a/d、fifo和高速运放器件的性能,以及电路设计有关。下面根据所选器件的性能参数,合理地分析和确定示波器的采样率和分辨率。

1.1 采样率与水平扫描分辨率

采样率主要取决于a/d转换器的转换速率,常用每秒取样点数sa/s(sample/second)来表示。本系统设计最高实时采样率为60msa/ s,若进一步提高采样率可采用文献提出的等效采样技术,不过等效采样技术的软硬件和价格成本很高。为了使示波器具有较高的信号波形分析细节,采用数字内插技术来恢复和重建信号波形。文献中详细论述了线性内插和正弦内插算法在示波器设计中的应用问题。因此,对这两种内插算法不再详细论述,在本文设计中直接引用文献中的研究成果。根据文献研究结果,取信号每周期采样点数为20,插值倍数为4。水平显示像素点数为400个,共10格。水平扫速与采样时钟频率的关系表如下。

1.2 垂直灵敏度

垂直分辨率的高低直接影响数字示波器对波形细节的显示,垂直分辨率越高,则示波器上的信号波形细节越小,它取决于a/d转换精度和tft的显示分辨率。本文设计中取最大采样输入电压为2 vpp,垂直刻度为8格,共256个像素点,因此垂直精度为0.25 v/格。共设计9个灵敏度档位,每档灵敏度与程控放大倍数的关系如表2所示。

2 数字示波器的硬件设计

2.1 系统硬件总体框图

系统硬件总体框图如图1所示,主要由stm32控制单元,信号输入阻抗匹配单元,信号调理单元,a/d采样与fifo存储单元,时钟单元,tft显示单元等组成。输入信号经阻抗匹配后,送入信号调理单元,将信号的幅度放大或衰减到适合a/d采样的范围内,a/d采样单元对幅度为2vpp的信号进行a/d采样,并将采样结果存入fifo单元中。cpu从fifo中读存数据并进行内插运算,然后根据用户通过键盘输入的指令将信号波形显示在tft液晶屏上。另外,cpu还可以将数据通过rs232接口上传给上位机,或进行打印等处理。

2.2 输入阻抗匹配电路

对于低速数据采集,由于信号反射对信号的传输过程影响微乎其微,所以低速数据采集系统良好的高阻抗性能,对提高系统的测量精确度有很大的意义。本设计中采用电压跟随器实现阻抗变换,数据采集阻抗变换电路的设计方案如图2所示,其输入阻抗为10mω。

2.3 信号调理电路

信号调理电路主要采用具有可变增益的数字程控放大器ad8260。ad8260是ad公司生产的一款大电流驱动器及低噪声数字可编程可变增益放大器。该器件增益调节范围为-6 db~+24 db,可调增益的-3 db带宽为230mhz,可采取单电源或双电源供电。主要用于数字控制自动增益系统、收发信号处理等领域。本设计主要使用其数字控制自动增益功能。ad8260内部的数字程控增益功能框图如图3所示。经阻抗匹配后的信号可直接输入ad8260的17、18脚,经ad8260内部前端放大器6 db的固定增益放大,-30 db程控衰减以及末级放大器18 db固定增益放大后,由7和8脚输出。第11、12、13、14脚为四位数字控制信号(d0、d1、d2、d3),与stm32的i/o口直接连接,实现增益控制。表3给出了ad8260增益调节真值表。

2.4 a/d和fifo电路

在数据采集电路设计中,选用bb公司的8位高速ad转换器ads830e,最高采样频率为60 msa/s,最低采样频率为10 ksa/s。8位转换精度的显示分辨率为256格,能够满足所选用分辨率为640*480的tft显示模块。fifo存储器采用idt7204高速缓存,其缓存深度达1 024 k。fifo存储器是一种双口的sram,没有地址线,随着写入或读取信号对数据地址指针进行递加或递减,来实现寻址。

2.5 时钟电路

时钟产生电路为ad转换器提供一系列的采样时钟信号,共有8种频率,分别对应着不同的水平扫速。时钟产生电路主要由高稳定度的温补晶振,分频器74ls390,多路选择器74f151以及分频器74f74触发器构成。基准时钟信号由一块60 mhz的温度补偿型有源晶体模块提供,输出的60 mhz信号经过分频器的多次分频得到8种不同的频率,然后送入多路选择器74f151。stm32通过对74f151的三根选通信号线进行控制来选择所需的采样频率。另外,中央控制器采用stm32处理器,主频设为80 mhz。显示器采用分辨率为640*480的tft显示模块,与stm32之间采用spi接口。与其它上位机通信采用rs232口。

3 系统软件设计

系统软件设计采用模块化设计方法,整个程序主要由初始化程序、人机交互菜单程序、键盘扫描程序、触发程序、显示程序和数据采集及频率控制程序组成。系统软件的流程图如图4所示。

4 实验测试

在实验室对研制的样品机进行了测试实验,图5和图6分别显示了频率为16.2 khz和1 khz的方波信号。由测试数据分析可得:垂直灵敏度满足要求,电压测量误差≤5%,输入端输入阻抗大于2 mω,实验结果达到了设计要求。

5 小结

为实现一个高采样率,宽频带的便携式数字存储示波器,设计了以stm32为控制核心的数字示波器。硬件平台主要采用了ad8260数字程控增益放大器作为前端信号调理电路,ads830高速宽带模数转换器和idt7204高速缓存作为数字采集电路,以及信号波形采用了tft彩屏显示。另外,通过采用数字内插的数字信号处理算法来重建和还原信号波形,进而改善了信号波形显示细节。最后对研制样品进行了实验室测试,实验结果表明硬件设计思路与软件及算法的处理是正确的,性能参数达到设计要求,可以应用在工程实践中。

数字示波器在信号显示,处理以及带宽等方面比传统模拟示波器更有优势,因此数字示波器是今后示波器发展的重要方向。本文采用stm32高性能arm处理器作为核心控制芯片,能够满足tft彩色波形显示,数字插值算法处理等。通过采用高速ad和fifo器件,实现了高采样率,宽频带的技术要求。


关键字:stm32  数字示波器 引用地址:基于stm32的数字示波器设计方案

上一篇:[ARM笔记]设备IO端口和IO内存的访问
下一篇:ARM系统基本文件格式

推荐阅读最新更新时间:2024-03-16 15:21

STM32 HAL库DMA串口使用问题集锦
开发小白用stm32开发时遇到的问题记录 1.问题描述:使用HAL_UART_Receive_DMA进行接收时,经常接收不到信息 处理过程: 经查阅资料发现对于DMA串口,每个串口都有其对应的通道,查询后更改串口通道。 由于使用NUCLEO开发板进行调试,调试过程中发现使用的串口未被引到对应的排针上,而是接到板上自带的STLINK的串口上。 串口极其不稳定,有时能收到有时不能收到,但是另外一发送模块确实是发出来了,经打中断发现经常会出现溢出错误,调试了半天都不行,极其苦恼,后灵光一闪,在使用HAL_UART_Receive_DMA函数接收之前利用HAL_UART_Init函数再次对串口进行初始化,之后发现可以接
[单片机]
关于STM32的HAL库硬件I2C简单调试
STM32的硬件I2C在大家眼里一直都是做的非常不好的。因此,很多人都会说这个东西做的有问题,在STM32单片机上面,大家一般只会使用软件i2c进行调试不过hal库的提出,不仅方便了大家对于STM32单片机的使用,而且让大家可以在相同的时间里面开发更多的东西。 出于项目的需要以及自己的兴趣。我还是简单调试了一下STM32的硬件I2C功能。因为网上的帖子也不一定能够快速解决我的问题。于是我采取的是从STM32官方的CubeMX的文件着手。我下载的有F1、F0、F7的CubeMX库文件,库文件里面不仅是hal库函数,还有关于STM32的评估板的例程介绍。评估板的例程是肯定不会错的。 评估板的程序实现是采用轮训(Polling)、DMA
[单片机]
STM32之PWM波形输出配置
一. TIMER分类: STM32中一共有11个定时器,其中TIM6、TIM7是基本定时器;TIM2、TIM3、TIM4、TIM5是通用定时器;TIM1和TIM8是高级定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick。 定时器 计数器分辨率 计数器类型 预分频系数 产生DMA请求 捕获/比较通道 互补输出 TIM1 TIM8 16位 向上,向下,向上/向下 1-65536之间的任意数 可以 4 有 TIM2 TIM3 TIM4 TIM5 16位 向上,向下,向上/向下 1-65536之间的任意数 可以 4 没有 TIM6 T
[单片机]
<font color='red'>STM32</font>之PWM波形输出配置
stm32——串口1和串口2初始化
void USART1_Initialise(u32 bound) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); //USART1_TX PA.9 GPIO_InitStructur
[单片机]
STM32 嵌入式学习入门(0)——C语言基础复习
摘要 主要介绍了嵌入式编程中几个常用,但软件编程中用得不是很多的C语言知识。包括位操作、条件编译、结构体和结构体指针、typedef声明类型、以及extern变量声明、static关键字等内容。 本文并没有将相关C语言知识点介绍地很详细,毕竟这么多知识点要想掌握绝对不是看几篇文档就能掌握的。因此博主建议,如果上述的C语言知识掌握得还不是很好的话,找一本C语言的书好好研究研究。尤其是结构体和结构体指针、还有函数的知识(本文没提到),一定要很熟练。 本文除了简要介绍C语言知识,也结合博主自己的感受简单谈了各个知识点用在了嵌入式编程的什么地方,有不详细和描述不准确的地方欢迎大家留言讨论。 要想学习STM32
[单片机]
小熊stm32学习总结:stm32f407 GPIO_PinAFConfig 函数
备用功能配置(除ADC和DAC外的所有非GPIO功能),使用函数 void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF) * This GPIO_AF can be one of the following values: * @arg GPIO_AF_RTC_50Hz: Connect RTC_50Hz pin to AF0 (default after reset) * @arg GPIO_AF_MCO: Connect MCO pin (MCO1 and MCO2) to AF0
[单片机]
STM32定时器及中断简单程序
//----------------------------main()-------------------- //stm32f103c8t6有3个普通1个高级定时器 //每次进入中断服务程序间隔时间为 //((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒 #include #define D13_ON GPIO_ResetBits(GPIOC,GPIO_Pin_13) #define D13_OFF GPIO_SetBits(GPIOC,GPIO_Pin_13) void GPIO_Config(void); void TIM2_Co
[单片机]
STM32单片机FSMC的使用解析
在做项目的过程中遇到了这个问题,感觉文章写得不错,共享给对FSMC的使用怀有疑惑的同伴们! LCD有如下控制线: CS:Chip Select片选,低电平有效 RS:Register Select寄存器选择 WR:Write写信号,低电平有效 RD:Read读信号,低电平有效 RESET:重启信号,低电平有效 DB0-DB15:数据线 假如这些线,全部用普通IO口控制。根据LCD控制芯片手册(大部分控制芯片时序差不多): 如果情况如下: DB0-DB15的IO全部为1(表示数据0xff),也可以为其他任意值,这里以0xff为例。 CS为0(表示选上芯片,CS拉低时,芯片对传入的数据才会有效) RS为1(表示DB0-15上传
[单片机]
<font color='red'>STM32</font>单片机FSMC的使用解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved