为什么这是你该第一个拿起的工具
设备不响应时,性价比最高的一步是把中控系统整个摘出去:拿笔记本直连,手工发命令。
逻辑很简单。 如果终端能驱动这台设备,那么线、串口参数、设备配置和命令字符串就全部被证明是对的——故障在中控系统的配置里。如果终端也不行,就别再看软件了。
这一个习惯解决的调试问题比任何其他手段都多,而它只要两分钟。
决定用哪个工具的那个问题:文本还是二进制?
这就是全部的选择标准,而选错会浪费一下午。
有些中控协议是能直接敲出来的可读文本:
PWR ON 爱普生
power "on" 索尼
ka 00 01 LG
*pow=on# 明基
(PWR 1) 科视另一些是根本敲不出来的原始字节:
AA 11 FE 01 01 11 三星 MDC
02 00 00 00 00 02 NEC 投影机
08 22 00 00 00 01 D5 三星 Ex-Link
01 03 00 00 00 01 84 0A Modbus RTUPuTTY——被推荐得最多的那个终端——发不了任意字节。 它发的是你敲下的字符。在 PuTTY 里敲 AA 11 FE,你发出去的是八个 ASCII 字符(0x41 0x41 0x20 0x31 0x31 …),而不是三个字节。
所以推荐是干净利落地一分为二:
| 你的协议 | 用 |
|---|---|
| 文本(爱普生、索尼、LG、明基、科视、巴可、奥图码、PJLink) | PuTTY、Tera Term——什么都行 |
| 二进制(三星 MDC、三星 Ex-Link、NEC、Modbus RTU、松下 STX/ETX) | Hercules、RealTerm、CoolTerm——必须支持十六进制输入 |
如果你的调试笔记本上只留一个工具,留那个能发 HEX 的。
各个工具
PuTTY —— 文本协议,串口和 TCP 都行
免费、极小、免安装,而且串口和裸 TCP 都支持——考虑到有多少中控设备的同一套命令在两种传输上都能用,这一点相当有用。
- 串口:连接类型选 Serial,设好 COM 口和速率,然后在 Connection → Serial 里配数据位/校验位/停止位。
- TCP:连接类型选 Raw,不要选 Telnet。Telnet 模式会插入协议协商字节,把中控命令搞坏。
- 打开本地回显(Terminal → Line discipline),否则你看不见自己敲了什么。
局限:没有十六进制输入,也没法可靠地区分只发 CR 和发 CR+LF。对于挑结束符的协议——比如索尼 ADCP,不同世代对 \r 和 \n 的行为不一样——这是要命的。
Tera Term —— 文本协议 + 脚本
做串口活比 PuTTY 强:可以显式选择发送行结束符(CR / LF / CR+LF),有发送文件功能,还有一套宏语言可以做可重复的测试序列。
能显式选结束符这一点,让 Tera Term 比 PuTTY 更适合做中控的默认工具;而它能发送预先准备好的二进制文件,算是一条能走通但笨拙的发字节的路。
Hercules SETUP utility —— 中控全能选手
免费、免安装,在一个窗口里用不同标签页覆盖串口、TCP 客户端、TCP 服务端和 UDP。这个组合与中控工作异常契合——你可能在同一个下午要测串口的投影机、TCP 的播放器和 UDP 的灯控。
它支持用 $XX 转义语法输入十六进制,所以二进制协议够得着。
TCP 服务端和 UDP 标签页是它的杀手锏:它们让你能接收。当你在对接一个"应该向你的中控软件发命令"的第三方系统时,Hercules 让你顶替中控软件,看清楚到底收到了什么——包括它带不带结束符。 这往往是终结"我们肯定发了"这类争论最快的办法。见 UDP 通 TCP 不通。
RealTerm —— 为二进制而生
专门为二进制和十六进制场景打造:十六进制显示、十六进制发送、控制字符可见、抓取存盘。
如果你的时间花在三星 MDC 校验和、Modbus 帧或 NEC 数据包上,RealTerm 把字节当字节展示给你,而不是显示成一堆乱码文本。 它的界面密集又老派,但做二进制调试没有比它更直接的。
CoolTerm —— 跨平台,支持十六进制
macOS 上最好的选择,Windows 和 Linux 也有。十六进制发送与显示俱全,界面清爽。调试笔记本是 Mac 的话,答案就是它。
关于厂商自带的测试工具
各家有一些专用测试工具——比如三星给 Ex-Link 的 SamTvControlLite。有的话值得用,因为它们已经把该设备的怪脾气编码进去了。但它们只覆盖自家产品,所以是通用终端的补充而不是替代。
测试前的设置
1. 找到 COM 口。 设备管理器 → 端口 (COM 和 LPT)。记住 USB 转串口适配器换一个 USB 插口就会换一个 COM 号——见交叉线与直通线。
2. 设置串口参数。 多数中控设备是 9600/8/无校验/1。值得记住的例外:
- 索尼 ADCP:38400/8/偶校验/1
- NEC 投影机:常为 38400
- Modbus RTU:经常是偶校验
- 老款巴可:默认 19200
3. 打开本地回显,这样你能看见自己敲的内容。
4. 显式设置结束符——CR、LF、CR+LF 还是不加。这不是细节,它是命令失败的三大原因之一。 见指令格式。
5. 先发查询,不要先发电源命令。 查询更安全也更有信息量——它能在不改变房间里任何状态的前提下告诉你链路是通的,而且在那些拒绝电源命令的状态下依然有效。
理想的第一测试是这个协议最廉价的那条消息:
- 爱普生:一个裸
CR应该换回一个:
- PJLink:光是建立连接就应该收到一条问候
- 明基:一条畸形命令会回
Illegal format,这照样证明链路是通的
收到错误回复其实是成功——它证明了命令层以下的一切都在工作。
怎么读结果
| 你看到 | 意味着 |
|---|---|
| 正确的回复 | 一切正常——去配中控系统 |
错误回复(ERR、NG、err_cmd、Illegal format) | 链路没问题,命令内容错了 |
| 完全沉默 | 线、串口参数,或设备的串口控制没启用 |
| 一堆乱码字符 | 波特率或校验位不匹配 |
| 你自己的命令原样回来 | 设备在待机(松下就是这样)——或者本地回显开着,你读到的是自己 |
最后一行值得注意。 看到自己的命令飞回来是有歧义的:可能是终端的本地回显,也可能是松下投影机在告诉你"我在待机、我拒绝这条命令"。把本地回显关掉一次就能分辨。
用 SoftControl 控制
SoftControl 的指令测试页在产品内部覆盖了同样的能力——文本和十六进制载荷、按设备配置的串口参数(含校验位)、以及把请求同时以文本/字节/十六进制展示外加原始回复。
那为什么还要留一个独立终端?因为隔离。 当你想证明一台设备独立于任何中控软件也能工作时,终端是那个中立的证人。用终端确立基准事实,再把已知可用的命令搬进中控系统。
物理层见交叉线与直通线,命令内容见结束符、ASCII 与 HEX、校验和。