CiA 303 - CANopen 工程单位与状态指示灯规范(第2部分+第3部分)
CiA Recommendation 303(2012-04-27 公开发布版):
- Part 2: SI 单位与前缀的表示法(V1.5.0)
- Part 3: 通信状态指示灯规范(V1.4.0)
两部分都是给 CANopen 设备/接口/应用 profile 作者用的”编目型”推荐规范——不定义通信行为,只统一”单位怎么编码、LED 怎么闪”。
Part 2:SI 单位编码(V1.5.0,对齐 ISO 80000)
核心:32 位单位参数定义(UNSIGNED32 对象)
bit31-24: Prefix(前缀) | bit23-16: SI numerator(分子) | bit15-8: SI denominator(分母) | bit7-0: Profile-specific
基本单位时分子填单位索引、分母=1;导出单位分子/分母各填索引。
关键索引速查(十六进制)
- 无量纲=00;基本单位:m=01, kg=02, s=03, A=04, K=05, mol=06, cd=07
- 常用导出:Hz=20, N=21, Pa=22, J=23, W=24, C=25, V=26, F=27, Ω=28, S=29, Wb=2A, T=2B, H=2C, °C=2D, lm=2E, lx=2F
- 人体健康类:Bq=30, Gy=31, Sv=32, kat=33
- 与 SI 并用的单位:°=41, min=47, h=48, d=49, L=44, t=4C, bar=4E, eV=51, m/s²=55, Nm=56, m²=58, m³=59, Pa·s=5A(动力黏度), J/(kg·K)=5B, W/(m·K)=5C
- A0–FF 留给 profile 自定义
前缀编码(有意思的设计:以 10^0=00 为中心对称补码式布局)
指数即带符号数:k=03, M=06, G=09, T=0C;m(毫)=FD, µ=FA, n=F7, p=F4, f=F1, a=EE。前缀域 8 位,10 的幂直接当有符号整数用——做单位换算时前缀码 ≈ 阶乘指数的补码表示。
附录示例:速度传感器 km/h → 0x03_01_48_00(prefix=k, numerator=m, denominator=h)。
Part 3:LED 指示灯语义(做设备面板/排查现场故障直接查这张表)
两种硬件形态二选一:红 ERR + 绿 RUN 双灯,或单个双色 STATUS 灯(红绿冲突时优先显红)。
闪光节奏定义
| 状态 | 节奏 |
|---|---|
| flickering 抖动 | ~10 Hz(50ms 亮/50ms 灭) |
| blinking 闪烁 | ~2.5 Hz(200ms/200ms) |
| single/double/triple/quadruple flash | 1-4 下短闪(200ms),间隔 200ms,后跟 1s 长灭 |
ERR 灯真值表(物理层+报文丢失)
| ERR 灯 | 含义 | 强制性 |
|---|---|---|
| 灭 | 无错误 | 必须 |
| 抖动 | AutoBitrate/LSS 进行中 | 可选 |
| 闪烁 | 配置无效 | 可选 |
| 单闪 | CAN 错误计数器超警戒线(错误帧过多) | 必须 |
| 双闪 | guard/heartbeat 事件(节点失守) | 必须 |
| 三闪 | SYNC 超时(对象 1006h 存在时必做) | 条件 |
| 四闪 | 事件定时器内 PDO 未到达 | 可选 |
| 常亮 | bus off | 必须 |
RUN 灯真值表(NMT 状态机)
抖动=AutoBitrate/LSS;闪烁=PREOPERATIONAL;常亮=OPERATIONAL;单闪=STOPPED;三闪=固件下载中(可选);复位过程中灭。
双色 STATUS 灯 = 两表叠加显示(如红单闪+绿闪烁 = 预运行态且 CAN 警戒)。
关联
- CANopen-CiA301-V4.2.0-中文注释版 —— 本规范服务的基础协议
- CANopen-LSS协议DS305-中文译本要点 —— ERR/RUN 同步抖动的 LSS 场景
- CANopen-DSP-302-可编程设备框架 —— 同为 30x 系列框架规范