Profile - CN014


CN014

手持式数字荧光示波器

华中科技大学
电工电子科技创新中心


Finals


[print]


Project

Name of Project:手持式数字荧光示波器

Contact Information

Name:胡光恒
E-Mail:maxwell@smail.hust.edu.cn
Telephone:02787544382
Mobile Phone:8613986044153
Mailing Address:湖北省武汉市洪山区珞瑜路1037号华中科技大学西七楼一楼

Contest Advisor

Name:肖看
E-Mail:xiaokan@vip.tom.com
Telephone:13377858236

Members

No.NameE-MailEnglish Name
1胡光恒maxwell@smail.hust.edu.cnHu Guangheng
2廖于翔tctcdy@smail.hust.edu.cnLiao Yuxiang
3王越johnny.r.007@smail.hust.edu.cnWang yue

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

 

1.1设计意图
 
      该设计为基于Cyclone III FPGA的手持式数字荧光示波器,能以荧光色温影像实时且同时显示时域波形和频谱。
     应对激增的现场仪器需求,为手持示波器提供低成本,低功耗和高性能的突破性解决方案。
*          使用数字荧光技术,捕获偶发毛刺的能力大大提高
*          同时显示时域和频域波形,准确定位信号缺陷的来源
*          支持模板测试,并显示Pass/Fail按时间变化的曲线
*          基于TSMC 65nm 工艺Cyclone III 的SOPC解决方案,大大降低一系列成本及功耗
 
1.2适用范围:
     该手持式数字荧光示波器适用于机动现场维护、医疗器械检修、后勤保障、工业生产以及教育系统等时间紧迫环境复杂的现场测试。
 
1.3背景:
数字荧光示波器(DPO)是继数字存储示波器(DSO)后的新一代示波器。以新的采集和显示架构提升低概率波形的捕获能力。
图1.3  TEK高端台式示波器DPO 7000系列的荧光色温显示效果
示波器在作业过程中需要一段释抑时间,用于处理刚刚捕获的数据,重置系统,并等待下一个触发事件的出现,在这段时间内,示波器无视所有的信号活动。因此,如果增加释抑时间,捕获不常出现或低重复率事件的概率则会相应降低。
DSO以串行方式处理捕获波形,DSO微处理器的速度是这一处理过程中的瓶颈,限制了波形捕获速度,所以DSO常常漏失偶发或不常出现的事件,缺乏对信号变化的实时响应。
DPO将波形数据光栅化处理并送到“数字荧光器”数据库,存储在数字荧光器中的信号图像快照以大约眼睛可察觉的速度,即1/30秒直接传送到显示系统,这种光栅化处理以从荧光处理器直接将数据复制到显示存储器的流程,可消除DSO体系结构固有的数据处理瓶颈,改进了实时跟踪和动态显示更新效果。
 
DSO将高速采集到得波形数据先存储起来,在接下来一段相对较长的时间里用处理器对数据进行处理并显示,普通DSP即能满足运算能力。DPO以并行的流处理架构,同时捕获和显示,所需处理能力超越传统处理器平台的极限。
本设计使用单片Cyclone III FPGA 来实现全部数字部分,在满足手持设备PCB环境简单,系统功耗低的要求下,提供高级台式示波器的功能。
 
