シリアルデバッグアシスタント软件 ATK-XCOM V3.0

会員限定会員限定

该内容已接入现有会員/有料系统,解锁后可完全な情報を見る或添付ファイルのダウンロード。

シリアルデバッグアシスタント软件 ATK-XCOM V3.0

Source: Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community

本記事:シリアルデバッグアシスタント软件 ATK-XCOM V3.0:从基础收发到 Modbus protocol传输完全に。ガイド · Author:modbus Technical Team · 发布于 2026-07-01

摘要:ATK-XCOM V3.0 由正点原子(ALIENTEK)开发,是国内エンベデッド·イン开发圈使用最广的シリアルポートデバッグ工具之一。本記事不仅カバー其核心功能,更深入讲解它的协议传输モード——自动タイムアウト重发、checksum/XOR/CRC8/CRC16 四种チェック、データフレーム与实际データ的分离表示——这些功能让 ATK-XCOM 在 Modbus RTU デバッグ场景中比普通シリアルアシスタント高出一个量级。附带完全的 Modbus デバッグ操作ガイド和同类工具对比。关键词:ATK-XCOM、正点原子、シリアルデバッグアシスタント、协议传输、Modbus RTU debug、CRC16、checksum。


デバッグシリアルポート这件事,说简单也简单——找个シリアルアシスタント,选对 COM 口和ボーレート,发个十六进制フレーム,看回来啥。说难也难——当你的フレーム发出去,デバイス回了,但你不知道回来的データ是ではない对的,不知道丢没丢フレーム,不知道中间那两バイト到底是ではない正确的チェックコード。

ATK-XCOM V3.0 是正点原子团队开发的シリアルポートデバッグ工具。正点原子在国内エンベデッド·イン圈的影响力不用多说——STM32 开发板、ESP32 モジュール、RT-Thread Tutorial,基本上学エンベデッド·イン的人都用过他们的东西。ATK-XCOM 是他们内部デバッグツール的外化版,功能构建来自真实的开发场景而非凭空设计。


一、软件怎么装

developer:正点原子(ALIENTEK),国内专业的エンベデッド·イン开发ソリューション提供商。长期专注于为エンジニア、学生和爱好者提供开发板、モジュール和配套工具。

系统要求:Windows 7 及以上,32/64 位均サポート。实测在 Windows 10 和 Windows 11 上运行稳定,CH340、CP2102、FT232 等常见 USB 转シリアルポート芯片均正常识别。


二、基础功能速览

2.1 シリアルポート設定

打开软件后自动扫描すべての可用シリアルポート,在シリアルポート下拉リスト中可以看到对应的シリアルポート名称和詳細はこちら(如 COM3: USB-SERIAL CH340)。常见的 CH340 芯片サポート热插拔——USB 插上后点击リフレッシュ即可出现,拔掉后自动消失。部分老旧驱动可能需要手动关闭シリアルポート再打开。

ボーレート範囲:预设 1200 ~ 1382400 bps,カバー了すべての標準速率。需要非标ボーレート(如 750000、921600)时,在シリアルポート关闭ステータス下点击「Customization」button,直接入力数值。前提是你的 USB 转シリアルポート芯片和对方デバイス的 UART 都能サポート这个速率——STM32 的 USART 在 72MHz 时钟下サポート的非标ボーレート範囲很窄,ではない随便输个数字就能稳的。

stop bit:1、1.5、2 三种。data bit:5、6、7、8 四位。check digit:検証なし。、odd parity、even parity。Modbus RTU 的標準設定:8 data bit、1 stop bit、ダブルチェック或検証なし。。

2.2 表示与送信

受信区サポート两种表示モード:十六进制和 ASCII,可实时切换。两种配色方案:经典的「黑底绿字」(类似终端风格,长时间看屏幕不刺眼)和「白底黑字」(类似ドキュメント风格,截图可用)。勾选「时间戳」可以为每一条受信データ加上精确时间。注意时间戳以 rn 为フレーム边界——もし你收到的 Modbus フレーム中间刚好有 0D 0A,时间戳会被エラー插入到フレーム内部。所以 Modbus デバッグ时时间戳功能建议在 ASCII モード下使用,Hex モード下建议关闭。

