协议解码介绍

正点原子逻辑分析仪协议解码功能 是基于 sigrok 项目中的 libsigrokdecode 源码而开发。 为了满足产品性能和功能的需求, 我们对 libsigrokdecode 的源码做了一部分修改, 详细修改内容请参考源码。

当然这不是本文存在的意义, 本文主要教大家如何在 ATK-Logic 软件中新增一个协议解码器:

  • 新增一个官方不支持的协议解码器

  • 基于基础协议 (例如: spi), 新增一个上层协议

sigrok介绍

sigrok 是一个非常优秀的开源项目, 其中 libsigrokdecode 支持一百多种常见的协议, 基本可以满足工程师大部分的开发调试需求。 该项目支持各种设备类型 (例如逻辑分析仪、示波器等) , 大家有兴趣的话可以去以下官网了解一下。

相关信息可以参考以下官方链接:

sigrok              : http://sigrok.org/wiki/Main_Page
github              : https://github.com/sigrokproject
libsigrokdecode     : https://github.com/sigrokproject/libsigrokdecode

开发环境

libsigrokdecode 提供了一个通用的协议解码架构, 让我们很容易的为它增加新的协议解码器。

libsigrokdecode 可分为两个部分: 协议解码库协议解码器

协议解码库 是由 C语言 编写的一个协议解码框架, 主要为 协议解码器 搭建一个运行环境。这部分代码我们可以不用去了解, 只用知道有这个东西即可。

协议解码器 是由 Python 编写的, 与协议解码相关的脚本文件, 负责处理协议逻辑, 并将解析后的协议数据返回给上层应用。新增一个协议解码器, 其实就是为了编写这个 python 文本。

协议解码器 基于 Python (>=3.0) 实现, 如果想新增解码器, 必须先学会 Python3 的基础语法。这对于有编程基础的人来说, 学习起来还是非常容易的。

警告

  • ATK-Logic 软件基于 python3.7 环境。

  • ATK-Logic 软件可以直接使用 libsigrokdecode 项目中提供的协议解码器, 无需做任何修改。

源码下载