好文档 - 专业文书写作范文服务资料分享网站

DLMS通讯协仪参考

天下 分享 时间: 加入收藏 我要投稿 点赞

DLMS通讯协仪参考

(注:以下仅为个人理解和参考,具体设计请参照对应IEC62056-53及IEC62056-46)

IEC 62056-21是一种供计算机读取仪表数据的国际通讯规约,被设计成可以通过包括Internet在内的各种媒体完成数据通信。仪表通过串口向掌抄设备发送ASCII或(HDLC数据),现在我们应用的就是HDLC。物理层通常会使用红外收发或有线20mA电流环信号实现,全双工通讯。当操作员使用掌抄朝向仪表的半透明面板按下读表按钮或将掌抄插入仪表总线插槽时,抄表过程通常耗时一至两秒。首先需要经历一个“sign on”步骤,手持设备通过此步骤向仪表表明自身身份。在sign-on过程中,首先由掌抄设备为仪表编址。仪表与手持式设备需要事先约定好数据收发的最大桢长度、是否允连续发送许多桢而无须分别确认、双方所能达到最大通讯速率等参数。然后仪表将在允许的加密级别(无/低/高)范围内上报自身各项参数。如果所召测数据属于无加密组,只要使用Get.Request即可应答掌抄所召测的数据。 如果属于低加密组,必须在解读数据前进行密码和身份认证。 如果属于高加密组,仪表会使用加密报文对掌抄进行验证,掌抄必须回答相应的密码。只有当密码交换正确时,仪表方能接受掌抄,即掌抄已经被“signed on”。完成“sign on”之后,掌抄通常要读取电表的描述文字。确定记录电表当前数据的量纲(例如:千瓦时、兆焦耳、升)以及仪表精度级别。偶尔制造商还会提出新的待测物理量,在这种情况下,可以在仪表定义域中添加新的数据类型。大多数仪表具有用于校表和复位的特殊工作模式,通常还要采取某些保护措施防止不法分子利用这些特殊工作模式修改仪表读数(例如使用限位开关探测仪表外壳是否被撬)。掌抄还能够在允许的范围内修改仪表的部分参数。之后掌抄发送sign-off报文结束通讯。另外,如果超出事先约定的应答时限,即使没有sign-off报文,电表也将自动结束当前回话。

通讯过程描述:

(一)建立物理层连接

物理层位于通讯模型的最底层。DLMS规约可以建立在多种物理层之上,物理层的做用主要是对底层通讯硬件的操做(如对PSTN MODEM的初始化,打开,关闭。)

(二)建立链路层连接

物理层连接建立之后,数据通讯的第一步是建立链路层的连接,链路层主要负责数据传输的可靠性,包括以下几个方面,地址校验,帧长校验,数据的CRC校验。长数据帧的拆包组包。同时向应用层提供链路传输的服务。

(三)建立应用层连接

链路层连接建立之后,在DLMS协仪中还要建立应用层连接,才可进行数据通讯。 这个应用层连接建立过程被称为Negotioation。这个过程是为数据通讯提供一些配置参数。应用层连接请求由Client端发起,Client 端发aarq帧,Server端响应aare帧

(四)进行数据通讯

当连接建立起后,就可进行数据通讯了。Client端发送数据请求帧Server端以数据响应。Client在请求不同的数据时,要使用特定数据的独有的class id和OBIS,用以标识不同类型的数据。

DLMS通讯协仪参考

(五)数据通讯结束,释放链路,解除连接。

数据通讯结束后,发链路结束帧,结束一次通讯过程。一次数据通讯结束后,可以通过发链路结束帧,来结束一次通讯过程。也可以,不发任何数据帧,依靠server端的超时挂断机制,来结束一次通讯过程。一般应使用前者。

(六)解除物理层连接

关闭物理端口(如挂断Modem)。从物理上结束一次通讯。

DLMS链路层协议

物理层之上即为链路层,链路层是物理层与应用层通信的通道。DLMS链路层使用的是HDLC高速链路控制协议。 具体到数据通讯时,对于client端应用层发送的数据,要加上LLC帧头(0xe6 , 0xe6, 0x00),server端应用层发送的数据,要加上LLC帧头 ( 0xe6 , 0xe7 , 0x00)。HDLC帧格式

(1) 不包含应用层数据信息 0x7e 帧类型与帧长 目的地址域 源地址域 控制域 数据帧校验 0x7e 两个0x7e是HDLC数据帧固定的帧头与帧尾,两个0x7e之间是链用户数据。

(2) 包含应用层数据信息

与不包含应用层数据信息的数据帧相比这里多了3项:

1)帧头校验:为增强通讯的可靠性,对帧头的数据也加上CRC校验。帧头包括如下 字段:帧类型与帧长、目的地址域、源地址域、和控制域 2)LLC帧头:用户数据信息前要加0xe6 , 0xe6, 0x00或0xe6 , 0xe7, 0x00。 3)用户数据信息:应用层处理的数据。

注:出于数据完整性的考虑,用户数据信息的最大长度,默认为128字节。如果想要更多的字节,可以在SNRM数据帧中协议。

帧类型字段与‘S’位

帧类型与帧长字段,共两个字节。内容如下:

Frame Type :用于指出当前数据帧的类型。HDLC有多种数据帧类型,DLMS使 用Frame Type 3。Frame Type恒为A(1010)。 S:(segmentation Bit)这个字段只有一位,它用于说明数据帧是否被分割。在长数 据帧传输时要使用到这一位。长数据帧的传输将在后面解释。 Frame Length Sub-field :这个字段用于说明当前数据帧的长度,(以字节为单位, 不包括两个0x7e) 地址解析