送信区サポート ASCII 和十六进制两种入力格式。勾选「送信新行」自动在送信内容末尾追加 rn——调 AT 指令的モジュール(如 ESP8266、4G モジュール)时必须勾上。快捷键 Ctrl+Enter 可直接送信。

「定时送信」Function:可以設定固定周期(毫秒级),软件自动按間隔循环送信送信区的内容。适合做老化测试——比如给 Modbus スレーブ连续发 24 小时读レジスタ命令,看デバイス会不会通信中断。

「文件送信」Function:能把任意格式的文件(如 .bin 固件、.hex アップグレード包)按バイト流経由シリアルポート发出去,带プログレスバー和暂停/继续控制。IAP(In-Application Programming)シリアルポートアップグレード固件时直接使用する。它,必要なし。单独写个アップグレード工具。

2.3 多条送信与指令管理

四条独立送信ページ,每条ページ有 10 条可編集的送信指令(等于最多 40 条预置命令)。每条指令的送信格式(Hex/ASCII)、是否加新行、送信周期都可以单独設定。数字键盘 0~9 可以绑定到当前ページ的第 1~10 条指令——适合需要快速レスポンス控制的场景,比如智能车控制(按数字键 1 前进、2 后退、3 左转)。

命令セットサポート导出为 Excel format、也从 Excel Import。项目交接时直接把你的すべての测试指令导出成一个文件发给同事,他导入后就能用完全一样的命令デバッグ。


三、协议传输モード——ATK-XCOM 的杀手锏

这是 ATK-XCOM 和普通シリアルアシスタント的本质区别所在。主に。シリアルアシスタント只是「你把バイト发出去,答えがあります的就表示出来」。ATK-XCOM 的协议传输モード做了三件事:自动チェック、自动タイムアウト重发、データとフレーム的分离表示。

3.1 工作原理

协议传输的基本流程:你在送信区填入要发的实际データ(Payload),ATK-XCOM 自动在データ前后加上フレーム头和チェックコード,拼成完全的协议フレーム,経由シリアルポート发出去。受信端收到フレーム后,計算チェックコード,もし検証済み。则戻る確認フレーム(ACK),送信端收到 ACK 表示传输成功。もし在设定时间内ない收到 ACK,自动重发,最多重试設定的次数。

对于 Modbus RTU 来说用不到全套的 Send-Ack 机制(Modbus 本身就有自己的主从问答协议),但它サポート四种チェック算法,以及「表示元のフレーム」和「表示实际データ」分开的功能——这2つ在 Modbus デバッグ中太实用了。

3.2 四种チェック方式

チェック方式Length算法简述適用可能なシーン
checksum(Checksum)1 byteすべてのデータバイト累加,取低 8 位简单协议、自定义フレーム
XOR(XOR)1 byteすべてのデータバイト连续异或NMEA 0183(GPS)、部分センサーは
CRC81 byte8 位循环冗余チェック,多項式可配Dallas 1-Wire、SMBus
CRC162 bytes16 位循环冗余チェック,查表法実装**Modbus RTU**(多項式 0xA001)

在协议传输設定中选「CRC16」,ATK-XCOM 自动按 Modbus 標準多項式(0xA001)result,结果低バイト数前に、ハイバイト在后(リトルエンディアン序),完全符合 Modbus RTU 的 CRC 排序ルール。你只需要入力除 CRC 之外的裸フレーム,软件替你加上两バイト CRC。

3.3 表示元のフレーム vs 表示实际データ

受信区可以2つモード切り替えモード:

  • 表示元のフレーム:受信到完全に。バイト流,包括フレーム头、address、function code、data、checksum,全表示出来。用于トラブルシューティングフレーム構造問題——比如发现收到的Bytesの数少了,可能是定时間隔短すぎる被截断了。
  • 表示实际データ:只表示经过チェック后的有效データ载荷,すべてのフレーム头和チェックコード都被剥离。用于快速看データ内容——必要なし。在十六进制里找「データ在哪开始、チェック在哪结束」。

Modbus デバッグ时这2つモード的切换是这样的:先用「表示元のフレーム」確認フレーム構造正确、チェックコード経由。確認无误后切换到「表示实际データ」,只フォローレジスタ的数值变化。

3.4 自动重发与タイムアウト設定

送信失敗后的重试机制可設定三个参数:

  • タイムアウト時間(ms):待機中 ACK 的最大时间。对于 Modbus slave,典型值设为 100~500ms 足够,取决于スレーブデバイス的レスポンス速度。一部の低速デバイス(老旧的 51 单片机跑 4800 Baud rate)可能需要设到 800ms 甚至更高。
  • 重发次数:タイムアウト后自动重发的最大次数。设 0 表示不重发。一般设 3~5 次。
  • 重发間隔(ms):两次重发之间的間隔。这个值需要 > タイムアウト時間,否则逻辑就乱了。对于 Modbus RTU 的场景,フレーム間隔必须 ≥ 3.5 文字の時間(3.5 × 11 / Baud rate),比如 9600 bps 就是约 4ms。

这些参数放在一个 GUI 面板上,比写代码配シリアルポートタイムアウト直观得多。关键是可以直观地看到「在第几次重发时受信しました正确的 ACK」——もし每次都到第 3 次才成功,説明通信链路有不稳定的地方,要去トラブルシューティング线缆或干渉。


四、使用 ATK-XCOM debug Modbus RTU 完全に。流程

步骤一:設定シリアルパラメータ

open ATK-XCOM V3.0,選択对应的 COM 口。ボーレート设 9600(或デバイス实际ボーレート),data bit 8,stop bit 1,チェックビット选无或ダブルチェック——取决于你デバイス的具体設定。

点「Open the serial port」。もし线路正确、デバイス已上电,ステータス栏会表示シリアルポートオープンしました,收发Bytesの数从 0 开始。

步骤二:构造 Modbus 查询フレーム

假如读駅からの住所 01 保持レジスタです。 40001(address 0x0000),读 1 Registers。裸フレーム(不含 CRC)是:

01 03 00 00 00 01

勾选「十六进制送信」,在送信区入力 010300000001。在「协议传输」設定中勾选 CRC16 check,ATK-XCOM 会自动計算 CRC 并在フレーム末尾附加两バイト(对于这个フレーム,CRC 是 0x840A,发出去完全に。フレーム是 01 03 00 00 00 01 84 0A)。点送信。

步骤三:解析戻るフレーム

デバイス普通の反応时,ATK-XCOM 受信区会表示回来的十六进制データ。標準的レスポンスフレーム形式是:

01 03 02 XX YY CRCL CRCH

among them 02 表示データ区的Bytesの数(读 1 1つのレジスタ就是 2 bytes),XX YY 是レジスタの値(前の高さ。)。

もし戻る的是:

01 83 02 CRCL CRCH

機能コード变成了 0x83——这是元の機能コード 0x03 的最高位被置为 1,加上異常コード。 0x02。Modbus Exception Code 0x02 表示「Illegal data address」——你リクエスト的レジスター·アドレス在这个スレーブ上不存在。

步骤四:利用多条送信管理常用 Modbus Command

在「多条送信」エリア建四个ページ:

Page 1 —— 読み取り类命令

条目1: 010300000001 → 駅から読む。01レジスタ40001(1个)
条目2: 010300000004 → 駅から読む。01レジスタ40001~40004(4个)
条目3: 0103000A0001 → 駅から読む。01レジスタ40011(1个)
条目4: 010100000008 → 駅から読む。01コイル00001~00008(8个)

每个条目独立勾选「十六进制送信」和 CRC16 check。

Page 2 —— 写入类命令

条目1: 010600000001 → 写スレーブ01レジスタ40001=1
条目2: 010600000000 → 写スレーブ01レジスタ40001=0
条目3: 011000000001020001 → 写スレーブ01多1つのレジスタ,start0000,2バイト,值=0001

Page 3 —— 广播与诊断

条目1: 000800000001 → 广播诊断(サブ機能コード0001,通信の再開)
条目2: 00110000 → 广播取得スレーブイベント数器

Page 4 —— 导出备份

