摘要:本文采用创新方法,通过双通道示波器测量出传输线上的驻波,从而利用受控的移动图像展现信号在传输线中的真实情况。
引言
过去,采用一种称为“勒谢尔线”的真实物理传输线装置展示驻波现象,需要费很大的劲才能测量出相应的波形。尤其是,这种测量方法本身会干扰波形的形状,而且不可能获得瞬间的可视波形。
如今有一种创新的方法,可利用双通道示波器测量出传输线上的驻波。众所周知,示波器的特性之一是:当扫描与显示波形不同步但接近其频率或它的分频频率,波形表现为在屏幕上移动。如果扫描频率高于波形频率或它的分频频率,波形则向右侧移动;如果扫描频率低于波形频率或它的分频频率,波形向左侧移动。如果将一个频率低于扫描频率的波形加至双通道示波器的某个通道,再将一个频率高于扫描频率的波形加至另一个通道,两个波形将表现为相互反方向移动。实际上,这两个波形可表示传输线上的正向波和反射波。如果,将示波器切换至Add模式,示波器上将显示单个波形,这个波形就代表了驻波。
产生一个有意义的波形显示需要一些频率精确的正弦波,精确频率的正弦波利用直接数字合成(DDS)技术很容易实现。我们采用频率大约为400Hz来演示,因为为了视觉效果以及便于截取屏幕。产生三个波形:399Hz、401Hz正弦波和一个400Hz阶梯波,用于示波器的同步(触发)。每个正弦波波的频率和示波器扫描触发频率差1Hz,这样能清晰模拟出传输线上1Hz频率的信号。尽管示波器触发频率为400Hz,但扫描速度可设定为400Hz的分频,所以可观察到每个波形的多个周期。
1 显示
图1所示为两个正弦波在示波器双跟踪模式下的显示。
箭头表示波形在屏幕上的运动方向。这个演示最好是在一个老式模拟示波器上效果更好。数字示波器的显示可能会“跳动”地很厉害,取决于其刷新频率。然而,有一种方法数字示波器在这类演示中要比模拟示波器有优势,我们将在下文讨论。
图2所示为将示波器切换至Add模式后得到的驻波。
同样,在静态图片中很难看出效果。图中可看到5个节点(始终为0电压的点)。在节点之间,波形从其负值(极限)振荡至正极限。本例中,正向和反射波相等,所以传输线必定为开路或短路。如果左边是端接,那它必定短路了,因为有一个节点在哪。VSWR是驻波的最大幅度与最小幅度之比。由于最小幅值为零,所以VSWR为无穷大。
通过改变示波器其中一个通道的增益,可模拟出其它端接情况。图3中,将回波幅值(上方通道)减小一半,与之对应的端接情况既非开路亦非短路,也不是传输线的特征阻抗。
形成的驻波图案如图4所示。
波形中无节点(零电压点)。如箭头所示,最大和最小波形幅值的比值为2比1,即VSWR为2:1。
2 直接数字合成
为获得稳定的显示,就必须产生准确的频率。这里的“稳定”表示节点的水平位置或者驻波图案的最大或最小位置在屏幕上不移动。一种实现办法,采用具有数控振荡器(NCO)2的DDS。NCO采用一个16位计数器,称之为相位累加器,来实现。FCLOCK(图5)为一个固定的时钟频率递增量,Fcw为调制量或频率控制量。FCLOCK远远高于波形频率。
将相位累加器的高8位的值和正弦查找表(LUT)对应,然后将查找值发送至DAC。相位累加器中的值可认为对应的是一个圆上的某一个点;调制量定义为绕圆周的“步长”。调制量越大,绕圆周旋转的越快,因此输出的频率也越高。产生的频率由下式给出:
FOUT = FCW × FCLOCK/216
输出频率与FCW成正比。本例中,FCLOCK为31.25kHz。FCW值采用841、839和837,计算得到三个频率为:
F1=841×31250/65536= 401.02Hz
F2=839×31250/65536= 400.06Hz
F3=837×31250/65536= 399.11Hz
这里的频率表示采用保留两位小数,但实际上(F1 – F2和(F2 – F3)是完全相等的。频率差精确到9位小数时为0.953674316Hz。
3 实现
本演示使用Maxim® MAX5715 4通道12位数/模转换器(DAC)的三个通道来实现,由Arduino® Uno板上的Atmel® AVR处理器驱动。Arduino是一个开放的软硬件平台,对于基于AVR系统开发环境,非常方便。Maxim DAC通过SPI(串行外设接口)很容易和Arduino相连,AVR硬件支持SPI接口,Arduino软件库自带SPI驱动。运行Arduino 库中的SPI程序初始化AVR SPI硬件。也提供现存的SPI数据传输的程序,但速度太慢,未使用。
三个相位累加器采用16的位计数器,计数器递增是通过一个中断程序来实现,中断程序由处理器中的一个定时器来触发。每32µs (1/31.25kHz)中断一次。利用LUT将两个相位累加器值(生成F1和F3)转换为正弦值并然后送给DAC的两个通道。将第三个相位累加器(生成F2)的两个最高有效位发送至第三个DAC通道,产生一个4节拍的示波器触发信号。通过改变触发电平,可选择想要驻波的相位去进行开路或短路端接仿真。
Arduino SPI库中的数据传输程序太慢,导致中断程序的运行时间超过了中断周期。因此,改用直接写至AVR SPI硬件的代码。
中断程序代码:
//******************************************************************
// Timer2 Interrupt Service at 31372.550 Hz = 32uSec
// this is the timebase REFCLOCK for the DDS generator
// FOUT = (M (REFCLK)) / (2 exp 32)
ISR(TIMER2_OVF_vect) {
// set the SS line low
PORTB &= (0xFF ^ 4);
// send in the address and value via SPI:
SPDR = CODEA;
// update phase accumulators while waiting
phaccu_a += tword_a;
phaccu_b += tword_b;
phaccu_c += tword_c;
while (!(SPSR & _BV(SPIF)))
;
// do the table lookup based on accum 'a' high-order byte
SPDR = pgm_read_byte_near(sine256 + highByte(phaccu_a));
while (!(SPSR & _BV(SPIF)))
;
SPDR = 0;
while (!(SPSR & _BV(SPIF)))
;
// set the SS line high
PORTB |= 4;
// set the sS line low for the second SPI transfer
PORTB &= (0xFF ^ 4);
// do the second SPI transfer
//SPDR = CODEB_LOADALL;
SPDR = CODEB;
while (!(SPSR & _BV(SPIF)))
;
// do table lookup based on accum 'b'
SPDR = pgm_read_byte_near(sine256 + highByte(phaccu_b));
while (!(SPSR & _BV(SPIF)))
;
SPDR = 0;
while (!(SPSR & _BV(SPIF)))
;
// take the SS pin high to de-select the chip:
PORTB |= 4;
// set the sS line low for the third SPI transfer
PORTB &= (0xFF ^ 4);
SPDR = CODEC_LOADALL;
while (!(SPSR & _BV(SPIF)))
;
// Four stairsteps on output C
SPDR = highByte(phaccu_c) & 0xC0;
while (!(SPSR & _BV(SPIF)))
;
SPDR = 0;
while (!(SPSR & _BV(SPIF)))
;
// take the SS pin high to de-select the chip:
PORTB |= 4;
}
Arduino和MAX5715之间的连接如图6所示。
MAX5715焊接在适配器电路板上,然后连接至Arduino Uno 样板“shield”(图7)(“Shields”是为Arduino系统提供各种附加功能的电路板)。
4 数字示波器上的显示
如上所述,该演示在模拟示波器上效果最佳,因为根据数字示波器的刷新率不同,显示可能发生跳动。但数字示波器模拟长余辉显示的能力能够非常好地显示驻波图案,如图8所示。
5 总结
通常使用示波器的目的是获得不移动的显示,而本文利用受控的移动图像展现信号在传输线中的真实情况。
上一篇:Pico示波器在故障诊断中的应用
下一篇:一款基于51单片机的简易示波器设计
- 热门资源推荐
- 热门放大器推荐
- DC2085A-D,具有 LTC2000A-16、16 位、2.7Gsps DAC 和 DDR LVDS 接口的演示板
- 使用 Analog Devices 的 LTC3407IDD-2 的参考设计
- LT8631HFE 1MHz、24V、0.5A 降压转换器的典型应用电路
- 【涂鸦智能】基于涂鸦智能的温湿度计
- 具有外部控制信号、AVIN 或 AGND 的 EP53A7LQI 1A 同步降压稳压器的典型应用电路
- DC2100B-C,用于使用 LTC3300-1 和 LTC6804-2 电池管理的双向电池平衡器的演示板
- 匿名四轴分享干货
- 使用 Epson America, Inc 的 TSX-3225 的参考设计
- 基于TS507运算放大器的体积描记器应用电路
- 使用 Infineon Technologies AG 的 OM7640SM 的参考设计