第一篇:简易数字存储示波器设计
合肥工业大学 课程设计实验报告
题目:简易数字存储示波器设计 学院: 专业: 姓名: 学号: 指导老师:
目录
一、概述---------------第二页
1.课程设计题目及要求---------------
2.课程设计目的-----------------------
3.背景介绍-------------------------
二、设计方案与电路实现第四页
1.工作原理----------------------------
2.利用Quartus软件,编写.v文件-------
3.modelsim及Quartus软件仿真,描述电路性能的波形等参数
4.模拟仿真、结论------------------
三、心得体会--------第九页
四、参考文献--------------第九页
一、概述
(1)课程设计的题目及要求
1.课程设计的题目:简易数字存储示波器设计.2.课程设计的要求:
a.利用 FPGA 实现数字存储示波器.b.由 FPGA 控制 ADC 对一路模拟信号采样, 采样数据暂存于 RAM 中.c.由 FPGA 将 RAM 中的数据读出, 并控制 DAC 输出给示波器显示.d.由一个按键模拟触发信号.e.选用 GW48-PK2 系统, 编写程序在 FPGA 上实现并加以验证.(2)课程设计目的
1.通过本次课程设计掌握Quartusm及modelsim软件的运用 2.掌握数字信号处理的原理方法与实现的过程
3.通过本次课程设计学习解决问题的思路与方法,学习查找资料和运用所学知识解决实际问题的能力 4.学习与别人沟通和合作的能力 5.学会独立思考
(3)背景介绍
数字存储示波器有别于一般的模拟示波器,它是将采集到的模拟电压信号转换为数字信号,由内部微机进行分析、处理、存储、显示或打印等操作。这类示波器通常具有程控和遥控能力,通过GPIB接口还可将数据传输到计算机等外部设备进行分析处理。
数字存储示波器的基本原理如图所示,其工作过程一般分为存储和显示两个阶段。在存储阶段,首先对被测模拟信号进行采样和量化,经 A/D转换器转换成数字信号后,依次存入RAM中,当采样频率足够高时,就可以实现信号的不失真存储。当需要观察这些信息时,只要以合适的频率把这些信息从存储器RAM中按原顺序取出,经D/A转换和LPE滤波后送至示波器就可以观察的还原后的波形。
普通模拟示波器 CRT 上的 P31 荧光物质的余辉时间小于 1ms。在有些情况下,使用 P7 荧光物质的 CRT 能给出大约 300ms 的余辉时间。只要有信号照射荧光物质,CRT 就将不断显示信号波形。而当信号去掉以后使用 P31 材料的 CRT 上的扫迹迅速变暗,而使用 P7 材料的 CRT 上的扫迹停留时间稍长一些。
那么,如果信号在一秒钟内只有几次,或者信号的周期仅为数秒,甚至信号只猝发一次,那又将会怎么样呢?在这种情况下,使用我们上面介绍过的模拟示波器几乎乃至于完全不能观察到这些信号。
所谓数字存储就是在示波器中以数字编码的形式来贮存信号。当信号进入数字存储示波器,或称 DSO 以后,在信号到达CRT 的偏转电路之前(图1),示波器将按一定的时间间隔对信号电压进行采样。然后用一个模/数变换器(ADC)对这些采样值进行变换从而生成代表每一个采样电压的二进制字。这个过程称为数字化。
获得的二进制数值贮存在存储器中。对输入信号进行采样的速率称为采样速率。采样速率由采样时钟控制。对于一般使用情况来说,采样速率的范围从每秒 20 兆次(20MS/s)到 200MS/s。存储器中贮存的数据用来在示波器的屏幕上重建信号波形。所以,在DSO中的输入信号接头和示波器 CRT 之间的电路不只是仅有模拟电路。输入信号的波形在 CRT 上获得显示之前先要存贮到存储器中,我们在示波器屏幕上看到的波形总是由所采集到数据重建的波形,而不是输入连接端上所加信号的直接波形显示。
二、设计方案与电路实现
1.工作原理
数字存储示波器与模拟示波器不同在于信号进入示波器后立刻通过高速A/D转换器将模拟信号前端快速采样,存储其数字化信号。并利用数字信号处理技术对所存储的数据进行实时快速处理,得到信号的波形及其参数,并由示波器显示,从而实现模拟示波器功能,而且测量精度高。还可存储信号,因而,数字存储示波器可以存储和调用显示特定时刻信号。
计数器模块采用和A/D同步时钟,通过写使能wren控制A/D采样,当wren=1时,处于与采样允许阶段,每一个时钟周期A/D采集一次数据,每经过一个采样周期地址计数器加一,产生一次地址锁存,并把数据锁存到RAM中。
2.A/D结构 ①内含S/H;
②为半闪烁结构(flash),两个4bit并行A/D组合为8 bit,转换速率20 Ms/s; ③输入信号 +(0– 2)V; ④基准电压 + 2V 等等 TLC5510内部电路结构
3.利用quartus软件,编写.v文件(1)顶层模块
module reserve(clk, key1, trag, adin, dout);
input[7:0] adin;input clk,key1;
output[9:0] trag;output[9:0] dout;
wire[9:0] trag;wire[9:0] dout;wire[9:0] Q1;wire[7:0] md;wire[7:0] din;
reg[9:0] t;
assign dout={md[7:0],2'b00};assign trag=Q1;
count count(.q1(Q1),.clock(clk));ad ad(.ADIN(adin),.DIN(din),.CLK(clk));
dpram dpram(.data(din),.wren(key1),.q(md),.address(Q1),.inclock(clk));endmodule
(2)计数器模块
module count(clock,q1);input clock; output[9:0] q1;
reg[9:0] t;
always @(posedge clock)begin t<=t+1;end
assign q1=t;endmodule
(3)A/D模块
module ad(ADIN,CLK,DIN);input CLK;input[7:0] ADIN;output[7:0] DIN;
reg[7:0] m;
always@(posedge CLK)begin m<=ADIN;end
assign DIN=m;endmodule
描述电路
4.实验结论
经过在modelsim上仿真得到的波形满足预先设计的功能,在quartus上编译的结果也是正确的。
三.心得体会
这次的实验让我收获颇多,因为这次的课程设计需要用到单片机的知识,verilog的知识,还用到了数字集成电路的知识,是我对于本专业的认识有了更深的了解,也是我明白了现在市面上的电子产品大体的设计步骤。不但如此,我还通过这次试验掌握了示波器的使用方法,协调了知识综合应用的能力。这次试验中还用到了数模模数芯片,让我对其产生好奇,因为这就相当于电子世界里面的人类的听觉。并且通过这次实验还对于quartus和modelsim软件仿真有了一些认识,知道了编程序不要怕从哪里下手,一定要多练,写的多了,自然而然就会了,这次实验让我对于vrilog语言结构有更多了认识,并且我也熟悉了老师们经常在课堂上说的FPGA,而且还锻炼和组员们的协调能力,合作能力,受益匪浅。
四.参考文献
《EDA技术实用教程---VHDL》潘松、黄继业编著;
《Verilog HDL高级数字设计》出版社: 电子工业出版社;第1版(2010年4月1日;
《Verilog数字系统设计教程》夏宇闻;
《数字信号处理的FPGA实现》(第2版)刘凌译;
第二篇:简易示波器课程设计报告
课程设计报告
课程名称 综合电子设计 题 目 简易数字示波器 指导教师 起止日期 系 别 自 动 化 专 业 自动控制 学生姓名 班级/学号 成 绩
摘要
本系统由CPLD,单片机控制模块,键盘,LED,幅度控制模块,低通滤波模块组 成,采用当前主流DDS 技术完成,能产生从1HZ-260KHZ 正弦波,方波,三角波以及这三种同频率波的线性组合,失真度限制在6%之内。
一、功能介绍
1.具有产生正弦波、方波、三角波三种周期性波形的性能。
2.用键盘输入编辑生成上述三种波形(同周期)的线性组合波形。
3.输出波形频率范围为1Hz~200kHz(非正弦波频率按10 次谐波计算;重复频 率可调,频率步进间隔1Hz。)
4.输出波形幅度范围 0~5V(峰-峰值),可按步进为0.1V(峰-峰值)。5.具有显示输出波形种类、重复频率(周期)和幅度的功能。
6.增加稳幅输出功能,当负载变化时,输出电压幅度变化不大于±3%(负载变 化范围:100Ω~∞)。
二、方案论证与比较
常见信号源的制作方法有: 方案一:采用锁相式频率合成。将一个高稳定度和高精确度的标准频率经过加减 乘除的运算产生同样稳定度的大量离散频率技术,它在一定程度上既要频率稳定精确,又要频率在很大范围内可变的矛盾。但频率受VCO 可变频率范围的影响,高低频率比不可能做的很高,而且只能产生方波和正弦波。
方案二:采用模拟奋力元件或单片压控函数发生器MAX0832,可产生正弦波,方 波,三角波,通过调整外部元件可改变输出频率,但采用模拟器件由于元件分散性太大,即使使用单片函数发生器,参数也与外部元件有关,外接的电阻电容对参数影响很大,不能实现波形运算输出等智能化的功能。
方案三:采用DDFS,即直接数字频率合成技术,以Nyquist 时域采样原理为基础,在时域中进行频率合成,它可以快速转换频率,频率,相位,幅度都可以实现程控,便于单片机控制,所以,本系统采用此方案。
三、系统设计
系统总体设计方框图:
系统设计方案:
1、实现A/D芯片的模数转换功能,通过keil的watch窗口观察ADC0读取的数据的变化。
2、设置合适的采样频率和采样时间,对输入信号进行连续采样,对规定时间内的采样结果进行存储。
3、对已有数据进行D/A转换,实现数字量到模拟量的变化,并在示波器上显示结果。
4、添加单次按键触发等功能,实现在满足触发条件后,对一个采样周期内的输入进行存储和连续显示。
5、增加1通道输入,实现双踪示波。
6、综合上述情况实现完整的数字双踪示波器。
四、单元电路设计及其初始化
1.ADC0电路的设计
初始化程序为:
void ADC0_Init(void){ ADC0CN = 0x05;// ADC0 T3定时采样,左对齐 REF0CN = 0x03;// 启用内部基准源
AMX0CF=0x00;// 选择采样输入源 ADC0CF =((SYSCLK/2500000)-1)<< 3;// ADC conversion clock = 2.5MHz ADC0CF &= 0xf8;ADC0GTH=0Xff;ADC0GTL=0Xff;ADC0LTH=0X00;ADC0LTL=0X00;// PGA gain = 2 EIE2 |= 0x02;// 启用 ADC 中断 }
采用数据左对齐存储方式。由0端口输入。T3定时器启动,当T3溢出时启动ADC0。转换结束时产生15号中断。执行中断程序。2.DAC电路的设计
初始化程序:
void DAC0_Init(void){ DAC0CN = 0x82;} void DA0_Out(unsigned int con_volt){ con_volt=con_volt<<2;DAC0L=con_volt%256;DAC0H=con_volt/256;}
其中控制字DAC0CN说明如下:采用更新于写入DAC0H时,数据格式为高八位的低六位和低八为的高六位。
五、软件设计
1.软件流程图:
开始系统初始化扫描键盘循环扫描否定时器3是否溢出是启动ADC015号中断ADC数据采集DAC数据输出输出结束
3.相关程序及其功能
AD DA转换
#include
void SYSCLK_Init(void);void ADC0_Init(void);void Timer3_Init(int counts);void ADC0_ISR(void);void DA0_Out(unsigned int con_volt);void DAC0_Init();uchar int_dec=INT_DEC;uchar tt=0;void main(void){ WDTCN = 0xde;WDTCN = 0xad;SYSCLK_Init();Timer3_Init(SYSCLK/SAMPLE_RATE);ADC0_Init();AD0EN = 1;DAC0_Init();EA = 1;while(1){
} } void SYSCLK_Init(void)
// 配置系统时钟使用外部晶振22.1184MHz { int i;OSCXCN = 0x67;// 晶体振荡器未用,晶体振荡器方式 for(i=0;i < 256;i++);// XTLVLD blanking interval(>1ms)while(!(OSCXCN & 0x80));// Wait for crystal osc.to settle OSCICN = 0x88;// 选择外部振荡器作为系统时钟,内部振荡器禁止 } void ADC0_Init(void){ ADC0CN = 0x06;// ADC0 T3定时采样,左对齐 REF0CN = 0x03;// 启用内部基准源 AMX0SL = 0x00;// 选择采样输入源0 ADC0CF =(SYSCLK/2500000)<< 3;// ADC conversion clock = 2.5MHz ADC0CF|= 0x00;ADC0LTH= 0x00;ADC0LTL= 0x00;ADC0GTH= 0xFF;ADC0GTL= 0xFF;EIE2 |= 0x02;// 启用 ADC 中断 } void DAC0_Init(void){ DAC0CN = 0x80;} void DA0_Out(unsigned int con_volt){ unsigned char hbyte,lbyte;
hbyte=con_volt/256;lbyte=con_volt%256;DAC0L=lbyte;DAC0H=hbyte;} void Timer3_Init(int counts){ TMR3CN = 0x02;TMR3RL =-counts;TMR3 = 0xffff;EIE2 &= ~0x01;TMR3CN |= 0x04;} void ADC0_ISR(void)interrupt 15 { AD0INT = 0;int_dec--;if(int_dec == 0){ int_dec =INT_DEC;DA0_Out(ADC0);} }
六、设计结果
1.对原温度采集程序进行修改完成对信号的采集,以下分别为对于方波、三角波及正弦波的信号采集。
2.加入单次触发程序后,可进行按键触发:(以正弦波为例)
按下采样键K5前 按下采样键K5后
3.加入回放功能键K5,可实现在采样之后,进行波形回放(以正弦波为例)首先按下K5键得到正弦采样信号如图:
然后按下K2键得到回放波形如图:
(由于采样频度与周期等问题,回放波形有失真显现)经程序调整后得到:
更接近采样波形
4.完成双踪示波的采集,见图。
5将双踪示波与触发脉冲结合起来,完成对于双踪信号的采集、存储及回放,原始信号为三角波和方波。
按键k5对信号进行采样存储 按键k2对三角信号进行回放
按键k3恢复信号采集初始状态(等待采集信号)
七、心得体会
通过本次设计我进一步了解数字示波器的基本控制原理,掌握了怎样利用C8051F020开发板实现一个简易数字示波器的设计与制作以及处理器C8051F020芯片的应用,多通道ADC采集功能等应用技术。本次课程设计所设计的是基于C8051F020芯片,通过软硬件结合实现普通示波器显示被测波形的简易数字示波器。能完成对ADC0的0通道和1通道的信号的分时或同时采集(高电平约2V、低电平接近0V)并且对采集的信号通过DAC0和DAC1两个输出口同时输出实现双踪示波器功能。另增加单次触发存储显示方式,即每按动一次“单次触发”键,仪器在满足触发条件时,能对被测周期信号或单次非周期信号进行一次采集与存储,然后通过其他触发键触发信号的回放,观测波形无明显失真。
由于时间和硬件条件关系没有把做出LCD液晶显示示波器有点遗憾,不过我从网络上搜索了有关资料,对其也有了一定的了解。
八、参考文献
[1] 潘琢金【译】.《C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册》
九、附录
1、元器件清单
(1)MCU 为美国Silabs 公司C8051F020,64KB FLASH、(4096+256)B RAM、最高25MIPS 执行速度;
(2)4 路12 位AD 输入,AIN1 到AIN4 输入信号量程0~+2.4V ;(3)2 路12 位DA 输出,输出信号量程0~+2.4V;(4)1 路标准RS232 通讯接口;(5)1 个16X2LCD 接口;(6)1 个128X64LCD 接口;(7)1 个复位键,4 个按键;(8)JTAG 调试接口;(9)外扩总线接口;
(10)C8051F020 上的资源对用户开放。
2、程序清单
/*************************************************************** 功能:实现ADC信号采样和DAC信号输出 用外部基准:
J7 NC 2 内部VREF 外部VREF 3 4 内部DAC工作基准输入
外部VREF 5---6 内部ADC0工作基准输入
外部VREF 7 8 内部ADC1工作基准输入 或用内部基准:
J7 NC 2-内部VREF 外部VREF 3 4 | 内部DAC工作基准输入
外部VREF 5 6-内部ADC0工作基准输入
外部VREF 7 8 内部ADC1工作基准输入
***************************************************************/ #include
#define BAUDRATE 115200 // Baud rate of UART in bps #define SYSCLK 22118400 // 系统晶振频率(Hz)#define SAMPLE_RATE 100000 // Sample frequency in Hz void SYSCLK_Init(void);void PORT_Init(void);void ADC0_Init(void);void Timer3_Init(int counts);void ADC0_ISR(void);void DAC0_Init(void);void DAC1_Init(void);void DA1_Out(unsigned int con_volt);void DA0_Out(unsigned int con_volt);long xdata NCDdata [510];int i=0,j=0,y =0,z=0,x=0,n,k=0,c=0,d,f,m;long a,b;
long result;void main(void){ WDTCN = 0xde;// 看门狗 WDTCN = 0xad;SYSCLK_Init();// initialize oscillator PORT_Init();// initialize crossbar and GPIO Timer3_Init(SYSCLK/SAMPLE_RATE);// initialize Timer3 to overflow at
// sample rate ADC0_Init();// init ADC DAC0_Init();DAC1_Init();AD0EN = 1;// enable ADC EA = 1;while(1){
if(P31==0)
//K5循环扫描
{ for(m=0;m<11;m++);if(P31==0){
f=1;DAC0CN = 0x02;x=0;} } if(P33==0)
//K3循环扫描
{ for(m=0;m<11;m++);if(P33==0){ y=1;DAC0CN = 0x82;} }
if(P34==0)
//K2循环扫描
{ for(m=0;m<11;m++);if(P34==0){ k=1;c=0;DAC0CN = 0x82;} } } }
//---------------// SYSCLK配置
//---------------// 配置系统时钟使用外部晶振22.1184MHz void SYSCLK_Init(void){ int i;// delay counter OSCXCN = 0x67;// start external oscillator with
// 22.1184MHz crystal for(i=0;i < 256;i++);// XTLVLD blanking interval(>1ms)while(!(OSCXCN & 0x80));// Wait for crystal osc.to settle OSCICN = 0x88;// select external oscillator as SYSCLK
// source and enable missing clock
// detector } //---------------// PORT配置
//---------------void PORT_Init(void){ XBR0 = 0x04;// Enable UART0 XBR1 = 0x00;XBR2 = 0x40;// Enable crossbar and weak pull-ups P0MDOUT |= 0x01;// enable TX0 as a push-pull output P2MDOUT = 0xff;// P2口设为推挽方式 P3MDOUT = 0xe0;// P3口设为推挽方式 } //---------------// ADC0配置,T3定时启动ADC //---------------void ADC0_Init(void){ ADC0CN = 0x05;// ADC0 T3定时采样,左对齐 REF0CN = 0x03;// 启用内部基准源 AMX0CF=0x00;// 选择采样输入源
ADC0CF =((SYSCLK/2500000)-1)<< 3;// ADC conversion clock = 2.5MHz ADC0CF &= 0xf8;ADC0GTH=0Xff;ADC0GTL=0Xff;ADC0LTH=0X00;ADC0LTL=0X00;// PGA gain = 2 EIE2 |= 0x02;// 启用 ADC 中断 } //---------------// Timer3配置,T3定时启动ADC //---------------void Timer3_Init(int counts){ TMR3CN = 0x02;TMR3RL =-counts;TMR3 = 0xffff;EIE2 &= ~0x01;//定时器3中断屏蔽。TMR3CN |= 0x04;} //---------------// ADC0采样中断
//---------------void ADC0_ISR(void)interrupt 15 { AD0INT = 0;// 清 ADC 中断标志位 result=ADC0;if(AMX0SL==0x00)a=result;else b=result;DA1_Out(b);//DAC1输出通道1采集的数据
if(f==0)DA0_Out(a);else { NCDdata[x]=a;if(x<500)x++;if(x==500){ if(k==1&&c<400){ DA0_Out(NCDdata[c]);if(c<400)c++;}
else DAC0CN = 0x02;} if(y==1){k=0;f=0;y=0;} } if(AMX0SL==0x00)AMX0SL=0x01;//改变采样输入源 else AMX0SL=0x00;} //---------------// DAC0配置
//---------------void DAC0_Init(void){ DAC0CN = 0x82;// Enable DAC0 in left-justified mode
// managed by Timer4 overflows } //---------------// DAC1配置
//---------------void DAC1_Init(void){ DAC1CN = 0x82;// Enable DAC0 in left-justified mode
// managed by Timer4 overflows } //---------------// DAC输出数据处理
//---------------void DA0_Out(unsigned int con_volt){ con_volt=con_volt<<2;DAC0L=con_volt%256;DAC0H=con_volt/256;}
void DA1_Out(unsigned int con_volt){
con_volt=con_volt<<2;DAC1L=con_volt%256;DAC1H=con_volt/256;}
3、系统功能说明:
当没有按键的时候系统为完整的双踪示波器,能对双通道的输入输出进行分别采样和输出。当K5按下的时候,DAC0屏蔽,系统开始将数据采集后存放于设定的数组当作,此时当K2键按下的时候系统使能DAC0,输出存储在数组中的采集好的数据,当数据输出完成的时候关闭DAC0。当按下K3时,系统还原到初始状态(双踪示波)。
第三篇:数字示波器使用方法总结
数字示波器使用小方法
前 言
本文的结构逐条编排,目的是使内容成为开放性和可添加型的,欢迎有经验的同事增加新的内容。
对本文中用到按键符号作如下规定:
TRIGGER MENU →Type(main)
→Edge(pop-up)→Coupling(main)→DC(Side)代表按面板上的TRIGGER MENU键,再按显示屏下方的Type键,重复按这个钮直到Edge高亮显示,再按显示屏下方的Coupling,再按显示屏右侧的DC键。
注:main代表显示屏下方的键,Side代表显示屏右方的键,pop-up代表一直按此键,直到项目高亮显示。
目 录
一.安全问题...............................................................1 二.使用探头...............................................................2 三.触发方式..............................................................11 四.测试方法..............................................................15 五.小常识、小经验........................................................23
示波器使用经验
一. 安全问题
结论一 示波器电源线要用三相插头良好接地(即接实验室的地线)
说明 为了避免电冲击对示波器造成损伤,输出及输入端进行电气连接前要保证示波器良好接地。
结论二 探头地线只能接电路板上的地线,不可以搭接在电路板的正、负电源端 说明 交流供电系统或经整流后直流供电的系统的地一般都是接大地的。探头的地也是经示波器安全地线接大地的。如果探头的地搭在电路板上不是地的点上,就会造成此点和电源地短路,轻者使电路板工作不正常,重者会烧坏电路板或探头,造成严重后果。尤其注意不能把探头的地接到电路板上的正、负电源端。
结论三 不允许在探头还连接着被测试电路时插拔探头。
结论四 信号的幅度不要超过探头和示波器的安全幅度,以免造成损坏
说明 信号幅度超过±40V时,用有源探头P6245和P6243测量会造成探头的损坏。不同探头的幅度量程是不同的,要留心探头及示波器上的说明文字。
说明 避免对示波器和探头造成损伤,尤其是有源探头。厂家说明。
示波器使用经验
二. 使用探头
结论一 有源探头使用前要先进行幅度校准 示例:
说明: 有源探头内含放大器等有源器件,因温漂等原因而使其在不同环境中引入直流偏移不同。使用前,先插到示波器上预热几分钟,然后进行一次校准。校准步骤:探头接好示波器面板自带的1KHZ、0.5V的信号,按VERTICAL→CAL Probe(main),稍等几分钟后示波器就自动校准好了。有源探头未校正前测一1KHZ信号有100mV的直流偏移
有源探头校正后测量同一信号时无直流偏移
结论二 探头的地线不要悬空
示例
说明 探头地线悬空时,示波器的地和电路板的地通过各自的安全地线和大地连在一起,测量时也能看到波形,但引入地线噪声较大,实测时看到波形不稳定,晃动很厉害。
探头地线悬空时,示波器显示信号上叠加有较大的交流干扰,并且波形抖动很厉害。
探头接电路GND,波形无交流干扰,波形也很稳定。
示波器使用经验
结论三 手触摸探头会对被测信号造成影响
示例
探头空载,手不碰探头时示波器显示的感应噪声电压很小
探头空载,手碰探头探针时示波器显示的感应噪声电压明显增大
以下两幅图是实际测试电路板上同一个信号时的波形,可看出手碰探头对信号的幅度的影响。
实际信号下降沿反冲很高,达1.78V。
降沿反冲幅度变小, 只有1.24V。
手碰探头外皮时,示波器显示的信号下说明 当手指触摸被测电路及探头时,人体引入的干扰电压和电路板上的信号电压叠加在一起,必然对信号的实际情况造成影响。
结论四 探头地就近接被测信号的地
示例
示波器使用经验
探头接被测信号所在芯片管脚地时测到波形
探头接另外一个芯片的地时测到的同一信号波形,可见反冲高度不一样
说明 由于地线电流的影响,各个接地点之间存在着一定的电位差,接地不正确时,会引入测试误差。探头接地点要以被测信号所在芯片的引脚地为准。结论五 探头探针就近接被测信号管脚 示例:
同一个接地点时,同一信号线上不同两点的波形不同。(40M时钟)
说明 在同一条PCB走线上,信号存在反射、滤波、串扰等因素影响,走线的两端观察到的信号是不同的,而对器件直接起作用的信号是器件输入管脚和器件地之间的信号。因此,测信号时,应测输入信号,且要尽量靠近芯片管脚。
结论六 引出线要尽量短 示例:以下四幅图是用不同长度引出线测同一信号时的波形,可看出不同长度引出线对测量的影响
直接测芯片输入管脚
用10厘米长线引出
用20厘米长线引出
用 4 30
厘米长线引出
示波器使用经验
比较四幅图的反冲高度可见,引出线越长,引入误差越大。
结论七 使用多个有源探头观察不同信号时,每个探头都应接地
示例
两个通道测同一信号,CH1探头接
地,CH2探头未接地,测得波形不 一样
CH1和CH2 的两个探头都
接地时测得波形相同 说明 原因同上
说明 每个有源探头都带有放大器,其地虽与示波器内部地相连,但此时地线已不是对应信号的地,对测量带来误差。
结论八 测试时,尽量减小探头探针与探头地所构成环路的面积
示例
说明 探头信号线和地线之间环路面积越小,电磁场的变化(包括电路板本身产生的和外界环境中的)在环路中感应出的电压越小,对测试精度的影响也就越小。另外,当探针与地线环路面积大时,由于地环路电感的增大,会使信号边沿过冲增大,引入误差。如下面两幅图所示。
探头探针与探头地所构成环路的面积小时感应的噪声电压小
探头探针与探头地所构成环路的面积大时感应的噪声电压大
示波器使用经验
结论九 探头要尽量与电路板PCB板面垂直
示例
探头与电路板垂直时感应的噪声电压小
探头与电路板平行时感应的噪声电压大 地环路面积小时测得过冲是2.2V
地环路面积大时测得过冲是2.8V 说明 与探头和PCB板面平行相比,探头与PCB板面垂直时电路板中高频信号在示波器探头环路中感应出的电压较小。
结论十 测量任意两点间的信号应使用差分探头 示例
这是用差分探头测量RS-422差分传输的波形图
说明:普通探头只能测相对于地的信号,而差分探头可以测任意两点间信号。差分探头有三根引线:一根地线,一根正信号线(标示为+)和一根负信号线(标示为—)。使用时,探头地线接电路板GND,正负端分别接被测差分电压
示波器使用经验
端,示波器显示的波形是正端信号减负端信号的电压差值。
结论十一 可以用两个普通探头代替差分探头进行差分测量
示例
说明 用两个相同的探头,CH1接A点,CH2接B点,然后用示波器的运算功能,选择CH1-CH2,此时示波器显示的就是A和B两点的差分值。这种方法适用于共模电压为直流或低频且幅度低于差模信号允许幅度的情况。
结论十二 用差分探头作对地测量时“-”端不能悬空 示例:
差分探头作对地测量,“-”端未接地时波形图
差分探头作对地测量,“-”端接地时测同一信号的波形图
上图是用两个普通探头相减作差分测量波形图 下图是用差分探头测量同一信号的波形图
说明 “-”端是差分探头中放大器的一个输入引脚,差分探头用作普通探头测对地电压时,负端悬空时易引入干扰,应要接电路地。
结论十三 小心探头间的串扰现象
示例
示波器使用经验
两个探头靠得很近(尤其是探针
和探头地线构成面积平行重叠时),测到波形有串扰
两个探头远离时,测到波形无串扰
说明 高频信号辐射较强,多个探头共用时,探针上高频信号会在各个探头与地线组成的环路面积中感应出噪声,当多个探头平行走线时尤其严重。从示波器上看好像是电路板上信号间的串扰,而实际电路板上信号并无串扰。因此要注意,多个探头共用时,各探头要避免平行走线,更不要缠在一起,要尽量远离。
结论十四 探头与示波器有特殊的匹配关系
说明 TEK示波器的输入电阻有两档,1MΩ和50Ω。当接有源探头时(如P6245),示波器的输入电阻会自动转换到50Ω,从而进行正确测量。当再换上无源探头时,需要手工把示波器的输入电阻设臵回到1MΩ,否则屏幕上会显示错误波形或无波形显示,无法进行正确测量。操作步骤是:VERTICAL MENU →Coupling(main)→1MΩ(side)。
结论十五 有源探头未插好时,虽显示有波形,但波形幅度错误 示例:
示例
用500M无源探头,示波器输入电阻选1M时,测到的正常信号波形 用500M无源探头,示波器输入电阻选50Ω时,测同一信号的波形,发生了错误。
示波器使用经验
探头未插好时显示的信号幅度发生错误,本来是0-5V的电平,却显示成了0-25V和0-250V。(同一个信号)
说明 断开探头和电路的电气连接,从示波器上拔下探头再重新插入。一般先插好探头再打开示波器的电源开关时无此现象发生。
结论十六 要注意差分探头的“削波”现象 示例:
说明: TEK公司差分探头P6247能够测量的差分电压范围是:打在÷10档位时是±8.5V,打在÷1档位时只有±850mV。差分信号峰峰值超过850mV时(比如测公司常用的平衡线传输信号±5V),要注意选用÷10档,否则会因输入过大而使显示的波形发生错误。
结论十七 测试高速信号时要选用1G、1PF探头
示例
说明 对被测信号而言,探头和示波器输入电容相当于是滤波器,对被测信
差分探头,用÷10档位测到的正确差分信号波形
差分探头,用÷1档测到的同一差分波形,发生了“削波”现象
用,1G示波器,配1G、1PF探头观察到的信号波形,有高频振荡。
用1G示波器,配500M、8PF探头观察同一信号波形,看不到高频振荡。
示波器使用经验
号的高频成分有衰减,如果衰减过大,会造成测试失真。因此,在观察信号上升或下降沿细节时,要注意选用1PF有源探头。
再如下图,用1PF探头看到信号边沿有毛刺,用8PF探头却看不到。
探头使用正确与否,直接决定着我们观察到的信号是否真实地反映了电路板上信号的实际情况。测试时,一定要注意正确使用探头。
8PF探头看不到边沿毛刺
用1PF探头能看到边沿的毛刺
示波器使用经验
三. 触发方式
1. 边沿触发简单常用-edge
说明: 它是利用信号变化的边沿来进行触发。一般先用边沿触发方式观察信号情况,发现有问题时再根据实际情况选用其它的触发方式。
2. 捕捉毛刺-glitch触发
用边沿触发能看到低电平上有毛刺,但很难捕捉到最高幅度的毛刺
用毛刺触发功能捕捉最高幅度的毛刺很容易
用上升沿触发观察信号
说明:毛刺触发是很有用的一项功能,可用来捕捉低电平或高电平上的毛刺,看其幅度是否超标。毛刺触发方式下,随着触发电平的缓慢调高,毛刺幅度更高的信号就显示在屏幕上,直到触发电平位臵超出信号毛刺所能触发范围。
操作方法 :TRIGGER MENU→Type(main)→Pulse(pop-up)→Class(main)
→Glitch(pop-up),然后按Polarity&Width选择毛刺的极性和宽度,再按glitch(main),选accept表示宽度小于设臵值的毛刺触发,选reject表示宽度大于设臵值的毛刺触发。Mode&Holdoff设臵为Normal 时,表示只有当信号符合所设臵的触发条件时才触发;设臵为Auto时,表示在没有符合触发条件的情况下,示波器自动触发。
3. 捕捉幅度异常信号-Runt触发
以幅度位于1.4V和4.4V之间的信号触发捕
捉到幅度异常信号
示波器使用经验
说明:信号幅度位于一定范围内时触发。操作方法是:TRIGGER MENU→Type(main)→Pulse(pop-up)→Class(main)→runt(pop-up), 然后通过Threshold选择触发信号幅度位于的上下限值。再通过Trigger When可设臵:信号电平不但要落在设定的上下限范围内,保持时间还要超过设定值时才触发。
4.捕捉宽度异常信号-Width触发
说明: 该触发方式是:信号时间宽度位于某一设定的时间范围之内,或者是位于该范围之外时触发。例如:设定upper limits为50ns,lower limit为10ns。选Within limits表示宽度在10ns和50ns之间的信号触发。选Out of limits表示宽度小于10ns或大于50ns的信号触发。
操作方法是:TRIGGER MENU→Type(main)→Pulse(pop-up)→Class(main)
→width(pop-up),再依次设定显示屏下方的各项。
以宽度在520ns和1us
之间的信号作触发
5.检查信号边沿跳变速度是否足够快-Slew Rate触发
说明:该触发方式是:信号边沿的变化时间快于或慢于某一设定的值时触发。操作方法是:TRIGGER MENU→Type(main)→Pulse(pop-up)→Class(main)→Slew(pop-up),再依次设定显示屏下方各项。例如:设定Thresholds为500mv和4.5V,选Trigger When 为Slower than ,选Delta Time为10ns,表示信号电平从500mv变化到4.5V时,如果跳变时间超过10ns就触发。
以下降时间超过10ns 的信号作触
发,检查下降时间是否合格。
示波器使用经验
6.保持电平时间超限触发-Timeout
说明:该触发方式是:信号电平保持低或高超过某一设定的时间时触发。操作方法是:TRIGGER MENU→Type(main)→Pulse(pop-up)→Class(main)→Slew(pop-up)。再依次设定显示屏下方的各项。
7.模式触发(Pattern)的应用
说明:该触发方式是:来自各个输入通道的信号进行布尔运算。满足条件时触发。
操作方法是:TRIGGER MENU→Type(main)→Logic(pop-up)→Class(main)→Pattern(pop-up)。Define Inputs 用来定义各个输入通道采用的逻辑方式:H——高电平为1,L——低电平为1,X(不理采)。
Define Logic 定义进行的运算。可以是AND(与)、OR(或)、NAND(与非)、NOR(或非)。
Trigger When 可以设臵结果为1或结果为0时触发。还可进一步设成结果为1 或0的时间超过某一设定值时触发。
Set Thresholds 设臵各个通道的逻辑电平的阈值。
利用此触发功能,可依据诸如地址总线或数据总线上的一特定数字值触发。来观察启动线以及读写信号线上的信号情况。
以保持低电平时间超过410ns的脉冲
作触发信号
CH1-CH4的信号分别为高、低、高、高时触发
CH1-CH4的信号分别为高、低、高、高,且保持时间超过20ns时触发
示波器使用经验
8.状态触发(State)的应用
说明:此种触发模式是在第四通道的上升或下降沿处,读取前三个通道的逻辑运算结果,满足条件是触发。操作方法是:TRIGGER MENU→Type(main)→Logic(pop-up)→Class(main)→State(pop-up)。再依次设定显示屏下方的各项。
9.检查建立保持时间Setup/Hold
说明:该触发方式是:以时钟通道的跳变沿处为基准,设定一个时间范围,在该范围内如果数据通道的信号逻辑值有变化,就会进行触发。
操作方法是:TRIGGER MENU→Type(main)→Logic(pop-up)→Class(main)→Setup/Hold(pop-up)。再依次设定显示屏下方的各项。其中Setup/Hold time 设臵时间范围的起始/结束时刻。是以时钟的跳变时刻为基准的。Setup值为正表示在时钟跳变之前,而Hold值为正表示在时钟跳变之后。
熟练掌握数字示波器提供的丰富的触发方式,灵活运用,会使你捕捉信号、发现问题更有效。
第二通道的下降沿左右15ns范围内如果第四通道数据有变化就触发
在第四通道的上升沿处,前三个通道的信号分别为高、低、高时触发
示波器使用经验
四 测试方法
一. InstaVuT(长余辉)有重要的价值
长余辉方式可看到信号中有尖形脉冲
正常触发方式却看不到这个尖脉冲
说明: 在NORMAL正常方式下,波形捕捉次数是50次/秒。在InstaVuT方式下,波形捕捉速率最高可达400000次/秒(依示波器而定)。示波器以叠加的方式把波形显示在屏幕上,并且波形在屏幕上的停留时间可由用户设定。其优点是可捕捉到间歇性偶发信号,并且使看一段时间内信号情况很方便。这种功能可以把一段时间内的所有信号波形通过叠加的方式显示在屏幕上。NORMAL方式下由于相邻两次捕捉波时间相隔太远,很容易丢失间歇性偶发信号。操作方法:InstaVuT→MODE(main)→instaVu(popup),再在屏幕右侧依需要设定波形保持时间,或选取永久保持。
二.利用单次触发功能
说明: 单次触发和软件的单步运行很相似,每触发一次就停下来,可详细观察触发信号左右的信号情况。这在调试数字逻辑电路时尤其有用。
操作方法:按一下SHIFT+ACQUIRE MENU→stop after RUN/STOP(main)→ Single Acquisition Sequence(side), 就进入了单次触发模式。按一下
用单次触发功能,以通道1上电后出现的第一个下降沿为触发信号,观察通道2上的信号,看到相隔约500mS后有一毛刺信号。
RUN/STOP键,示波器就处于等待触发状态。捕捉到一次触发后,示波器暂停接收触发。如需再触发,需再按下RUN/STOP键。
三.延时触发的应用
示波器使用经验
TEK示波器提供了两种延时触发:delayed runs after main和delayed triggerable。① delayed runs after main
通道上出现触发信号后,延时6us,以此时刻为基准点来显示信号。
delayed runs after main方式工作过程是这样的:找到一个触发脉冲后,延时一段时间(时间长度由用户设定),然后以延时后的时间点为触发时刻显示信号。
操作步骤:HORIZONTAL MENU→Time Base(main)→Delayed only(side)→Delayed Runs After Main(side)。然后设臵延时时间。
这种方式的一个应用:可用来详细观察与第一个触发信号相距较远的信号。② delayed triggerable
delayed triggerable分三种情况,由用户设定,它的工作过程是这样的:
主通道触发等待用户设定时间等待次通道出现触发显示波形次通道上出现n次触发次通道上出现n次触发等待用户设定时间主通道和次通道的时基可以设臵成不同的值,显示波形时是以次通道上的时基为准的。
下图是一个delayed triggerable的例子。
CH2出现上升沿后,CH1再出现以此时间点为基准展宽信号来观
察信号细节。三次上升沿,然后再延时6us,以此时间点为基准显示信号。操作步骤:先按常规方法设好主通道的触发,然后SHIFT DELAYED TRIG
示波器使用经验
→Delayed by(main)→Triggerable After Time ,Events or Events/Time(side),选其中的一种延时触发方式,再设好显示屏下方各值。
退出延时触发的方法是:HORIZONTAL MENU→Time Base(main)→Main only(side)。
四.利用长记录长度的功能
示例:
说明:观察信号比较详细,而且需要观察很长一段时间内的信号时,一个屏幕长度就不够用了,这时可使用长记录长度功能。操作方法: HORIZONAL MENU键,再进入Record Length选择波形记录长度。可根据自己的需要选择其中一种记录长度。拧动HORRIZON钮,时间上连续的信号波形就显示在屏幕上。
五.利用数学运算功能
说明:示波器提供的加减乘除等运算功能可使测试更方便。比如上图,利用两个通道值相减就实现了差分测量。
操作方法:MORE→math(main),再依据需要设臵数学运算功能。
利用长记录长度功能,观察时间上
连续的信号波形。
上图是用两个普通探头相减作差分测量波形图 下图是用差分探头测量同一信号的波形图
示波器使用经验
六.利用频谱分析功能
→FFT(main)。
七.Peck Detect和Envelope的应用
1K方波信号的频谱图
说明:TEK示波器提供了FFT功能。可用来观察信号的频谱。操作方法是:MORE Sample方式下观察到的信号波形 Peck Detect方式下观察到的同一信号波形
Hi Res方式下观察到的同一信号波形
Peck Detect方式下观察到的同一信号波形
Average方式下观察到的同一信号波形
示波器使用经验
说明:示波器水平记录长度代表的时间长度除以总点数称为一个取点间隔。每个取点间隔内示波器采样几个点(假设为m),然后以某种方式取其中的一个点用于显示电压波形。不同的取点方式下观察到的波形有所差别。
Sample方式下,总是取每个取点间隔内采样的m个点的第一个点用于显示波形,这是示波器缺省的方式。
在Peak Detect方式下,在第一个取点间隔中取m个采样值的最大值,在下一个取点间隔中取m个采样值的最小值,这样交替进行。此方式可用于检查毛刺和虚假信号。
在Envelope方式下,把n次触发取得的值都保存下来,然后在这n次触发中对应的取点间隔处,从n*m个数据中找出最大值(最小值),在下一个取点间隔处找出最小值(最大值),交替显示。此方式可显示波形的包络。
Hi res方式下,每个取点间隔内采样到的m个点取平均值,然后显示。此方式可用于滤除噪声。
Average方式下,进行n次触发,每次触发都采用Sample方式,然后在对应的取点时间间隔处,把n个值取平均值,依此值来显示波形。此方式可用于降低周期信号的噪声。
操作步骤:SHIFT ACQUIRE MENU→Mode(main),再依据需要选取取点方式。
八.观察信号质量时时间档位要设置得足够细
时间档位打得太粗看不清上升沿细节 时间档位打得细些可看到上升沿有毛刺
九.串扰调查的方法
通道1的尖峰毛刺和
通道2信号同步,由此判定通道2是串扰源。
示波器使用经验
说明:用两个探头,一个探头接被串扰的信号,另一个探头碰触被怀疑为串扰信号源的点,如果此点上信号和被被串扰信号上的干扰信号同步,则此点极有可能是串扰信号源。
十.同步时钟的测试方法
以同步时钟的低频时钟信号作触 发观察到的显示稳定的波形
以同步时钟的高频时钟信号作触发时波形显示混乱
说明:在用多个通道测量同步时钟信号的关系时,要以频率低的信号为触发信号。否则会因为高频信号触发边沿处,低频信号电平有高有低而使显示的低频信号重叠。观察不到稳定的波形。
十一.注意虚假信号 示例:
时间档位打在1ms观察40M时钟时,数字 示波器显示一个476HZ的信号,是一虚假 信号,实测时可观察到波形晃动。
说明:TEK示波器显示方式是每个水平格50个点,而不管每个水平格代表的时间宽度。当时间档位打在1ms时,每个水平格采50个点,也就是采样速率是50KHZ/s。这种采样速率要看40M的信号是根本不可能的。示波器只是把按50KHZ/S采到的点拼成了一个波形,而这些点因为太离散,根本不能代表40M信号的波形。因此,观察信号时,时间档位要打细,使采样速率提高。
时间档位打在12.5ns时观察到的真
实的40M时钟信号波形
示波器使用经验
十二.测信号质量时要去掉多余的负载 示例:
外接一个频率计时测得的一16MHZ信号波形
去掉频率计后测得的16MHZ信号波形
说明:外部负载的输入电阻和电容会对被测信号产生衰减、滤波等影响。测信号质量时要尽量模拟电路板实际工作时的情况。
十三. Fit to screen的一个应用:时间档位打粗情况下提高采样速率,观察宽度小、相距远的信号
Fit to screen 为OFF,把时间单位打粗 Fit to screen 为ON,把时间单位打粗
来观察信号之间关系时,却因信号宽 时,观察到的宽度小相距远的信号之
度小而看不到信号
间关系
说明:TEK数字示波器Fit to screen打在OFF时,采样速率是自动调整的,不管每个水平格儿代表多长时间,每个格显示50个点。也就是说,时间档位打得越粗,采样速率越低。此时若把时间单位打粗来观察宽度小、相距远的信号之间关系,会因为采样速率的降低而丢失宽度较小的信号。把Fit to screen打在ON时,在每个水平格儿代表时间长度一定情况下,记录长度越长,每个格儿的点数就越多,相应采样速率就越高。这时如果时间档位较粗,不致因采样速率降低太多而丢失宽度小的信号。
操作步骤:HORIZONTAL MENU→Record Length(main)→Fit to screen(side)。
示波器使用经验
十四. 精确测量相距较远的信号的时间关系
(1)选用长记录长度,Fit to screen 打在ON,在时间档位尽量小的情况下使两个相距较远信号同时显示在屏幕上。按Cursor键,选取竖光标并移动,使两上竖光标分别大致对齐两个相距较远信号,如图a所示。
图a.图b.图d.图c.(2)拧动HORIZONAL钮,把其中一个信号移动到屏幕正中央,如图b所示。(3)把Fit to screen打到OFF,此时波形以屏幕正中央为基准点展开,如图c 所示。
(4)此时发现竖光标可能与信号并未对齐,移动光标使之与信号精确对齐,如图d所示。
(5)对另一个信号作同样的操作。这两个信号的时间精确关系就显示在了屏幕的右上方。
根据测试的需要,把示波器提供的各种触发方式和功能组合起来使用(比如延时触发和单次触发组合),会使您的测试技巧更高,发现问题更深刻,工作更有效。
五 小常识、小经验
1.数字示波器的键太多,主要有几个,一般怎样设置?
示波器主要有三个设臵区,第一个是:“VERTICAL”设臵区,用来设臵信号显示时垂方向的有关状况,诸如显示幅度,在屏幕上的上下位臵等。第二个是“HORIZONTAL”设臵区,用来设臵信号显示时在水平方向的有关状况,比如左右位臵和信号显示宽度。第三个是最复杂的“TRIGGER”设臵区,用来设臵信号的触发方式,正是因为数字示波器提供了丰富的触发方式才使其功能很强大。
“VERTICAL”通常设臵为2.0V;“HORIZONTAL”根据所观察的具体信号设臵;“TRIGGETR”通常设臵为:TRIGGERT MENU →SET LEVEL TO 50%→Type(main)→Edge(pop-up)。
2.利用AUTOSET自动设置来观察信号情况
按下AUTOSET键,示波器会按被测信号的情况自动显示信号。
3.怀疑示波器的设置模式被搞错了,怎么办?
按下SETUP→Factory set(main),使示波器回到厂家的设臵上。
4.触发电平不合适,观察信号就不稳定或看不到 触发电平应放臵在信号幅值范围以内,否则会因为没有触发而观察不到波形。触发电平太高或太低时,会因为随机毛刺造成触发而使屏幕上波形跳动。如果信号是单一直流电平,只有把触发电平放在信号电平值上时屏幕上才会显示有波形。
5.利用Measure功能
Measure提供了很多项测量功能,比如周期、频率、上下峰值、上升下降沿时间,均方根值等。利用此功能使测试方便。
6.利用ZOOM功能
利用此功能可以在水平方向和垂直方向缩小或放大观察信号。
7.利用Cursor功能
利用两个垂直光标可以测量垂直两点间的电压差值,利用水平光标可以测量水平两点间的时间距离。
操作方法:按面板上的CURSOR键,再按需要选取水平光标或垂直光标,旋
动面板上的SELECT钮,使光标对准感兴趣的两点,其差值就显示在了显示屏上。
8.拷贝示波器屏幕图形时要注意两点
拷贝屏幕图形时要首先保证设臵正确。操作方法:SHIFT+ HARDCOPY MENU →Port(main)→File(side)→layout(main)→Portrait(side)→Format(main)
→ BMP mono或 PCX。Port设臵不正确时,图形拷贝不到磁盘上。Layout设臵成Landscape时,拷贝到磁盘上的图形是倒的,会给下一步处理带来麻烦。
9.加深认识1×和10×探头
1×探头也称1:1探头,可简单地将高输入阻抗示波器接到被测电路,相当于电缆的功能。它将引入一明显的电容,与示波器的输入并联。一个1×探头约有40至60PF的电容。
10×探头也称10:1探头、分压探头或衰减探头,内部插有并联的电阻器和电容器。,各示波器连接后如下图所示。
R1 + R 2 VsC1 C0-C2Vin+-10×探头示波器探头内电阻和电容R1、C1与示波器输入电阻电容R2、C2满足R1*C1=R2*C2时,两个电容的影响正好抵消。此时:
R2VinVsR1R2
R2是示器的输入阻抗(1MΩ),R1=9R2,可得:。
1VinVs10结果是:探头和示波器结合后,由于两个电容有效地抵消,10×探头有比1×探头宽得多的带宽,代价是招致电压的损失。只要被测电压不致小到被10除以后,示波器上读不到即可。这意味着在决定是否使用10探头时,要考虑示波器的灵敏度和信号电压能否够用。在许多示波器上,用户必须记住,使用10× 探
头时,要将测量结果乘以10。TEK数字示波器能自动识别P6139和P6245型号的10×探头,会自动将读数调至正确值。
用10×探头时,电阻和电容影响都降低(相对1×探头),但保留了探头电容C0,这一电容量由制造厂给定。
P6139探头小孔就是调节上图所示的小补偿电容的。方法是将探头接在示波器上的校正信号源上(一般是0.5V,1KHZ方波),调整探头电容,使方波尽可能呈方形且顶端平坦。
11.实时取样和重复取样
实时取样是最明显和直观的取样方式。所有的取样点是响应示波器的一次触发而获取的。这种技术的主要好处是可以获得一次瞬变值(或称单冲信号)。缺点是模-数转换器必须以高于信号最高频率两倍的速度准确地工作。
重复取样分两类:顺序取样和随机取样,可在波形满足下面两种条件时采用: 1:波形必需是重复的; 2:必需能稳定地触发。
顺序重复取样:每触发一次获取一个单一取样。当发生触发时,触发后在精确控制的时间内进行取样。每触发一次,往后延迟一点时间,使全部波形都被取样。
随机重复取样:相对于触发信号而言随机地取样,再根据取样点距触发时刻的距离,把采到的点合成一个波形。这样就不受模-数转换器速度的限制,但其性能受下列局限,即获取时间颤抖最小的取样,并相对触发信号及时布臵该取样点的能力。
TEK数字示波器提供了随机重复取样技术。在Repetitive Signal设臵成ON情况下,当时间档位打得很小,模数转换器速度满足不了要求时,示波器会自动启用随机重复取样,此时示波器左上角会显示一个ET(Equivalent-time)标识。当Repetitive Signal设臵成OFF时,不管时间档位打得是否很小,示波器只用实时采样。
操作方法:SHIFT+ACQUIRE MENU →Repetitive Signal(main)→ on或off.(side).12.调整释抑时间(Holdoff)的作用
示波器触发后,抑制触发系统以免再取点过程中再次触发,直到一次设定长度的点取完。设定长度的点取完后,示波器还会在HOLDOFF设定的时间长度内抑制触发信号。这种功能可用来稳定显示复杂周其脉冲序列。以下图所示一个脉冲序列为例。
holdoff
如上图所示:图中虚线代表触发电平位臵,采用边沿触发。当Holdoff时间设臵为图中所示时间长度时,不论首先由三个脉冲中的哪一个先触发,由于释抑时间的设臵,下一次的触发信号仍然只能是它。这样屏幕上就能显示出稳定的波形。否则会因为图中所示的各个脉冲都能触发而使屏幕不能稳定地显示波形,很杂乱。
操作方法:TRIGGER MENU→Mode&Holdoff(main),再在显示屏右侧调整释抑时间的长度。
第四篇:简易数字跑表设计
西安郵電大学
数字控制系统课程设计报告书
院(系)名称 : 学生姓名 : 专业名称 : 班
级 : 时
自 动 化 学 院
自动化 自动1103 间 : 2014年9月1日 至2014年9月12日
乘法器设计
一、设计要求:
计时精度10ms,计时范围59.99秒。
(1)对单人计时,能实现暂停、显示及清零功能,在数码管上实时显示,设置启动/暂停、清零按键;
(2)对多个人同时计时,在数码管上实时显示,并能回显出六个时间。可控制显示,设置清零、取时按键;
(3)采用状态机设计;
(4)百分秒在数码管上实时显示,秒利用多个数码管显示BCD值。
二、设计过程: 1.方案设计:
1)画状态图:
按键
状态
输出
复位:00
开始:S0
清 零:z=0;
启/停:01
计数:S1
不清零:z=1;
存/回显:10
暂停:S2
存/回显:S3
2)写程序:
·在一个module模块里,有多个always块;
·有分频、计数、存储、输出等模块;
·测试模块的输入输出与源程序的输入输出相反; 2.系统仿真:
Verilog仿真所需仿真环境:modelsim 3.管脚配置:
1.四、软件设计: 源程序
module paobiao(clk,rst,pause,save,mg,md,bg,bd);//秒高,秒低,百分秒高,百分秒低
input clk,rst,pause,save;
output reg [3:0] mg,md,bg,bd;reg [15:0] zd,zz,zg;//中间变量 reg [17:0] count1;reg clk1;//100ms reg pause_temp,save_temp;//取上升沿 reg [13:0] count2,reg0,reg1,reg2,reg3,reg4,reg5;reg [2:0] count3;// reg [1:0] state,next_state;reg cn1;parameter S0=2'b00,S1=2'b01,S2=2'b11;//分频
always @(posedge clk or negedge rst)
begin if(!rst)count1<=0;
else if(count1==200000)count1<=0;//200000
else count1<=count1+1;
end
always @(posedge clk)begin if(!rst)clk1<=0;else if(count1==99999)clk1<=~clk1;//99999 else clk1<=clk1;
end //总计时
always @(negedge clk1 or negedge rst)//clk1 begin if(!rst)count2<=0;
else if(state==S1)count2<=count2+1;
// else if(state==S2)count2<=count2;
else count2<=count2;end
//存储个数计数
always @(negedge rst or negedge save)begin if(!rst)
count3<=0;
else if(next_state==S1)
count3<=count3+1;
else if(next_state==S2)
count3<=count3-1;
else count3<=count3;
end
//毫秒低位显示结果
always @(negedge rst or posedge clk)begin
if(!rst)
bd<=0;
else if(state==S1)bd<=count2%10;
else if(state==S2)
begin case(count3)
3'b000: bd<=reg0%10;
3'b001: bd<=reg1%10;
3'b010: bd<=reg2%10;
3'b011: bd<=reg3%10;
3'b100: bd<=reg4%10;
3'b101: bd<=reg5%10;
default:
bd<=reg0%10;
endcase
end
else
bd<=bd;
end
//毫秒高位显示结果
always @(negedge rst or posedge clk)begin
if(!rst)
bg<=0;
else if(state==S1)
bg<=(count2/10)%10;
else if(state==S2)
begin case(count3)
3'b000: bg<=(reg0/10)%10;
3'b001: bg<=(reg1/10)%10;
3'b010: bg<=(reg2/10)%10;
3'b011: bg<=(reg3/10)%10;
3'b100: bg<=(reg4/10)%10;
3'b101: bg<=(reg5/10)%10;
default:
bg<=(reg0/10)%10;
endcase
end
else
bg<=bg;
end
//秒位显示结果
always @(negedge rst or posedge clk)begin
if(!rst)
md<=0;
else if(state==S1)md<=(count2/100)%10;
else if(state==S2)
begin
case(count3)
3'b000: md<=(reg0/100)%10;
3'b001: md<=(reg1/100)%10;
3'b010: md<=(reg2/100)%10;
3'b011: md<=(reg3/100)%10;
3'b100: md<=(reg4/100)%10;
3'b101: md<=(reg5/100)%10;
default:
md<=(reg0/100)%10;
endcase end
else
md<=md;end
//十秒位显示结果
always @(negedge rst or posedge clk)
begin
if(!rst)
mg<=0;
else if(state==S1)mg<=(count2/1000)%10;
else if(state==S2)
begin
case(count3)
3'b000: mg<=(reg0/100)%10;
3'b001: mg<=(reg1/100)%10;
3'b010: mg<=(reg2/100)%10;
3'b011: mg<=(reg3/100)%10;
3'b100: mg<=(reg4/100)%10;
3'b101: mg<=(reg5/100)%10;
default:
mg<=(reg0/100)%10;
endcase
end
else
mg<=mg;
end
always @(negedge rst or posedge clk)//定义当前状态
begin if(!rst)state<=S0;//异步复位,S0为初始状态
else
state<=next_state;
end
//状态转移
always @(state or pause or
pause_temp)begin
case(state)
S0:begin if(pause==0&&pause_temp==1)next_state<=S1;
else next_state<=S0;
end
S1:begin if(pause==0&&pause_temp==1)next_state<=S2;
else next_state<=S1;end
S2:begin if(pause==0&&pause_temp==1)next_state<=S1;
else next_state<=S2;end
default:next_state<=S0;
endcase
end
//存数
always@(negedge rst or negedge save)begin if(!rst)begin
reg0<=0;reg1<=0;reg2<=0;reg3<=0;reg4<=0;reg5<=0;end
else
begin if(count3==0)reg0<=count2;
else if(count3==1)reg1<=count2;
else if(count3==2)reg2<=count2;
else if(count3==3)reg3<=count2;
else if(count3==4)reg4<=count2;
else if(count3==5)reg5<=count2;
else begin reg0<=0;reg1<=0;reg2<=0;
reg3<=0;reg4<=0;reg5<=0;end
end end
//取启停键上升沿 always @(posedge clk)begin if(!rst)pause_temp<=0;
else
pause_temp<=pause;
end
//取保存翻看上升沿
always @(posedge clk)begin if(!rst)save_temp<=0;
else
save_temp<=save;end
endmodule
2.测试程序
module paobiao_tp;reg clk,rst,pause,save;wire[3:0] mg,md,bg,bd;parameter DELY=10;paobiao u1(clk,rst,pause,save,mg,md,bg,bd);always #(DELY/2)
clk=~clk;initial
begin clk=0;pause=0;save=0;rst=0;
#DELY rst=1;save=0;pause=0;
#DELY pause=1;
#DELY pause=0;
#DELY save=1;end endmodule
五、实验结果 1.仿真图像
2.硬件电路显示
六、个人完成工作及心得体会
我们组设计的是数字跑表,我负责画状态图和系统程序和仿真。画状态图时由于对状态机理解不到位,画的状态图有点问题,后来经老师指导改正了;我负责写仿真测试程序,这需要对源程序的输入输出很清晰,对其暂停、启停、存储、回显的掌握;再就是系统仿真,先在modelsim 上仿真,出来波形后再在开发板上仿真,刚开始程序分频、计数输出都有问题,后来逐项排除错误代码,仿真才出来。
课设过程中,我学到了很多关于Verilog的知识,比如写程序要注意的分频、计数、输入输出等问题,仿真时要注意时间长短的选择、进制间的转换等等,还有最后往开发板下载程序时注意的问题等。认识比较深刻的是:一个小组,只有相互帮助、团结努力,才能很好地完成任务。
第五篇:工程师电子制作故事:数字示波器DIY设计
工程师电子制作故事:数字示波器DIY设计
2012年03月19日 16:44 来源:本站整理 作者:电子大兵 我要评论(0)
随着电子技术的发展和电路结构的变化,对电路测量的要求也变得更高,在电子制作中会发现对很多参数的测量已不是一块万用表所能胜任的了,比如单片机某I/O口的输出波形或制作放大器测其频率响应等等,所以示波器自然而然地和万用表一样变成了电子工程师和爱好者的必备工具。然而示波器动辄几千上万甚至数万元的价格不是每个人都能接受的,如果你是一名电子爱好者或者和我一样是一名电子专业的大学生,何不发挥自己的聪明才智自己制作一台够用的示波器,不仅省钱,更可以享受DIY带来的独特乐趣!
下面就示波器的基本原理简要介绍一下,再就数字示波器与模拟示波器做一个简要的比较。物理学理论可以证明,一端通过细绳固定的重物在作摆动时,与中心垂线的距离满足正弦波规律。沙漏实验可以清晰地显示这个随时间变化的波形:用沙漏充当重物,并且在沙漏底下的桌面上平铺一张纸,当沙漏开始摆动时,让纸匀速移动。这样,沙漏中流出的细沙,就在纸上留下了一个正弦波痕迹,如图1所示。利用这种设计思想,可以完成波形在平面上(对应于时间的流动)的展开。
这种设计思想在波形记录、显示中被广泛采用,比如心电图机,就是用原地摆动的电热针,在匀速移动的记录纸带上描记出心电波形。
利用心电图机的结构,虽可以记录电压信号,但是,示波器在大量的应用中,并不需要通过消耗纸张来记录波形,而仅仅是观察波形。因此,可以重复使用的CRT示波管被应用到示波器的设计中。模拟示波器把需观测的两个电信号加至示波管的X、Y 通道以控制电子束的偏移,从而获得荧光屏上关于这两个电信号关系的显示波形。这种模拟示波器体积大、重量重、成本高、价格贵,并且不太适合用于对非周期的、单次信号的测量。数字示波器首先对模拟信号进行高速采样获得相应的数字数据并存储。用数字信号处理技术对采样得到的数字信号进行相关处理与运算,从而获得所需的各种信号参数。根据得到的信号参数绘制信号波形,并可对被测信号进行实时的、瞬态的分析,以方便使用者了解信号质量,快速准确地进行故障的诊断。测量开始时,操作者可通过操作界面选定测量类型、测量参数及测量范围(可选自动设置,由仪器自动设置最佳范围);微处理器自动将测量设置解释到采样电路,并启动数据采集;采集完成后,由微处理器对采样数据按测量设置进行处理,提取所需要的测量参数,并将结果送显示部件。
使用模拟示波器和数字示波器通常都能很好地观察简单重复性信号。但是两者都有其优点和局限性,如图2所示。对于模拟示波器来说,由于CRT的余辉时间很短,因而难于显示频率很低的信号。由于示波管上的扫描轨迹亮度和扫描速度成反比,所以具有快速上升、下降时间的低重复速率信号就很难看到。而数字示波器的扫描轨迹亮度和扫描速度与信号重复速率无关,故可以很好地反映出来。对于显示具有较高重复速率的重复性信号的快速上升、下降沿来说,数字存储示波器和模拟示波器的性能几乎没有什么区别,用两种示波器都能很好地观察信号波形。当要进行信号参量的测量时,数字存储示波器的优点在于具有自动测量各种参数的能力。而使用模拟示波器时,则必须自己设置光标、分析理解显示的波形才能得到测量的结果。但是如果要进行调整工作,那么一般最好使用模拟示波器。这是因为模拟示波器的实时显示能力使它在每时每刻都能显示出输入的电压。其波形更新速率(每秒钟在屏幕上描画扫描轨迹的次数)很高,所以信号的任何变化都会立即显示出来。与模拟示波器相反,数字示波器所显示的是用采集的波形数据重建的波形,所以其波形更新率远低于模拟示波器,结果在信号发生变化和变化了的信号在屏幕上显示出来之间就有了一定的时间延迟,这是数字示波器的重大缺点。
但是综合起来数字示波器还是有很大优势的。
自制示波器,做模拟示波器还是数字示波器?当然要做就做数字的!因为做数字示波器更简单,请往下看:
1.模拟示波器需要与带宽相适应的CRT示波管,随着频率的提高,对CRT示波管的工艺要求严格,成本增加,存在技术瓶颈。所以在电子市场上不好买,性能好的大多数是进口品牌,其价格昂贵且需要处理的问题也多,比如要产生阳极高压、扫描锯齿波,还要对示波管进行电磁屏蔽等等,而且做出来体积很大,便携就更谈不上了。而数字示波器只需要与带宽相适应的高速A/D转换器,其他存储器和D/A转换器以及显示器都是较低速的部件,显示器可用LCD显示模块,在电子市场很容易买到,价格也不贵而且应用简单,只需考虑与微处理器的接口,体积小且功耗远小于CRT示波管。使用LCD显示模块做示波器,做成便携的很容易,做成示波表都没问题!当然LCD显示模块也有其不足之处,比如亮度和对比度不如CRT示波管,但综合考虑,LCD显示模块的优势还是比较明显的。
2.模拟示波器是一个完全的硬件结构,做好之后很难进行功能升级,而数字示波器不同,在保证基本硬件后它的控制以及其他功能的实现都是由软件来实现的。这样升级就变得非常容易,你甚至可以把它当成一块开发板用来练习编程!做一个能当开发板用的示波器,你还犹豫吗?
基于以上两种原因,制作数字示波器当然是不二之选!
本文介绍的就是我制作的一台便携式数字示波器(如图3所示)。
由于采用320×240分辨率的显示器,所以显示波形非常细致。图4~图11为该示波器测量不同频率信号时的实拍照片。
5Hz的信号用一般的模拟示波器测量,只能看到一个亮点在屏幕上游动,根本看不出完整的波形,而我做的这个示波器可以显示出完整的波形,在测量低频率信号时这是一个很大的优势。
该示波器由6部分电路构成,分别是:
1.输入程控放大(衰减)电路2.高速AD转换电路3.FIFO存储电路4.显示控制电路5.时钟产生电路6.测频与控制电路在这几部分中,最重要的是程控放大电路和AD转换电路,因为这两个电路是这个数字示波器的咽喉,程控放大电路决定了示波器的输入带宽和垂直分辨率,AD转换电路决定了示波器水平分辨率,这两个分辨率直接决定着示波器性能的优劣。这两部分电路将被测信号转换成后面的处理电路所需的数据信号,庆幸的是这几部分电路都可用高性能的集成电路加少量外围器件构成,电路设计简单,调试也很简单。整个示波器我觉得最难的应该是程序,也就是软件方面。
软件承担着该示波器的所有数据处理和控制任务,包括AD采样控制、水平扫速控制、垂直灵敏度控制、显示处理、峰峰值测量、频率测量等任务。为了提高性能,这个示波器使用了两片单片机,分别用于显示和控制,所以程序的设计还要考虑两个单片机之间的通信问题,这些在文章的各章节都会有详细的描述和解释。
通过这个示波器的制作,你将会了解很多东西,比如如何用运算放大器设计组合放大电路、高速AD转换器的应用、FIFO存储器的应用、AVR单片机SPI总线接口协议以及高分辨率点阵液晶显示器的驱动等内容,这些内容对于别的电子设计也是非常有用的。