站内搜索
更多
HelixLink 多功能调试器
专业版

HelixLink 多功能调试器

简介

HelixLink是一个开创性的开源硬件项目,旨在打造一款模块化、可扩展、高性价比的多功能调试器。并通过精心设计的扩展接口,构建一个属于创客和工程师的调试工具生态系统。

简介:HelixLink是一个开创性的开源硬件项目,旨在打造一款模块化、可扩展、高性价比的多功能调试器。并通过精心设计的扩展接口,构建一个属于创客和工程师的调试工具生态系统。
星火计划2026

开源协议

CC BY-NC-SA 4.0

创建时间:2026-03-19 16:09:08更新时间:2026-08-18 13:50:53

描述

HelixLink:多功能嵌入式调试工作站

将DAPLINK在线调试、双路串口、总线工具、逻辑分析、信号发生和本地交互集中到一套可扩展的软硬件平台中。

HelixLink 面向嵌入式工程师、电子爱好者和高校开发者,以先楫 HPM5361 RISC-V MCU 为核心,通过一个 USB 2.0 High-Speed 复合设备连接电脑,并配套设备端图形界面和 Qt 桌面上位机。

HelixLink软硬件架构图.png


代码仓库

https://gitee.com/helixlink

视频介绍

【[开源]HelixLink多功能调试器组装教程】
【[开源]HelixLink多功能调试器烧录固件】

文档更新

  • 2026-08-14:发布第一版固件、硬件和上位机,基础功能已完成;

1. 项目简介

嵌入式开发中,调试、串口通信、CAN 总线分析、逻辑分析和信号输出往往需要多种工具配合完成。HelixLink 将这些常用功能集中在一块便携式核心板上,并通过屏幕、桌面上位机和扩展接口,满足开发、调试和教学等场景的使用需求。

本项目由 HelixLink 团队共同开发。欢迎加入 QQ 交流群:1077879146(请备注“HelixLink”),与开发者和其他用户一起交流。

2. 项目功能

HelixLink 将在线调试、串口通信、总线调试、信号测量、文件存储和设备管理能力集成到同一块核心板,并通过桌面上位机和扩展接口提供更多功能。

  • 核心功能:

    1. 基于 DAPLink 的 CMSIS-DAP 实现 SWD / JTAG 在线调试与程序烧录,默认 SWJ 时钟配置为 10 MHz。
    2. 支持双路 USB 转串口,用于串口通信、日志查看和数据透传;另有独立 USB CLI 用于设备命令和调试信息。
    3. 支持 CAN / CAN FD 调试功能,支持报文收发、过滤和定时发送。
    4. 支持 I²C 与 SPI 主机工具,可配置总线参数并完成设备读写和协议联调。
    5. 支持逻辑分析仪,通过 ADC 多路采样获取目标信号,并在桌面端显示波形。
    6. 当前支持信号发生器功能,可通过上位机配置通道和波形参数,并使用 PWM 合成测试信号;后续将移除该功能,改为 PWM 信号发生器,信号发生器相关功能移至扩展板。
  • 存储与本地交互:

    1. 配备 2.31 英寸 320 × 240 TFT 屏、拨轮、功能按键、LED 和蜂鸣器,可用于状态显示、功能选择和操作提示。
    2. 配备板载 Flash 和 Micro SD,分别使用 LittleFS 和 FatFs 管理存储数据。
    3. Micro SD 可通过 USB MSC 暴露给电脑,用于文件传输和存储管理。
  • 扩展功能:

    1. 20 Pin 多功能接口引出 SWD / JTAG、双路 TTL、CAN、I²C、SPI、ADC / PWM、5 V 和 3.3 V。
    2. 16 Pin 扩展接口引出 GPIO、5 V、3.3 V 和 GND,可连接自定义扩展板。
    3. 核心板预留 UART Wi-Fi 模块和 SPI 2.4 GHz 模块电路,可继续扩展无线通信功能。
    4. 预留扩展接口,方便后续扩展其他模块。
  • 开发中功能:

    1. 离线烧录器功能尚未发布。
    2. CAN FD 和逻辑分析仪性能还有优化空间,信号发生器后续将调整为 PWM 信号发生器。
    3. 不同功能的扩展板。

3. 主要参数

  • 主控: 先楫 HPM5361ICB1 RISC-V MCU
  • USB: USB Type-C,USB 2.0 High-Speed
  • 屏幕: 2.31 英寸 TFT,分辨率 320 × 240
  • 存储: 16 MB Flash,支持 Micro SD
  • 供电: USB 5 V 输入,可向外提供 5 V 和 3.3 V
  • 整机尺寸: 55 × 55 × 15 mm

