一种实时现场总线控制调度方法转让专利

申请号 : CN201410073079.0

文献号 : CN103823780B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐平平秦汉李小娟

申请人 : 东南大学

摘要 :

本发明公开了一种实时现场总线控制调度方法,包括:(1)在保证高优先级队列信息优先发送的前提下,针对高优先级队列负载较高且持续时间较长而导致低优先级队列任务长时间不能得到处理的问题通过设置低优先级队列最小处理门限的方法使低优先级队列的信息有处理的机会;(2)针对高优先级队列拥塞问题,结合高优先级负载情况通过逐级增大令牌周期的方法,缓解高优先级队列拥塞,同时间接缓解低优先级队列拥塞;(3)针对低优先级队列负载较低时造成令牌周期时间浪费问题,通过逐级减小令牌周期的方法来提高令牌周期带宽利用率。

权利要求 :

1.一种实时现场总线控制调度方法,其特征在于,包括:

(1)在保证高优先级队列信息优先发送的前提下,针对高优先级队列负载较高且持续时间较长而导致低优先级队列任务长时间不能得到处理的问题通过设置低优先级队列最小处理门限的方法使低优先级队列的信息有处理的机会;

(2)针对高优先级队列拥塞问题,结合高优先级负载情况通过逐级增大令牌周期的方法,缓解高优先级队列拥塞,同时间接缓解低优先级队列拥塞;

(3)针对低优先级队列负载较低时造成令牌周期时间浪费问题,通过逐级减小令牌周期的方法来提高令牌周期带宽利用率;

使用的设备包括一个主设备和若干个从设备,现场总线控制参数包括主设备持有令牌时间为TTH,主设备空闲时间为TI,主设备的信息处理队列分为高优先级任务队列和低优先级任务队列,高优先级任务队列任务数量为Hn,任意一高优先级任务处理时间为Thi,低优先级任务队列任务数量为Ln,任意一低优先级任务处理时间为Tli,主设备上能被处理的高、低优先级任务的数量门限为Nh和Nl;

每隔时间TI对高优先级队列和低优先级队列进行检测,根据不同的高优先级队列负载和低优先级队列负载情况,执行不同的策略:当主设备高优先级队列不为空时,设定TTH初始值,并启动令牌周期定时器,若执行高优先级队列任务优先,低优先级队列任务适时处理策略;否则执行高优先级队列任务优先,高、低优先级队列任务兼顾策略;

所述的高优先级队列任务优先,低优先级队列任务适时处理策略是指当高负载统计标志大于等于预设值L1时,执行低优先级队列任务最小门限处理策略;否则执行高优先级队列任务优先处理策略;

所述的低优先级队列任务最小门限处理策略是指当低优先级队列任务数量大于等于预设值L2时,主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:

其中,E[]表示对变量取期望值, 表示对变量值向下取整;否则主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:

2.如权利要求1所述的实时现场总线控制调度方法,其特征在于,所述的高优先级队列任务优先处理策略是指当低优先级队列任务数量小于预设值L2时,主设备上能被处理的高、低优先级任务的数量门限为Nh和Nl由公式2决定。

3.如权利要求1所述的实时现场总线控制调度方法,其特征在于,当主设备高优先级队列不为空时,启动令牌周期定时器,若 在执行高优先级队列任务优先,低优先级队列任务适时处理策略后,高负载统计标志加1,重新设定令牌周期,新令牌周期由下式决定:TTH=TTH+(Hn-Nh)E[Thi]    (公式3)。

4.如权利要求1所述的实时现场总线控制调度方法,其特征在于,所述的高优先级队列任务优先,高、低优先级队列任务兼顾策略是指若 高负载统计标志置零,当时,执行尽最大努力处理低优先级队列任务策略;否则执行保证处理低优先级队列任务策略;所述的尽最大努力处理低优先级队列任务策略是指根据剩余周期大小尽可能多的处理低优先级队列任务;主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:

所述的保证处理低优先级队列任务策略是指剩余周期可以处理低优先级队列中的所有任务;主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:N(Nh,Nl)=(Hn,Ln)   (公式5)

在执行完保证处理低优先级队列任务策略后,取消前一次定时器,重新设定令牌周期,新令牌周期由下式决定:

5.如权利要求1所述的实时现场总线控制调度方法,其特征在于,当主设备高优先级队列为空而低优先级队列不为空时,设定TTH初始值,并启动令牌周期定时器,执行低优先级队列任务处理策略。

6.如权利要求1所述的实时现场总线控制调度方法,其特征在于,低优先级队列任务处理策略是指若 主设备上能被处理的低优先级任务的数量门限Nl由下式决定:

