3、测试标准与规范:IEC 62443、IEC 61784、ISO 16845等标准体系,以及协议规范文档的解读方法
做一致性测试这些年,我最大的感触就是:不懂标准,测试就是瞎测。你想想看,连被测对象该长什么样都不知道,你怎么判断它合不合格?
这一章,咱们就来聊聊那些绕不开的标准体系。我尽量用大白话讲清楚,不搞那些虚头巴脑的理论。
3.1 三大标准体系,各管一摊
工业通信领域,标准多如牛毛。但真正跟一致性测试强相关的,主要是这三个:IEC 62443、IEC 61784 和 ISO 16845。它们分工很明确,别搞混了。
| 标准编号 | 核心定位 | 跟我测试的关系 |
|---|---|---|
| IEC 62443 | 工业通信网络安全 | 测安全功能,比如身份认证、加密 |
| IEC 61784 | 工业通信行规集 | 测协议一致性,比如PROFINET、EtherCAT |
| ISO 16845 | CAN总线一致性测试 | 专门测CAN控制器和收发器 |
3.1.1 IEC 62443:安全不是附赠品
这个标准,说白了就是给工业控制系统定安全规矩的。以前大家觉得,工厂里的设备在封闭网络里跑,很安全。但自从震网病毒事件之后,没人敢这么想了。
我个人习惯,在测PROFINET设备时,一定会翻一翻IEC 62443-4-2。它规定了组件级的安全要求。比如:
- 用户身份认证:设备是不是强制要求登录密码?
- 通信加密:数据在线上是不是明文裸奔?
- 日志审计:谁在什么时候改了什么配置,有没有记录?
3.1.2 IEC 61784:协议家族的族谱
这个标准很有意思。它不定义具体的协议怎么实现,而是把各种工业以太网协议(PROFINET、EtherNet/IP、EtherCAT等)的行规(Profile)给统一了。
你想想看,如果没有这个标准,每个协议都自己搞一套测试方法,那测试工程师不得疯掉?
IEC 61784-2 专门针对实时以太网。里面定义了:
- 通信周期时间
- 抖动要求
- 同步精度
嗯,这里要注意:一致性测试不是测性能。它只测你有没有按照规范来。比如规范说同步精度要1微秒,你的设备测出来是0.8微秒,那算合格。但如果你的设备根本不支持同步,那就不合格。
3.1.3 ISO 16845:CAN总线的老法师
这个标准专门针对CAN总线。我最早接触一致性测试,就是从CAN开始的。ISO 16845 把测试用例写得非常详细,甚至规定了测试用的硬件配置。
举个例子,它要求测:
- 位定时:CAN控制器能不能正确采样总线上的位?
- 错误处理:遇到CRC错误、填充错误时,设备会不会正确发出错误帧?
- 总线仲裁:多个节点同时发送时,优先级低的会不会乖乖退让?
3.2 协议规范文档,怎么读才不头大?
说实话,协议规范文档通常又厚又枯燥。几百页的PDF,看两页就想睡觉。但没办法,这是吃饭的家伙。
我总结了一套读文档的套路,分享给你:
- 先看目录,找测试相关章节。大部分协议规范,最后几章都是「一致性测试」或「符合性声明」。
- 找PICS(协议实现一致性声明)。这是一张表格,列出了协议所有可选功能。测试前,先让厂商填好这张表,你就知道该测哪些、不该测哪些。
- 关注「应」和「宜」。英文里是 "shall" 和 "should"。 "Shall" 是强制要求,不满足就不合格。 "Should" 是建议,不满足可以给个警告。
- 看测试目的。每个测试用例前面都会写「测试目的」。先看这个,再决定要不要深究细节。
举个例子: 读PROFINET规范时,你看到「设备应支持DCP协议」。那你就去查DCP协议的具体要求。规范里会写:DCP的响应时间应在500ms以内。那你的测试用例就是:发一个DCP请求,看设备是不是在500ms内回复。
3.3 标准之间的关联,别孤立地看
这三个标准不是孤立的。在实际项目中,它们经常交织在一起。
比如,你要测一个PROFINET设备:
- 协议一致性:看IEC 61784-2 和 PROFINET的具体规范。
- 网络安全:看IEC 62443-4-2。
- 如果底层用了CAN:还得看ISO 16845。
我建议你建立一张标准映射表。把被测协议、对应的行规标准、安全标准、底层标准都列出来。这样测试时就不会漏项。
3.4 实战中的文档解读技巧
最后,分享几个我实际工作中用到的技巧:
- 用荧光笔标记:纸质文档我习惯用三种颜色。红色标强制要求,黄色标测试条件,绿色标预期结果。
- 做测试用例矩阵:把规范里的测试要求,一条条抄到Excel里。左边是规范原文,右边是测试步骤和结果。这样评审时一目了然。
- 不懂就问:规范里有些描述很模糊。比如「应在合理时间内响应」。什么叫合理?这时候别自己猜,直接问标准制定组织或芯片厂商。我吃过这个亏,猜错了,测试方案全白做。
好了,标准体系这块就聊到这儿。下一章,咱们会具体讲怎么搭建测试环境。到时候你会发现,标准文档里的那些要求,都会变成实实在在的测试仪器和连线。