4. 硬件设计

4.1 核心板架构

核心板围绕 HPM5361 构建,包含 USB Type-C、LCD、本地输入与指示、板载 Flash、Micro SD、CAN 收发器、调试/通信接口、无线通信模块以及扩展接口。

核心板硬件框架2.png

核心板原理图采用模块化设计,覆盖主控最小系统、电源管理、板载存储、显示与本地交互、CAN 通信,以及调试、无线和通用扩展接口等电路。

4.2 调试与通信接口

本项目采用兼容标准 20 Pin JTAG 定义的多功能接口,同时复用 UART、CAN、I²C、SPI、信号发生器和逻辑分析仪等功能。

JTAG接口复用图.png

  • SWD / JTAG:兼容标准 20 Pin JTAG 接口。
  • 双路 UART:当前板级代码映射到 MCU 的 UART3 与 UART4,并与 USB CDC 桥接。
  • CAN:使用 SIT1042AQTK/3 收发器,支持标准 CAN 和最高 5 Mbit/s 的 CAN FD(本项目未板载 120 Ω 终端电阻)。
  • I²C:SCL/SDA 配有 10 kΩ 上拉至 3.3 V,并通过主接口引出。
  • SPI、PWM、ADC/OPA:作为调试、采集、输出或扩展功能使用,部分引脚存在复用关系。

4.3 显示、交互与存储

4.3.1 屏幕

核心板配备 2.31 英寸、320 × 240 分辨率的 TFT 屏,通过 SPI 接口驱动,并使用 DMA 提高刷新效率。设备端基于 LVGL 构建图形界面,用于显示设备状态、功能菜单和调试信息。

屏幕.jpg

4.3.2 功能键与拨轮

拨轮参数.png

板上有一个功能键和一个带按压的拨轮。拨轮左右各有两级触点,加上中间按压,相当于五个按键;当前固件使用上拨、下拨和按下三个输入,使用软件消抖。功能键与 BOOT0 复用,上电时按住可进入 USB 引导烧录模式。

4.3.3 LED 与蜂鸣器

板载红绿双色 LED 和蜂鸣器,用于提示设备启动、调试连接和异常状态:

  • 开机状态:绿灯以 1 秒亮、1 秒灭的周期闪烁。
  • DAP 已连接或目标程序停止运行:绿灯常亮。
  • DAP 未连接:红灯常亮。
  • 目标程序正在运行:红灯呈呼吸效果。
  • 蜂鸣器预设开机、警告和报警三种提示音,分别为 1 kHz 持续 1 秒、2 kHz 持续 2 秒和 3 kHz 持续 3 秒。

当前固件启动后默认进入开机灯效。蜂鸣器默认关闭,主要用于配合后续的离线烧录功能;当前提示音已经配置完成,但尚未接入上层应用代码。

4.3.4 存储系统

SD卡与板载烧录口.png

核心板配备 W25Q128JVSIQ(16 MB)板载 Flash 和 Micro SD 卡槽。Micro SD 使用的 SPI0 与主控自身的硬件 JTAG 共用 PA04~PA07,固件通过 PA09 的 CD 引脚检测 SD 卡是否插入:插卡后引脚切换为 SPI0,此时无法通过该组 JTAG 接口调试或烧录核心板主控;拔卡后引脚恢复为 JTAG。板载 Flash 使用 LittleFS 管理本地文件;Micro SD 使用 FatFs 管理文件,可存储固件、日志和采集数据,并支持通过 USB MSC 作为 U 盘连接电脑。

4.4 电源与保护

核心板由 USB Type-C 5 V 供电,VBUS 经限流后生成系统 +5V,再转换为 +3V3,并分别为模拟、无线和扩展接口提供独立电源。多功能接口可输出 +5V_OUT+3V3_OUT,两路均带有限流保护。

USB 接口带有 ESD 保护,CAN 总线带有共模电感和 TVS,I²C、SPI、UART 及模拟接口也加了 ESD 保护阵列,用于接口插拔和外部接线时的静电防护。

4.5 扩展与预留接口

扩展接口.png

核心板预留了 2.4 GHz 和 Wi-Fi 模块位置,便于后续扩展无线调试功能。2.4 GHz 模块与 20 Pin 接口的 JTAG 信号复用,使用该模块时无法使用烧录功能;当前版本暂未使用无线模块。

扩展接口预留了 2 路 UART、DAC,以及 I²C 和 CAN 各 1 路,具体引脚对应如下:

