Dnpv300链路层.docx
- 文档编号:18130172
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:32
- 大小:32.83KB
Dnpv300链路层.docx
《Dnpv300链路层.docx》由会员分享,可在线阅读,更多相关《Dnpv300链路层.docx(32页珍藏版)》请在冰点文库上搜索。
Dnpv300链路层
DNPV3。
00
数据链路层
目录
第一章概论
第二章与IEC的一致性
通道的故障切换
帧格式与规程
长度,控制与地址段
第三章DNP数据链路的说明
数据链路层的目的
FT3帧格式
数据链路报头帧的格式
起始
长度
控制
目的址
源地址
用户地址
CRC循环冗余码
控制字与功能码
复位
原方的通信事务
副方的通信事务
对用户过程的复位
测试
用户数据
原方事务
副方事务
无需确认的用户数据
原方事务
副方事务
查询链路的状态
传输过程
对副方链路之复位
对用户过程之复位
发送/确认用户数据
发送/不期待回信
发送/NACK
查询/响应
第四章数据链路的服务与职责
数据链路的功能
接口说明
第五章物理层的接口
物理层的说明
第六章物理层的规程
基本概念
半双工规程
点对点
多点
全双工规程
点对点
多点
拨号的调制解调器
第一章概论
本文件规定了分布网络规约(DNP)V3。
00版的数据链路层,链路规约数据单元(LPDU)以及数据链路层服务和传输规程。
主站﹑分主站﹑外站和IEDS都能使用本数据链路在原方和副方站之间传递报文。
在规约中,主站﹑分主站﹑外站和IEDS都既可作始发站也可以作为接收站。
IECTC57所推出的IEC870-5-1和IEC870-5-2关于远动系统内数据传输的标准是开发DNPV3。
00数据链路层的基础。
DNPV3。
00的数据链路层支持被查询的和寂静的远动系统,并且在设计上可适用于面向连接的和面向非连接的操作,异步的或同步的位串型物理层,诸如RS-232,RS-485以及光纤收发器。
采用全平衡的传输规程去支持来自外站﹑IED或非作为`主站的分主站之自发型传输。
本规约所支持的ISOOSI模型仅规定了物理层﹑数据链路层和应用层。
这种特定的模型被称之为性能增强了的体系结构(EPA)。
然而,为了支持高级的RTU功能和大于最大帧长的报文,DNPV3。
00的数据链路打算用一个伪传输层去完成最短报文的组装与分解。
该伪传输层说明于文件DNPV3。
00TransportFunction(P009-OPD.TF)内,然而,要强调一下,这些传输功能并非数据链路的一部分,而是支持高级RTU功能之所需。
第二章与IEC的一致性
本章说明DNP规约与IECTC-57(870-5)远动数据链路层规约在规范上的
不同点。
通道的故障切换
DNP链路层仅对一个物理层(或信道)通信。
在ISO模型中,会话层才负责维持信道的连接。
在DNP中,在数据链路以上的层,根据数据链路上的通信失败,负责提供信道的故障切换。
该层可以是网络/传输层或应用层。
所以IEC关于信道故障切换的870-5-1的第13项要求在应用层中得到满足。
帧格式与规程
数据链路层采用一种可变帧长格式,如IEC870-5-1传输帧格式文件中所述。
FT3帧格式很适合于中等传输速率和低残余误码率的站间数据传输。
采用其基本帧格式,遵守其传输规则第R1,R2,R3和R4条。
在原则上遵守规则的R5及R6条,然而不用它推荐的时间值,但在每个实施中可以组态。
遵循在IEC870-5-2是所提出的帧定义,所不同者这里用了两字节长的地址段指定目的站地址,以及将<链路用户数据段>用作两个字节的源方站地址。
采用IEC870-5-2所规定的全平衡传输规程去处理在半双工或全双工系统内来自非主站的非所请求的信息传输。
全平衡意谓每个站都可以同时作为原方站(发方)
和副方站(收方)。
这种配置要求一个全双工信道去正确地运行。
在半双工环境中,将使用同一个规程,所不同者一个站不能同时既是原方站又是副方站。
这就是说,在主站与外站间数据链路层的一个完整的数据传输回合必须完成后,才能开始来自任何一方的任何其它的通信事务处理。
在半双工和全双工两者的组态中,每个设备的责任都要实现一个可兼容的防免碰撞的模式。
长度,控制和地址段
DNP数据链路使用的<长度>段和IEC870-5-1的6.2.4款所定义的相同(参见第三章,关于此段的进步资料)。
<控制>段采用于平衡传输的IECCONTROL段,如IEC870-5-2的6.1.2款所规定者。
在IEC870-5-3的6.1.2款,表Ⅲ中的全部功能也是被支持的。
<地址>段是一个16位(2字节)的段。
DNP数据链路帧之报头有两个IEC地址段。
第一段是A(地址)段,它被用以表示目的站的地址。
第二段在<链路用户数据>段,它被用以表示源站地址。
(关于此两段的更多资料参见第三章)
DNPV3.00
数据链路层
第三章DNP数据链路的说明
数据链路层是OSI模型的第二层。
数据链路层接受,执行并控制高层所要求的传输服务功能。
数据链路层的目的
DNP数据链路层的目的有两重。
第一,数据链路层必需提供信息的传送或提供进入物理链路的<链路服务数据单元>(LSDU),如ISO-OSI的标准所述。
这就是说由较高层供给的用户数据(LSDU)必须转换成一个帧(或如第二章所述的LPDU),并送至物理层以便发送。
反过来,数据链路层所收到LPDUS也必须被组装入一个LSDU并传递给较高的一层,该层还提供帧同步和链路控制。
第二,在DNPV3.00内,数据链路还为其它事件提供信号,诸如链路的状态。
OSI参数模型既实施了一个无连接系统,也实施了一个面向连接的系统,然而EPA模型既不蕴含非连接系统,也不蕴含面向连接的系统。
DNP第三版在IEC数据链路中既管理非连接的系统也管理面向连接的系统(即在数据能被传输到目的设备之前,先要求拨号或挂号的物理网络),但不需要提供连接服务。
实际的物理网络对于使用数据链路的应用是透明的,因为数据链路负责对任何物理网络的连接和断开,没有与较高层次的交互作用(即应用层)。
这就是说数据链路(给定的目的站址)将连接到正确的物理电路无需更高层的控制。
如此则物理介质对于链路层服务的用户就全然透明了。
FT3帧格式
本节说明LPDU的格式。
一个FT3型的帧被定义为一个固定长度的报头,随之以可选用的数据块。
每个数据块附有一个16位的CRC,IEC规定那个报头含有2个START字节,1个字节的长度,1个字节的控制字,1个目的址和1个可选用的定帧长的用户数据段。
在这为首的数据块中定长的用户数据段被定义为一个源地址。
Block0Block1....Blockn
STARTSTART长度控制目的址源地址CRCCRCUSERCRCCRCUSERCRCCRC
0X050X64LSBMSBLSBMSBDATA....DATA
定长的报头主体(Body)
(10字节)
0X05=05H
0X64=64H图3-1FT3之帧格式
长度(LENGTH)――为报文中的USERDATA长(5字节)(即控制字与目的址和源地址
之长);加上主体(BODY)中的USERDATA长度,故L之最短为5,
L之最长为255。
用户数据(USERDATA)――在报头之后,每个块为16字节;最后那个块的字节数则为余数,在1至16之间,根据需要而定。
数据链路报头帧的字段
本节说明一个数据链路帧的#0字块(或称报头)。
(按:
本节原文内容有重复之处,又对CRC的常识介绍过于详细,此处给予节删。
)
START(起始)两字节。
0564H
LENGTH(长度)为一字节。
长度是指CONTROL,DESTINATION,SOURCE和用户数据
总长。
长度最小为5,最大为255。
DESTINATION(目的址)两个字节,低字节居前。
FFFFH为全站址。
目的址为此值者,
所有的站都要接受它的帧。
低字节(LSB)高字节(MSB)
图3-4目的地址的格式
SOURCE(源地址)两个字节,低字节居前。
注意:
这个字节不包括在USERDATA之内,但必须由数据链路服务的原语传送给更高层,作为一个返回(RETURN)。
低字节(LSB)高字节(MSB)
图3-5源地址的格式
USERDATA(用户数据)跟在报头之后的数据块,每个都为16个字节长,最后一个块
包含剩下的字节,可以是1至16个字节。
每个数据块都有
一个CRC挂在后面,当收到SEND(始发方)的用户数据帧时,
数据链路层就将全部用户数据和报头中的源地址都传递给
更高层。
数据链路服务的原语提供一个地方放置源地址。
CRC(循环冗余码)两个字节长。
在一个帧内,挂在每个数据块之后。
报头内
的CRC将START,LENGTH,CONTROL,DESTINATION和SOURCE
五个段全计算进去了。
CRC的生成函数为:
P=G(X)=X16+X13+X12+X11+X10+X8+X6+X5+X2+1
CRC=(M216)/G(X)
采用了FT3帧格式和CRC,帧的汉明码距为6。
LSBMSB
数据块CRC
图3-6CRC的次序
发送一个数据块:
(1)取用户数据块M,其长度为K比特。
(2)将M乘以216得216M。
(3)将此数除以(模2除)P(17比特),得余数R(16比特)。
(4)对R取反,得R’。
(5)将R’挂在216M之后,并作为数据块(T’)发送出去。
接收一个数据块:
(1)接收一个数据块(T’),它具有(K+16)比特。
(2)将T’中的R’取反后得T,仍为(K+16)比特。
(3)将T除以P,得出它的余数。
(4)若余数非为零,则数据块出错,否则数据块无误。
控制字与功能码通信控制字包含有本帧的传送方向,帧的类型以及流控制的信
息。
图3-2定义了该字段的控制字节。
站A被定义为主站,站B
被定义为非主站(即从站或外站)。
而原方站(PRIMARY)为报文的
原发站;副方站(SECONDARY)为报文的目的站。
FCBFCVFUNCTIONCODEPRIMARYSECONDARY
图3-2DIRPRMRESDFC功能码PRIMARYSECONDARY
BIT76543210
DIR:
方向(DIRECTION)位
DIR=1表示此帧自A发向B(即主站发出方向)
DIR=0表示此帧自B发向A(即发向主站方向)
PRM:
原发标志位(PRIMARY)
PRM=1表示此帧来自原发站(通信发起站)
PRM=0表示此帧来自响应站(通信应答站)
注意:
原发站不一定就是主站,外站也可以是原发站。
FCB:
帧的计数位(FRAMECOUNTBIT)系用以防止对同一个副方站丢失或重复信息帧
每次成功地完成一次发送并确认(SEND-CONFIRM)服务(即由同一个原发站起
动,向同一个副方站的发送服务)后该位就翻转一次。
在对一个副方站的通信起始之前或在通信失败之后,原方站(不论它是主站或
外站)对它所要通信的每个副方站都必须使其数据链路复位。
在对所有副方站
一旦建立了数据链路或在需要时,就可以这样复位一次,在数据链路建立后
或通信失败后,每个副方站必须拒绝接收原方FCV置位的任何SEND-CONFIRM
报文,直至以收到一条RESET命令并发出一条CONFIRM报文为止。
FCV:
帧计数有效位(framecountvalid),它可使FCB位生效。
FCV=0表示FCB位无效。
FCV=1向副方站指示本帧的FCB位状态有效,必须和FCV置位的最近一帧
之FCB位状态进行校核。
DFC:
数据流控制位(DATAFLOWCONTROLBIT)系用以防止在副方站内的缓存器溢出。
如果再将用户数据送入该副方站将导致其缓存溢出时,副方站的回文中就将
这一位(DFC)置位。
原方站必须用REQUEST-RESPOND去查询链路状态,直到DFC
复位为止。
以后,原方站又可以继续向它发送数据。
图3-16例举DFC位之用
法。
功能码:
功能码标明帧之类型。
发自原方站的控制字有帧计数位(FCB);
发自副方站的控制字无帧计数位。
原方发送的控制字中的FCB位仅在测试链路或传送用户数据时有效。
原方发送的控制字其功能码为(PRM=1)
功能码帧类型服务功能FCV位
0SEND/期待CONFIRM使远方链路复位0
1SEND/期待CONFIRM使用户过程复位0
2SEND/期待CONFIRM对链路的测试功能1
3SEND/期待CONFIRM用户数据1
4SEND/不期待回信非确认的用户数据0
9查询/期待响应查询链路状态0
5-8未用
10-15未用
副方发送的控制字功能码为(PRM=0)
功能码帧类型服务功能
0确认ACK=肯定的确认
1确认NACK=报文未收到;链路忙
11响应链路的状态(DFC=0或DFC=1)
2-10未用
12-13未用
14链路服务不工作了
15未用链路服务,或未实现链路服务
RESET(复位):
该功能码为本次SEND/CONFIRM的通信回合,使原方与副方站整步。
在收到了并回答了RESET命令之后,副方站就将开始自原方站接收
带有FCV=1的原方报文。
RESET命令仅开通了自原方向副方的单向
通信。
这是因为一次成功的通信仅保证原方的发信机与副方站的收
信机进行通信。
原方站,当它想和副方站作第一次通信时或当它查
觉到一次通信失败后,就必须发送这个功能码。
当一个副方站已被
再起动后,或副方站已经识别出一次通信失败后,该副方站将比认
为是非复位的(UN-RESET)。
在这种情况下,副方站将不接收来自原
方站的报文,直到它答复了来自原方站的复位令(RESET)为止。
复位令还使原方与副方站的FCB位整步。
副方站在完成了对RESET
的答复后,它期待下一次来自原方站的报文,其FCB=1(凡FCV为
有效者)。
原方站在完成RESET通信后,在副方站的下一帧报文内将
使其FCB位置1(条件是FCV位有效)。
原方的通信事务
发送
重发次数+1
重发次数未N结束循环
达限定值?
将否定的IND信号
Y送给数据链路的用户
发RESET令其表示该副方站离线
FCV=0,FCB=任意重发次数清零
PRM=1,DIR=任意
收到ACK?
N等待回信逾时?
N
YY
发下一帧
其FCV=1,FCB=1
将肯定的IND信号按:
此流程图系自原文归纳而成,比较醒目,但有
送给数据链路的用户所补充,以求完整。
表示该副方站在线,
重发次数清零
后续帧
的处理
副方的通信事务
在起动(START-UP)以后或通信回合的失败后,等待收获FCV=0,FCB=任意,PRM=1,DIR=任意的RESET令。
收到RESET令,副方响应以确认帧ACK(其DFC=任意,PRM=0,DIR=任意)。
副方站内的FCB状态位应置1,(即期待下一次收到的FCV=1的报文帧,其FCB=1)。
同时,副方也有个肯定的信号IND送给数据链路的用户。
在正常运行中,若收到了一条RESET令(其FCV=0,FCB=任意,PRM=1和DIR=任意),则当前的通信回合(若有)可以被异常废止(可能还要将否定的IND送给数据链路的用户)。
在这种情况下,要用一条确认帧ACK(DFC=任意,PRM=0,DIR=1)去响应。
副方的FCB状态标志应置1(期望下次收到的FCV有效的报文帧,其FCB=1)。
可以将一个肯定信号IND送给数据链路用户。
对用户过程的RESET
该功能码系用以使数据链路的用户过程复位。
一个副方站收到此令后,应将一个信号IND送给数据链路的用户。
数据链路的用户可以用这个信号去使它的内部状态复位。
如果数据链路用户接受了,就要送一条确认帧ACK作为回答,否则就送一条否定帧NACK作答。
TEST(测试)
该TEST命令系用以测试副方数据链路的状态,一个副方站收到此令后,它便将原方报文内的FCB位对副方为此原方站所设置的FCB状态标志(即所期望的FCB值)进行校核。
若两者不符,则副方站将应送出上次的副方CONFIRM帧,否则,就送出确认帧ACK作答,并将所期待的FCB状态标志翻转一次。
副方站在响应中可按规定设置DFC位。
USERDATA(用户数据)
用户数据功能被用以对一个副方站发送被确定了的数据。
在通信可以开始之前,副方站必须按上述规则(见RESET)已被RESET了。
所发送的帧包含有从原方数据链路的用户要传递给副方站数据链路的用户之用户数据。
传送的步骤如下:
原方
重发次数+1
重发次数Y
达限定值?
N
发USERDATA帧。
其FCV=1,PRM=1,否定的信号IND送给数据链
DIR=任意,FCB副方站FCB状态路的用户,认为副方离线。
标志所期望的值
Y
收到NACK?
或N等待时间逾时?
Y
NY
收到ACK?
NFCB翻新发送
N等待时间逾时?
将肯定的IND回送给REQUEST
Y数据链路用户,副方站LINK
被认为是在线的STATUS
后续帧进入查询链路
的发送状态的回合
副方
收到USERDATA帧(FCV=1,PRM=1,DIR=任意,以及FCB位的状态与副方的FCB状态标志位(对FCB位的期望值)相等),如果数据链路用户已可以接受这个USERDATA,则用ACK帧去作出响应(其DFC=任意,PRM=0,DIR=任意)否则就用一个NACK帧去响应(控制字的标志同ACK)并退出此循环。
无需确认的用户数据(UNCONFIRMEDUSERDATA)
本功能系用以将用户数据发送到副方站而无需予以确认,如果用户的数据是低优先级的,用这个方法可以充分利用此系统之带宽,帧内包含原方数据链路的用户要传送给副方站数据链路用户的用户数据。
传送的步骤如下:
●原方
发送非确认的用户数据帧,其PRM=1,DIR=任意,FCV=0,FCB=任意。
向数据链路的用户宣告IND信号是肯定的。
●副方
接收非确认的用户数据帧并向数据链路的用户送一个肯定的IND。
查询链路的状态(REQUESTLINKSTATUS)
该命令系用以查询副方站数据链路的状态,副方站对此查询,将用一个链路状态(LINKSTATUS)的响应帧来答复。
若数据链路正忙或数据链路用户不能再接受任何数据,则使DFC位置1;若数据链路不忙且数据链路用户可以再接受任何数据,则使DFC位置0。
该传输过程与TEST相似,所不同者原方站仅当在USERDATA的传送回合中收到了一帧NACK时方才使用这条命令。
传输过程
已定义的帧型,其用法示例如下:
副方链路之复位
原方站发送一帧SEND-CONFIRMRESET(按:
功能码#0)给一个副方站。
副方站收到这个报文,用一帧ACK(按:
功能码#0)作响应。
RESETSEND
(REQ)FCB=0功能码#0
功能码#0CONFIRM期待FCB=任意
(IND)(IND)
POSITIVERESET
下一帧FCB=1期待FCB=1
图3-7使副方链路复位
对用户过程之复位
原方站发送一帧SEND-CONFIRMRESETUSERPROCESS(按:
功能码#1)给一个副方站,副方站收到此报文,用一帧ACK(功能码#0)去响应。
RESET复位
(REQ)SEND功能码#1
功能码#0CONFIRM(IND)
(IND)信号RESETUSER用户复位
POSITIVE肯定
图3-8使用户过程复位
发送/确认用户数据(SEND/CONFIRMUSERDATA)
在本例中,所指定的主站(MASTER)作为一个原方站,发送一条SEND-CONFIRM(要确认的发送)帧给一个作为副方站的非主站,这是在使副方链路复位后,FCV有效条件下所发的第一帧,该帧的FCB=1。
副方站所期望的FCB=1,因为这是它的链路被复位后所收到的(FCV有效的)第一帧。
它随即回送CONFIRM帧,主站收到这个CONFIRM后,就认为报文已被正确地接收并向副方站数据链路的用户发出表示成功的信号IND。
站A站B
(REQ)SEND功能码#3
FCB=1
期望FCB=1
(IND)功能码#0CONFIRM(IND)
POSITIVEDATA
图3-9自A站发送/自B站确认
在下面图3-10中,由一个非主站作为原方站发送一个SEND-CONFIRM帧给一个作为副方站的主站。
由于这是在副方链路已被复位后的第二个发送帧,在此SEND内FCB=0。
此时副方也期待所收到的帧,其FCB=0。
副方收到后,便以一个CONFIRM帧作为响应。
非主站方收到此CONFIRM(按:
功能码#0),就向非主站数据链路用户给出成功的信号IND。
SEND(REQ)
期待FCB=0FCB=0
(IND)USERDATACONFIRM(IND)POSITIVE
图3-10自B站发送(SEND)/自A站发送确认
在图3-11中,所指定的主站发三个连续帧至同一个非主站。
(REQ1)SEND
FCB=1FC#3期望FCB=1
(IND)POSITIVEFC#0CONFIRM(IND)USERDATA
(REQ2)SEND
FCB=0FC#3期望FCB=0
(IND)POSITIVEFC#0CONFIRM(IND)USERDATA
(REQ3)SEND
FCB=1FC#3期望FCB=1
(IND)POSITIVEFC#0CONFIRM(IND)USERDATA
图3-11自A站SEND多帧/自B站发CONFIRMS
在图3-12中摸索指定的主站作为原方向非主站的副方发送一个报文。
该例说明,来自副方站的CONFIRM被失落时,会发生什么事情。
(REQ)SENDFC#3
FCB=1T(DAB)期望FCB=1
出错或未收到T(DBA)FC#0CONFIRM(IND)USERDATA
重发的延迟>T(DAB)+T(DBA)+T(confirm时间)+T(B站内对SEND报文的处理时间)
同一数据SEND
FCB=1FC#3期望的FCB=0
FCBFC#0CONFIRM丢弃所送来的数据但
(IND)POSITIVE发送另一个CONFIRM
图3-12帧计数位的操作
在图3-13中,所指定的主站作为原方向非主站的副方发送帧报文。
本例说明,发自主站的SEND帧被失落时,会发生什么事情。
(REQ)SEND
FCB=0FC#3期望的FCB=0
T(BA)FC#0CONFIRM(IND)USERDATA
(IND)POSITIVE
SENDFC#3
FCB=1T(AB)失落了或出错了
重发延迟>T(BA)+T(AB)+T(confirm时间)+T(A站内对CONFIRM的处理时间)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Dnpv300 链路层
![提示](https://static.bingdoc.com/images/bang_tan.gif)