写在前面:
1、最近在开发过程中使用到了698协议,写这篇文章总结一下自己的理解。
2、
1、定义:
官方一点的说法就是,标准规定了用电信息数据交换协议的通信架构、数据链路层、应用层、接口类与对象标识。适用于用电信息采集系统主站、采集终端、电能表之间的通信数据交换。
2、通信架构:
(1)主从站通信之前,需完成预连接。预连接默认有最低权限的应用连接,如果主机想得到从机高权限服务时,主机需发起建立高权限的应用连接。
(2)有两种方向的数据交换。一种是请求/响应类型的数据交换,主机请求从机,从机提供响应;另一种是通知/确认类型的数据交换,从机主动上报,主机回复确认。
3、数据链路层:
(1)采用异步传输帧结构。异步传输不需要接收方和发送方时钟的同步,会有起始字符,结束字符。698帧格式如图:
(2)举例。以下面这一帧数据为例:
68 1f 00 43 05 08 00 00 00 00 00 10 b5 0b 06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00 05 69 16
①68:起始字符
②1f 00:长度域,由2字节组成,用户数据长度取bit0-bit13,指除起始字符和结束字符之外的帧字节数。注意此处实际应为00 1f,因为开发的台体软件设计如此。这里指1f 00 43 05 08 00 00 00 00 00 10 b5 0b 06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00 05 69这一串数据有1f字节,即31字节。
③43:控制域,1字节,定义如下图。
bit7和bit6组合的意义如下图
功能码定义如下图
43,即01000011,可看出来该帧是由客户机发起一个请求,功能码为应用连接管理及数据交换服务,实际上,这也是用得最多的一个功能码,链路管理那个我还没用到。
④ 05 08 00 00 00 00 00:服务器地址。服务器地址定义如下:
bit0-bit3:地址字节数,注意此处是加1表示字节长度
bit4-bit5:逻辑地址
bit6-bit7:0表示单地址,1表示通配地址,2表示组地址,3表示广播地址
此处05 08 00 00 00 00 00中,05表示单地址,地址长度为5+1,08 00 00 00 00 00表示真实地址00 00 00 00 00 08.
⑤10:客户机地址16.
⑥b5 0b:帧头校验,是对帧头部分除起始字符和帧头检验本身之外的所有字节的校验
⑦06 01 04 40 00 02 00 1c 07 e0 09 0b 12 1e 00 00:应用层数据。此处含义下面讲。
⑧05 69:帧校验,是对整帧除起始字符、结束字符和帧校验本身之外的所有字节的校验
4、应用层:
待续: