
HARTLink便携式HART手操器
简介
基于 CH32L103 + DS8500 的便携式HART手操器,支持 OLED 本地调节、实现1200Hz/2200Hz FSK 信号的调制、解调实现与仪表的通讯、支持上位机更多命令
简介:基于 CH32L103 + DS8500 的便携式HART手操器,支持 OLED 本地调节、实现1200Hz/2200Hz FSK 信号的调制、解调实现与仪表的通讯、支持上位机更多命令开源协议
:CC BY-NC-SA 4.0
(未经作者授权,禁止转载)描述
HARTLink M1|便携式 HART 手操器与 USB 透传工具
> 一台装进口袋的小型 HART 调试工具:本机负责安全读取,电脑负责复杂操作。 连接现场时,USB 仅为 HARTLink 本机供电,4–20 mA/HART 回路需要独立外部供电。
![]() 掌上尺寸,本机读取 |
![]() OLED 手操 + USB 透传 |
![]() 原理图、固件与工程资料 |
![]() HART FSK 实测波形 |
![]() 现场设备安全只读菜单 |
![]() USB HID IAP 在线升级 |
项目简介
HARTLink M1 是一套面向学习、实验和现场调试的便携式 HART 工具。硬件以 CH32L103F8U6 为主控,集成 HART 调制解调、128×64 OLED、旋转编码器、蜂鸣器、USB Type-C 和回路接口;固件提供设备发现、基础变量读取、本地轮询、诊断状态查看、USB CDC 原始帧透传以及 USB HID IAP 升级。
项目的设计边界很明确:
- 不连接电脑时,通过屏幕和编码器完成扫描、身份识别、PV/SV/TV/QV、环路电流、量程与状态等基础读取。
- 连接电脑时,HARTLink 作为 USB 与 HART 物理层之间的原始数据通道,复杂命令由上位机组织。
- 本机对现场设备只读,不在掌上菜单中提供会修改仪表参数或状态的命令,降低误触风险。
- USB 不给 4–20 mA 回路供电。HARTLink 本机由 USB 供电,现场仪表与回路必须由外部电源或 PLC/DCS 供电。
这是一套源码开放、面向非商业用途的工程项目,不是商业校验仪或安全认证设备。用于真实工业过程前,请先确认回路条件、作业权限和现场安全要求。
核心功能
| 功能 | 说明 |
|---|---|
| 便携本机操作 | 128×64 SSD1306 OLED、SIQ-02FVS3 旋转编码器、按键与蜂鸣器,中英文菜单 |
| 设备发现 | 扫描轮询地址 0–15,通过 Cmd0 缓存设备身份、HART 版本与长地址 |
| 安全只读命令 | 本机提供 Cmd0/1/2/3/7/9/12/13/14/15/20/48 等读取命令 |
| 数据显示 | 显示 PV/SV/TV/QV、环路电流、百分比、量程、状态及常用工程单位 |
| 自动轮询 | 可选择 Cmd1 或 Cmd3,并在本机调整轮询地址与周期 |
| 长文本适配 | 结果先停留 0.8 秒,再按 0.25 秒/字符循环滚动 |
| USB 透传 | USB CDC 虚拟串口双向转发原始 HART 字节流 |
| 总线仲裁 | USB 主机活跃时本机显示 HOST BUSY,本地命令不会抢占 HART 总线 |
| 在线升级 | 常驻 Bootloader,支持 USB HID IAP;另保留 USART1 备用 IAP |
| 设置保存 | OLED 亮度、蜂鸣器音量和菜单语言保存到独立 Flash 设置区 |
> 这里的“只读”是指本机不会向现场 HART 设备发送写参数命令;亮度、音量、语言等 HARTLink 自身设置仍可在本机保存。
硬件组成
| 模块 | 主要器件 / 作用 |
|---|---|
| 主控 | CH32L103F8U6,RISC-V MCU,系统时钟 48 MHz |
| USB 与电源 | USB Type-C 接口、CC 下拉、电源与数据线 ESD 保护、3.3 V LDO |
| 显示 | 1.3寸SSD1306 128×64 OLED,I²C 接口 |
| 人机交互 | SIQ-02FVS3 A/B 相旋转编码器与按键、4 kHz 蜂鸣器驱动 |
| HART 调制解调 | DS8500 HART modem,连接 MCU 的 TX、RX、RTS 与载波检测信号 |
| 回路模拟前端 | HR228434 变压器、RC 网络、TS5A3167 模拟开关、LMV321 运放 |
| 接口保护 | 回路侧串联阻抗与 SMBJ36CA 瞬态抑制器件 |
关键参数
| 项目 | 参数 |
|---|---|
| 产品型号 | HARTLinkM1 |
| 当前固件 | V1.0.1 |
| MCU | CH32L103F8U6 |
| 系统时钟 | 48 MHz HSI,USBCLK Div1 |
| HART 串口 | USART2,1200 baud,8 数据位、奇校验、1 停止位(8O1) |
| 本机扫描范围 | 轮询地址 0–15 |
| HART 前导码 | 默认 5 字节,并根据设备响应自适应,最大 20 字节 |
| 显示器 | 1.3寸SSD1306,128×64,I²C |
| 本机操作 | 旋转编码器旋转、短按、长按,长按阈值 800 ms |
| USB 运行接口 | USB CDC,设备名 HARTLink CDC,VID:PID 1A86:FE0C |
| USB 升级接口 | USB HID,设备名 CH32L103 IAP,VID:PID 1A86:FE17 |
| 备用升级接口 | USART1,PA9/PA10,115200 8N1 |
| 供电方式 | USB 5 V 为 HARTLink 本机供电,板上转换为 3.3 V |
| 回路供电 | 不提供;4–20 mA/HART 回路必须外部供电 |
信号链与工作原理
HARTLink 的工作链路可以概括为:
OLED / 编码器
│
▼
CH32L103F8U6 ── USART2,1200 baud 8O1 ── DS8500 HART modem
▲ │
│ ▼
USB CDC 原始帧透传 RC 网络 / 变压器 / 保护
▲ │
│ ▼
Chrome / Edge / 上位机 4–20 mA HART 回路
- 发送方向:MCU 生成 HART 帧,经 USART2 送入 DS8500;调制后的 FSK 信号再经过耦合、滤波和保护网络叠加到回路。
- 接收方向:回路中的 FSK 信号经模拟前端送入 DS8500 解调,MCU 接收字节并进行帧校验、命令解析和数据显示。
- 收发控制:MCU 使用
HART_RTS控制收发状态,并读取载波检测信号,减少总线冲突。 - 主机桥接:USB CDC 收到的普通数据按原始字节送往 HART 物理层,HART 返回数据也原样上传;本机只额外识别精确匹配的版本查询字符串。
HART 使用 1200 Hz / 2200 Hz FSK 在 4–20 mA 模拟量上叠加数字通信。它不会替代回路电流与回路电源,因此正确的负载、电源和并联位置仍是能否通信的前提。
接线方法
方案 A:独立 24 V 实验回路
- 外部 24 V 电源、HART 仪表和约 250 Ω 负载电阻串联组成电流回路。
- HARTLink 的两根测试线跨接在 250 Ω 电阻两端(无极性)。
- 使用 USB 线给 HARTLink 本机供电。
- 确认回路电流和接线无误后,再开始扫描设备。
方案 B:现有 PLC / DCS 回路
- 先确认现有回路已经由 PLC/DCS 或独立电源供电,并具备适合 HART 通信的负载条件。
- 将 HARTLink 并联到现场仪表端子或指定测试点(无极性)。
- USB 仍只给 HARTLink 本机供电,不参与现场回路供电。
- 停止可能与手操器冲突的轮询或维护操作,再进行设备扫描。
> 重要:不要把 USB 5 V 当作仪表回路电源,也不要让 HARTLink 承担 4–20 mA 回路供电。 接入真实工艺设备前,应确认防爆分区、接地、隔离、回路负载和作业许可。
本机操作
快速开始
- 首次制作时,使用 WCH-Link 或兼容下载器烧录完整固件
HARTLink.hex。 - 用 USB 数据线给 HARTLink 供电,等待 OLED 显示
HARTLink V1.0.1。 - 按上一节完成外供电 HART 回路接线。
- 长按编码器进入主菜单,选择
Device → Scan 0-15。 - 扫描到设备后,进入
HART Cmds查看身份、PV、动态变量、环路与量程等只读信息。 - 需要连续观察时,在
Polling中选择 Cmd1 或 Cmd3,并设置轮询周期。 - 需要复杂解析、维护或写参数时,停止本机轮询,连接 USB 上位机。
编码器手势
| 场景 | 旋转 | 短按 | 长按 |
|---|---|---|---|
| 主页 | 切换“扫描 / PV / 轮询”快捷项 | 执行当前快捷项 | 进入主菜单 |
| 主菜单 | 移动选中项 | 进入或执行 | 返回主页 |
| 子页面 | 移动选中项或调整本机设置 | 确认或执行 | 返回 / 放弃修改 |
本机菜单边界
| 页面 | 可执行内容 |
|---|---|
| HART Cmds | Cmd0/1/2/3/7/12/13/14/15/20 等安全读取 |
| Device | 扫描地址 0–15、刷新身份、改变本地轮询地址、清除缓存 |
| Polling | 开关本机轮询、选择 Cmd1/Cmd3、调整周期和地址 |
| Diagnostics | Cmd48 附加状态、Cmd9 设备变量状态、清除缓存 |
| System | 亮度、蜂鸣器、语言、保存本机设置、版本、IAP 模式 |
Cmd11/21 需要 Tag 或 Long Tag 输入,Cmd6/17/18/19/22/38 等会改变设备状态,因此没有放进本机菜单。Cmd1/2/3/9/48 等长地址命令必须先通过 Cmd0 或扫描取得设备长地址;否则屏幕会提示 SCAN FIRST。
USB 上位机与原始帧透传
推荐配合 ModeSignal 网页上位机 使用。Chrome 或 Edge 支持 Web Serial,可直接在 HTTPS 页面中选择 HARTLink CDC 对应的串口。

