采用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语言,简化了电路的设计,提高了灵活性,缩短了设计周期。

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

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

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

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

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

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

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

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