引脚外设
PA00、PA01UART0
PY06、PY07UART1
PY04、PY05CAN3
PY02、PY03I²C2
PB08、PB09DAC

5. 软件设计

软件代码主要放在 02_software 目录下,目录结构如下:

02_software/
├── firmware/                 # 设备固件
│   ├── user/                 # 启动入口和模块加载
│   ├── board/                # 板级驱动
│   ├── module/               # DAP、USB 转串口、CAN、I²C、SPI、逻辑分析等功能
│   ├── ui/                   # 设备端图形界面
│   └── lib/                  # FreeRTOS、CherryUSB、DAPLink、LVGL 等依赖
├── share/                    # 固件与上位机共用代码
│   ├── com/                  # .proto 消息和 nanopb 生成代码
│   ├── crc/                  # CRC 校验
│   └── lwrb/                 # 环形缓冲
└── desktop/                  # Qt 桌面上位机
    └── src/
        ├── app/              # 主窗口和界面组织
        ├── modules/          # 各功能页面
        ├── interfaces/       # 模块与通信层之间的接口
        └── core/             # 设备连接、数据分帧、请求应答和事件分发

软件部分包括设备固件和桌面上位机。设备固件从 firmware/user/main.c 启动,完成各级模块初始化后进入 FreeRTOS 调度;上位机请求经 Protobuf 编码后,通过 libusb 发送到设备端 Bulk 接口,设备完成解析并调用对应功能模块,再将结果和状态数据返回上位机。

固件和上位机都使用 CMake 构建。固件使用 HPM SDK 和 RISC-V GCC 工具链;上位机使用 Qt 6.8 和 C++17,libusb 直接随源码编译。两端共用 share/com 下的 .proto 文件,构建时会自动生成对应的 nanopb 代码。

HelixLink工程功能分层图_v2.png

5.1 设备固件

设备固件基于 FreeRTOS,main() 主要完成板级初始化、GPIO 配置和模块加载,随后启动任务调度。各功能模块负责自身的外设配置,并按需要创建信号量、消息队列和任务。

工程在 module_load.h 中参考 RT-Thread 实现了分级初始化注册机制,系统启动时按照板级、设备、组件、环境和应用的顺序加载模块,不需要在 main() 中逐个调用初始化函数。对应的注册宏如下:

#define INIT_BOARD_EXPORT(fn)      // 板级初始化
#define INIT_DEVICE_EXPORT(fn)     // 设备初始化
#define INIT_COMPONENT_EXPORT(fn)  // 组件初始化
#define INIT_ENV_EXPORT(fn)        // 环境初始化
#define INIT_APP_EXPORT(fn)        // 应用初始化

新增模块时,在 module 目录下建立对应文件并实现初始化函数,再根据模块的依赖关系选择注册级别。需要持续运行的功能可在初始化函数中创建 FreeRTOS 任务。完成注册后,模块会随系统启动自动加载,无需修改 main()

5.2 统一通信协议

固件和桌面端共用 .proto 消息定义,目前覆盖设备信息、错误、CAN、I²C、SPI、逻辑分析和信号发生模块。

通信帧结构为:

0x55 0xAA | Payload Length (uint32 LE) | Protobuf Envelope | CRC-16/CCITT-FALSE

协议支持请求/响应关联和设备主动通知。单帧 Protobuf 负载上限为 2048 B;大数据采集需要通过多帧事件持续上报。

5.3 桌面上位机

桌面端基于 Qt 6.8 Widgets 与 C++17,采用 UI 线程和设备工作线程分离的模块化设计。当前工程包含:

  • 设备发现、连接、信息与能力查询
  • CAN / CAN FD 报文收发、过滤与定时发送界面
  • I²C 与 SPI 参数配置、数据读写
  • 逻辑分析波形显示
  • 信号发生参数配置
  • 设置、快捷命令、批量发送和会话保存

5.4 主要功能设计

5.4.1 在线调试与 USB 复合设备

设备端使用 CherryUSB 组成一个 USB 2.0 High-Speed 复合设备,其中调试功能采用 DAPLink 的 CMSIS-DAP 实现,负责处理 SWD / JTAG 调试命令。同一个 USB 接口还包含双路 CDC 串口、CLI、上位机通信接口和 Micro SD MSC,各功能使用独立的接口和端点。

5.4.2 双路 USB 转串口

两路 CDC 串口分别桥接 UART3 和 UART4。电脑设置串口波特率、数据位、停止位和校验方式后,固件同步更新对应的物理 UART。USB 收到的数据直接转发到 UART,UART 接收的数据通过缓冲区回传到 USB,实现双向透传。

