CN106598708B - 一种时间触发的嵌入式任务通讯装置与方法 - Google Patents

一种时间触发的嵌入式任务通讯装置与方法 Download PDF

Info

Publication number
CN106598708B
CN106598708B CN201610665277.5A CN201610665277A CN106598708B CN 106598708 B CN106598708 B CN 106598708B CN 201610665277 A CN201610665277 A CN 201610665277A CN 106598708 B CN106598708 B CN 106598708B
Authority
CN
China
Prior art keywords
task
receiving
sending
data
port space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610665277.5A
Other languages
English (en)
Other versions
CN106598708A (zh
Inventor
颜纪迅
宋科璞
武方方
徐建军
朱立平
郑小宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Flight Automatic Control Research Institute of AVIC
Original Assignee
Xian Flight Automatic Control Research Institute of AVIC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Flight Automatic Control Research Institute of AVIC filed Critical Xian Flight Automatic Control Research Institute of AVIC
Priority to CN201610665277.5A priority Critical patent/CN106598708B/zh
Publication of CN106598708A publication Critical patent/CN106598708A/zh
Application granted granted Critical
Publication of CN106598708B publication Critical patent/CN106598708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及一种时间触发的嵌入式任务间通讯装置与方法。在安全关键领域,要求任务的执行过程具备确定性。为解决原有的基于事件的任务间通讯不确定性问题,本发明提出一种基于时间触发架构的任务通讯装置,包括:发送端口空间模块,接收端口空间模块,发送存储缓存,接收存储缓存,静态时间规划表存储模块,时间触发任务通讯模块和时间触发任务调度模块。由时间触发任务通讯模块根据静态时间规划表存储模块,让任务间通讯在确定的任务切换时刻才实际完成,从而确实的保证了系统的输出不会因为任务间通讯的发生时刻不同而不同。

Description

一种时间触发的嵌入式任务通讯装置与方法
技术领域
本发明属于安全关键计算机的使用技术,具体涉及一种时间触发的嵌入式任务通讯装置与方法。
背景技术
在计算机应用领域,为更好发挥计算机性能,通常将运行于其上的软件分解为多个任务,在不同时段共享使用计算机资源,以共同完成特定的系统级功能。由于多个任务是用于实现同一个功能,因此任务之间必然会存在运行的协同,以及信息的交互,即任务间的通讯。传统经典的软件任务调度方式,在任务间通讯上使用事件型的解决方案,即使用信号量、互斥锁等方式,在某个任务内部的某个事件发生后,调整其它任务的调度序列,直到这个事件完整结束后,再恢复其它任务的调度。这种调整任务调度的任务间通讯方式,重视计算机资源局部的使用效率,但是存在两个问题,其一,是不同任务的相互关系,可能随着任务运行时间的细微差别而形成差异,导致最终同样的系统级输入不一定能够得到同样的系统级输出;其二,是在复杂的运行环境中,各种任务的循环依赖关系,可能导致全局上的任务运行死锁。
在安全关键领域,由于任务失败可能引发机毁人亡的灾难性事故,因此要求任务的执行过程具备确定性。而事件型的嵌入式任务间通讯机制,无法完全隔绝不确定性的引入,因此并不能很好的适用于安全关键领域。为此,需要一种基于时间触发架构下的任务间通讯机制,以解决这一类问题。
发明内容
本发明的目的是:为解决基于时间触发架构的安全关键系统,对于计算机节点中任务间数据通讯的确定性要求,而设计的一种嵌入式任务间通讯方法。
本发明的技术方案:
提供一种时间触发的嵌入式任务间通讯装置,其特征在于,包括:
发送端口空间模块,为指向发送缓存的数据指针,任务通讯发送的过程,实际是将待发送数据写入发送端口空间指向的发送缓存的过程;
接收端口空间模块,为指向接收缓存的数据指针,任务通讯接收的过程,实际是将接收数据由接口端口空间指向的接收缓存中读出的过程;
发送存储缓存,用来保存实际待发送的数据;
接收存储缓存,用来保存实际接收到的数据;
静态时间规划表存储模块存储模块,用来预先静态定义各任务的执行过程;
时间触发任务通讯模块,用来根据静态时间规划表存储模块存储模块,使用通讯通道完成任务间通讯的数据传输;
时间触发任务调度模块,用来根据静态时间规划表存储模块存储模块,进行任务的调度。
提供一种时间触发的嵌入式任务间通讯方法,其特征在于,包括以下步骤:
步骤一,系统初始化中,定义发送任务和接收任务间的通讯通道,通讯通道具有发送端口空间以及接收端口空间,发送任务对应发送端口空间,接收任务对应接收端口空间;
步骤二,时间触发任务调度模块按照预定义的静态时间规划表存储模块存储模块,对任务进行周期性的调度运行;
步骤三:任务周期运行中,需要发送任务进行数据发送时,时间触发任务通讯模块此时将需要发送的数据缓存在发送任务的发送端口空间中,进入步骤四;
步骤四:当发送任务运行到静态时间规划表存储模块中定义的任务运行截止时刻,此时时间触发任务通讯模块将判断接收任务的当前运行状态,若接收任务处于就绪状态,此时时间触发任务通讯模块通过通讯通道,将发送数据转移到接收任务的接收端口空间;若接收任务当前处于被抢占状态,证明当前接收任务在本周期中已启动运行且没有结束,因此该数据仍旧保持在发送任务的发送端口空间中,进入步骤五;
步骤五:当接收任务本周期达到静态时间规划表存储模块中定义的执行死限时刻后,时间触发任务通讯模块才通过通讯通道将发送数据传输到接收任务的接收端口中。
进一步的,发送任务的发送端口空间,以及接收任务的接收端口空间,分别为指向发送缓存和接收缓存的数据指针,当数据由发送端口空间向接收端口空间传输时,实际是发送端口指针与接收端口指针切换内容,从而导致发送端口空间原来指向的发送缓存,变为接收端口空间指向的接收缓存,而接收端口空间原来指向的接收缓存,变为发送端口空间指向的发送缓存;
进一步的,当接收任务正在获取接收端口空间数据时,会在接收端口指针所指向的内存区域中,置一个数据接收标志,当发送任务在发送过程中,系统发现发送端口指针所指向的内存区域正处于接收状态,则进行发送端口指针与接收端口指针的互换,当指针互换后,发送端口空间仍旧显示处于接收状态,则认为系统发生严重故障。
本发明的有益效果:通过本方法中所提出的方案,在基于时间触发架构的系统之中,实现不同任务之间的通讯,首先能够保证任务执行的确定性不会受到任务间通讯的影响;其次任务执行的依赖关系能够得到确定,保证同样的系统级输入能够得到同样的系统级输出。
附图说明
图1为一种时间触发的嵌入式任务通讯装置的基本结构图;
图2为一种时间触发的嵌入式任务通讯方法的基本流程图;
图3为一个系统中,任务进行静态时间规划后的周期执行实例图;
图4为一个低优先级任务向高优先级任务进行数据发送的示意图;
图5为一个高优先级任务向低优先级任务进行数据发送的示意图;
具体实施方式
结合附图,详细描述技术方案:
如图1所示,提供一种时间触发的嵌入式任务间通讯装置,其特征在于,包括:
发送端口空间模块,为指向发送缓存的数据指针,任务通讯发送的过程,实际是将待发送数据写入发送端口空间指向的发送缓存的过程;
接收端口空间模块,为指向接收缓存的数据指针,任务通讯接收的过程,实际是将接收数据由接口端口空间指向的接收缓存中读出的过程;
发送存储缓存,用来保存实际待发送的数据;
接收存储缓存,用来保存实际接收到的数据;
静态时间规划表存储模块存储模块,用来预先静态定义各任务的执行过程;
时间触发任务通讯模块,用来根据静态时间规划表存储模块存储模块,使用通讯通道完成任务间通讯的数据传输;
时间触发任务调度模块,用来根据静态时间规划表存储模块存储模块,进行任务的调度。
如图2所示,提供一种时间触发的嵌入式任务间通讯方法,其特征在于,包括以下步骤:
步骤一,系统初始化中,定义发送任务和接收任务间的通讯通道,通讯通道具有发送端口空间以及接收端口空间,发送任务对应发送端口空间,接收任务对应接收端口空间;
步骤二,时间触发任务调度模块按照预定义的静态时间规划表存储模块,对任务进行周期性的调度运行;
步骤三:任务周期运行中,需要发送任务进行数据发送时,时间触发任务通讯模块此时将需要发送的数据缓存在发送任务的发送端口空间中,进入步骤四;
步骤四:当发送任务运行到静态时间规划表存储模块中定义的任务运行截止时刻,此时时间触发任务通讯模块将判断接收任务的当前运行状态,若接收任务处于就绪状态,此时时间触发任务通讯模块通过通讯通道,将发送数据转移到接收任务的接收端口空间;若接收任务当前处于被抢占状态,证明当前接收任务在本周期中已启动运行且没有结束,因此该数据仍旧保持在发送任务的发送端口空间中,进入步骤五;
步骤五:当接收任务本周期达到静态时间规划表存储模块中定义的执行死限时刻后,时间触发任务通讯模块才通过通讯通道将发送数据传输到接收任务的接收端口中。
进一步的,发送任务的发送端口空间,以及接收任务的接收端口空间,分别为指向发送缓存和接收缓存的数据指针,当数据由发送端口空间向接收端口空间传输时,实际是发送端口指针与接收端口指针切换内容,从而导致发送端口空间原来指向的发送缓存,变为接收端口空间指向的接收缓存,而接收端口空间原来指向的接收缓存,变为发送端口空间指向的发送缓存;
进一步的,当接收任务正在获取接收端口空间数据时,会在接收端口指针所指向的内存区域中,置一个数据接收标志,当发送任务在发送过程中,系统发现发送端口指针所指向的内存区域正处于接收状态,则进行发送端口指针与接收端口指针的互换,当指针互换后,发送端口空间仍旧显示处于接收状态,则认为系统发生严重故障。
一个使用本装置和方法的实例如下:一个系统中,使用时间触发的静态规划任务调度方式,进行系统任务的规划执行。运行其上的任务分为3个,任务各自的运行周期及最差运行时间如下表:
任务名 任务周期 任务最差执行时间
任务1 10ms 2
任务2 20ms 3
任务3 50ms 19
根据任务的静态时间规划,得到的时间规划表如图3所示,如图中可见,任务3的任务周期和最差执行时间较长,因此优先级较低,可能被任务1和任务2所抢占。
设定任务通讯的场景,为任务1需要向任务3发送数据,同时任务3也需要向任务1发送数据。
根据此需求,应用在进行任务初始化时,申请由任务1向任务3的通讯通道CH1,以及任务3向任务1的通讯通道CH2。设定的参数包括传输方式为采样端口还是队列端口,通讯的数据量大小等。
此时,操作系统根据设定的参数,分别为两个通讯通道分配通讯ID号,并根据通讯数据量大小,在通讯端口内存池中申请相应大小2倍的内存空间,分别作为发送端口空间,以及接收端口空间所指向的发送缓存及接收缓存。空间示意图如图2所示。
当周期任务运行起来之后,首先以任务3通过通道CH2向任务1传输数据为例,如图4所示,当任务3在时刻点401发送出来数据后,由于任务3本周期的执行死限点时刻还未到,因此操作系统不进行发送端口空间向接收端口空间的传输,仅在发送端口空间中置“已发送”标志,在时刻点402,任务1抢占任务3运行,并由通道CH2接收来自任务3的数据,操作系统将提示没有收到新数据。
这样设计的原因在于,任务3向任务1发送数据的时刻,随着任务3运行的分支不同,可能位于任务3运行过程的任意时刻,如图4所示,发送的时刻点可能是任务1抢占的时刻点前的401,也可能位于任务1抢占的时刻点405,而导致接收任务1可能在时刻点402处,也可能在时刻点406处,收到来自任务3发送的数据,而这就带来了不确定性,因此是需要进行任务通讯设计中解决的问题。
当系统运行到时刻点403,此时任务3执行死限点时刻到,操作系统检查到任务3向通道CH2发送了数据,而此时CH2的接收任务任务1未处于“被抢占”状态,操作系统将通道CH2发送端口空间所指向的zoneA与接收端口空间所指向的zoneB进行交换,得到的结果。
当系统运行到时刻点404,此时任务1再次尝试由通道CH2接收来自任务3的通讯数据,由于在时刻点403已经完成了发送端口空间与接收端口空间的数据交换,此时任务1可以收到来自任务3的数据。
再以任务1通过通道CH1向任务3发送数据为例。如图5所示,当任务1在时刻点501发送出来数据后,当达到任务1的死限时刻点502后,操作系统检查发现当前通道CH1的接收任务,任务3处于“被抢占”状态,因此,仍旧不能进行发送端口空间向接收端口空间的交换,而是在接收端口空间置一个“收到数”标志。
这样设计的原因仍旧是由于增加执行确定性的需要。由于任务3运行分支的不同,导致任务3可能在任务1抢占之前的时刻点506,也可能在任务1抢占之后的时刻点503,进行来自任务1的数据接收,从而导致任务3的本次运行过程,可能收到来自任务1的数据,也可能没有收到来自任务1的数据。
在时刻点503,任务3恢复执行,并由通道CH1接收来自任务1发送过来的数据,此时将得到操作系统返回的未收到数据的状态。在时刻点504处,任务3达到其执行的死限时刻,此时操作系统检查到任务3在通道CH1收到了一包数据,则将发送端口空间所指向的区域与接收端口空间所指向的区域进行交换。任务3再次启动下一个周期的运行后,在时刻点505,任务3能够由通道CH1中收到来自任务1发送过来的数据。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (2)

1.一种时间触发的嵌入式任务间通讯装置,其特征在于,包括:
发送端口空间模块,为指向发送缓存的数据指针,任务通讯发送的过程,实际是将待发送数据写入发送端口空间指向的发送缓存的过程;
接收端口空间模块,为指向接收缓存的数据指针,任务通讯接收的过程,实际是将接收数据由接口端口空间指向的接收缓存中读出的过程;
发送存储缓存,用来保存实际待发送的数据;
接收存储缓存,用来保存实际接收到的数据;
静态时间规划表存储模块存储模块,用来预先静态定义各任务的执行过程;
时间触发任务通讯模块,用来根据静态时间规划表存储模块存储模块,使用通讯通道完成任务间通讯的数据传输;
时间触发任务调度模块,用来根据静态时间规划表存储模块存储模块,进行任务的调度;
发送任务的发送端口空间,以及接收任务的接收端口空间,分别为指向发送缓存和接收缓存的数据指针,当数据由发送端口空间向接收端口空间传输时,实际是发送端口指针与接收端口指针切换内容,从而导致发送端口空间原来指向的发送缓存,变为接收端口空间指向的接收缓存,而接收端口空间原来指向的接收缓存,变为发送端口空间指向的发送缓存;
当接收任务正在获取接收端口空间数据时,会在接收端口指针所指向的内存区域中,置一个数据接收标志,当发送任务在发送过程中,系统发现发送端口指针所指向的内存区域正处于接收状态,则进行发送端口指针与接收端口指针的互换,当指针互换后,发送端口空间仍旧显示处于接收状态,则认为系统发生严重故障。
2.一种时间触发的嵌入式任务间通讯方法,其特征在于,包括以下步骤:
步骤一,系统初始化中,定义发送任务和接收任务间的通讯通道,通讯通道具有发送端口空间以及接收端口空间,发送任务对应发送端口空间,接收任务对应接收端口空间;
步骤二,时间触发任务调度模块按照预定义的静态时间规划表存储模块存储模块,对任务进行周期性的调度运行;
步骤三:任务周期运行中,需要发送任务进行数据发送时,时间触发任务通讯模块此时将需要发送的数据缓存在发送任务的发送端口空间中,进入步骤四;
步骤四:当发送任务运行到静态时间规划表存储模块中定义的任务运行截止时刻,此时时间触发任务通讯模块将判断接收任务的当前运行状态,若接收任务处于就绪状态,此时时间触发任务通讯模块通过通讯通道,将发送数据转移到接收任务的接收端口空间;若接收任务当前处于被抢占状态,证明当前接收任务在本周期中已启动运行且没有结束,因此该数据仍旧保持在发送任务的发送端口空间中,进入步骤五;
步骤五:当接收任务本周期达到静态时间规划表存储模块中定义的执行死限时刻后,时间触发任务通讯模块才通过通讯通道将发送数据传输到接收任务的接收端口中;
发送任务的发送端口空间,以及接收任务的接收端口空间,分别为指向发送缓存和接收缓存的数据指针,当数据由发送端口空间向接收端口空间传输时,实际是发送端口指针与接收端口指针切换内容,从而导致发送端口空间原来指向的发送缓存,变为接收端口空间指向的接收缓存,而接收端口空间原来指向的接收缓存,变为发送端口空间指向的发送缓存;
当接收任务正在获取接收端口空间数据时,会在接收端口指针所指向的内存区域中,置一个数据接收标志,当发送任务在发送过程中,系统发现发送端口指针所指向的内存区域正处于接收状态,则进行发送端口指针与接收端口指针的互换,当指针互换后,发送端口空间仍旧显示处于接收状态,则认为系统发生严重故障。
CN201610665277.5A 2016-08-12 2016-08-12 一种时间触发的嵌入式任务通讯装置与方法 Active CN106598708B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610665277.5A CN106598708B (zh) 2016-08-12 2016-08-12 一种时间触发的嵌入式任务通讯装置与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610665277.5A CN106598708B (zh) 2016-08-12 2016-08-12 一种时间触发的嵌入式任务通讯装置与方法

Publications (2)

Publication Number Publication Date
CN106598708A CN106598708A (zh) 2017-04-26
CN106598708B true CN106598708B (zh) 2020-06-09

Family

ID=58555795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610665277.5A Active CN106598708B (zh) 2016-08-12 2016-08-12 一种时间触发的嵌入式任务通讯装置与方法

Country Status (1)

Country Link
CN (1) CN106598708B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598708B (zh) * 2016-08-12 2020-06-09 中国航空工业集团公司西安飞行自动控制研究所 一种时间触发的嵌入式任务通讯装置与方法
CN109144851B (zh) * 2018-07-24 2022-04-19 中国航空工业集团公司西安飞行自动控制研究所 面向任务死限监控的多余度软件调试装置及调试方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598708A (zh) * 2016-08-12 2017-04-26 中国航空工业集团公司西安飞行自动控制研究所 一种时间触发的嵌入式任务通讯装置与方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9354930B2 (en) * 2014-04-11 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Scheduling of global voltage/frequency scaling switches among asynchronous dataflow dependent processors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598708A (zh) * 2016-08-12 2017-04-26 中国航空工业集团公司西安飞行自动控制研究所 一种时间触发的嵌入式任务通讯装置与方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"一种基于时间触发的安全关键操作系统混合调度策略";淡图南 等;《2013年首届中国航空科学技术大会论文集》;20130925;第1-2节 *
"一种基于最差执行时间分析的安全关键任务调度方法";朱立平 等;《2013年首届中国航空科学大会论文集》;20130925;第1-4.1节 *
朱立平 等."一种基于最差执行时间分析的安全关键任务调度方法".《2013年首届中国航空科学大会论文集》.2013, *

Also Published As

Publication number Publication date
CN106598708A (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
Tămaş-Selicean et al. Design optimization of mixed-criticality real-time embedded systems
US8381230B2 (en) Message passing with queues and channels
Pozo et al. A decomposition approach for SMT-based schedule synthesis for time-triggered networks
Delporte-Gallet et al. Tight failure detection bounds on atomic object implementations
Tanasa et al. Reliability-aware frame packing for the static segment of FlexRay
EP2591416A1 (en) Method for configuring a distributed avionics control system
CN106598708B (zh) 一种时间触发的嵌入式任务通讯装置与方法
CN110134504A (zh) 一种基于有限状态机的操作系统需求层形式化建模方法及装置
Mikida et al. Towards pdes in a message-driven paradigm: A preliminary case study using charm++
Saha et al. Real-time application processing for FPGA-based resilient embedded systems in harsh environments
US8543722B2 (en) Message passing with queues and channels
CN105487992A (zh) 多通道软硬件并行串口通讯处理方法
CN111897635B (zh) 一种基于时间触发的硬实时和软实时的任务调度方法
CN107368498A (zh) 优化MySQL悲观锁的锁等待超时时间的方法及装置
Cadoret et al. Deterministic implementation of periodic-delayed communications and experimentation in aadl
CN104503885A (zh) 一种定时看门装置及系统
Ogawa et al. Efficient approach to ensure temporal determinism in automotive control systems
CN101604270A (zh) 基于vxworks操作系统的ARINC429通信冗余方法
Shan et al. Formal verification of lunar rover control software using UPPAAL
CN103677849B (zh) 一种嵌入式软件可信性保障方法
Serino et al. Real-time operating systems for cyber-physical systems: Current status and future research
Zhou et al. A Light-weight multilevel recoverable container for event-driven system: A self-healing CPS approach
Cofer et al. Applications of model checking at Honeywell Laboratories
US10140150B2 (en) Thread diversion awaiting log call return
Jaouën et al. PDP 4ps: Periodic-delayed protocol for partitioned systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant