4、核心概念与术语:SLAC、SDP、V2GTP、EXI、TLS、PKI、合同证书、充电会话等关键术语的详细解释
ISO 15118 作为电动汽车与充电基础设施之间通信的核心国际标准,其协议栈涉及从物理层到应用层的多个技术组件。对于工程师和测试人员而言,理解 SLAC、SDP、V2GTP、EXI、TLS、PKI、合同证书以及充电会话这些关键术语,是掌握协议交互逻辑、进行故障排查和实现互联互通的基础。本章将逐一拆解这些术语的技术内涵、在协议栈中的位置、工作流程以及实际工程中的注意事项,帮助读者建立完整的知识框架。
上图展示了 ISO 15118 协议栈中各核心术语的层次关系。从底层的 HomePlug Green PHY 物理层,到 SLAC 完成链路建立,再到 SDP 发现服务、V2GTP 封装消息、EXI 编码应用数据,以及 TLS/PKI 提供安全保障,最终构成一个完整的充电会话。下面我们将逐一深入解析每个术语。
4.1 SLAC(Signal Level Attenuation Characterization)
核心原理
SLAC 是 ISO 15118-3 中定义的一种机制,用于在电力线通信(PLC)环境中自动识别并建立电动汽车(EV)与充电桩(EVSE)之间的逻辑链路。由于 PLC 信号在电力线上传输时会受到线缆长度、接头阻抗、负载噪声等因素影响,信号衰减特性各不相同。SLAC 通过交换一组特定的衰减特征参数,使 EVSE 能够从多个可能连接的 PLC 节点中,唯一确定当前物理连接的 EV。
工作流程
- EV 发起 SLAC 请求:EV 的 PLC 调制解调器发送包含自身衰减特征的 SLAC_PARAM_REQ 消息。
- EVSE 响应:EVSE 收到后,回复 SLAC_PARAM_CNF,并附带自身的衰减参数。
- 匹配确认:双方通过计算信号衰减值,确认是否在同一物理链路上。通常需要多次握手(如 3 次)以排除干扰。
- 建立连接:匹配成功后,EVSE 分配一个唯一的通信标识(如 MAC 地址),后续通信基于此链路进行。
工程要点:SLAC 过程必须在 TLS 建立之前完成,因为它属于链路层准备阶段。实际测试中,若 SLAC 失败,常见原因是 PLC 信号衰减过大(如线缆过长)或 EVSE 与 EV 的 PLC 芯片不兼容。
案例拆解
某充电桩现场,EV 插入后无法启动充电。通过抓取 PLC 日志,发现 SLAC_PARAM_REQ 消息持续重发但无响应。进一步检查发现,充电枪的 PE 线接触不良,导致 PLC 信号回路中断。更换枪头后,SLAC 在 200ms 内完成匹配,充电正常启动。此案例说明,SLAC 不仅依赖软件协议,还高度依赖物理连接的完整性。
常见误区
- 误以为 SLAC 是应用层协议——实际上它工作在 OSI 第二层(数据链路层)。
- 忽略 SLAC 超时时间设置——ISO 15118 规定 SLAC 应在 2 秒内完成,超时需重新初始化。
4.2 SDP(SECC Discovery Protocol)
核心原理
SDP 是 ISO 15118-2 中定义的服务发现协议,用于让 EV 找到充电桩上的 SECC(Supply Equipment Communication Controller,供电设备通信控制器)。由于一个 EVSE 可能包含多个物理充电接口,每个接口对应一个独立的 SECC 实例,SDP 通过 UDP 广播或 TCP 连接来定位目标 SECC 的 IP 地址和端口号。
操作流程
| 步骤 | 方向 | 消息 | 说明 |
|---|---|---|---|
| 1 | EV → EVSE | V2GTP-Header + SDP Request | UDP 广播到端口 15118,请求 SECC 信息 |
| 2 | EVSE → EV | SDP Response | 包含 SECC 的 IP 地址、端口号、安全能力(TLS 支持) |
| 3 | EV → EVSE | TCP 连接 | 根据 SDP 响应,建立到 SECC 的 TCP 连接 |
实战场景
在双枪充电桩中,EV 插入左侧枪口,但 SDP 响应返回了右侧 SECC 的地址。这通常是因为 EVSE 内部路由配置错误,导致广播响应未绑定到正确的物理端口。解决方法是检查 EVSE 的端口映射表,确保每个物理接口对应唯一的 SECC 实例。
风险提示:SDP 使用 UDP 广播时,若网络中存在多个 EVSE,EV 可能收到多个响应。ISO 15118 规定 EV 应选择信号强度最高或最先到达的响应,但实际测试中建议 EVSE 配置为单播响应,避免歧义。
4.3 V2GTP(V2G Transfer Protocol)
核心原理
V2GTP 是 ISO 15118-2 中定义的传输层封装协议,负责在 TCP 或 UDP 之上承载 V2G 消息。它提供了一个统一的帧格式,包含版本号、负载类型、负载长度和会话 ID 等字段,确保应用层消息能够可靠地分段、重组和路由。
帧结构
V2GTP 头部 (8 字节):
- 版本号 (1 字节): 通常为 0x01
- 反向标志 (1 字节): 0x00 表示正向
- 协议版本 (1 字节): 0x01 表示 ISO 15118-2
- 负载类型 (1 字节): 0x01 = EXI 编码, 0x02 = XML
- 负载长度 (4 字节): 大端序,表示后续负载字节数
判断方法
在抓包分析时,识别 V2GTP 帧的关键是检查前 8 字节是否符合上述格式。若负载类型为 0x01,则后续数据为 EXI 编码,需要专门的解码器才能解析。
案例拆解
某测试团队在验证互操作性时,发现 EV 发送的 V2GTP 帧中负载长度字段错误,导致 EVSE 解析超时。通过对比 Wireshark 抓包,发现 EV 的 TCP 分段重组逻辑存在 bug,将 4 字节长度字段拆分为两个 2 字节段。修复 EV 协议栈后,通信恢复正常。
4.4 EXI(Efficient XML Interchange)
核心原理
EXI 是一种二进制 XML 编码格式,由 W3C 标准化,用于减少 XML 文档的传输体积和解析开销。在 ISO 15118 中,所有 V2G 应用层消息(如 ChargeParameterDiscoveryReq)都使用 EXI 编码,相比纯文本 XML 可减少约 80%-90% 的数据量,这对于低速 PLC 链路至关重要。
编码特点
- 使用预定义的 grammar 表,将 XML 标签和结构映射为紧凑的二进制码。
- 支持字符串表压缩,重复的字符串(如 "urn:iso:15118:2:2013")只传输一次。
- 编码后的数据流是自描述的,解码器可根据 grammar 恢复原始 XML 结构。
操作流程
- 生成 grammar:根据 XSD 模式文件,生成 EXI grammar 表。
- 编码:将 XML 消息转换为 EXI 二进制流。
- 传输:通过 V2GTP 封装后发送。
- 解码:接收方使用相同的 grammar 表还原 XML。
经验提醒:在调试 EXI 问题时,务必确认双方使用相同的 XSD 版本。ISO 15118 有多个版本(如 2.0、2.1、20.0),grammar 表不兼容会导致解码失败。
4.5 TLS(Transport Layer Security)与 PKI(Public Key Infrastructure)
核心原理
TLS 在 ISO 15118 中用于保护 EV 与 EVSE 之间的通信,提供机密性、完整性和身份认证。PKI 是支撑 TLS 证书信任链的基础设施,包括根证书颁发机构(CA)、子 CA、证书吊销列表(CRL)等。在充电场景中,EV 和 EVSE 各自持有证书,通过 TLS 握手验证对方身份。
证书体系
| 证书类型 | 持有方 | 用途 |
|---|---|---|
| 根证书 | 信任锚(如车厂或电网) | 验证下级证书的签名 |
| 子 CA 证书 | 中间机构 | 签发合同证书或 EVSE 证书 |
| 合同证书 | EV 用户 | 标识用户身份,用于计费和授权 |
| EVSE 证书 | 充电桩 | 证明充电桩的合法身份 |
TLS 握手流程(简化)
- EV 发送 ClientHello,列出支持的 TLS 版本和加密套件。
- EVSE 回复 ServerHello,选择加密套件,并发送其证书链。
- EV 验证 EVSE 证书链(通过 PKI 信任锚)。
- 双方交换密钥,建立加密通道。
- 在应用层,EV 发送合同证书进行授权。
案例拆解
某充电运营商部署新桩后,部分 EV 无法充电。日志显示 TLS 握手失败,错误为"证书链验证失败"。排查发现,EVSE 安装的证书链中缺少中间 CA 证书,导致 EV 无法构建完整的信任路径。重新安装包含完整链的证书后,问题解决。
安全提示:合同证书包含用户隐私信息,必须存储在 EV 的安全硬件模块(如 TPM 或 eSIM)中,禁止明文导出。同时,PKI 的 CRL 或 OCSP 必须定期更新,防止已吊销证书被滥用。
4.6 合同证书(Contract Certificate)
核心原理
合同证书是 PKI 体系中的一种终端实体证书,由运营商的 CA 签发,绑定 EV 用户的身份和计费账户。它用于在充电会话中向 EVSE 证明用户有权使用充电服务,并关联到后续的计费结算。合同证书通常包含用户 ID、运营商 ID、有效期和公钥。
生命周期
- 签发:用户注册充电服务时,运营商 CA 生成并安装证书到 EV。
- 使用:充电会话中,EV 通过 TLS 应用层消息(如 AuthorizationReq)提交证书。
- 更新:证书到期前,EV 可通过 OTA 方式获取新证书。
- 吊销:用户欠费或违规时,运营商吊销证书并更新 CRL。
实战场景
在 Plug&Charge 功能中,EV 插入充电枪后,无需刷卡或手机扫码,自动通过合同证书完成身份识别和计费。这要求 EV 与 EVSE 之间在 TLS 握手后,立即交换合同证书,整个过程应在 1 秒内完成,否则用户体验会明显下降。
4.7 充电会话(Charging Session)
核心原理
充电会话是 ISO 15118 中从 EV 与 EVSE 建立通信到充电结束并断开连接的完整过程。它由一系列状态机驱动,包括:TCP 连接建立、SDP 发现、TLS 握手、应用层握手(SessionSetupReq/Res)、充电参数协商、充电控制(PowerDeliveryReq/Res)、会话结束(SessionStopReq/Res)。
状态机关键节点
| 状态 | 触发条件 | 超时时间 | 失败处理 |
|---|---|---|---|
| TCP 连接 | SDP 响应后 | 5 秒 | 重试 SDP |
| TLS 握手 | TCP 建立后 | 10 秒 | 断开连接 |
| 应用层握手 | TLS 建立后 | 5 秒 | 发送错误响应 |
| 充电控制 | 参数协商后 | 根据需求 | 终止会话 |
案例拆解
某测试中,EV 在充电过程中突然中断,EVSE 日志显示"SessionStopReq 超时"。分析发现,EV 在收到 PowerDeliveryReq 后,由于电池管理系统(BMS)异常,未及时发送响应。EVSE 的超时设置为 3 秒,而 EV 的 BMS 处理需要 5 秒。调整 EVSE 超时参数至 8 秒后,问题不再出现。
复盘总结:充电会话的健壮性取决于超时参数的合理配置和错误处理逻辑。建议在开发阶段使用协议测试仪模拟各种异常场景(如消息丢失、重复、乱序),确保状态机能够正确恢复。
4.8 术语关系总结与工程建议
上述术语并非孤立存在,而是构成了一个完整的通信链路。SLAC 解决"谁在物理上连接"的问题,SDP 解决"如何找到服务"的问题,V2GTP 解决"如何封装消息"的问题,EXI 解决"如何高效编码"的问题,TLS/PKI 解决"如何安全通信"的问题,合同证书解决"如何授权计费"的问题,充电会话则串联起所有环节。在实际工程中,建议按以下顺序进行调试:
- 检查物理层(PLC 信号质量)和 SLAC 是否成功。
- 验证 SDP 响应是否正确返回 SECC 地址。
- 确认 V2GTP 帧格式和 EXI 解码是否正常。
- 检查 TLS 证书链和加密套件兼容性。
- 最后验证应用层充电会话状态机。
经验提醒:在互操作性测试中,优先使用官方提供的协议测试工具(如 Keysight 或 Vector 的 ISO 15118 测试套件),它们能自动生成合规的测试用例,并输出详细的日志分析,大幅提升问题定位效率。