1.4器件选择:
基于FPGA的SOPC解决方案的优势:
高并行性
FPGA各种丰富的资源使系统能通过并行及流水来达到非常高的吞吐量,轻松地复制模块和分配独立通道来突破系统瓶颈。从而胜任仪器仪表中多种复杂功能实时并行处理的严格要求,这也是本设计能同时显示时域和频域波形,并且以荧光色温形式在高分辨率彩屏上显示的关键。这是通用处理器平台无法实现的。
优化的架构和更长的产品生命周期
FPGA自由可配置,能尽量贴近需求来优化架构和协议,使用专用单元,意味着用最精炼的结构实现最高的速度并去掉冗余功耗。用户可以方便地升级固件,甚至能根据近期需求将手持表迅速配置为偏重特定功能。
简化的系统外围
传统数字系统中大量分立的高速模块对PCB等外围环境要求非常苛刻,实际中难以达到很高的性能。同时,随着组件的增加,各模块间、子模块和控制器之间的通讯量也大大增加,靠有限的引脚IO越来越难适应复杂系统的通讯要求。需要使用SOC方案。
随制程引入的成本越来越高,若ASIC集成的过多,通用性就下降,产量下降,单片成本上升,为小批量的仪器流片得不偿失。
基于FPGA的SOPC解决方案使这些问题迎刃而解。灵活易用的Nios II软核处理器作为SOPC系统的核心,进一步协调了各组件的工作,并提供软件上的强力支持。
SOPC中高度协调并相互促进的软件及硬件,能胜任系统中的绝大部分工作,使得总体结构大大简化
最短的产品上市时间
使用SOPC设计方法,片外不必再担心分离的模块以及复杂的外部电路引入庞大且繁杂的设计和调试过程,片内可以省去繁琐且易错的系统互连,接口及异时钟域处理等工作,自顶至下的一切数字部分均可在短时间内利用EDA工具完成,使用Altera 公司提供的灵活的Nios软核处理器、精简友好的Avalon总线以及众多高性能的IP core 。迅速构建处理器平台及外设,将用户模块无缝地集成到系统中。使得系统复杂度、开发周期和人力成本显著下降,取得的不止是产品总成本的降低,更能省去ASIC流片和反复修改所需的高首次投入,高风险和长周期。并能灵活应对短期小量多批,长期系列细化的仪器仪表市场需求,在最短的时间内占领市场空白或追上竞争对手的新产品。
 
采用Cyclone III的优势:EP3C120器件在该设计中的优点
Cyclone III FPGA具有独特的低功耗体系结构,以非常低的成本提供丰富的存储器和专用乘法器资源,在高性能手持测量设备等高强度算法及高并行架构应用中,这些特性使该FPGA成为ASSP、ASIC以及分立数字信号处理器的理想替代方案
 
EP3C120器件在该设计中的优点:
*           119 K 逻辑单元   大量LE是复杂系统得以实现的基础
*           432个M9K,至315MHz  为荧光影像及信号处理提供充足的高带宽存储器
*           576个 9-bit内嵌乘法器,至260MHz 为大量并行信号处理提供高效高速的乘法器支持
*           4个可动态配置PLL,每个PLL具有5路输出   内部时钟解决方案使得多时钟域系统更加可靠
*          动态校正的片上终端 进一步保障IO信号完整性
*           
     本设计中主要使用Altera公司的Cyclone III 开发板DK-DEV-3C120N,并配以Terasic公司的接口资源丰富的DE2-70和DE1开发板以及THDB-ADA高速数模/模数模组卡
(Revision: 47 / 2009-09-14 00:03:04)

2. 功能描述 (Final Project Paper)

 

本设计采用并行流处理的架构,实现了数字荧光波形的显示。
系统将两路ADC每时钟周期交叉采样得到的2个点插值到16点,分为并行的16路,触发后记录到荧光数据库,以可调的速率将荧光数据库内积累的图像更新到显存,并由多窗口多图层的VGA控制器将显存内数据以72Hz刷新到VGA。
同时对采集到得数据进行实时频谱分析,以荧光色温显示频谱。
对波形进行模板比对检测,模板可调,检测结果按时间显示为曲线波形。
    下图为使用DSPbuilder模型仿真结果绘出的荧光图像等高图

 

(Revision: 11 / 2009-09-14 00:16:45)

3. 性能参数 (Final Project Paper)

 

系统主频62.5MHz
最大采样率:125MSa
带宽:频谱仪带宽15M,示波器带宽30M
捕获波形能力:插值模式下约600,000帧/秒,非插值模式大于100,000帧/秒
显示界面:VGA 800*600*72Hz
FPGA核心功耗: 小于900mW (程序工作在片上存储器)
系统的全部数字及软件部分均由FPGA实现。
消耗逻辑单元60K LE,RAM 3.9Mb
(Revision: 2 / 2009-09-14 00:14:27)

4. 设计结构 (Preliminary Paper)

硬件部分

SOPC架构
 两颗Nios®II 处理器分别完成控制任务和显示任务,测量仪器组件在控制单元侧,显示组件在显示单元侧。
 
 图4.1  SOPC系统结构简化框图
 
 