全設定完,菜单 → 导出送信条目 → 存为 Excel 文件。以后换电脑直接使用する。这个文件导入,すべての命令一秒恢复。


五、ATK-XCOM vs 其他シリアルポート工具的ポジショニング

对比维度ATK-XCOM V3.0LLCOMSSCOMCOMTool
开发方正点原子(国内)chenxuuu 个人开源个人个人开源
free
脚本化サポートなし。Lua 5.3 脚本引擎サポートなし。有限サポート
协议传输サポート(フレーム头/check/ACK/タイムアウト重发)サポートなし。(需自己写 Lua)サポートなし。サポートなし。
CRC/check内置 4 种(checksum/XOR/CRC8/CRC16)需自己写 Luaサポートなし。サポートなし。
多条送信4 页×10 条+快捷键10 页不限条数サポートなし。サポート
ボーレート上限1382400受驱动限制受驱动限制受驱动限制
GUI 风格经典绿底黑字现代白色老式 Windows现代
下载方式百度网盘+官方GitHub+MS Store各下载站GitHub

选工具的三个场景:

  • 日常デバッグ Modbus RTU,只需收发和看データ → ATK-XCOM。协议传输モード内置 CRC,多条送信管理方便,必要なし。写脚本。
  • 需要自動化批量测试、自定义データの解析、和 TCP/MQTT 联调 → LLCOM。Lua 脚本的灵活性无可替代,但学习成本高。
  • 只是偶尔用一次シリアルポート、发几条 AT 指令 → COMTool 或 SSCOM。轻量,必要なし。任何設定。

ATK-XCOM 的ポジショニング是「专业シリアルポートデバッグ的ツールボックスThe Toolbox」而ではない「可プログラミング万能工具」。它的设计哲学是把エンベデッド·インエンジニア最もよく使われるデバッグ流程做成固定功能,让你必要なし。写代码就能跑。LLCOM 是把すべての可プログラミング能力开放给你,让你想干嘛就干嘛——但代价是你要会写 Lua。

2つ工具配合用才是最合理的:ATK-XCOM 搞定日常的收发和チェック,LLCOM 搞定需要自動化重复操作的任务。


六、common problems

CRC16 チェック结果和手动算的不一致? 確認两件事:1) 多項式是否正确——Modbus RTU 用的是 0xA001(ではない 0x8005,那是 IBM CRC-16 的正向多項式)。2) 初期化是否为 0xFFFF。ATK-XCOM 内置的 CRC16 是严格按照 Modbus protocol実装的,正确结果可以用オンライン CRC calculation器交叉验证。

受信できない。スレーブレスポンス? 三查:1) ボーレート和チェックビット一致するかどうか。2) 駅からの住所是否正确(注意デフォルトアドレス可能是 1 也可能是 247,每个厂商不一样)。3) デバイス是否上电——这在现场是最常被忽略的,很多人插上 USB 转 485 以为デバイス就有电了,实际デバイス需要独立的 DC 供电。

时间戳不表示? ATK-XCOM 的时间戳以 rn 为断フレーム标志。もし收到的データ是纯 Modbus RTU 二进制フレーム、不包含 0D 0A,时间戳功能不会触发。建议在 Hex 受信モード下关闭时间戳,或確認对方データ流确实包含换行符。

文件送信到一半停了? チェック目标デバイス的受信バッファ。是否足够。文件送信是连续バイト流,もしデバイス処理速度跟不上(比如每受信一バイト単位。就要写 Flash 并待機中完成),送信端不会自动降速。ソリューション是降低送信ボーレート,或者把文件拆成小块,用多条送信的定时功能分片送信。


ATK-XCOM ない什么炫酷的新概念,它的每个功能都来自エンベデッド·インエンジニア在デバッグ现场的真实需求——协议传输是因为デバイス一应答就出错又不知道错在哪,多条送信是因为十几条 AT 指令来回手打太折磨人,自定义ボーレート是因为总有一些非标デバイス。这就是正点原子作为「从开发板里长出来的工具团队」和「纯ソフトウェアツール团队」最大違いはありません——后者是设计出来的,前者是磨出来的。

有問題再聊。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.