DLMS通讯协仪参考

地址域分为两部分。目的地址域和源地址域。对于client端,目的地址为server的地址,源地址为client的地址。对于server端正好相反。 (1)扩展编址技术

HDLC使用扩展编址技术,即某一个地址字节的最低位如为0,则表明该地址域没有结束,仍有后续字节是该地址域的一部分。若某一地址字节最低位为1,则说明该地址域已经结束,没有后续字节。 (2)地址结构 Client端的地址永远是一个字节,由于扩展编址技术的使用,最低位置1,所以client 端的地址只能有128个。

Server端为了实现一个物理地址对应多个逻辑地址,将地址分成了两部分upper HDLC Address 用于表述逻辑地址,lower HDLC address用于表述物理地址。Upper address总是应当有的,lower address在确认不需要的情况下,可以不出现。(sl7000 电表这两部分地址都是需要的)。 Server端的地址在使用扩展编址技术时,也并非是可以无限长(虽然在理论上可以,但在实践上是有上限的)。Server端的地址结构可以使用如下方式: One byte: only the upper HDLC address is present. 一字节:只出现HDLC高位一字节地址。

两字节:只出现HDLC高位一字节地址,和HDLC低位一字节地址。

四字节:只出现HDLC高位两字节地址,和HDLC低位两字节地址

帧控制字

帧控制字字段主要负责,通讯中的帧计数,以及特殊数据帧的标识。 帧控制字字段结构如下:

对应项的解释如下:

RRR:为接收帧计数。

DLMS通讯协仪参考

SSS:为发送帧计数。 注:对帧计数的解释,

在链路层连接建立之后,第一次请求数据时(在client端,包括发送AARQ)RRR置为0,SSS置为0。Server端收到这一帧数据后,返回数据响应RRR为1,SSS为0。Client再次请求数据时RRR加1,SSS加1。Server端收到这一帧数据后,返回数据响应RRR加1(成为2),SSS加1。如此反复直到client得到所有的数据为止。整个数据传输过程以I数据帧请求和响应。这里要说明的是在请求数据结束后还要再发送RR帧,收到确认后。才可以再发送DISC帧结束链路。其中Client端的RR帧中的帧计数位RRR只需将client的帧计数位RRR加1得到。 下图描述了帧计数位的变化过程:

P/F:poll/final bit。 Poll bit :由client发送,置1时表示server端回应,置0时表示不允许回应。 final bit:由server发送,置1时表示一次数据帧的发送结束,置0时表示还未 发送完。final bit只有在通讯窗口(window size)大于1的情况下才有意 义。在window size = 1时,由server端返回的数据帧中的这一位总是 置1。(关于window size将会在“建立链路层连接”时解释)

长数据帧的传输 在很多情况下,数据不能在一次请求和一次响应中,就能够结束数据传输的过程(受限于用户数据字节不超过128字节)。这时就有必要启动长数据帧链路控制流程。 注:请求负荷曲线时一定是使用长数据帧。 当使用长数据帧时,必须把长数据帧分割成短数据帧。然后把这些短数据帧依次发送出去,在接收端将这些短数据帧依次处理。这样就实现了一个较大的数据包,完整的传送到接收端。在数据帧被分割时,帧类型与帧长字段中的‘S’位,将被置1。当接收端检测到这一位被置位后,就知道数据帧已被分割,此时要做出对分割数据帧的相应处理。 下图介绍了长数据帧的收发过程:

DLMS通讯协仪参考

client端通过发送RR数据帧来请求被分割的数据帧的其他部分。

数据帧校验

HDLC使用16位CRC校验。使用的多项式是:

具体的实现程序,可参照英文参考文献IEC62056 - 46的附录A。 链路层连接的建立,与断开 (1)建立连接

链路层在开始工作之前,要建立链路层连接(Association)。这一步骤是通过client端发送SNRM数据帧,server端响应UA数据帧表示已建立连接,server端响应DM数据帧表示链路断开,连接没有建立。

UA数据帧常含有链路参数的配置信息。链路参数是指2个控制数据传输的参数。 WINDOW_SIZE parameter; 这个参数描述通讯时,通讯的双方一次发送数据帧的数目。 HDLC允许一次发送多帧数据。

MAXIMUM_INFORMATION_FIELD_LENGTH parameter . 最大信息域长度,这个参数用于描述一个链路数据帧中用户数据的长度。 这两个参数的默认值如下:

default WINDOW_SIZE = 1;

default MAXIMUM_INFORMATION_FIELD_LENGTH = 128(BYTEs)

具体在数据帧中有如下4个参数:

transmit maximum information field length receive maximum information field length transmit window size receive window size

以下举例说明如何建立连接: //SNRM

S: 7e a0 21 00 22 00 23 03 93 0b 14 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 07 65 5e 7e 解释:

DLMS通讯协仪参考

DLMS通讯协仪参考(注:以下仅为个人理解和参考,具体设计请参照对应IEC62056-53及IEC62056-46)IEC62056-21是一种供计算机读取仪表数据的国际通讯规约,被设计成可以通过包括Internet在内的各种媒体完成数据通信。仪表通过串口向掌抄设备发送ASCII或(HDLC数据),现在我们应用的就是HDLC。物理层通常会使用红外收发或有线2
推荐度:
点击下载文档文档为doc格式
8dsws8ltgf507xn0uyq64mg6283nbb00py7
领取福利

微信扫码领取福利

微信扫码分享