读书频道 > 网站 > 网页设计 > 开源实时以太网POWERLINK详解
2.7.1 从站DLL状态机
15-08-28    下载编辑
收藏    我要投稿   

本文所属图书 > 开源实时以太网POWERLINK详解

本书介绍工业实时以太网POWERLINK。全书共8章,首先介绍了现场总线的发展历史,比较了现有各种工业实时以太网技术的机制,接着由浅入深地介绍了POWERLINK的原理、功能特点、应用和实践等。本书详细介绍了如何使用立即去当当网订购
2.7 DLL状态机
 
DLL(Data Link Layer)状态机用来描述一个POWERLINK周期内节点的数据收发过程。主站和从站有不同的DLL状态机,而且该状态机与NMT状态机相关。
 
2.7.1 从站DLL状态机
 
CN(DLL_CS)的周期状态机处理一个POWERLINK周期内的通信。DLL_CS监视一个周期内接收的帧的顺序,并按下述方式做出反应。帧接收的预期顺序取决于NMT_CS的状态。
 
如果DLL_CS检测出通信中的错误,则应向“DLL错误处理(DLL Error Handling)”产生一个错误事件。DLL_CS将不考虑任何错误而继续进行通信。
 
(1)状态
 
1)DLL_CS_NON_CYCLIC。该状态表示等时同步通信尚未开始,或已失去连接。它取决于NMT_CS的当前状态,以及被处理的事件和将被忽略的事件。
 
2)DLL_CS_WAIT_SOC。接收到SoA帧后状态机在此状态等待,直至下一周期开始(由来自MN的SoC帧触发)。在SoA与SoC帧之间(异步阶段)的任何类型的以太网帧都可被接收。
 
3)DLL_CS_WAIT_PREQ。在周期开始后,状态机在此状态等待Preq帧。在接收到Preq后,CN将对Pres帧做出响应。在此状态下,CN可接收或处理来自其他CN的Pres帧。
 
4)DLL_CS_WAIT_SOA。在接收到Preq帧后,状态机等待接收SoA帧。对SoA帧的接收确认了等时同步阶段的结束。在此状态下,CN可接收或处理来自其他节点的Pres帧。
 
(2)事件
 
1)DLL_CE_SOC。该事件表明,从MN接收到一个POWERLINK SoC帧。这标志着一个新周期的开始,并且周期的等时同步阶段也同时开始。
 
2)DLL_CE_PREQ。该事件表明,从MN接收到一个POWERLINK Pres帧。
 
3)DLL_CE_PRES。CN可被配置以处理其他CN的Pres帧(交叉通信)。每接收一个Pres,就产生一个DLL_CE_PRES事件。
 
4)DLL_CE_SOA。该事件表明,从MN接收到一个SoA帧。这标志着周期的等时同步阶段结束及异步阶段开始。
 
5)DLL_CE_ASND。该事件表明,接收到一个ASnd帧或一个非POWERLINK帧。由于在异步阶段帧的类型不局限于POWERLINK类型,因此在接收到所有的标准以太网帧时都会生成该事件。
 
6)DLL_CE_SOC_TIMEOUT。该事件表明,丢失了一个MN的SoC帧。该事件会在SoC超时监督检测到一个丢失的SoC帧时产生。
 
(3)NMT_CS与DLL_CS的依存关系
 
NMT_CS状态代表网络的状态,并在DLL_CS的某些转换中被用作限定器(qualif?ier)。因为NMT状态影响DLL_CS的行为,可对单个NMT状态滤出相关的DLL_CS转换,所以在一个特定NMT状态中仅包含可能发生的DLL_CS转换。
 
注:为表达清晰,忽略作为DLL_CS转换条件的NMT_CS状态。为易于理解,单个NMT_CS状态的相应转换被滤出,并在其自身的状态图内以DLL_CS的“工作模式”显示。某些工作模式几乎是相同的,所以将其置于一个状态图中,而其不同则在转换表中描述。
 
在NMT状态(NMT_GS_INITIALISATION、NMT_CS_NOT_ACTIVE、NMT_CS_BASIC_ETHERNET和NMT_CS_PRE_OPERATIONAL_1)下,DLL_CS都处于状态DLL_CS_NON_CYCLIC。该状态下的状态图如图2-23所示。

 
在该状态下,有一些触发状态机转换的事件,事件名称为DLL_CT5、DLL_CT6、DLL_CT11,这些事件的详细描述如表2-5所示。
 
 
在NMT_CS_PRE_OPERATIONAL_2、NMT_CS_READY_TO_OPERATE和NMT_CS_OPERATIONAL状态的状态图如图2-24所示。
 
在NMT_CS_OPERATIONAL和NMT_CS_READY_TO_OPERATE状态,对于非复用类节点有3个强制帧,它们应在每个周期以规定的顺序发生:SoC、Preq和SoA。如果节点被复用访问,则仅SoC和SoA帧是每个周期都强制的。Preq帧只有在该节点被配置的复用类周期中是强制的。
 
在NMT_CS_PRE_OPERATIONAL_2状态,有两个强制帧,它们应在每个周期以规定的顺序发生:SoC和SoA。Preq帧可在SoC和SoA之间发生。在NMT_CS_PRE_OPERATIONAL_2状态,因为节点还未被配置,所以不进行SoC的超时检测。
 
周期状态机监视所有接收到的帧,以检测是否有帧丢失。不论周期状态机的当前状态如何,CN都应接收收到的帧。
 
CN周期状态机的转换如表2-6所示,表中对状态每个转换的条件、事件都做了详细说明。
 
常见问题如下:
 
当接收到一个非预期的帧或DLL_CE_SOC_TIMEOUT发生时,会检测到帧的丢失。
 
周期状态机通知NMT_CN发生了一个错误,然后NMT_CS将处理该错误。
 
如果“DLL错误处理”不支持,则DLL_CEV_LOSS_SOA和DLL_CEV_LOSS_PREQ是可选择的,并可被忽略。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站