阮可意 曹剑馨 孙海洋
摘 要:在分析FF总线数据链路层协议的基础上,对FF总线链路活动调度器进行了形式化建模方法研究,建立了FF设备中链路活动调度器LAS的有限状态机模型,为现场总线网络的性能分析提供理论基础。
关键词:FF总线;有限状态机;链路活动调度;建模
中图分类号:TP273.5文献标识码:A文章编号:1003-5168(2021)05-0021-03
Abstract: Based on the analysis of FF Bus Data link layer protocol, the formal modeling method of FF Bus link active scheduler was studied, and the finite state machine model of link active scheduler LAS in FF device was established, which provided a theoretical basis for the performance analysis of fieldbus network.
Keywords: foundation fieldbus;finite state machine;LAS;modeling
基金会现场总线简称为FF(Foundation Fieldbus)总线[1],由现场总线基金会组织开发,是一种多站点式、双向、串行的通信系统。其因全数字化、全信息化和智能化,在过程自动化领域得到了广泛应用。
1 现场总线形式化建模现状
为提高总线的实时性与可靠性,人们对现场总线协议的关注度越来越高,以期改善现场总线系统的性能。这就需要在现场总线的开发、设计、测试、维护等各个阶段对总线上的相关定义与通信机制进行精准的形式化描述。目前,对总线协议形式化建模的方法主要包括有限状态机[2]和Petri网[3-6]的分析方法。
有限状态机(Finite State Machine,FSM)简单,状态间的转换关系直观易懂,还可以与其他形式的方法进行组合或转换,并且容易实现自动完成。
本文利用有限状态机对FF总线链路活动调度模型器进行了建模,为现场总线网络的性能分析提供理论基础。
2 FF总线数据链路层协议分析
FF现场总线通信模型参考了开放式系统互联通信参考模型(Open System Interconnection Reference Model, OSI),共四层结构,包括物理层、数据链路层、应用层及用户层,如图1所示。
FF总线能否进行确定、实时通信的关键就在于数据链路层。因此,在基金会现场总线的整个协议栈中,数据链路层的定义具有十分重要的地位。
按照设备的通信能力,FF总线将通信设备分为三类:基本设备、链路主设备和网桥。其中,链路主设备是指有能力成为链路活动调度器的设备,一个总线段上允许有多个链路主设备,但是在某个时刻仅能有一个主设备成为链路活动调度器。网段中其他设备就在链路活动调度器的调度下完成通信过程。网桥用于网段与网段间的通信连接。
主设备具备基本设备功能模块和主设备功能模块,网桥具备所有功能模块。
网段内的通信活动包括周期性通信和非周期性通信两种。周期性通信根据预订调度时间表,到时间就由链路活动调度器(Link Active Scheduler,LAS)發送强制性数据(Compel Data,CD)给基本设备,主要用于完成实时数据通信,如图2所示;非周期通信用于传输非实时数据,是在周期性通信的时间间隔内进行,链路活动调度器通过向设备发送传递令牌(Pass Token, PT),使设备得到发送非周期数据的权利,如图3所示。
在以上两种通信方式中,令牌(PT)和强制性数据(CD)是数据发送的关键。
令牌(PT)在传输非周期性通信数据时使用,链路活动调度器依据其中的调度时刻表实现调度,发送周期性数据时,只要设备发送数据的时刻一到,链路活动调度器就会向该设备发出一个强制性数据(CD),设备收到强制性数据(CD)之后,会对其缓冲区数据进行广播或发布至现场总线上的所有设备上。
现场总线上的每个设备都有可能在周期性调度数据发送的间隔传输非周期性数据,具体允许哪个设备进行发送,取决于链路活动调度器将传输令牌发布到哪个设备。
3 FF链路活动调度模型
FF总线通过链路活动调度器(LAS)完成令牌总线方式的链路调度,链路活动调度器维护的调度表中,每一个条目都是发布者类型的连接端点(DLCEP)。LAS的链路调度模型如图4所示。
图4中:状态1表示链路活动调度器处于空闲等待状态;状态2表示链路活动调度器发送强制性数据帧(CD)并启动定时器VT(CD),如何发送依据调度表;状态3表示链路活动调度器计算截止到下一次调度通信的时间间隔,用Tmain表示;状态4表示链路活动调度器发送令牌,并且启动定时器V(IRRD)*V(ST);状态5表示启动另一个定时器P(TRD)*V(ST);状态6表示令牌被收回;状态7表示链路活动调度器发送数据链路时间同步帧(TD帧);状态8表示链路活动调度器发送探测帧(PN帧);状态9表示链路活动调度器发送节点激活帧(DT帧)以通知新设备已被检测到;状态10表示链路活动调度器发送节点激活帧告知分配给新设备的地址;状态11表示链路活动调度器发送节点激活帧激活新设备;状态12表示链路活动调度器发送节点激活帧来公布链路活动表V(LL)的更新;状态13表示链路活动调度器发送延迟查询应答帧(RR帧)。
当某一条目的调度时间到来时,链路活动调度器(LAS)便会向其发送强制数据帧(CD),同时将定时器VT(CD)启动。接收到的发布者会做出回应,将形成节点激活帧发送至链路上,与该发布者相对应的订阅者将接收此节点激活帧。有两种特殊情况会导致链路活动调度器默认此次调度完成:一是此节点激活帧被链路活动调度器接收到,二是直至定时器期满也没有接收到节点激活帧。依次循环进行受调度通信。
受调度通信完成后,开始判断能否进行非调度通信,判断的依据是此刻到下一次调度的时间间隔(用Tmain表示)与完成一次非调度通信所需时间的大小关系,仍然由链路活动调度器进行实现。
如果时间间隔能完成一次非调度通信,链路活动调度器会依据链路活动表中的设备地址发送令牌(PT),并且按照由低到高的顺序发送,同时启动定时器V(IRRD)*V(ST)。这时分两种情况:第一,直至定时器期满,链路没有监测到任何通信活动,令牌被链路活动调度器收回;第二,如果在定时器期未满前,监测到链路活动,启动另一个定时器P(TRD)*V(ST)。同样,如果定时器P(TRD)*V(ST)已计时完成,然而现场设备还没有将令牌返还至链路活动调度器,LAS收回令牌,但此时仍然会对Tmain进行计算,计算的结果如果是Tmain大于发起一次非调度通信的时间,链路活动调度器就会继续向链路活动表中V(LL)的下一条目发送令牌(PT);若计算结果为Tmain小于发起一次非调度通信的时间,链路活动调度器只能发送空闲帧,等待下一调度时刻到来。
在非调度时间中,链路活动调度器还会依照一定周期发送数据链路时间同步帧和探测帧。其中,探测帧用来探测节点,从而确定是否有新设备上线。接收到探测帧的新设备会向LAS回复探测响应帧。链路活动调度器收到探测响应帧后将新设备使用的缺省地址加入设备活动列表中,并向新设备发送节点激活帧将新设备的节点地址发送至新设备,待新设备设置完毕后,同样以发送一个节点激活帧作为回应。接下来进入链路活动调度器的系统管理(System Management,SM)对新设备地址进行验证的阶段。如果验证结果为失败,SM回到初始化状态,LAS只能重新开始新设备地址设定工作;若验证结果为合格,新设备等待LAS激活,LAS向新设备发送节点激活帧DT。新设备接收到后此帧后,取出支持子协议数据单元中的标识符与之前探测响应帧中回复给LAS的标识符进行对比。若结果一致,则代表激活正确,意味着新设备设定工作完成,新设备将转为“在线”状态;若结果不一致,则认为分配给该设备的地址已经被其他设备占用,新设备将进入“离线”状态,SM回到初始化状态,重新设定地址。
在新设备所有的加入工作正确完成之后,LAS将删除之前的缺省地址,将新设备的地址加入活动链表中。同时,链路活动调度器会向链路上的所有主设备发送一个帧,用以完成链路活动表V(LL)的更新。
4 结语
本文以有限状态机为理论工具,以FF总线链路活动调度器为研究对象,建立了FF总线链路活动调度模型,得到了一种形式化的表达方式,对FF总线系统中的通信活动给出了清晰的说明,所建模型形象直观、易于理解、能够充分地表达FF总线在数据链路层的通信特征,可以为总线系统的设计和优化提供支持工具。
参考文献:
[1]李正军.现场总线及其应用技术[M].北京:机械工业出版社,2017:42-44.
[2]申冰雪.基于嵌入式技术的CAN总线多节点数据采集系统的研究[D].秦皇岛:燕山大学,2017:35-62.
[3]杨晓川.一种分层递阶智能控制系统中的信息安全研究[D].北京:北京邮电大学,2016:38-43.
[4]Marwa T,Edouard L,Dimitri L.Model predictive control for discrete and continuous timed Petri nets[J].International Journal of Automation and Computing,2018(1):25-38.
[5]徐晓娜,黄晓津.高温气冷堆核電站计算机化规程流程的建模和验证[J].清华大学学报(自然科学版),2018(7):658-663.
[6]尹亮.基于Petri网的移动机器人脑机系统控制方法研究[D].泉州:华侨大学,2020:52-65.