使用免费的开源sigrok PulseView分析信号

今日头条

1151人已加入

描述

sigrok项目正在创建一个便携式、跨平台、免费和开源的信号分析软件套件,支持各种信号采集硬件,包括逻辑分析仪、万用表、示波器等。虽然该套件包含多个前端子项目,包括sigrokcli (用于操作 sigrok 的命令行界面)和sigrokqt (用于操作 sigrok的基于 Qt 的GUI),但在本文中,我将重点介绍 sigrok 的PulseView,一个示波器,逻辑分析仪和混合信号 (MSO) GUI 前端。

概述、特点

sigrok 分析套件可在各种操作系统平台下工作,并接受来自多种测量设备的数据。支持的硬件列表非常广泛(170+),并且不断被添加。

除了提供图形数据显示和测量功能外,该套件还提供各种协议解码器,用于理解数字数据流。这些解码器是可扩展的,用 Python 编写,并且可以堆叠以帮助解码管道。

sigrock 软件由以下组件组成:

Libsigrok:一个用 C 语言编写的共享库,其中包含用于以流方式处理逻辑分析仪数据的通用基础设施。它还包含单独的硬件驱动程序,增加了对各种逻辑分析仪的支持。

Libsigrokdecode:一个用 C 编写的共享库,其中包含协议解码器基础结构和协议解码器本身,它们是用 Python 编写的。

Sigrokcli:一个命令行前端,它同时使用libsigrok 和libsigrokdecode。它可以从逻辑分析仪采集样本,并将它们以各种格式输出到文件或标准输出 和/或对采集的数据运行协议解码器。

Sigrokqt:sigrok 的基于 Qt 的 GUI,同时使用libsigrok 和libsigrokdecode。这是一个支持数据采集和协议解码的跨平台 GUI(它运行良好并且在 Linux、Windows 和 Mac OS X 上看起来很原生)。

还有 PulseView 前端,可作为可下载的二进制文件或可执行文件用于各种环境,包括 Windows、Linux、Mac OS X 和 Android,并且该项目为 PulseView 提供夜间 Windows 安装程序。PulseView 也有相当不错的支持协议解码器列表,并且libsigrokdecode 库附带了一系列开箱即用的流行协议解码器。如果这还不够,您可以编写自己的协议解码器,利用代码的开放性。

然而,USB 是另一回事。供应商软件附带的特定于设备的 USB 驱动程序几乎在所有情况下都不起作用。因此,您需要使用libwdi 项目中的“Zadig”可执行文件安装 WinUSB 驱动程序。幸运的是,PulseView 安装程序附带 Zadig 可执行文件,非常方便,并且可以通过 Windows“开始”菜单访问它们。

此外,Windows 安装程序还附带所有固件文件以及来自sigrokdumps 存储库的示例转储文件。转储文件(位于 PulseView 安装目录的“examples”子目录中)是代表性数据文件,可用于轻松测试各种前端功能、协议解码器等。

动手测试

我使用内置设备对 PulseView 进行了首次测试,该设备生成半随机演示信号,无需任何硬件即可查看。

示波器

接下来,我打开了一个示例文件,用于预先捕获DS1307 信号(实际上是微控制器和 DS1307 之间的对话),并用它来测试 sigrok 对信号解码的支持。用缩放搜索几秒钟后,我得到了如下所示的结果。请注意,sigrok 不仅显示解码后的 I²C 消息,它还在堆叠的“二级协议解码器”的支持下破译了 I²C 命令。与在示波器屏幕上观察和计算脉冲相比,这是一个巨大的进步!

示波器

但是,为了使用 sigrok 套件处理真实世界的信号,拥有可以捕获信号的外部硬件至关重要。目前,我只有一个“兼容”硬件——基于Cypress FX2微控制器的 24-MHz、8 通道 Saelae 逻辑分析仪克隆。这个 Saleae 逻辑分析仪克隆可以记录多达 8 个 24 MHz 通道,范围从 0 到 5 V。然而,即使它是一个克隆,当我简单地将其插入并使用我预装的驱动程序时,Sigrok 自动检测到该设备我的笔记本电脑。

对于我的实际测试,我将 Saleae 克隆连接到我创建的温度记录器项目,该项目基于 Maxim Integrated 的DS18B20单线数字温度传感器。单线协议首先发送数据 LSB,使用总线主机将线路拉低时启动的时隙。主机必须在 15 微秒内释放线路,以便线路根据需要变为高电平或保持低电平以表示数据位。在时隙快结束时,线路返回高电平以允许总线主机启动新的时隙。

下图所示的捕获信号描述了传感器和微控制器之间的通信。总线主机发出“匹配 ROM”命令 (55h),后跟设备唯一的 64 位 ROM 代码地址。可以看出,试图从信号迹线中破译单线数据流充其量是乏味的。但是 sigrok 和 PulseView 很容易解开该操作,提供了更易读的结果。我在“ PuTTY ”终端仿真器的帮助下确认了结果。

示波器

接下来,我尝试用我之前写过的 Xprotolab Plain 面包板示波器做一些事情。不幸的是,它不在支持的兼容硬件类型中。我本可以编写自己的驱动程序,但当时我不想弄乱它。也许以后的一段时间。

尾注

Sigrok 是一个非常棒的软件套件,它支持广泛的仪器及其在我们的被测电路和我们的计算机之间的接口。与 PulseView 前端一起,它适用于从廉价的 USB 逻辑分析仪克隆到专业数字万用表和示波器等各种设备。我向开源社区和 Joel Holdsworth 致敬,尤其是对 PulseView 的出色工作。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分