否则,主设备上能被处理的低优先级任务的数量门限Nl由下式决定:Nl=Ln    (公式8)

同时取消前一次定时器,重新设定令牌周期,新令牌周期由下式决定:TTH=Ln×E[Tli]     (公式9)。

7.如权利要求1所述的实时现场总线控制调度方法,其特征在于,当主设备高优先级队列为空且低优先级队列为空时,进入空闲状态,隔时间TI后重新对高优先级队列和低优先级队列进行检测。

说明书 :

一种实时现场总线控制调度方法

技术领域

[0001] 本发明涉及一种实时现场总线控制调度方法,属于自动化控制技术领域。

背景技术

[0002] 1.1用于方便读者理解本发明的技术背景
[0003] 随着移动通信业务的迅猛发展,移动通信基站和机房设备数量也大幅增加,基站运维力量薄弱和运维工作量大之间的矛盾日益突出,因此对基站监控系统应对基站突发事件的响应速度和处理能力也提出了更高的要求。
[0004] 目前基站监控系统主要用到现场总线技术,现场总线在实际应用中具有实时性、可靠性、可预测性等方面的要求。在现场总线中,对网络的实时性和可靠性影响最大就是媒体访问控制协议,但在现场总线协议中,只是给出了节点依据介质访问控制(MAC)机制调度通信的机理,而对于实时调度过程及调度算法等问题没有进行系统的阐述,按照规定,只要符合现场总线协议规范,采用何种调度算法来进行实时调度,由各个厂商自主开发,并可作为知识产权。
[0005] 与本发明相关的技术主要是现场总线MAC层实时调度技术。下面对MAC层实时调度机制的基本原理进行详细的介绍。
[0006] 目前传统的现场总线通信机制主要分为两种:集中式MAC通信机制和分布式MAC通信机制,集中式MAC通信机制主要包括令牌环调度机制,令牌总线调度机制以及虚拟令牌调度机制。而分布式MAC通信机制包括CSMA/CD机制以及CSMA/CR机制。
[0007] 集中式MAC通信机制采用时间触发方式,当节点有发送数据的需要时,它通过传递“令牌”的方式协调各节点访问传输介质的顺序,彻底避免了各节点同时占用传输介质。该机制传递令牌的基本方式主要包括令牌环、令牌总线和虚拟令牌。
[0008] (1)令牌环
[0009] 令牌环方法就是采用令牌来控制介质的使用权。在环网中设置一个令牌,在环路上传递,规定只有获得令牌的节点才有权发送数据帧,完成数据帧发送后立即释放令牌以供其他节点使用。令牌帧有“空闲”和“忙”两种状态。当环运行时,如果节点没有数据需要发送,空闲令牌沿固定的顺序在环上传递。当节点要发送数据时,等待空闲的令牌送到自己的位置时,将它变成忙令牌,然后将数据发送到环上。在令牌处于忙的状态时,其他节点就不能发送数据,只有等待令牌重新变成空闲的状态。数据发送到环上后,每一个站点都会把自己的地址同发送过来的数据的目的地址比较,如果相同,则送入本节点,并把数据送回至环上,如果不同,则把该数据沿着环路顺序转发给下一个节点。负载较轻时,由于等待令牌需要时间,效率较低。负载较重时,由于各节点公平,效率较高。
[0010] 在Profibus网络中,主节点之间的通信方式就是采用令牌环机制。三种系列的Profibus(DP、PA和FMS)使用同一种总线存取协议,数据链路层采用混合介质存取方式,即主节点间按令牌传递方式,主节点和从节点间按主从方式工作。
[0011] 令牌在总线上各主节点之间传递,得到令牌的主节点可在一定的时间内执行本节点的工作,这种方式保证了在任一时刻只能有一个节点发送数据,并且任一个主节点在一个特定的时间片内都可以得到总线操作权,这就完全避免了冲突。
[0012] 为了提供QoS给不同的数据任务,Profibus总线MAC协议对于从节点通信的任务规定了高、低两个优先级别。高优先级队列中主要包含了诸如报警、紧急通知类事件要求甚严的任务,数据帧短,数据量不大。与各从节点的周期性数据交换,逻辑环的管理维护任务则放在低优先级任务队列中,每一个主节点建有一个轮询表,存有隶属的从节点参数等。当令牌到达后,首先处理高优先级队列任务。即使令牌迟到,也会保证至少处理一个高优先级任务,之后令牌送下一个节点。一般情况下,如果令牌持有时间大于零,则继续处理剩余的高优先级任务,直至队列为空,然后开始对低优先级队列任务进行处理,每处理完轮询表中的一个从节点,都会重复查询令牌持有时间,只有在令牌持有时间到零时,剩余任务不再执行处理,需等到下一个令牌循环回到此主节点上,同时按顺序处理完高优先级任务后,再从中断处重新开始。
[0013] (2)令牌总线
[0014] 令牌总线介质访问控制是将局域网物理总线的节点构成一个逻辑环,每一个站点都在一个有序的序列中被指定一个逻辑位置,序列中最后一个节点的后面又跟着第一个节点。和令牌环一样,节点只有取得令牌后才能将信息帧送到总线上,如果没有数据要发送,则把令牌送到下一个节点。由于节点收到令牌的过程是按逻辑环的顺序进行的,因此,所有节点对介质都有公平的访问权。也就是说,令牌总线在逻辑环上采用的是和令牌环方法相同的访问控制机制。
[0015] 令牌总线技术的优点是各节点对介质的共享权力是均等的,可以设置优先级;有较好的吞吐能力,吞吐量随着数据传输速度增高而加大。其缺点就是控制电路较复杂、成本高,轻负载时,线路传输效率低。
[0016] 在FF和WorldFIP现场总线中,总线调度算法就是采用了令牌总线技术。由于工业控制网络对信息通信的实时性要求较高,WorldFIP和FF均明确将信息分为周期信息和非周期信息,针对不同的信息采用不同的控制策略。FF和WorldFIP均采用集中式介质访问控制策略,同时在通信方式上,采用了生产者/仲裁者/消费者(Producer/Distributor/Consumer,PDC)模式来管理信息的实时通信。网络开始运行时,首先仲裁者给予生产者总线使用权,在得到使用权之后,生产者把需要发送的信息广播到整个网段,该网段的所有节点都接收到该信息。在收到该信息后,只有当该信息是某个节点上的消费者所需要的,此节点才保留此信息。其它节点则丢弃此信息。与主从通信模式相比,当同一条信息传递给多个节点时,只需要发送一次即可,因此提高了网络的通信效率。通常,生产者和消费者的关系通过组态来设定。在任何时候,一个网段上只有一个活动节点起到节点仲裁作用,即负责网络上各个节点之间的信息通信。该节点在FF和WorldFIP中分别被称为链路活动调度器(Link Active Scheduler,LAS)和总线仲裁器(Bus Arbitrator,BA)。它通过链路活动调度表来管理周期信息的通信。
[0017] (3)虚拟令牌
[0018] 虚拟令牌又称为隐性令牌,ControlNet通信中采用虚拟令牌访问机制,网络中不存在专门起令牌作用的帧,令牌隐含在普通数据帧中。ControlNet给每个节点分配一个唯一的MAC地址。像普通的令牌总线一样,持有令牌的节点才有权发送数据,但网络中并没有真正的令牌传递。每个站点都设有一个隐性令牌寄存器,并监视收到的每个数据帧的源MAC地址。隐性令牌寄存器的值为收到的源MAC地址加1,如果隐性令牌寄存器的值与某个站点自己的MAC地址相等,该节点就可以立即发送数据。
[0019] 由于所有站点的隐性令牌寄存器在任一时刻的值都相同,而MAC地址是唯一的,因而可避免介质访问发生冲突。如果站点在得到隐性令牌时没有数据发送,从传递虚拟令牌的角度,它需要发送一个空帧,空帧中会含有本站点的MAC地址,使各节点的隐性令牌寄存器能正常工作,以传递虚拟令牌。虚拟令牌技术由于采用了多路复用技术,不存在数据帧的冲突问题,使得信息通信具有较高的实时性和确定性。
[0020] 分布式MAC通信机制采用事件触发方式。在这种方式中,节点发送事件是由事件触发。当总线上发生数据帧碰撞时,需要采取相应的措施避免冲突或解决冲突。目前常见的分布式MAC通信机制包括CSMA/CD机制和CSMA/CR机制。
[0021] (1)基于冲突检测的分布式MAC协议
[0022] 具有冲突检测功能的载波监听多路访问介质访问控制方法是在传统CSMA的基础上增加了冲突检测的功能。它的数据传送原理是先监听后发送、边监听边发送、检测到冲突发生立即停止发送、等待随机延迟后重新发送数据。
[0023] 在采用CMSA/CD的总线网络中,每个节点在利用公用传输信道进行数据发送前,首先要监听当前的传输信道是否处于空闲状态。如果一个节点已经准备好发送数据信息,并且此时信道恰好处于空闲状态,节点即可发送信息。为了避免同时有其它的节点发送信息,节点在发送信息的同时进行冲突检测。如果节点没有检测到冲突信号,节点将在发送结束后进入正常结束状态;如果在发送数据信息的过程中检测到了冲突的发生,发生冲突的各个节点会立即停止数据的发送。在停止数据的发送后,各个冲突节点要继续发送一串固定格式的阻塞信号,一边使冲突强化,保证所有节点都能知道信道中已经发生了冲突。在发出阻塞信号后,节点按照退避算法计算等待时间,在等待一个时间后将数据信息重新发送一次。如果发送过程中再次产生冲突,则重复监听、等待与重传的操作步骤。
[0024] CSMA/CD技术的优点是结构简单,网络维护方便,增删节点容易,使用在网络节点较少的情况下效率较高。但随着网络节点的增多以及节点传递信息量的增大,信道中发生冲突的概率也会增加,发送信息的延迟也随之变长,不能满足工业控制网络对确定延时和绝对可靠性的要求。
[0025] LonTalk协议是为LON总线设计的专用协议,所用的就是改进的CSMA/CD介质访问控制协议,称为带预测的P-坚持型CSMA/CD。它是LonWorks系统的核心,也是一种独特的冲突避免算法,该算法根据网络的负载情况自适应调整P值,即网络在轻负载的情况下,P值较大以减小媒介的访问延时,在重负载的情况下,P值较小以降低网络冲突的可能性。当使用支持硬件冲突检测的传输介质时,一旦收发器检测到冲突,LonTalk协议就可以有选择地取消报文的发送,这使节点可以马上重新发送并使冲突不再重发,有效地避免了碰撞。
[0026] (2)基于冲突决定的分布式MAC协议
[0027] 基于冲突决定的分布式MAC协议(Carrier Sense Multiple Access/Collision Resolution,CSMA/CR)主要用于总线型网络拓扑结构,基带传输系统,它是一种带优先级的载波监听多路访问方式。它根据需要预先设定节点优先级,每个节点边发送边监听,当有多个节点同时发送报文时将产生冲突,这时将采用非破坏性总线优先级逐位仲裁技术。在仲裁阶段,每个发送数据的节点,在发送信息的同时,监听总线的状态,将自己发送的位和总线的状态相比较,如果发送一个隐形位而在总线上监测到显性位,说明这时在总线上有优先级更高的信息帧在同时发送,并确定本节点已失去仲裁,即终止发送。等总线空闲时,再试图重新发送,该仲裁机制保证了冲突时除了赢得竞争的那个节点,其它节点都停止发送,这样做到了无损位仲裁,按这种方式,竞争的解决是确定性的。
[0028] CSMA/CR的优点是技术上比较容易实现,具有冲突检测和优先级决定的功能,保证了实时性。缺点是每次传输的报文数量较小。但是作为工业控制网络,其本身的数据量不是很大,因此这不是问题。它与CSMA/CD相比较两者在检测到冲突后,对于冲突的处理方式不同。CSMA/CD检测到了冲突,选择退避算法,产生了一个随机数,由这个随机数决定再次发送数据的时间,这就不能保证实时性。而CSMA/CR在检测到了冲突后,直接按优先级来决定由谁退出,谁继续传输,保证了实时性。
[0029] CAN总线协议就是采用了CSMA/CR分布式MAC机制,CAN总线通过使用这种非破坏性的总线优先级逐位仲裁技术来处理多个节点同时发送数据产生的冲突,与CSMA/CD机制相比,不会丢失任何数据或者损失带宽,提高了总线的实时性。
[0030] 1.2与本发明相关的现有技术一
[0031] 1.2.1现有的基于令牌环的MAC机制的技术方案一
[0032] 文献1[Yuping Zhang;Chen Li,"Research of the scheduling method for fieldbusnetwork real-time information,"Strategic Technology(IFOST),20116th International Forum on,vol.2,no.,pp.1125,1128,22-24Aug.2011]提出了一种混合式服务策略的MAC调度方案,简称CMR方案,该方案对实时信息采用空竭式服务,对非实时信息采用限量式服务,根据高优先级队列负载的变化,动态调整令牌周期时间使高优先级信息及时得到处理。每个主站点产生两类优先级信息分别进入两种优先级任务队列,高优先级的任务队列包括周期较短的周期性任务;低优先级的队列包括与从站的数据交换、网络管理等周期较长的任务。该机制对第一类信息采用空竭式服务策略,对第二类信息采用K-限量式服务策略。空竭式服务是指当某个节点持有令牌时,首先对第一类信息队列服务,直到此队列的全部信息(包括在服务期间到达的信息)都服务完毕,再对第二类信息队列服务,同样直到此队列的全部信息(包括在服务期间到达的信息)都服务完,才将令牌释放。K-限量式服务是指对服务台每次连续工作的总量加以限制。例如规定每次连续服务的信息数不超过某个上限K值。—旦服务台完成某个信息的服务,并且连续工作的总量已达到或超过了规定的上限,无论系统中有无信息都进入休假状态。也就是说,当令牌到达某个虚拟节点时,如果等待服务的信息数小于或等于K,则所有等待的信息都将被服务;如果等待的信息数大于K,则只能有K个信息被服务,其余的信息等到下一个轮询周期才能被服务,上述方法主要考虑了高优先级队列负载变化对实时性能的影响,适合高优先队列负载较高的情况。
[0033] 1.2.2现有的技术一的缺点
[0034] 文献1重点考虑了高优先级信息队列的实时性问题,根据高优先级队列负载的变化,动态调整令牌周期时间使高优先级信息及时得到处理。但是,该方法也存在一些缺点:
[0035] (1)在高优先级队列负载较高且持续时间较长时,由于该方法针对高优先级队列采用的是空竭型服务策略,会造成低优先级队列信息长时间得不到处理而“饿死”的现象。
[0036] (2)该方法仅考虑了高优先级负载对令牌周期的影响。虽然高优先级信息队列可以得到及时处理,但是没有考虑低优先级队列负载的情况,由于对低优先级队列采用的是K-限量式服务,当低优先级队列负载较高时,会使得低优先级队列拥塞程度更加严重。
[0037] (3)在一般情况下,高优先级队列中的任务发生率一般很低,并不是在每个令牌周期内都有较多的高优先级任务到达,所以在大部分时间中,高优先级队列处于负载较低的情况,而K-限量式服务会限制低优先级队列信息的发送数量,造成令牌周期带宽的浪费,降低带宽利用率。
[0038] 1.3与本发明相关的现有技术二
[0039] 1.3.1现有的基于令牌环的MAC机制的技术方案二
[0040] 文献2[范兴刚,王智,王天然,孙优贤.一种增强PROFIBUS总线实时通信能力的综合方法[J].仪器仪表学报,2005,08:790-796.]提出了一种基于令牌环的增强现场总线实时通信能力的综合方案,该方案建立了新的基于图论综合分析方法,运用图论分析现场总线的信息传递,结合主站点任务分配的响应时间长短和令牌期望运行周期,确定逻辑令牌环的顺序,并根据运行结果对令牌环顺序进行动态调整。减少系统的总延迟。
[0041] 1.3.2现有技术二的缺点
[0042] 文献2考虑了令牌环的运行情况。采用图论描述次序关系和构造合理的令牌环,并根据运行结果动态调整令牌环顺序、减少系统的总延迟。但是,该方法也存在一些缺点:
[0043] (1)该方法只考虑了节点之间的关系,通过调整令牌环顺序减小延时,并没有考虑和区分节点内部不同优先级队列信息的延迟问题。如果内部信息调度不合理,会造成部分信息延迟时间过长。
[0044] (2)针对节点内部不同优先级信息的发送机会的相对公平性问题也没有进行研究。
[0045]
[0046]