由于多个仪器模块需要高实时控制,运算的响应速度要快,而多个窗口、图层以及GUI占用CPU资源多,因此系统使用两颗Nios II处理器,根据系统任务性质及运算量划分为控制单元和显示单元。控制单元使用uC/OS II, 以更快的响应速度控制示波器,频谱仪,逻辑分析仪三大模块,承担非实时运算任务并将结果送显示单元,CustomALU按照控制命令,结果数据解包以及运算内容的要求进行优化。显示单元使用 uC/GUI以及根据显示任务优化的 Custom ALU,专门应对高分辨率彩屏的显示及GUI任务。并具有两个全硬件解码及地址发生的独立主端口直接搬移图像数据.系统吞吐量进一步提升。
双核通过两个单向MailBox传递简单的命令及参数,使用两片DP-RAM作为共享的数据紧耦合存储器,以乒乓方式交替读写来传输共享数据,因此避开了Cache一致性问题,得以通过DataCache大幅提升处理非共享数据的性能。
 
数字荧光示波器
数字荧光模块将示波器触发的每一帧波形连续叠加,累积量的大小作为荧光色温的级别。
 
  图4.2  示波器结构简化框图
 
 
  荧光显示实现
数字荧光示波器除存储波形的平面影像外,另需记录波形在每个点出现的概率,本设计中将存储器地址分段,二段地址分别对应到X轴与Y轴,作为指针指向使用4bit存储单元存储特定位置点的16级积累量。每采样到一个波形点时,由时刻确定X指针,由幅值确定Y指针,从荧光数据暂存中取出旧值,按规则自加后,再根据波形消隐设定,按规则自减,最后回写到该地址。即完成荧光数据的记录。
如图所示,DP-RAM Array 为荧光数据暂存,从中读出特定位置波形点的积累量后,根据积累量值的大小,以不同的概率被Acc单元自加,非线性的累加规则,在极小消耗下保证捕捉到的低概率毛刺一定会被累加,而概率大的波形点累加速度相对减缓。累加后根据用户设定的波形消隐速度,在每次读出全部数据并刷新到显存后由Fade单元对全部数据统一自减。
  并行通道及流水线
从指定地址读出数据,自加,自减,回写,该过程将消耗多个时钟周期,为有足够的吞吐量实时处理以系统工作频率采样的连续数据流,使用流水线技术及真双口RAM阵列,不同通道处理不同时刻数据,16条存储及取值、自加、自减、回写通道,每条通道流处理,各通道间完全并行。
  先插值后触发
在观测较高频率信号时,每周期采样点减少到20点甚至10点以下,需要进行插值。若从采样的32个点中确定触发位置,即使插值到256点也只是利于重现波形,触发不稳将导致波形严重抖动。本设计在实时显示模式下可先插值,后触发,将每周期交叉采样到的2个点逐级取中点经3个周期延迟得到线性插值后的16点,使32个周期得到的512个Y指针送入浅缓存。数字荧光控制器根据每帧的触发时刻、触发通道(共16通道)以及预触发量动态调整所生成的16通道二级指针,从BUF Array中取出缓冲的Y指针,加上重新分配的X指针后,送至后级DP-RAM阵列取值并作自加自减和回写。全过程流处理。
  多种模式兼容
非插值通道、插值通道和单次触发通道通过不同的存储器控制器兼容DP-RAM阵列的读写规则。并由仲裁控制。在有效数据存储的同时也送往模板检查模块,与测试卡比较并记录。
 
实时频谱分析仪
频谱仪部分将时域波形下变频抽取滤波后作FFT,将结果处理后进行数字荧光处理。
 
 图4.3  频谱仪结构简化框图

 

 
实时FFT的分辨率和采集时间相对应,高分辨率即需更长的闸门时间,若不改变采样速率,则会造成超长点的FFT,导致系统无法接受的时间及资源消耗。本设计使用下变频抽取滤波后再处理,使用较少点数的FFT实现高分辨率。
传统FFT是从存储器中读出数据再使用处理器计算,一般同一时刻只能显示一段FFT的结果,这使得在观测某一段频谱时无法监测全局频谱。本设计使用全硬件并行流处理。可同时显示三个量程的频谱,在任何时候都能同时把握全局和观测细节。
  结构概述
本设计中实时频谱仪由两级DDC以及3个节点处的1K点混合基FFT组成。整个系统流处理,输入采样频率为工作频率。分辨率每级放大32倍。
  系统流程
