sigrok指南
这是基于sigrok的DSView相关的编译指南
1.关于sigrok
sigrok是一个可移植,跨平台,免费开源自由的信 分析软件套件。
其功能包括:
广泛的硬件支持: 支持来自不同供应商的许多不同设备(逻辑分析仪,示波器,万用表,数据记录器等)。
跨平台: 适用于Linux,Mac OS X,Windows,FreeBSD,OpenBSD,NetBSD,Android(以及x86,ARM,Sparc,PowerPC等)。
可编写脚本的协议解码: 可扩展使用Python 3编写的可堆叠协议解码器。
文件格式支持: 支持各种输入/输出文件格式(二进制,ASCII,十六进制,CSV,gnuplot,VCD,WAV,…)。
可重用的库: 由libsigrok和libsigrokdecode共享库组成,可供各种前端/ GUI使用。
各种前端: PulseView(LA GUI),sigrok-meter(DMM GUI),sigrok-cli(命令行)和其他前端都建立在上述库之上。
2. 关于sigrok和DSview及安装
DSview是基于sigrok开发的第三方的解码器应用,配合逻辑分析仪使用。
sigrok是集成解码器和解码协议的信 分析软件。官方其实也自带了一个解码UI界面pulseview。
安装过程参见sigrok和DSview安装指南
2.libsigrokdecode
1. 介绍
libsigrokdecode位于./sigrok(./DSview-0.99)下的是用C编写的共享库,它提供(流)协议解码的功能,其中包含解码器及解码协议(相关的协议解码器采用Python3编写)。
本次主要通过修改此文件内容来设计我们的解码协议。
该章节主要介绍所有的相关的函数等,若想快速上手,建议直接跳转到DSview的spi参考程序解析结合该章节观看(毕竟有许多常量可能用不上)
2.协议解码器重要的成员函数
协议解码器类函数主要有以下几个重要成员构成:
:初始化各类参数,例如CLK,CS等等
:在解码开始之前调用此函数。这是register()输出类型的位置,检查用户提供的PD选项的有效性,等等。
:这是一个由libsigrokdecode后端调用的函数,讲logic的数据进行处理。
关于解码:
逻辑分析仪通过logic会输出采样编 和各个引脚高低电平的信息,采样顺序根据和的顺序排序,例如:
设置如下的Decoder的metadata
则logic接收的元组信息为:
samplenum | 第一组数据 | 第二组数据 | … | ||||||
---|---|---|---|---|---|---|---|---|---|
bit | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | … |
channel | clk | miso | mosi | cs | clk | miso | mosi | cs | … |
所以我们接收的数据只有samplenum和bit两部分的数据,而bit为何值,对应的我们和定义的顺序。但是clk和cs必须分别放前面和后面。具体原因后续会专门解释。
了解完这些后,其实只剩下解码逻辑,以下面的SPI协议解码器程序会对这部分逻辑进行一个详细解析。
3.协议解码器(PD)
以下是协议解码器的API
提供了一个名为sigrokdecode的Python模块。每个协议解码器都必须导入它。它包含以下项目:
OUTPUT_ANN
用于注册注释(annotations)输出的常量,用作register()函数的参数。sigrok-cli显示解码器堆栈最顶层解码器的注释输出(默认情况下),PulseView将注释输出显示为图形框或圆圈(如果注释的持续时间为零)。
OUTPUT_PYTHON
OUTPUT_BINARY
OUTPUT_META
用于注册元数据(metadata)输出的常量,用作register()函数的参数。输出元数据的PD的示例是SPI解码器,其使用它来输出检测到的比特率。
×××××××××××××××××××××××施工中!!!!!!×××××××××××××××××××××××××
3 协议解码器程序(以spi为例)
详细代码介绍参见DSview的spi参考程序解析
注意事项
关于原版sigrok移植到DSView的问题
需提前注意的是:原版所定义的功能并没有实现,所需要客户去写,pulseView中已经对该方法进行实现,而DSView中未实现相关的功能。所以在DSView中才用循环读取值,提取每个采样点的电平值。
所以,在使用原版的sigrok移植到DSview上时,应该把相关类的方法和定义添加到对应的Decoder.c和libsigrokdecode.h等文件中
在中,应将改写为。这样才可被DSview识别。
同时需要将文件属性改为可读可写可操作,即
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!