65.9K
CodeProject 正在变化。 阅读更多。
Home

编程泰克 TDS 340 100MHz 数字存储示波器

2023年5月7日

CPOL

6分钟阅读

viewsIcon

3278

在上一篇文章中,我提供了一些关于泰克 TDS 340 100 MHz 数字存储示波器的信息和说明

在我之前的文章中,我提供了一些关于 Tektronix TDS 340 100 MHz 数字存储示波器的信息,以及如何安装 Option 14 卡以获得 VGA 输出和硬拷贝支持的说明。本文将提供更多关于使用 RS-232 端口将示波器与计算机连接以检索原始信号数据的信息,并分享我的一些有趣发现。

使用串行接口

首先必须在 Utility>System I/O 菜单中配置示波器串行端口,并需要使用交叉串行线将示波器连接到 PC。最好关闭硬件和软件握手,因为它们帮助不大,只会引起问题。建议的串行设置为 19200bps、8 数据位、无奇偶校验、1 停止位以及回车符 (CR) 行结束符。

要检查连接是否正常工作,请使用 Tera Term Web 3.1 等终端软件,将其配置为本地回显字符并使用 CR 行结束符,然后输入 ID? 再按 ENTER 键,让示波器返回其标识符字符串,它应该看起来像

TEK/TDS340,CF:91.1CT,FV:v1.00

命令不区分大小写,多个命令或响应由行结束符(CR、LF 或 CR/LF,根据配置)分隔。以问号 (?) 结尾的命令是查询命令,预期会收到示波器的响应。不以问号结尾的命令将仅由示波器执行,不返回任何值。要检查命令执行过程中是否有任何错误,请使用以下命令

*ESR?   // 显示事件状态寄存器的值
ALLE?   // 返回错误日志,其中将显示先前发送命令的任何错误

以下命令集摘自程序员手册,用于测量通道 1 输入信号的频率

MEASU:IMM:SOURCE CH1  // 将测量源设置为通道 1
MEASU:IMM:TYPE FREQ   // 测量信号频率
MEASU:IMM:VAL?        // 获取测量值

如果通道 1 的探头连接到示波器前部的 1kHz 校准点,则上述命令集将返回大约 1.0000E3 的值,表示频率为 1000Hz。

检索原始波形数据

命令 CURV? 用于向示波器请求正在显示的波形的原始测量数据。以下代码将返回示波器数据采集内存中的所有 1000 个数据点

DAT:SOU CH1     // 测量源设置为通道 1
DAT:ENC ASCI    // ASCII 格式
DAT:WID 2       // 2 字节数据宽度
DAT:STAR 1      // 第一个数据点
DAT:STOP 1000   // 最后一个数据点 (第 1000 个)
CURV?           // 获取波形数据

响应将是一组逗号分隔的整数

22784,23040,-6656,[…..],-6656,23040

当 DAT:WID 为 1 时,每个返回的整数值的范围是 -128 到 127。零是屏幕中心。当 DAT:WID 为 2 时,范围是 -32768 到 32767。上限是屏幕顶部上方的一个格,下限是屏幕底部下方的一个格。

为了正确解释数据,了解通过 WFMPR? 命令获得的示波器设置将很有用,该命令将返回以下信息

2;16;ASC;RP;MSB;“Ch1, DC 耦合, 2.0E0 V/div, 5.0E-4 s/div, 1000 点, 采样模式”;1000;Y;“s”;1.0E-5;500;“Volts”;3.125E-4;1.28E4;0.0E0

在返回的值中,每格电压、每格时间和采样率参数(突出显示)对于准确分析返回数据至关重要。

截取示波器屏幕截图

可以使用以下命令以编程方式捕获示波器显示屏的屏幕截图

HARDC ABO           // 中止任何现有的硬拷贝
HARDC:FORM BMP      // 将硬拷贝格式设置为位图
HARDC:PORT RS232    // 硬拷贝端口设置为 RS232
HARDC STAR          // 开始硬拷贝

图像数据将通过串行链路发送。与其他命令不同,HARDC STAR 命令没有文件结束标记。为了在编程时确定何时停止接收数据,一种方法是计算接收到的字节数并与预期值进行比较。由于文件大小可能因硬拷贝输出设置而异,因此更简单的方法是假设如果一定时间内(例如 2 秒)未收到数据,则硬拷贝操作已结束。

自定义 PC 接口软件

利用空闲时间,我开发了一个 .NET 应用程序,允许用户检索频率测量、波形数据以及截取示波器的屏幕截图

要使用该应用程序,请先配置串行端口设置(端口号、波特率),然后单击 Open Port 初始化串行接口。Activity Log 文本框显示发送的命令和接收到的响应。Screenshot 按钮将从示波器请求屏幕截图并在应用程序中显示。如果选中 Show original color 选项,应用程序会将 TDS340 返回的黑底白字图像转换为绿底黑字,使其看起来更像真实的屏幕截图。Event Log 按钮将显示示波器事件日志中当前的所有错误消息。

该应用程序使用 .NET 框架的 SerialPort 组件。它假定示波器串行设置中已禁用硬件和软件握手。有趣的是,即使禁用了握手,DTR (Data Terminal Ready) 和 RTS (Ready To Send) 线也必须打开,否则示波器将不会响应发送的数据。这通过以下 C# 代码完成

SerialPort1.Handshake = false;
SerialPort1.DtrEnable = true;
SerialPort1.RtsEnable = true;

由于 .NET SerialPort 组件的 DataReceived 事件的异步性质以及我有限的时间,我没有尝试在启用操作按钮之前让应用程序等待所有数据接收完毕。因此,您需要等待片刻,在按任何按钮后检查活动日志,以确保命令已完成执行,然后再执行下一个操作,否则应用程序的行为可能会出乎意料。

在此处下载 PC 应用程序

Visual Studio 2012 源代码包含在下载包中。需要 Microsoft .NET Framework 2.0(Windows 7 或更高版本默认安装)。可执行文件位于 bin 文件夹中。您还可以在 GitHub 上找到应用程序的源代码和可执行文件。GitHub 存储库还包含 joesphan 所做的一些小的用户界面改进,这些改进在原始源代码中不可用。

TDS 340A、TDS 360 & TDS 380 示波器的下载

用户手册
技术参考
程序员手册
维修手册 

另请参阅
探索 Tektronix TDS 340 100MHz 数字存储示波器 
Tektronix TDS 340 示波器的校准和采集问题 

© . All rights reserved.