采用FPGA芯片和处理器实现数字示波器的设计

发布时间:2023-05-23  

引言

在电子技术领域中,示波器的应用非常广泛,使用它可以方便直观地观察到信号的全貌,并测量信号的幅度、频率、周期等基本参数。传统的模拟示波器显示时采用荧光物质的余辉时间都是一定的,导致其难以观测到周期较长的信号。另外,模拟示波器还无法对信号进行一些特殊的数学处理(如FFT)。而数字示波器正好可以克服模拟示波器的不足,它采用各种先进的测量技术来满足各种应用。如基于采样原理,采用高速A/D转换器实现高速数据采集,将模拟信号数字化,然后借助处理器强大的数据处理能力实现各种数字信号处理算法,将波形以图形的方式直观地显示出来,并能够得到被测信号各种丰富的参数。


1 系统总体方案

本设计的系统框图如图1所示,得益于FPGA的灵活性,系统的大部分功能都在FPGA内部完成,使得整体结构非常简洁。外围电路主要包括A/D转换模块、LCD显示器、SD卡、FLASH和按键。

A/D转换模块的功能是实现模拟信号到数字信号的转换;FLASH模块的功能是存储SoPC(System-on-a-Programmable-Chip)片上系统的固件程序;SD卡模块的功能是实现测量信息的长期、大量存储,提供与PC机的接口,便于后期在计算机上进行分析;LCD模块的功能是对测量信号波形和相关参数的实时显示;按键模块的功能是提供整机的调节和控制接口。


2 FPGA逻辑功能模块设计

FPGA内部系统框图如图2所示。它主要由采样率控制器、触发控制单元、FIFO控制器、频率测量单元、按键控制单元和LCD驱动器构成。

3 SoPC设计

本设计中使用的是NiosⅡ/f处理器,使用硬件乘除法器,工作于50 MHz。使用FPGA内嵌的RAM块作为系统的运行内存。采用FLASH作为片外存储器,保存用户程序,其通过Avalon总线三态桥与NiosⅡ处理器相连。


3.1 SoPC软件设计

系统开机调用相关函数初始化LCD,SD卡和FAT文件系统之后,首先绘制图形界面,输出固定信息,接着读取波形参数,将其显示在LCD上,然后等待FIFO写满。若FIFO写满则将FIFO数据读入缓冲区中,同时在屏幕上绘制波形,获得波形的最大和最小值。最后如果有用户按键输入则处理按键事件,否则检测波形参数是否变化,若有变化则更新显示,否则等待FIFO写满,进行下一次显示。流程如图3所示。

3.1.1 SoPC底层软件设计

底层软件为各设备的驱动程序,主要有:

(1)LCD驱动。根据显示内容的需求,LCD驱动程序设计了以下函数:

①发送数据/命令:将数据/命令通过驱动器发送到LCD;

②LCD初始化:完成LCD的上电复位和初始化;

③LCD清屏:清空显示;

④输出一个像素:在指定位置输出一个指定颜色的像素点;

⑤画直线:画从(x0,y0)到(x1,y1)的指定颜色的直线;

⑥画矩形:画从(x0,y0)到(x1,y1)的指定颜色的矩形,可选择是否填充;

⑦输出一个字符:在指定位置输出一个指定颜色的字符;

⑧输出一个字符串:在指定位置输出一个指定颜色的字符串。

(2)SD卡驱动。SD卡通信采用SPI模式,SD卡驱动的函数及功能为:

①发送数据/命令:将数据/命令发送到SD卡;

②读取数据:从SD卡读取一个字节;

③SD卡复位:SD卡上电后复位并使其进入SPI模式;

④SD卡初始化:初始化SD卡使其作好数据读写准备;

⑤读一个扇区:从指定的扇区地址读取一个扇区的数据到缓冲区;

⑥写一个扇区:将缓冲区数据写入指定的扇区地址处。

(3)FAT16文件系统。FAT16文件系统的主要函数及功能为:

①FAT初始化:获取每簇的扇区数、FAT表地址、根目录地址和FAT表占用的扇区数等FAT信息;

②确定文件名称:查找已存在的波形文件以确定要保存的文件的名称;

③添加根目录项:将保存的文件的名称、大小、位置等添加到根目录;

④添加FAT表项:查找FAT表的空簇,将新文件的簇号写入FAT表。


3.1.2 SoPC顶层软件设计

SoPC的顶层软件主要完成波形及参数的显示、运行/停止控制、光标测量、波形窗口移动、保存数据到SD卡等功能。

(1)波形参数显示。绘制完图形界面后首先输出波形信息的固定部分,如Vpp:???mV,其中“???”将在读取相关参数后更新。然后读取相关参数并判断是否变化,若有变化则更新相关显示,在波形输出结束后将峰峰值更新到屏幕上。

(2)波形显示。波形参数显示完成之后,CPU进入等待状态,若FIFO写满信号为1,则开始读FIFO数据并显示波形。流程如图4所示。

(3)运行/停止控制。波形显示完后,若读到stop为1,则等到FIFO写满后进入停止状态。在停止状态FIFO中的数据保持不变。在停止状态若检测到用户输入,则执行相应函数。若检测到stop为0,则清屏,重绘图形界面,输出运行图标,返回到显示波形状态。

(4)光标测量。在停止状态若检测到光标测量为1,则进入光标测量状态。首先将2个光标的y轴坐标转换为实际电压值输出到LCD,然后计算2个光标电压的差值输出到LCD上的相应位置处。再根据分频系数将2个光标的x轴差值转换为实际的时间,输出到LCD。最后绘制2个十字光标,每个光标由一横一纵2条直线构成,其交点位于波形上。