5.4.3 CAN、I²C 与 SPI

CAN、I²C 和 SPI 模块向 module/com 注册各自的消息处理函数。上位机请求到达后,由通信模块完成解码和分发,再调用对应的 BSP 驱动执行配置、读写或报文发送,结果通过响应消息返回。CAN 接收使用独立任务轮询控制器,收到报文后通过通知消息主动上报,因此不需要上位机反复查询。

5.4.4 逻辑分析与信号发生

逻辑分析仪提供 9 路输入,可选择采集通道并设置高低电平触发条件,采集到的波形通过上位机实时显示,便于查看各接口的电平变化和通信时序。当前使用自定义通信协议,后续考虑适配 PulseView。

当前版本的信号发生器提供 11 个可选输出通道,支持正弦波、方波、三角波和直流输出,可设置频率、幅值和偏置。输出由 PWM 合成,正弦波和三角波需经过外部低通滤波后使用;后续将移除该功能,改为 PWM 信号发生器,相关功能移至扩展板。

5.4.5 存储管理

板载 W25Q128JVSIQ Flash 通过 SPI 连接,使用 LittleFS 管理本地文件;Micro SD 通过 SPI0 连接,使用 FatFs 管理文件。SD 卡在 FatFs 和 USB MSC 之间切换时由状态机统一处理,进入 U 盘模式前先卸载文件系统,退出后再重新挂载,避免电脑和设备端同时访问卡内数据。

5.5 LVGL 界面与 PC 模拟

设备端界面基于 LVGL 开发,界面源码位于 firmware/ui,包含页面、组件、图片和字体等资源,配合拨轮和功能按键进行操作。

工程同时提供 firmware/ui_simulator PC 模拟工程。模拟工程复用设备端的 LVGL 界面源码,使用 CMake 和 SDL2 生成 PC 窗口,可在没有连接硬件的情况下进行界面布局和交互调试;需要时还可以启用 FreeRTOS POSIX 模拟。模拟器主要用于界面开发,显示、拨轮和按键等硬件相关功能仍需在设备上验证。

6. 结构设计

本项目的结构设计采用方形便携结构。根据屏幕比例、边框观感、接口位置和装配方式进行了多次调整,使外形工整简洁,使用时也便于拿取和操作。

结构默认角度.png

整机外形约为 55 × 55 × 15 mm,大小接近掌心。正面使用 2.31 英寸横向屏幕,屏幕上、左、右三侧边框保持对称;下方 JTAG 接口区域的面板用于放置项目 Logo 和运行状态指示灯,降低大黑边的存在感。

结构正面.png

拨轮和功能按键布置在侧面,单手即可完成常用操作。同时,USB Type-C、侧面按键和拨轮高度保持一致,整体看起来更加协调。

右面.png

外壳预留 20 Pin 接口开口,支持标准 20 Pin 调试排线直接插入,无需拆开外壳。

前面.png

外壳内部设置定位柱和安装孔,核心板、屏幕、导光柱、拨轮和按键按对应位置插入装配,不需要额外使用螺钉。

7. 组装与复刻流程

7.1 PCB 下单与元件采购

  1. PCB 下单使用最新的 helixlink_core_V1.3,板厚选择 1.6 mm。
  2. 元件可参考 BOM 购买,推荐从立创商城或淘宝采购,并注意核对封装。

7.2 PCB 焊接与检查

焊接注意事项.png

  1. PCB 背面的排母、Wi-Fi 模块和 2.4 GHz 模块暂不焊接;R7 电阻也不需要焊接,否则会导致 SD 卡无法正确识别。
  2. 上电前测量电源与 GND 之间是否短路,首次上电建议使用带限流功能的电源。
  3. 确认 +5V+3V3 等主要电源正常后,再进行固件烧录和功能测试。

7.3 固件烧录

  1. 从官方仓库下载烧录工具:HPMicro Manufacturing Tool

  2. 解压后运行 hpm_manufacturing_gui.exe,在左侧选项栏中选择如下参数:

USB烧录固件选择参数.png

  1. 按住 BOOT0 复用的功能按键后连接 USB,使芯片进入 USB 引导模式。

连接helixlink.png

  1. 选择固件并点击烧录,等待烧录完成。

选择烧录固件.png

7.4 基础功能检查

  1. 烧录完成后断电重启,设备正常启动时绿色 LED 会闪烁,设备管理器中会出现以下 USB 设备。若串口名称尚未显示为 HelixLink USB,属于正常现象,可按下一步修改。其中,Helixlink USB to UART1 对应芯片的 UART3,Helixlink USB to UART2 对应芯片的 UART4,Helixlink USB Cli 用于调试。

