下面分几层讲清楚(直接对应你关心的 “能不能读 / 改 / 监控”):
一、EEPROM 里存了什么(分区,不加密)
主要两块:
用户区(可读写,SCPI / 前面板可改)
上电状态(SYST:PON:OUT、*SAV/*RCL)
输出配置:V、A、保护值
接口配置、GPIB/USB 地址
格式:明文 + 简单校验和(CRC / 累加和),非加密
校准 / 工厂区(受保护,不可随便写)
校准常数、校准次数、序列号、硬件版本
校准安全码(Cal Security Code)
存储:二进制结构化,无 AES/RSA 加密,但有:
安全锁(Security State):上锁后禁止改写校准区
校验和 / 签名:防止随意篡改
仅原厂 / 授权服务能解锁改写
一句话:数据不加密,但关键区有写保护 + 校验防篡改。
二、SCPI 可见的 “安全机制”(不是加密)
1. 校准安全锁(Calibration Security)
scpi
CAL:SEC:STAT ON, "HP003632" // 上锁(默认密码型号相关)
CAL:SEC:STAT OFF, "密码" // 解锁才能改校准常数
上锁后:不能写校准区 EEPROM,只能读
用户配置区(*SAV、上电状态)不受此锁影响,一直可写
2. 无 “EEPROM 加密 / 解密”SCPI 命令
官方 SCPI 没有:EEPROM:ENCR / DECR / KEY 这类指令
你通过 SCPI 读写的,都是已解密、结构化的数据
3. 写入校验(防止写坏)
*SAV、SYST:PON 等写入 EEPROM 后,固件会:
计算校验和并保存
下次读取时校验,失败报硬件 / 校准错误
这是完整性保护,不是加密
三、第三方软件能看到什么(对你监控的影响)
*用户区(上电、SAV 配置)
可直接读 / 写:*RCL?、SYST:PON:OUT?、VOLT?…
明文可读,无加密,监控写入完全可行
校准区(常数、次数)
可读(CAL:COUNT?、*IDN?、SYST:SER?)
不可写(上锁),第三方软件改不了
数据是结构化二进制,不是加密密文
四、结论(直接回答你问题)
EEPROM 数据:不加密(无 AES 等密码学算法)
保护方式:
用户区:明文 + 校验和,可读写
校准区:写保护 + 安全锁 + 校验,只读、不可篡改
你要做的 EEPROM 写入监控、成功校验、告警:完全可行,因为:
写入用户区(上电、*SAV)全程可见
可通过 “写入→回读→校验和比对” 判断是否成功
五、给你一个最简 “写入成功校验” 逻辑(可直接进你的监控程序)
python
运行
# 1. 写配置到 EEPROM
psu.write("*SAV 1")
# 2. 回读关键参数
v_set = float(psu.query("VOLT?"))
pwr_on = psu.query("SYST:PON:OUT?").strip()
# 3. 校验(示例:必须是 0V、上电 OFF)
ok = (abs(v_set - 0.0) < 0.01) and (pwr_on == "OFF")
if ok:
print("EEPROM 写入成功")
else:
print("EEPROM 写入异常 → 触发告警")