陈雯婷,曾庆立,芮天喆,赫忠天
(吉首大学 信息科学与工程学院,湖南吉首,416000)
示波器是一种用途十分广泛的电子测量仪器,多用于观察信号的波形,用户通过波形计算出信号的参数,因此常被用作硬件输出参数的检测以及电路的调试。传统数字示波器具有体积大、成本高等缺点,不适用于户外现场测试,而便携式数字存储示波器具有体积小、成本低、操作简易等优点,解决了传统示波器户外测试不便的问题[1-2]。
本文设计了一款基于SOPC的便携式数字存储示波器,将FPGA的逻辑设计、算法设计和嵌入式设计结合在一起,使用Qsys系统集成工具搭建了一个基于Nios II的嵌入式系统,Nios II具有较强的性能及可定制特性[3-4]。SOPC 集成了 FPGA 和嵌入式系统的优势,并兼具硬件编程和软件编程[5],使整个系统操作更加灵活。另外μC GUI系统的实时性及操作灵活性,极大地提高了系统在复杂工作环境下进行信号检测的效率[6]。
便携式数字存储示波器的设计架构图如图1所示,示波器功能包括信号的采集、测量、存储以及显示。其工作流程大致为:
图1 设计架构图
(1)被测信号经前端调理电路处理后通过高速AD9226转化为数字信号后被传输至系统中。
(2)数字信号一路通过测量模块计算出信号的频率和峰峰值,同时将定时器定时更新的频率和峰峰值通过接口模块传递给Nios II。另一路将信号抽样后的数据写入双口RAM中进行存储操作。
(3)采用μC GUI绘制人机交互界面,并将像素数据写入DDR2中,使用具有突发读写能力的Avalon-MM Pipeline Bridge IP核与DDR2控制器进行通信,显示控制模块将读取的数据传输至TFT显示屏显示。
相比于传统的数字存储示波器,系统采用软硬件协同合作,通过在FPGA中内嵌Nios II CPU,代替传统FPGA+MCU的模式,将数字电路以及系统控制部分集成在FPGA内部,在降低设计成本的同时减少了FPGA外部的硬件设计流程以及PCB设计面积[7-9]。
示波器系统设计分为逻辑硬件设计和Nios II软件设计两部分,逻辑硬件部分实现提供外围接口的控制功能、包括信号时钟模块、信号采集模块、数据存取控制模块、数据测量模块以及人机交互模块,整个系统的控制电路都集成在FPGA芯片中,其内部电路部分采用数字电路实现,在FPGA中采用Verilog HDL硬件描述语言实现各个硬件模块的逻辑电路。Nios II软件设计实现通过程序控制逻辑硬件的功能,根据触摸屏的按键操作实现示波器的信号采集、数据存取以及测量功能。本系统采用模块化设计思想对各个模块进行设计,在系统的工程顶层连接各个功能模块。
在系统中,由外部50MHz晶振时钟提供FPGA逻辑控制芯片所需的时钟信号,采用FPGA芯片内部集成的锁相环PLL进行时钟倍频或分频,提供系统所需要的工作时钟信号,保证各个模块正常且稳定的工作。根据模块的需求配置相应的参数,PLL输出sys_clk、ad_clk、lcd_clk三个工作时钟。其中sys_clk提供Nios II系统的工作时钟,ad_clk提供高速A/D的采样时钟以及其他逻辑控制模块的工作时钟,lcd_clk提供人机交互模块的工作时钟。
信号采集模块包括前端信号调理电路以及高速ADC器件。信号调理电路作用是使经过调理后的信号符合A/D转换的要求。调理后的模拟信号经过高速A/D转换为数字信号,信号采集模块根据设定的采样率,对待测信号经高速A/D转换的数字信号进行间隔采样,输出采样后的有效信号。本系统采用ADI公司精度为12 bit的AD9226模数转换器实现,其采样率高达65Msps,且具有功耗低、价格低和性能高等优点。信号采集电路如图2所示,信号采集电路默认输入电压范围为-5V~+5V,而AD9226电压输入范围为1V~3V,信号经过信号调理电路后便将输入信号从-5V~+5V衰减至1V~3V。衰减电路的转换公式为:
图2 信号采集电路
当Vin= -5V时,Vout= 1V;当Vin= 5V时,Vout= 3V。
图3是采集数据时逻辑分析仪(SignalTap II)抓取的时序,SignalTap II在Nios II系统调试的过程中可以捕捉并显示实时信号[10],加快了系统开发流程,提高了SOPC系统的操作灵活性。
图3 数据采集测试时序图
数据测量模块实现对信号电压值以及频率值进行测量的功能,数据测量模块由三个子模块组成:脉冲生成模块、峰峰值测量模块和频率计模块。
(1)脉冲生成模块实现AD数据转换为脉冲的功能,通过比较输入信号与触发电平的大小,即当输入信号大于触发电平值时,模块输出脉冲为高,反之为低。
(2)频率计模块采用等精度测量法对信号进行测量,等精度测量法原理图4所示,在门控时间内对频率进行测量,门控时间的值是可变的,门控的时间则是待测信号周期的整数倍。门控时间内,被测信号计数值与频率的比值等于基准时钟计数值与频率的比值,比值就是门控时间,即:
图4 等精度测量原理图
由式(1)可推出:
式(2)中,f_clk表示被测信号频率值,f_cnt表示被测信号计数值,n_clk表示时钟信号频率,n_cnt表示时钟信号个数。
(3)峰峰值测量模块通过不断比较待测信号周期内输入的采样值大小,计算出周期内最大值和最小值,从而计算出信号的峰峰值。
数字存储示波器的优点是可以观察到触发条件前后的信号波形,在设计中通过按下停止键可实现波形重现显示的功能,使用Verilog HDL硬件描述语言实现对采集数据的触发以及存储功能。
波形触发控制模块的作用是产生精确的采样起始位置,使得示波器显示出不重叠的清晰信号波形。波形触发控制模块通过判断经高速AD处理后的信号是否满足电平触发条件以及边沿触发条件,当信号满足触发条件时便将输出满足条件的波形实现触发控制功能。
波形存储控制模块设计中通过例化一个双口RAM存储器并设置固定的存储深度用于存储波形数据,存储深度设置为屏幕显示区域的水平方向分辨率,将处理后的波形数据写入RAM存储器中,写入的地址由0到存储深度,当按下示波器屏幕的停止键时,将RAM中存储的波形数据依次读出即可。在系统中直接调用“RAM:2-PORT”对其参数进行设置,其设置图如图5所示。
图5 双口RAM参数设置图
数字存储示波器最基本功能就是将采集的波形进行显示,人机交互模块负责驱动屏幕将波形存储模块中的波形数据进行显示,通过读取RAM中数据,并将读出的波形数据与屏幕显示区域的像素点进行对比实现波形的绘制。过程中根据用户的按键操作对波形进行水平以及垂直方向的移动及缩放,波形的缩放和移动与RAM地址相关,根据缩放比例将RAM中读出的数据进行乘除运算实现波形的缩放,通过加减运算实现波形的移动。
本系统显示采用TFT触摸液晶屏实现,TFT 触摸液晶屏具有体积小、分辨率高、色彩丰富等特点。本设计选取的是正点原子ATK-4342 RGB LCD电容触摸屏,分辨率为480×272,不带集成显存,因此设计中使用DDR2 SDRAM作为屏幕的显存,通过FIFO将DDR2 SDRAM存储的界面显示数据读出并传输至屏幕进行显示。
本系统通过使用Verilog硬件描述语言编写相应功能的IP核,移植Nios II软核处理器构建片上可编程系统,系统通过Avalon总线将定制的IP核与Nios II相连接。Nios II集成开发环境(IDE)是Nios II处理器的软件开发工具,为Nios II系统提供了软件开发平台,使用过程中通过此平台完成SOPC系统的软件开发任务,包括各项复杂的控制及运算。Nios II处理器可根据用户实际需求配置所需的外设及存储器接口,增加了系统的功能同时简化了电路。
在系统中,通过调用Nios II、JTAG_UART、EPCS_FLASH、TIMER、Avalon-MM Pipeline Bridge以及DDR2等IP核完成Qsys系统的搭建。在Qsys搭建的嵌入式系统中,Nios II处理器是系统控制的核心。本系统软件设计主要为TFT触摸屏显示程序,其运行在Nios II软核处理器上,采用自顶向下的编程逻辑进行设计,设计过程中充分利用查询和判断功能,提高程序的可读性。其程序流程图如图6所示。
图6 程序流程图
系统工作流程如下:开机后,FPGA芯片从EPCS中的系统中加载数据,并开始执行命令。首先进行系统初始化和显示界面初始化操作,然后系统进入主循环状态检测屏幕的触摸中断信号,通过按键状态并根据屏幕像素点的坐标判断用户操作进入相应的功能函数,最后系统按照指定的功能调用函数实现相应的操作,根据系统设定的功能进行工作,并将各项参数传送至TFT触摸屏进行显示。
系统初始化主要包括触摸中断初始化和定时器中断初始化,触摸屏中断作为开始获取触摸点坐标的标志,定时器中断作为定时获取波形频率以及峰峰值的信号。显示界面初始化用以实现设定触摸屏的显示区域以及按键菜单选项的功能,Nios II处理器根据TFT驱动初始化程序完成对电容触摸屏的显示初始化配置。系统检测到触摸中断信号为高电平后开始对触摸点坐标进行处理,根据输入的触摸点坐标判断用户的按键操作,系统进行相应的功能操作,如果触摸点坐标超过屏幕的有效触摸区域,则将此次操作视为无效操作并不做任何功能处理。
本系统软件设计主要为TFT触摸屏显示程序,根据示波器功能需求,设计出示波器的功能显示页面如图7所示。
图7 示波器功能显示界面图
示波器的操作显示界面较为复杂,其中包括示波器的波形、频率、峰峰值以及功能键的显示,为提高示波器显示界面的开发效率,使用Nios II移植μC GUI对示波器的显示界面进行绘制。
根据示波器显示总体需求,其显示界面中包括触摸功能按键的绘制以及数据的显示。示波器触摸功能包括:波形触发控制、波形运行控制、波形移动控制、波形缩放控制,其有效触摸区域为两侧的示波器功能按键,对其余区域进行触摸操作无效,在系统中调用GUI_DrawLine() 、GUI_DrawRect()函数分别实现示波器界面画线、画矩形框的功能。示波器数据的显示包括触发边沿、触发电平、频率、电压峰峰值、垂直分辨率以及水平分辨率。设计过程中对屏幕像素点进行读取并设定需要显示数据的像素点坐标,电压和频率值通过读取硬件模块传输的参数实现,而其它的数据根据用户的触摸操作处理后进行准确的显示。
对系统进行测试,图8是本系统与标准示波器分别测量峰峰值和频率为4V、1MHz的交流正弦波信号。
图8 测量对比图
采用SDG 1032X信号发生器对示波器进行测试,部分参数测量结果见表1和表2。
表1 频率测量值
表2 频率为1MHz时正弦波电压测试值
由表1和表2测试数据可知,测量结果都在测量误差允许范围内,对其重复测试表明系统工作稳定,可靠性强。
与传统示波器使用按键进行操作不同,本文设计的示波器使用触摸屏进行触摸操作,经测试,当点击触摸屏的“STOP”按键后,便可在屏幕上重现波形数据,波形输出稳定,没有明显失真。当点击触摸屏的“AUTO”按键后,示波器会自动调整波形的分辨率、触发方式等参数,使得信号波形以最好的形态显示。当点击触摸屏的“↑↓→←”按键后,可实现对波形水平及垂直方向的平移功能。当点击触摸屏的“Ver+、Ver-、Hor+、Hor-”按键后,可实现波形水平及垂直方向的缩放功能。当点击触摸屏的“Edge、Trig+、Trig-”按键后,可实现波形触发功能的测试。
本文设计的基于SOPC的便携式数字存储示波器,测试表明能够实现了传统台式示波器的基本功能。本系统具有体积小、灵活性高、功耗低以及成本低等优点,充分体现了SOPC技术方案的优越性,采用该方案设计的示波器各项指标都达到了设计要求,可以满足户外普通测试以及实验教学使用。在今后的研究中,为进一步提高设计性能,可提高示波器的实时采样速率以及示波器测量精度和范围。