光标绘制完成后检测用户按键,如果有左右移动或光标切换按键操作,则对相应光标的x坐标做加减运算,然后从缓冲区重新读取波形输出到LCD,将之前的信息覆盖,接着再次调用光标绘制函数绘制新的光标位置和光标的信息。流程如图5所示。

(5)将波形保存到SD卡。在停止状态若检测到保存按键输入,则将数据保存到SD卡。首先在FAT表中查找空簇,返回簇号,并在FAT表中标记该簇已被占用,同时更新FAT表。然后在根目录中查找已存在的DAT文件,若有DAT文件则返回最大的文件名,否则返回0。然后将缓冲区的数据写入SD卡的对应扇区,扇区地址=根目录地址+根目录大小+(簇号-2)×每簇的扇区数。接着在根目录中找到一个空闲项,将文件名称、大小、所在簇写入该项,即完成文件的保存。最后在LCD上输出相应的提示信息。流程如图6所示。

(6)波形显示窗口的移动。在停止状态若检测到左右移动输入,则进行波形显示窗口的移动。当左/右键按下时,若窗口没超过FIFO边界,则将窗口的首地址左/右移2个像素,然后更新显示的窗口,同时按比例更新窗口指示器的位置。

(7)波形文件格式。用于保存波形的文件使用8.3格式命名,名称为OSC_xxxx.DAT,其中xxxx为文件的编号。由于每次采集的波形数据量大小相同,因此文件的大小也为固定值。FIFO深度为256 B,添加触发电平、触发沿、时间刻度等信息后,文件的体积为260 B。由于磁盘的底层读写操作是按照扇区进行的,一个扇区512 B,所以将文件的大小定义为512 B。前256 B为波形数据,第257 B为触发沿信息,第258 B为触发电平信,第259 B,260 B为分频系数,通过软件转换后可得时间刻度的大小。


4 PC机软件设计

PC端软件使用C语言设计。图形部分使用SDL库。PC机软件用于打开示波器保存的波形文件,还原波形信息,并可以进行光标测量。程序首先初始化SDL视频,然后打开文件读取260个字节,关闭文件。载入背景图案,初始化TTF字体。将波形绘制到背景图案上并计算相关参数输出到相应位置,绘制两个光标,等待用户移动光标。光标移动后重新载入背景和波形并更新相关信息。软件流程如图7所示。

5 结语

本文介绍了一种基于SoPC的数字示波器设计,实际测试结果表明,系统完成了数字示波器的基本功能,各部分工作正常,各项指标达到设计要求。在设计过程中采用了FPGA芯片、嵌入式NiosⅡ处理器以及Verilog HDL语言,简化了电路的设计,提高了灵活性,缩短了设计周期。

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    基于51单片机的正弦信号发生器的设计;正弦信号是电子电路设计中非常重要的信号之一。在很多电子设备和系统中,需要正弦信号作为输入源。基于51单片机的正弦信号发生器设计是一种较为简单且常见的方法。本文将详细介绍如何设计一个基于......
    SFG-1000系列函数信号发生器的结构及性能特点;SFG-1000系列是根据DDS(直接数位合成技术)和FPGA芯片设计的具有高精确度和高稳定度输出的函数信号发生器。SFG-1000系列3MHz......
    我们向 Flashy 提供高于 40MHz 的信号会发生什么?本文引用地址:测试设置 测试装置由一个直接连接到 Flashy 的HP8640B信号发生器组成。该发生器能够产生高达550MHz的正弦波。 干涉图案 首先......
    数量及类型等因素,以满足制动控制单元的功能需求。 PWM信号发生器设计 PWM信号发生器是机车制动控制单元的核心部件,用于产生PWM信号以驱动制动执行机构。在设计时,需要确保PWM信号发生器能够产生稳定、精确的PWM......
    源,以支持更高频率、更大数据带宽和更快速率的通信需求。KSW-VSG02射频信号发生器覆盖9KHz至67GHz频率范围,具备优异的矢量调制性能,其内置基带信号发生器设置简单、性能灵活,调制......
    的频率、幅度、波形、占空比、调制形式等参数都可以人为地控制设定。 随着科技的发展,实际应用到的信号形式越来越多,越来越复杂,频率也越来越高,所以信号发生器的种类也越来越多,同时信号发生器......
    或测试板的正弦波足够纯净,才可确保ADC采集转换后数据分析结果的真实性。在面对多通道的模数转换器ADC时,往往需要多路的信号发生器,以往传统的方案是通过多台信号信号发生器或使用功分器进行一路转多路搭建多路的输入信号。这种......
    建或生成重复或非重复波形。这些波形可以是不同的形状和幅度。所有类型的信号发生器主要用于设计、制造、维修和修理电子设备。   信号发生器类型总结   看看什么是信号发生器,就会发现信号发生器......
    什么是可编程信号发生器;信号发生器是一种常见的信号源,是由振荡器、频率合成单元、调制单元等组成的综合性电子仪器,其基本功能是提供正弦波信号和调制波信号,在生产实践、科技......
    是德科技推出新一代矢量信号发生器,面向密集型、宽带多通道应用;• 搭载嵌入式反射计的矢量信号发生器,可提供高度精确的信号 • 紧凑的2U设计,可提供多达四个通道的测试信号,节省高达75%的机......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>