发明内容

[0047] 发明目的:本发明公开了一种实时现场总线控制调度方法,主要解决传统的基于令牌环的现场总线控制调度算法存在低优先级队列信息拥塞甚至“饿死”的现象以及带宽利用率低的问题。该方法可以更好的适应高优先级队列任务变化的情况,缓解高、低优先级队列任务的拥塞,进一步提高带宽利用率。
[0048] 技术方案:在保证高优先级队列信息优先发送的前提下,本发明针对高优先级队列负载较高且持续时间较长而导致低优先级队列任务长时间不能得到处理的问题通过设置低优先级队列最小处理门限的方法使低优先级队列的信息有处理的机会;针对高、低优先级队列拥塞问题,结合高优先级负载情况通过逐级增大令牌周期的方法,缓解高优先级队列拥塞,同时间接缓解低优先级队列拥塞;针对低优先级队列负载较低时造成令牌周期时间浪费问题,通过逐级减小令牌周期的方法来提高令牌周期带宽利用率。
[0049] 一种实时现场总线控制调度方法,所使用设备包括一个主设备和若干个从设备,现场总线控制参数包括主设备持有令牌时间为TTH,主设备空闲时间为TI,主设备的信息处理队列分为高优先级任务队列和低优先级任务队列,高优先级任务队列任务数量为Hn,任意一高优先级任务处理时间为Thi,低优先级任务队列任务数量为Ln,任意一低优先级任务处理时间为Tli,主设备上能被处理的高、低优先级任务的数量门限为Nh和Nl。
[0050] 每隔时间TI对高优先级队列和低优先级队列进行检测,根据不同的高优先级队列负载和低优先级队列负载情况,执行不同的策略。
[0051] 当主设备高优先级队列不为空时,设定TTH初始值,并启动令牌周期定时器,若执行高优先级队列任务优先,低优先级队列任务适时处理策略;否则执行高优先级队列任务优先,高、低优先级队列任务兼顾策略。
[0052] 高优先级队列任务优先,低优先级队列任务适时处理策略是指当高负载统计标志大于等于预设值L1时,执行低优先级队列任务最小门限处理策略;否则执行高优先级队列任务优先处理策略。
[0053] 低优先级队列任务最小门限处理策略是指当低优先级队列任务数量大于等于预设值L2时,主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:
[0054]
[0055] 其中,E[]表示对变量取期望值, 表示对变量值向下取整。否则主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:
[0056]
[0057] 高优先级队列任务优先处理策略是指当低优先级队列任务数量小于预设值L2时,主设备上能被处理的高、低优先级任务的数量门限为Nh和Nl由公式2决定。
[0058] 当主设备高优先级队列不为空时,启动令牌周期定时器,若 在执行高优先级队列任务优先,低优先级队列任务适时处理策略后,高负载统计标志加1,重新设定令牌周期,新令牌周期由下式决定:
[0059] TTH=TTH+(Hn-Nh)E[Thi]      (公式3)
[0060] 高优先级队列任务优先,高、低优先级队列任务兼顾策略是指若 高负载统计标志置零,当 时,执行尽最大努力处理低优先级队列任务策略;否则执行保证处理低优先级队列任务策略。
[0061] 尽最大努力处理低优先级队列任务策略是指根据剩余周期大小尽可能多的处理低优先级队列任务。主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:
[0062]
[0063] 保证处理低优先级队列任务策略是指剩余周期可以处理低优先级队列中的所有任务。主设备上能被处理的高、低优先级任务的数量门限Nh和Nl由下式决定:
[0064] N(Nh,Nl)=(Hn,Ln)      (公式5)
[0065] 在执行完保证处理低优先级队列任务策略后,取消前一次定时器,重新设定令牌周期,新令牌周期由下式决定:
[0066]       (公式6)
[0067] 当主设备高优先级队列为空而低优先级队列不为空时,设定TTH初始值,并启动令牌周期定时器,执行低优先级队列任务处理策略。
[0068] 低优先级队列任务处理策略是指若 主设备上能被处理的低优先级任务的数量门限Nl由下式决定:
[0069] 否则,主设备上能被处理的低优先级任务的数量门限Nl由下式决定:
[0070] Nl=Ln      (公式8)同时取消前一次定时器,重新设定令牌周期,新令牌周期由下式决定:
[0071] TTH=Ln×E[Tli]      (公式9)
[0072] 当主设备高优先级队列为空且低优先级队列为空时,进入空闲状态,隔时间TI后重新对高优先级队列和低优先级队列进行检测。
[0073] 有益效果:本发明提供的实时现场总线控制调度方法,其技术要点如下:1.在保证高优先级队列信息优先发送的前提下,针对高优先级队列负载较高且持续时间较长而导致低优先级队列任务长时间不能得到处理的问题通过设置低优先级队列最小处理门限的方法使低优先级队列的信息有处理的机会;2.针对高优先级队列拥塞问题,结合高优先级负载情况通过逐级增大令牌周期的方法,缓解高优先级队列拥塞,同时间接缓解低优先级队列拥塞;3.针对低优先级队列负载较低时造成令牌周期时间浪费问题,通过逐级减小令牌周期的方法来提高令牌周期带宽利用率。本发明由于应用了基于负载反馈控制的策略进一步降低了高优先级队列信息的延迟,大大降低了低优先级队列的延迟,同时提高了总线吞吐量和带宽利用率,更适合负载变化的情况。