- 用支持数据传输的 USB 线连接电脑与 HARTLink。
- 打开 ModeSignal,点击串口连接,在浏览器授权窗口中选择
HARTLink CDC。 - 设置目标轮询地址,先执行扫描或 Cmd0,再读取变量或执行其他功能。
- 使用本机菜单前先停止上位机轮询;主机仍在通信时,OLED 会显示
HOST BUSY。
HARTLink 的 USB 功能是原始 HART 帧双向透传,并不在设备内部实现完整 DD 库、厂商私有命令或所有参数编辑界面。因此:
- 能识别哪些设备、解析哪些字段、是否支持写参数,取决于所用上位机的实现。
- 写操作还取决于现场设备是否支持、用户是否具备权限以及现场是否允许执行。
- HARTLink 只负责传输,上位机支持某项功能不代表本机菜单也支持该功能。
- 执行任何写入、维护、回路测试或量程变更前,都应先评估工艺影响。
设备还支持一个不会转发到现场回路的型号/版本查询:
TX: HARTLINK:VERSION?\r\n
RX: HARTLINK:VERSION=V1.0.1;MODEL=HARTLinkM1\r\n
只有整段数据精确匹配查询命令时才由 HARTLink 响应,其余数据保持原始透传。
USB HID IAP 在线升级
首次烧录或完整恢复使用 HARTLink.hex;设备已经包含 Bootloader 后,日常升级使用 HARTLink_app.hex。
- 在本机选择
System → IAP Mode;也可以按住编码器再上电。 - 设备重新枚举为
CH32L103 IAP,VID:PID 为1A86:FE17。 - 打开仓库内的
WCHMcuIAP_WinAPP.exe或兼容的 WCH IAP 工具。 - 选择
USB HID,加载HARTLink_app.hex并开始下载。 - 下载完成后 Bootloader 自动启动应用,设备重新枚举为
HARTLink CDC。
> 不要用 WCHISPStudio 给项目 Bootloader 下载 HARTLink_app.hex。WCHISPStudio 面向芯片 BootROM ISP,本项目的在线升级使用自带 Bootloader 的 IAP 协议。
Bootloader 同时保留 USART1(PA9/PA10、115200 8N1)作为备用排查通道。Flash 分区如下:
| 区域 | 地址 | 用途 |
|---|---|---|
| Bootloader | 0x0000–0x4FFF | 常驻启动与 IAP |
| 应用程序 | 0x5000–0xF7FF | HARTLink 主固件 |
| 设置区 | 0xF800–0xFFFF | 亮度、音量和语言 |
| IAP 请求页 | 0x08004F00,256 B | Bootloader 分区内的升级请求标志 |
实物与实测
![]() 接入 HART 回路并读取过程变量 |
![]() 掌上尺寸与中文 OLED 界面 |
下图为 250 Ω 回路测试中的示例 FSK 波形。示波器光标读数约为 2.2 kHz、464.5 mVpp,可观察到 HART 高频音调分量。该幅值仅对应当次回路、探头和测点条件,不应当作所有设备的统一验收阈值。