两级混频由用户调节,根据所需的观测频段对前级信号进行下变频。之后的5阶32倍抽取CIC滤波器为其后的FFT去掉冗余采样点,使其能以较少的点数取得高分辨率。CIC后的FIR补偿CIC滚降特性并抗混叠滤波,最后的半带滤波器使FFT前节点为4倍采样。FFT 结果取模后在Y轴上被压缩并送往简化的荧光色温模块以色温或线性方式存储,分别刷新到显存或者等待Nios控制单元读取,同时送往模板检查模块实现测试卡记录和触发。
 
简易逻辑分析仪
在单次触发工作模式下,16路数字通道可根据设定条件使用定时触发或者状态触发,精简的触发和分析功能为混合信号测试提供方便。
 
图4.3  简易逻辑分析仪结构简化框图
 
 
为弥补单纯模拟通道在混合信号测试应用中的不足,本设计中特加入了16路数字通道。根据定时触发和状态触发选取时钟,按规则匹配数据流并触发,存储后待Nios控制单元读取作分析并根据设定改变波形显示方式。
 
 
软件部分
下面两图分别给出不同工作模式下两颗Nios的简要软件流程。
实时显示模式
 
图4.4  实时工作模式下软件流程简化框图
 
实时显示工作模式下,控制单元从显示单元得到用户配置参数,控制仪器模块协调工作,当需要刷新VGA时,由显示单元控制主端口搬移数据流至显存,通过TCDM读取控制单元完成的少量计算结果,和其他界面内容一并通过GUI写入显存。
  
单次触发模式
 
图4.5  单次触发工作模式下软件流程简化框图
 
单次触发工作模式下,控制单元从显示单元得到用户配置参数,控制仪器模块完成一次触发并存储整段数据,此后,控制单元每次取出一部分数据,完成一定计算后通过两片TCDM 乒乓传输给显示单元作简单的图像处理后和其他GUI内容一并写入显存。
 
(Revision: 17 / 2009-09-11 20:10:07)

5. 设计方法 (Final Project Paper)

使用DSPbuilder搭建子SOPC系统,向上提供Avalon接口,向下直接处理ADC采样的数据流,并使用硬件控制系统的工作流程,减少软件负担,提高响应。

在用DSPbuilder搭建的子SOPC系统中,将各主要功能模块作为主设备,通过系统互连开关访问真双口RAM阵列,包括L1预触发缓冲RAM, L2荧光数据库RAM,L3 显存RAM,L4 VGA 行缓冲。

在仿真阶段,将Clock accuracy 的仿真结果导出到Matlab的Workspace,使用m语言处理仿真数据结果,将送往显存的总线上捕获的数据按显示规则绘制出实际显示图像,以此在显示界面实现完毕前调试荧光图像

使用VC建立GUI界面仿真环境,调试GUI代码及多窗口多图层的控制,以此在荧光图像实现完毕前调试显示界面

下图为数字荧光示波器的DSPbuilder的可综合模型

 

 下图为频谱仪的DSPbuilder可综合模型

 

 

(Revision: 6 / 2009-09-14 00:08:59)

6. 设计特点 (Preliminary Paper)

得益于DK-DEV-3C120N开发板上EP3C120丰富且高速的逻辑,存储单元,乘法器,以及布线资源等,该设计能通过更多的并行及流水线结构来获得传统通用平台无法达到的吞吐量。同时由于全套EDA工具强大且易用,在短时间内便可完成较复杂的设计,这是传统数字系统设计实现方法遥不可及的。

 

提供高性能的同时,更低的成本和功耗,以及显著缩短的产品上市时间,这些都使得CycloneIII是手持示波器的最佳选择。

 

比目前市售手持示波器优越:

 

   同时显示时域及频域波形:确定噪声来源时比传统示波器单一的时域或频域显示更有效。

   三级分辨率的频谱同时显示32*32倍的分辨率细化,进一步提升对感兴趣区域的测量效果,并且三级分辨率的频谱同时在屏幕上显示,在观察小范围区域时依然不会失去对全频段频谱的监测。

   荧光色温显示方式:实时显示波形三维信息,发现毛刺和噪声的能力远远高于非实时的二维单色波形。

   额外16路数字通道16路数字通道将使混合信号测试更加方便。

   波形更稳定:使用流处理的先插值后触发设计,二维动态对齐触发点,波形更加清晰。

   便携:基于65nm Cyclone III的小体积单芯片系统,功耗低,便携,续航能力更好 。

   方便升级:FPGA核心,无论是硬件还是软件均可方便升级,甚至能根据测量需求配置成侧重不同的功能。

 

