目录
一. 背景介绍
电能信息采集与管理系统主站、采集终端或电能表之间,采用的面向对象具有互操作性的数据传输协议,简称698协议。
二. 报文解析
简单来说,整个698报文由帧头,链路层,帧尾组成。
帧结构 | 帧头 | 链路层 | 帧尾 | ||||||
字节含义 | 起始字符 | 长度域L | 控制域C | 地址域A | 帧头校验HCS | 分帧格式域 | APDU | 帧校验FCS | 结束字符 |
字节长度 | 1 | 2 | 1 | 可变 | 2 | 0或2 | 可变 | 2 | 1 |
2.1 帧头
(1)起始字符:默认68H。
(2)长度域L:由2个字节组成,bit0~bit13代表除起始字符和结束字符之外的帧字节数。
(3)控制域C:由一个字节组成,含义如下
(bit7)传输方向位:0-客户机发出 1-服务器发出
(bit6)启动标志位:0-服务器发起 1-客户机发起
(bit5)分帧标志位:0-完整APDU 1-APDU片段
(bit0-bit3)功能码:1-链路连接管理(登录,心跳,退出登录) 3-应用连接管理及数据交换服务
(4)地址域A:
服务器地址SA:由1+N字节组成,N字节是实际地址,第1字节含义如下所示
(bit6-bit7)地址类型:0-单地址 1-通配地址 2-通配地址 3-广播地址
(bit4-bit5)逻辑地址:就是逻辑地址。
(bit0-bit3)地址长度:为地址的字节数,取值范围:0…15,对应表示 1…16 个字节长度
客户机地址CA:由固定1字节组成,取值0-255,值为0表示不关注客户机地址。
(5)帧头校验HCS:对帧头部分除起始字符和HCS本身之外的所有字节的校验。
2.2 链路层数据
链路层数据的格式要看报文是否分帧,分帧就是报文过长超过了单次发送的长度,需要多次发送。当报文不分帧,即控制域中分帧标志位为0时,链路层数据是APDU。当报文分帧,即控制域中分帧标志位为1时,链路层数据是 分帧格式域+APDU。
(1)分帧格式域:字节含义如下:
(bit0-bit11):帧序号,0-4095循环使用。
(bit14-bit15):00-起始帧 01-最后帧 10-确认帧 11-中间帧
(2)APDU:对于操作对象来说,APDU分为两种,客户端支持的是读取,设置,操作,代理。而服务器端支持上报。
2.3 帧尾
(1)帧校验FCS:对整帧除起始字符68H、结束字符16H和FCS本身之外的所有字节的校验。
(2)结束字符:默认16H。