附图说明

[0074] 图1是本发明实施例中的实时现场总线控制调度的总流程图;
[0075] 图2是本发明实施例中的高优先级队列任务优先,低优先级队列任务适时处理策略子流程图;
[0076] 图3是本发明实施例中的高优先级队列任务优先,高、低优先级队列任务兼顾策略子流程图;
[0077] 图4是本发明实施例中的低优先级队列任务处理策略子流程图;
[0078] 图5是本发明实施例中的低优先级队列任务最小门限处理策略子流程图;
[0079] 图6是本发明实施例中的高优先级队列任务优先处理策略子流程图;
[0080] 图7是本发明实施例中的尽最大努力处理低优先级队列任务策略子流程图;
[0081] 图8是本发明实施例中的保证处理低优先级队列任务策略子流程图;
[0082] 图9是本发明实施例中的具体研究场景。

具体实施方式

[0083] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0084] 实施例中用到的现场总线控制调度参数如下:
[0085] ●主设备持有令牌时间:TTH;
[0086] ●主设备空闲时间:TI;
[0087] TI是主设备在空闲时即高、低优先级队列皆为空时的轮询队列时间间隔,TI越小,轮询越频繁。
[0088] ●高优先级任务队列任务数量:Hn;
[0089] ●任意一高优先级任务处理时间:Thi;
[0090] ●低优先级任务队列任务数量:Ln;
[0091] ●任意一低优先级任务处理时间:Tli;
[0092] ●主设备上能被处理的高优先级任务的数量门限:Nh;
[0093] ●主设备上能被处理的低优先级任务的数量门限:Nl;
[0094] ●高负载统计标志FH;
[0095] ●高负载统计标志门限值:L1;
[0096] L1作为低优先级队列任务最小门限处理策略是否被触发的标志,L1越小,低优先级队列任务最小门限处理策略被触发的概率越大;否则,低优先级队列任务最小门限处理策略被触发的概率越小。参数L1依据低优先级队列负载大小设置,低优先级队列负载较大时,适合设置较小的值;低优先级队列负载较小时,适合设置较大的值。
[0097] ●低优先级队列任务处理门限值:L2;
[0098] L2作为低优先级信息能否被处理的门限标志,L2越小,低优先级信息被处理的频率越高,否则,低优先级信息被处理的频率越低。参数L2依据低优先级队列负载大小设置,低优先级队列负载较大时,适合设置较小的值;低优先级队列负载较小时,适合设置较大的值。
[0099] ●高优先级队列任务处理计数变量CH;
[0100] ●低优先级队列任务处理计数变量CL;
[0101] 实时现场总线控制调度的具体实施场景如图9所示,正方形代表主设备,圆形代表从设备,总线传播延迟时间为5.1282×10-9s,总线传输速率为9600bps,高优先级队列任务数据帧长度为120Bytes,低优先级队列任务数据帧长度为120Bytes,高优先级队列任务到达时间间隔服从λ分别为0.4,1.0的指数分布,低优先级队列任务到达时间间隔服从λ为0.5,1.0的指数分布,高优先级队列任务产生开始时间为1s,低优先级队列任务产生开始时间为2s。
[0102] 如图1所示,实时现场总线控制调度的基本步骤为:
[0103] 101、对参数初始化,高优先级队列任务处理计数变量CH设置为0,低优先级队列任务处理计数变量CL设置为0,高负载统计标志FH设置为0,高负载统计标志门限值L1设置为2,低优先级队列任务处理门限值L2设置为1,主设备空闲时间TI设置为2s。
[0104] 102、启动空闲状态定时器,计时时间为TI,进入空闲状态。
[0105] 103、当TI截止时,开始对高优先级队列进行检测。当高优先级队列不为空时,执行步骤104。否则对低优先级队列进行检测。当低优先级队列不为空时,执行步骤107。否则返回步骤102。
[0106] 104、主设备设定持有令牌时间TTH根据该场景的传输速率和帧长度情况设置初始值为2s,并启动令牌周期定时器。若 执行步骤105。否则执行步骤106。
[0107] 105、执行高优先级队列任务优先,低优先级队列任务适时处理策略。
[0108] 106、执行高优先级队列任务优先,高、低优先级队列任务兼顾策略。
[0109] 107、主设备设定持有令牌时间TTH根据该场景的传输速率和帧长度情况设置初始值为2s,并启动令牌周期定时器,继续执行步骤108。
[0110] 108、执行低优先级队列任务处理策略。
[0111] 如图2所示,高优先级队列任务优先,低优先级队列任务适时处理策略的基本步骤为:
[0112] 201、当高负载统计标志FH大于等于预定值L1时,执行低优先级队列任务最小门限处理策略,继续执行步骤203。否则执行步骤202。
[0113] 202、执行高优先级队列任务优先处理策略,继续执行步骤203。
[0114] 203、高负载统计标志FH加1,继续执行步骤204。
[0115] 204、重新设定令牌周期,新令牌周期由公式3决定。
[0116] 如图3所示,高优先级队列任务优先,高、低优先级队列任务兼顾策略的基本步骤为:
[0117] 301、高负载统计标志FH置零,当 时,执行步骤302,否则执行步骤303。
[0118] 302、执行尽最大努力处理低优先级队列任务策略。
[0119] 303、执行保证处理低优先级队列任务策略,继续执行步骤304。
[0120] 304、取消前一次定时器定时,继续执行步骤305。
[0121] 305、重新设定令牌周期,新令牌周期由公式6决定。
[0122] 如图4所示,低优先级队列任务处理策略的基本步骤为:
[0123] 401、若 由公式7计算高、低优先级队列任务处理门限,继续执行步骤402,否则执行步骤403。
[0124] 402、CH和CL根据公式7计算得到的Nh和Nl门限开始计数,按照先发送高优先级任务,后发送低优先级任务的原则分别处理Nh个高优先级任务和Nl个低优先级任务,完成要求发送的任务后,CH和CL清零。
[0125] 403、由公式8计算高、低优先级队列任务处理门限,继续执行步骤404。
[0126] 404、CH和CL根据公式8计算得到的Nh和Nl门限开始计数,按照先发送高优先级任务,后发送低优先级任务的原则分别处理Nh个高优先级任务和Nl个低优先级任务,完成要求发送的任务后,CH和CL清零。继续执行步骤405。
[0127] 405、取消前一次定时器。继续执行步骤406。
[0128] 406、重新设定令牌周期,新令牌周期由公式9决定。
[0129] 如图5所示,低优先级队列任务最小门限处理策略的基本步骤为:
[0130] 501、当低优先级队列任务数量大于等于预设值L2时,由公式1计算的高、低优先级队列任务处理门限,继续执行步骤503。否则执行步骤502。
[0131] 502、由公式2计算的高、低优先级队列任务处理门限,继续执行步骤503。
[0132] 503、CH和CL根据Nh和Nl门限开始计数,按照先发送高优先级任务,后发送低优先级任务的原则分别处理Nh个高优先级任务和Nl个低优先级任务,完成要求发送的任务后,CH和CL清零。
[0133] 如图6所示,高优先级队列任务优先处理策略的基本步骤为:
[0134] 601、由公式2计算的高、低优先级队列任务处理门限,继续执行步骤602。
[0135] 602、CH和CL根据公式2计算得到的Nh和Nl门限开始计数,按照先发送高优先级任务,后发送低优先级任务的原则分别处理Nh个高优先级任务和Nl个低优先级任务,完成要求发送的任务后,CH和CL清零。
[0136] 如图7所示,尽最大努力处理低优先级队列任务策略的基本步骤为:
[0137] 701、由公式4计算的高、低优先级队列任务处理门限,继续执行步骤702。
[0138] 702、CH和CL根据公式4计算得到的Nh和Nl门限开始计数,按照先发送高优先级任务,后发送低优先级任务的原则分别处理Nh个高优先级任务和Nl个低优先级任务,完成要求发送的任务后,CH和CL清零。
[0139] 如图8所示,保证处理低优先级队列任务策略的基本步骤为:
[0140] 801、由公式5计算的高、低优先级队列任务处理门限,继续执行步骤802。
[0141] 802、CH和CL根据公式5计算得到的Nh和Nl门限开始计数,按照先发送高优先级任务,后发送低优先级任务的原则分别处理Nh个高优先级任务和Nl个低优先级任务,完成要求发送的任务后,CH和CL清零。
[0142] 本发明技术实现的有益效果
[0143] 本发明使用了一种基于负载反馈控制的MAC通信机制。基于负载反馈控制的MAC通信机制在保证实时性信息的优先发送前提下,通过设置低优先级队列最小处理门限的方法使低优先级队列的信息有处理的机会;同时为了适应高优先级队列负载变化逐级调整令牌周期,该机制可以更好的适应高、低优先级队列任务变化,缓解高、低优先级队列任务的拥塞,提高总线的带宽利用率。
[0144] 本发明的方法与传统的现场总线MAC层调度机制相比,具有如下明显优势:
[0145] 1.在高优先级队列负载较高且持续时间较长时,由于传统的方法针对高优先级队列采用的是空竭型服务策略,会造成低优先级队列信息长时间得不到处理而“饿死”的现象。而改进方法通过执行低优先级队列任务最小门限处理策略使低优先级信息在高优先级队列重负载下仍然有发送的机会,保证了不同优先级信息的相对公平性。
[0146] 2.传统的方法仅考虑了高优先级负载对令牌周期的影响。虽然高优先级信息队列可以得到及时处理,但是没有考虑针对低优先级队列负载的情况,由于对低优先级队列采用的是K-限量式服务,当低优先级队列负载较高时,会使得低优先级队列拥塞程度更加严重。而改进算法在高优先级队列负载减少时,令牌周期不会随高优先级队列负载减少而变短,这样就会有更多的带宽去处理低优先级信息,缓解了低优先级信息的拥塞程度。
[0147] 在一般情况下,高优先级队列中的任务发生率一般很低,并不是在每个令牌周期内都有较多的高优先级任务到达,所以在大部分时间中,高优先级队列处于负载较低的情况,而K-限量式服务会限制低优先级队列信息的发送数量,造成令牌周期带宽的浪费,降低带宽利用率。而改进算法在处理完高优先级队列信息后,如果还有剩余的令牌周期,则全部用于处理低优先级信息,显著提高了带宽利用率。