比传统通用平台优越:

 

   合理分配多核:处理器核心按工作性质及工作量划分。

   多核协调:避免Cache一致性问题:根据共享数据吞吐量分配两片乒乓读写的数据紧耦合存储器及两个单向MailBox

   使用自定义指令集:按处理器工作内容有针对性地分别优化控制单元和显示单元的Custom ALU。显著提升对打包数据的处理能力。

   高效数据访问:数字荧光控制器直接处理指针和二级指针。大量数据包传输并同时处理。

   大量流处理:划分前后多级模块,并使其满足流处理要求,三大仪器模块全硬件流处理。

   多通道并行:仅插值荧光色温控制器中便有16条并行通道(每通道6级流水处理)处理不同时刻采集的数据及其插值。

   高存储器带宽:对真双口RAM阵列的连续流水读写大幅提升存储器带宽。

   高强度DSP运算:FPGA在DSP处理上强大的并行高速特性使其胜任实时频谱仪的要求。

   多主端口:两个自带硬件解码及地址生成的数据搬移主端口提升显示通道吞吐量。

   高实时性:结合硬件需求使用uC/OS,使复杂的控制实时性提升,系统更加稳定可靠。

   方便的GUICyclone III提供更理想的显示画面,配以uC/GUI ,使人机交互界面友好

   更强的续航能力 :使用Cyclone III,从制造工艺到EDA工具,全面的功耗优化,为手持设备提供更强的续航能力。

 

(Revision: 15 / 2009-06-15 22:28:58)

7. 总结 (Final Project Paper)

 

这次设计制作的数字荧光示波器不是研究室的项目,也没有前人经验,是自己一点点摸索出来,其间尝试了不少架构和方法,最后才实现设计目标。从FPGA入门到做出个能跑出点东西的工程,其间虽然坎坷,但也确实是件开心的事
 
经过这次竞赛,发现自己有很多不足的地方
 
1:如何正确使用桥设备,系统互连和进一步优化SOPC架构?
2:软核是颇具性价比和灵活易用的设备,当使用更多处理器核心时,如何处理共享和通讯?是否可以分为需要紧密耦合的少量处理器(<4个)和数量多但相对独立的TASK处理器,分别采用并行互连和串行协议?
2:,如何向片上多个精简的小规模TASK处理器描述各自的数据和指令。
2:数据打包技术在DSP处理器中非常有效,而软核处理器的自定义指令集远比DSP处理器的数据打包灵活和丰富。简单的打包只是利用数据位宽,而高级的打包则建立在架构的优化上,笔者尚无法熟练运用。另一方便,虽然不建议在CALU中使用太多低速接口,但是CALU在控制方面的效果还尚未试过
3:初次使用可动态配置的PLL,可以在哪些地方革新传统设计?有哪些地方是需要谨慎处理?
4:没掌握时序分析和约束,因此在优化路径时比较盲目,导致使用了不必要的资源换取多余slack
5:还不熟悉quartus综合、布局布线等过程中的优化规则,因此在设计中往往手工进行了这些优化,降低了工作效率。
6:还不能很好的运用Logic Lock,导致设计后期编译时间太长
7:功耗控制不是设计最后阶段的事,而应在每一个过程中都考虑,并且自顶至下每一层都提供功耗控制的接口。感觉功耗控制博大精深,可惜自己在这方面几乎没经验,导致设计中大量冗余功耗。
8:由于不熟悉,这次设计中并没有使用DSP builder Advanced Block和C2H,不少地方其实可以使用这些技术来提高设计效率。
第一次做示波器,在前期设计时仅想着当时的功能实现,没有考虑到以后的需求和方便,导致随着系统变复杂,前阶段遗留下来的问题变得越来越多且不易弥补或调和。
 
总之,参加这次Altera竞赛是一个非常好玩的过程,但也深深地感受到自己基本功很差,需要系统地学习Quartus,另一个是设计流程很不规范,设计效率比较低。
(Revision: 3 / 2009-09-14 00:24:52)