电脑识别.png

  1. 项目提供 05_tools/win_usb_rename.ps1 脚本。连接 HelixLink 后,以管理员身份运行该脚本,可将 HelixLink 的 USB 串口修改为上图所示的名称,方便区分。

  2. 在串口助手中选择 Helixlink USB Cli 端口,以任意波特率打开,输入 help\r\n(必须包含换行)即可收到回复。部分串口助手还需开启 DTR 才能收到回复;随后可根据提示输入对应指令,验证部分功能。输入命令后必须带换行。

CLI演示.png

  1. 连接桌面上位机,确认设备能够被识别,并验证 CAN、I²C、SPI 等功能。验证 CMSIS-DAP 时,在 Keil 的 Debug 设置中选择 CMSIS-DAP,设备应识别为 CMSIS-DAP 设备,当前设备名称为 CherryUSB CMSIS-DAP;连接后绿色 LED 常亮。上位机占用设备时,Keil 无法连接 HelixLink,测试前需先断开上位机。

7.5 接口功能验证

  1. 使用已知正常的目标板验证 CMSIS-DAP 的 SWD / JTAG 连接和程序烧录。
  2. 分别验证双路串口收发,以及 CAN、I²C、SPI 的基本通信。
  3. 检查逻辑分析仪的多通道采集和触发功能,并验证信号发生器的 PWM 输出;正弦波和三角波需接入外部低通滤波器后测量。

7.6 安装外壳

  1. 先安装屏幕和前壳组件,确认屏幕方向、边框位置和导光柱安装位置。

组装步骤1.png

  1. 将屏幕、导光柱(可不装)和前壳上的定位结构对齐,确认各部件能够顺利贴合。

组装步骤2.png

  1. 将屏幕排线与核心板连接,然后核心板与上壳的孔位对齐。

组装步骤3.png

  1. 安装金属按键。

组装步骤4.png

  1. 对齐前后壳及后盖,沿定位柱和安装孔插入合拢。

组装步骤5.png

  1. 装配完成后检查 USB Type-C、20 Pin 接口、屏幕、拨轮和按键,确认接口能够正常插拔,再进行整机上电测试。

组装步骤6.png

8. 参考工程、资料与协议

8.1 参考工程与技术资料

工程还使用了 LVGL、LittleFS、FatFs、nanopb、lwrb、libusb 和 Qt 等开源项目,具体版本以仓库源码及子模块记录为准。

相关参考工程和硬件资料:

8.2 协议说明

本项目自有内容采用 CC BY-NC-SA 4.0 许可协议:

  • 署名(BY):转载、修改或分享时须注明原作者和项目来源。
  • 非商业性使用(NC):未经授权,不得将本项目用于商业用途。
  • 相同方式共享(SA):基于本项目修改或创作的内容,须继续使用 CC BY-NC-SA 4.0 协议发布。

如需商业使用,请事先取得项目作者的单独授权。

第三方组件继续遵循各自的开源许可证,主要包括:

  • HPM SDK:BSD 3-Clause
  • CherryUSB、DAPLink:Apache License 2.0
  • LVGL、lwrb:MIT License
  • LittleFS、FatFs:BSD 风格许可证
  • libusb:GNU LGPL 2.1
  • nanopb:zlib License

CC BY-NC-SA 4.0 不替代第三方组件原有许可证。转载、分发或发布编译产物时,还应保留相关组件的版权声明和许可证文件;完整条款以各组件源码目录中的 LICENSECOPYINGNOTICE 文件为准。

8.3 团队与贡献

HelixLink项目由【HelixLink团队】协作完成,核心成员分工如下:
【flyn】:负责硬件电路设计、机械结构开发以及 UI 界面设计。
【maxiao】:负责软件整体架构设计,单片机固件与上位机软件的主要代码实现。
【B-J-S】:负责部分底层驱动的编写与测试,修复已知 Bug,撰写项目技术文档及制作演示视频。

本项目欢迎社区贡献。提交代码前请阅读 CONTRIBUTING.md,并遵循已有的代码风格和提交规范。

8.4 联系我们

QQ 复刻交流群:1077879146(入群请备注“HelixLink”)
QQ 闲话群:334607120(入群请备注“HelixLink”)
项目主页:https://gitee.com/helixlink/helixlink
欢迎提交 Issue 和 Pull Request,也欢迎在群里提问、分享你的复刻成果。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
3d外壳stp.zip
9

附件

序号文件名称下载次数
1
helixlink.bin
9
2
上位机-helixlink-windows.zip
14
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航