250 Ω 测试回路中的 2.2 kHz FSK 波形示例
目前项目实物已用于验证 USB 供电启动、OLED 与编码器交互、地址扫描、基础变量读取、本地轮询、USB CDC 枚举与透传、以及 USB HID IAP 流程。不同厂商仪表、线缆长度、回路负载和现场干扰条件不同,复刻后仍建议在自己的目标设备上完成兼容性测试。
软件结构
Bootloader/ 常驻 Bootloader、USB HID 与 USART1 IAP
Core/ WCH RISC-V 核心支持代码
Debug/ 调试支持
Ld/ 应用与 Bootloader 链接脚本
Peripheral/ WCH CH32L103 外设库
Startup/ 启动文件
User/App/ HART 帧、业务逻辑、菜单与 UI
User/Bsp/ OLED、编码器、蜂鸣器、USB、HART 物理层
User/Drv/ SSD1306 驱动与字体
User/Sys/ 系统初始化、时钟与任务调度
tools/ 固件合并与 IAP 诊断脚本
应用程序采用简单的轮询式任务调度:系统 Tick 驱动 UI、编码器、蜂鸣器、本地轮询、USB 桥接和 HART 接收组帧。上位机通信具有更高优先级;USB 最近有输入或仍有待转发数据时,本机不会抢占总线,也不会进行 Flash 擦写。
源码可在 Windows 10/11 下使用 MounRiver Studio 2 自带的 WCH RISC-V Embedded GCC 或兼容工具链构建:
make all
构建产物包括完整固件、应用固件和独立 Bootloader;首次烧录与在线升级所用文件不要混淆。
已知限制与安全边界
- 本机菜单只读:面向现场设备的写参数、维护和 DD 相关复杂功能不在本机实现。
- 上位机能力不等于硬件能力:USB 仅透传原始帧,设备库、DD、私有命令、写入流程与界面均取决于上位机。
- 不提供回路电源:USB 只为 HARTLink 本机供电,现场 4–20 mA/HART 回路必须外供电。
- 本机扫描地址为 0–15:超出此范围的寻址或特殊网络场景需要由上位机处理并自行验证。
- 长地址命令先扫描:未取得设备长地址时,本机会提示
SCAN FIRST。 - 主机优先:USB 通信期间本机可能提示
HOST BUSY,这是为避免两个主站同时抢占总线。 - 屏幕空间有限:长结果采用滚动显示,复杂结构和厂商扩展数据更适合在上位机查看。
- 兼容性需实机验证:不同 HART 修订、厂商扩展、回路阻抗和干扰环境可能影响结果。
- 非认证仪器:本项目按“现状”提供,不替代经过计量、EMC、防爆或功能安全认证的专业设备。
- 许可限制:项目允许学习、研究、实验等非商业用途;商业生产、销售、付费集成或用于商业产品需另行书面授权。
授权、第三方代码与免责声明
HARTLink 固件、软件、文档、图片、硬件设计文件及衍生产品资料采用 PolyForm Noncommercial License 1.0.0,仅允许许可证定义的非商业用途。商业制造、销售、转售、付费集成或用于商业产品/服务,需要先取得版权所有者的单独书面授权。
Core/、Peripheral/、Startup/ 及其他带 WCH 版权头的文件属于南京沁恒微电子提供的第三方代码,继续适用文件中的原始声明,且仅可用于南京沁恒生产的微控制器。第三方器件、商标和工具的权利归各自权利人所有。
项目按“现状”提供,不附带任何保证。HART 设备可能连接真实工业过程;涉及参数写入、量程修改、回路测试、维护模式或停机风险的操作,应由具备相应权限和经验的人员执行。作者不对因接线、复刻、使用或修改本项目造成的设备损坏、过程异常或其他损失承担责任。
如果这个项目对你有帮助,欢迎在嘉立创开源硬件平台点赞、收藏、复刻并反馈测试结果;也欢迎通过 GitHub Issue / Pull Request 提交兼容性记录和改进建议。

设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


















