DL/T 698.45-2017 协议的数据链路层采用异步传输帧结构,定义了严格的字节流格式和通信规则,确保数据在主站与终端设备之间的可靠传输。以下从帧结构、字段定义、传输机制等方面进行详细解析:

一、帧结构概览

数据链路层帧由固定起始符、可变长度的帧头和帧尾组成,整体结构如下:

字段 长度(字节) 描述
起始符 1 固定值 0x68,标识帧的开始。
长度域(L) 2 表示 控制域 + 地址域 + 用户数据 + 校验码 的总长度(不包含起始符和结束符)。
控制域(C) 1 定义帧类型、传输方向、分帧状态等关键控制信息。
地址域(A) 可变 包含主站和终端的通信地址,支持单播、组播和通配地址。
帧头校验(HCS) 2 对帧头部分(不包含起始符和 HCS 本身)进行 CRC16 校验。
链路用户数据 可变 承载应用层数据单元(APDU)或其分帧片段。
帧校验(FCS) 2 对整帧(不包含起始符、结束符和 FCS 本身)进行 CRC16 校验。
结束符 1 固定值 0x16,标识帧的结束。

二、核心字段详解

1. 长度域(L)
  • 编码方式:2 字节小端模式,bit0-bit13 表示帧数据长度(单位为字节),bit14 保留(默认 0)。
  • 计算规则:总长度 = 控制域(1B) + 地址域(可变) + 用户数据(可变) + 校验码(2B)。
  • 示例:若长度域为 0x0F 00,则帧数据长度为 15 字节(即控制域到校验码的总长度)。
2. 控制域(C)
  • 位定义(8 位):
    • bit7(DIR):传输方向(0 = 主站→终端,1 = 终端→主站)。
    • bit6(PRM):启动标识位(0 = 响应帧,1 = 请求帧)。
    • bit5(分帧标志):0 = 完整 APDU,1=APDU 分帧传输。
    • bit4:保留(默认 0)。
    • bit3(SC):扰码标志(0 = 不加扰,1 = 用户数据按字节加 0x33)。
    • bit2-bit0(功能码):定义帧类型(000=I 帧,001=S 帧,010=U 帧)。
  • 示例:控制域 0x43(二进制 01000011)表示 终端→主站的 I 帧,且 APDU 未分帧。
3. 地址域(A)
  • 格式

    plaintext

    | 地址长度(1B) | 主站地址(n B) | 终端地址(m B) |
    
    • 地址长度:总长度 = 主站地址长度 + 终端地址长度 + 1(自身字节)。
    • 地址类型:支持单播地址(固定设备编码)、组地址(相同属性设备群组)和通配地址(含通配符 AH)。
  • 示例:若地址长度为 0x06,则主站地址为 01 00 00 00 00(5 字节),终端地址为 01(1 字节)。
4. 帧头校验(HCS)
  • 校验范围:控制域(1B) + 地址域(可变)。
  • 算法:CRC16-CCITT(多项式 x¹⁶ + x¹² + x⁵ + 1),初始值 0xFFFF,结果异或 0xFFFF 后取反。
5. 链路用户数据
  • 内容:应用层 APDU 或其分帧片段,格式遵循 A-XDR 编码规则。
  • 分帧处理
    • 分帧标志位 = 1:用户数据包含分帧格式域(2B)和 APDU 片段。
    • 分帧格式域
      • bit0-bit11:帧序号(0-4095,循环使用)。
      • bit14-bit15:分帧类型(00 = 起始帧,01 = 结束帧,10 = 确认帧,11 = 中间帧)。
    • 交互规则:发送方按顺序发送分帧,接收方通过确认帧(分帧类型 = 2)逐帧确认。
6. 帧校验(FCS)
  • 校验范围:控制域(1B) + 地址域(可变) + 用户数据(可变) + HCS(2B)。
  • 算法:同 HCS,但校验范围扩展至用户数据和 HCS。

三、传输规则与机制

1. 字节传输顺序
  • 位顺序:低位在前,高位在后(如字节 0x12 先传 0001,再传 0010)。
  • 字节顺序:低字节在前,高字节在后(如长度域 0x0F 00 表示 0x000F)。
2. 物理层前导码
  • 空闲状态:线路空闲时为二进制 1
  • 帧间间隔:两帧之间至少间隔 33 位空闲信号。
  • 前导码:有效数据帧前添加 4 个 0xFE 字节,用于同步。
3. 扰码处理
  • 条件:当扰码标志位(SC)为 1 时,用户数据按字节加 0x33
  • 示例:原始数据 0x01 经扰码后变为 0x340x01 + 0x33 = 0x34)。
4. 分帧传输流程
  1. 起始帧:分帧类型 = 0,帧序号 = 0,携带 APDU 片段。
  2. 中间帧:分帧类型 = 3,帧序号递增,仅含 APDU 片段。
  3. 结束帧:分帧类型 = 1,帧序号为最后片段序号。
  4. 确认帧:接收方收到完整分帧后,发送分帧类型 = 2 的确认帧,帧序号为最近成功接收的帧序号。

四、典型帧解析示例

读电能量请求帧(十六进制)

plaintext

68 0F 00 01 06 01 00 00 00 00 01 11 01 00 01 02 XX 16
  • 起始符0x68
  • 长度域0x0F 00 → 15 字节
  • 控制域0x01 → 主站→终端的 I 帧
  • 地址域
    • 地址长度 0x06
    • 主站地址 01 00 00 00 00(5 字节)
    • 终端地址 01(1 字节)
  • 用户数据
    • APCI 0x11(读请求)
    • OAD 0x00 01 02(电能量接口类,属性索引 2)
  • 校验码XX(实际 CRC 值)
  • 结束符0x16

五、协议优势与应用价值

  1. 兼容性:支持多种物理层介质(电力线载波、以太网等),适应复杂电力环境。
  2. 高效性:分帧传输和流量控制机制提升大数据量传输稳定性。
  3. 安全性:扰码和校验机制确保数据完整性,结合应用层加密(如 AES)进一步增强防护。
  4. 扩展性:灵活的地址域设计支持未来设备扩展和智能电网高级应用。

DL/T 698.45-2017 的数据链路层通过标准化的帧结构和传输规则,为电力信息采集系统提供了可靠、高效的通信基础,是实现智能电网设备互操作性的关键支撑。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