一种多时钟多任务并行实时仿真系统及方法与流程

文档序号:11199051阅读:473来源:国知局
一种多时钟多任务并行实时仿真系统及方法与流程

本发明属于工程系统实时仿真技术领域,其涉及一种实时仿真系统,具体涉及一种多时钟多任务并行实时仿真系统及方法。



背景技术:

实时仿真系统是控制技术实现算法模拟、进行被控对象建模以及完成控制系统闭环仿真的关键。它要求仿真任务的时间比例和真实系统的时间比例保持一致,因此可以实时稳定的接收动态输入以及发送动态输出,实时仿真系统还可以接入实物系统,从而避免了复杂系统建模造成的误差,进一步保证了仿真的实时性,因此它在控制系统的分析、研究和设计中得到了广泛的应用。

随着控制系统中被控对象的日趋复杂,多任务仿真的难度也日益增加。仿真环境中的节点越多,规模越大,所需要的仿真任务也就越多,各个仿真任务直接的异构性差异会越来越大。主要表现在多任务仿真在同周期任务的基础上,逐渐增加了异周期任务的要求,在多任务同源时钟的基础上,也逐渐增加了异构时钟的要求。而传统的仿真机,对于时钟管理的控制集中在解决同源同周期的多任务要求,无法解决对于同源异周期的多时钟多任务仿真,以及异构时钟的多时钟多任务仿真要求。

在多任务仿真中,大量的仿真任务被建立,仿真任务的接口、调度机制没有进行有效合适的管理,影响仿真引擎的执行效率和仿真任务的开发效率。在传统仿真机中,系统调度、时钟管理以及仿真任务的执行往往是混在一起,这样既不利于开发工作清晰透明、仿真任务的移植和维护,更加无法剥离仿真任务对特定仿真系统的设计依赖和仿真任务对特定时钟源的设计依赖。

随着分布式应用环境的愈发成熟,总线通信技术得到了更多的关注和应用,总线可以是各个仿真任务和仿真节点数据交换的通道。通过总线完成各个仿真任务的时钟调度,不仅可以节约现有的时钟资源,更可以利用总线数据驱动,优化仿真任务的设计,传统仿真机无法在数据总线中获取总线数据驱动作为仿真时钟,这就导致传统的仿真机对分布式应用的局限性大大增加。

随着控制系统产业的飞速发展,仿真任务的研制,将会有快速设计、快速仿真、快速验证的的设计要求。这就意味着对仿真设备资源的需要有更高的利用率。传统的仿真设备只能向一组仿真任务提供硬件资源和系统资源的支持,无法实现仿真系统设备的复用。

中国授权公告号为cn102929158b的发明专利,公开了一种多核多模型并行分布式实时仿真系统,其描述了一种提供任务调度的办法,在多核处理器上完成多模型的仿真功能,但无法对多时钟应用进行仿真。

中国授权公告号为cn103136032b的发明专利,公开了一种多核体系并行仿真系统,其描述了以快速的搭建出针对定硬件环境的仿真模型,从而加速了对多核体系静态调度算法的验证,但并没有对多任务应用和多时钟应用提供仿真支持。



技术实现要素:

本发明的目的是提供一种多时钟多任务并行实时仿真系统及方法,该系统解决了现有技术不能够进行多时钟多任务的仿真的问题,能够按多任务应用需求,形成同源时钟驱动和异构时钟驱动,以此来驱动多任务的仿真需求。

为了达到上述目的,本发明提供了一种多时钟多任务并行实时仿真系统,该系统包含:时钟域控制模块,其用于获取若干脉冲时钟源,并向仿真控制模块输出若干时钟激励信息;仿真控制模块,其用于通过时钟调度机制,对所述的时钟激励信息进行分配和管控,向若干仿真任务发送时钟调度驱动信号,同时对仿真任务的数据进行实时监控;硬件接口映射模块,其用于以仿真任务语言的形式描述硬件接口的操作;以及仿真任务模块,其用于在所述的仿真控制模块的时钟调度驱动信号的驱动下,进行一次独立运算,并通过所述的硬件接口映射模块,完成一次相应的硬件接口操作。

其中,所述的时钟激励信息包含:同源时钟激励信息和/或异构时钟激励信息。

其中,所述的仿真任务包含:若干同步性任务和/或若干异步性任务。

所述的时钟域控制模块包含:脉冲时钟获取子模块,其用于在脉冲时钟源中进行时钟信号的采集,将采集到的脉冲时钟源进行中断委托,发送给时钟激励子模块;总线时钟获取子模块,其用于在总线中进行总线信号的采集,将采集到的总线数据信号进行数据驱动,并进行中断委托,发送给时钟激励子模块;时钟激励子模块,其用于接收所述的脉冲时钟获取子模块和总线时钟获取子模块的中断委托,当接收到时脉冲时钟信号或总线数据驱动信号时,时钟激励子模块将产生时钟激励信号,并发送给所述的仿真控制模块。

所述的仿真控制模块包含:资源配置子模块,其用于将若干仿真任务的资源配置信息,均发送给仿真任务集中间层子模块,同时将若干仿真任务的时钟信息均发送给时钟调度子模块;时钟调度子模块,其用于从所述的时钟域控制模块中获取时钟激励信息;仿真任务集中间层子模块,其用于对仿真任务的基本属性进行定义,并根据资源配置信息和时钟激励信息,实例化若干仿真任务,形成仿真任务集。

所述的仿真任务的基本属性包含:仿真任务所运行的处理器信息、硬件环境、监控总线环境,以及时钟激励信息接口。

所述的仿真控制模块还包含:仿真任务集调度子模块,其用于挂起仿真任务模块,当时钟激励触发时,在仿真任务模块接收到对应的时钟激励信息后,向仿真任务模块发送对应的仿真任务的时钟调度驱动信号。

所述的仿真控制模块还包含:数据发现子模块,其用于在监控总线中监听数据请求信息,并在所述的仿真任务集调度子模块中通过任务间通信的队列,完成对所需数据的提取;数据同传子模块,其用于将所述的数据发现子模块中的数据内容通过监控总线向仿真系统动态监控上位机发送,同时还接收仿真系统动态监控上位机的修改仿真数据指令,对对应的仿真任务模块的数据进行修改;以及数据存储子模块,其用于将所述的数据发现子模块中的数据内容、仿真系统动态监控上位机的修改仿真数据指令和数据同传子模块的操作内容进行本地存储。

所述的硬件接口映射模块规范的硬件操作包括:模拟量采集操作、模拟量输出操作、i/o接口读写操作、任务间内存交换操作、总线数据读写操作、反射内存数据读写操作和网络通信协议读写操作;所述的总线数据读写操作包括:can总线数据读写操作和1553b总线数据读写操作。

本发明还提供了一种同源异周期和/或异构多任务时钟调度的方法,该方法采用所述的多时钟多任务并行实时仿真系统,其包含:

第一步:在资源配置子模块中部署各同步性或/和异步性任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第二步:在仿真系统的初始化过程中,时钟调度子模块加载资源配置子模块,获取同步性或/和异步性任务任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第三步:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;

第四步:在进行同步性任务时,当时钟激励触发时,标记当前状态时钟t并进行累加,遍历同步性任务的时钟信息周期{t_1,t_2,...ti,…,t_n},判断前状态时钟t是否满足t==t_i,满足该条件时触发对应任务m_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励;在进行异步性任务时,当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。

本发明还提供了一种同源异周期和/或异构多任务时钟调度的时序信号响应方法,该方法通过根据所述的同源异周期和/或异构多任务时钟调度的方法,触发时钟激励,当当前时刻ti=ti时,触发第i个时钟调度驱动信号,使第i个同步性或/和异步性任务响应执行。

在进行n个同步性任务时,同源时钟的基频为t0,当ti=i*t0,0<i≤n,且为自然数时,在ti时刻时,对于第p个同步性任务,0<p≤n且为自然数,当i能被整除p时,第p个时钟调度驱动信号触发,第p个同步性任务响应执行;当i不能被整除p时,第p个时钟调度驱动信号不触发;当i=0时,在t0时刻时,与n个同步性任务相应的n个时钟调度驱动信号均触发,n个同步性任务均响应执行。

在进行n个异步性任务时,每个异步性任务相应的时钟调度驱动信号的触发时间隔开,使各个异步性任务分别响应执行,各个异步性任务没有公共同步节点。

本发明的多时钟多任务并行实时仿真系统及方法,解决了现有技术不能够进行多时钟多任务的仿真的问题,具有以下优点:

(1)本发明的仿真系统通过对采集的时钟激励信息进行分配和调度,按多任务应用需求,形成同源时钟驱动和异构时钟驱动,以此来驱动多任务的仿真需求;

(2)本发明通过仿真任务集中间层子模块将各个仿真任务的差异性资源(cpu、硬件环境、监控总线环境以及时钟激励信息)和仿真任务本身进行抽离,使仿真任务的设计、维护更加灵活和独立;

(3)本发明以总线数据驱动为仿真时钟的办法,扩展了仿真系统的多时钟应用,和分布式总线应用场景;

(4)本发明能够进行异构时钟多任务时钟调度,在硬件资源不冲突的条件下,多任务并行运行没有关联特性,使仿真系统可以对多个仿真任务展开应用,增加了仿真系统设备的复用性,提高了设备的利用率;

(5)本发明为多单位编队类型的实时仿真的应用提供了仿真系统,本发明的系统既可以作为多单位的集合体进行编队类型的仿真,也可以作为单位个体参与到多单位的集合中进行编队类型的仿真。当作为多单位的集合体时,各个单位作为本仿真系统中的同步性任务应用,受同源时钟控制;当作为单位个体时,本仿真系统为编队系统中的其中一个同步性任务应用,受编队系统中的同源时钟控制。

附图说明

图1为本发明实施例1的多时钟多任务并行实时仿真系统的结构示意图。

图2为本发明实施例1的同源异周期多任务时钟调度的流程图。

图3为本发明实施例1的同源异周期多任务时钟调度的时序图。

图4为本发明实施例2的异构时钟多任务时钟调度的流程图。

图5为本发明实施例2的异构时钟多任务时钟调度的时序图。

具体实施方式

以下结合附图和实施例对本发明的技术方案做进一步的说明。

本发明的多时钟多任务并行实时仿真系统,该系统包含:时钟域控制模块,其用于获取若干脉冲时钟源,并向仿真控制模块输出若干时钟激励信息;仿真控制模块,其用于对时钟激励信息进行分配和管控,向若干仿真任务发送时钟激励信息,同时对仿真任务的数据进行实时监控;硬件接口映射模块,其用于以仿真任务语言的形式描述硬件接口的操作;以及仿真任务模块,其用于在仿真控制模块的时钟激励信息的驱动下,完成一次独立运算,并通过硬件接口映射模块,完成一次相应的硬件接口操作。

上述时钟激励信息包含:同源时钟激励信息和/或异构时钟激励信息。仿真任务包含:若干同步性任务和/或若干异步性任务。

上述时钟域控制模块包含:脉冲时钟获取子模块,其用于在脉冲时钟源中进行时钟信号的采集,将采集到的脉冲时钟源进行中断委托,发送给时钟激励子模块;总线时钟获取子模块,其用于在总线中进行总线信号的采集,将采集到的总线数据信号进行数据驱动,并进行中断委托,发送给时钟激励子模块;时钟激励子模块,其用于接收脉冲时钟获取子模块和总线时钟获取子模块的中断委托,当接收到时脉冲时钟信号或总线数据驱动信号时,时钟激励子模块将产生时钟激励信号,并发送给仿真控制模块。

上述仿真控制模块包含:资源配置子模块,其用于将若干仿真任务的资源配置信息,均发送给仿真任务集中间层子模块,同时将若干仿真任务的时钟信息均发送给时钟调度子模块;时钟调度子模块,其用于从时钟域控制模块中获取时钟激励信息;仿真任务集中间层子模块,其用于对仿真任务的基本属性进行定义,并根据资源配置信息和时钟激励信息,实例化若干仿真任务,形成仿真任务集。

上述仿真任务的基本属性包含:仿真任务所运行的处理器信息、硬件环境、监控总线环境,以及时钟激励信息接口。

上述仿真控制模块还包含:仿真任务集调度子模块,其用于挂起仿真任务模块,当时钟激励触发时,在仿真任务模块接收到对应的时钟激励信息后,向仿真任务模块发送对应的仿真任务的时钟调度驱动信号。

上述仿真控制模块还包含:数据发现子模块,其用于在监控总线中监听数据请求信息,并在仿真任务集调度子模块中通过任务间通信的队列,完成对所需数据的提取;数据同传子模块,其用于将数据发现子模块中的数据内容通过监控总线向仿真系统动态监控上位机发送,同时还接收仿真系统动态监控上位机的修改仿真数据指令,对对应的仿真任务模块的数据进行修改;以及数据存储子模块,其用于将数据发现子模块中的数据内容、仿真系统动态监控上位机的修改仿真数据指令和数据同传子模块的操作内容进行本地存储。

上述硬件接口映射模块规范的硬件操作还包括(但不限于):模拟量采集操作、模拟量输出操作、i/o接口读写操作、任务间内存交换操作、总线数据读写操作、反射内存数据读写操作和网络通信协议读写操作。上述硬件接口映射模块规范的硬件操作还可以是其它可扩展的自定义硬件接口操作。

上述总线数据读写操作包括:can总线数据读写操作和1553b总线数据读写操作。

本发明的一种同源异周期和/或异构多任务时钟调度的方法,该方法采用多时钟多任务并行实时仿真系统,其包含:

第一步:在资源配置子模块中部署各同步性或/和异步性任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第二步:在仿真系统的初始化过程中,时钟调度子模块加载资源配置子模块,获取同步性或/和异步性任务任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第三步:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;

第四步:在进行同步性任务时,当时钟激励触发时,标记当前状态时钟t并进行累加,遍历同步性任务的时钟信息周期{t_1,t_2,...ti,…,t_n},判断前状态时钟t是否满足t==t_i,满足该条件时触发对应任务m_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励;在进行异步性任务时,当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。

本发明的一种同源异周期和/或异构多任务时钟调度的时序信号响应方法,该方法通过根据同源异周期和/或异构多任务时钟调度的方法,触发时钟激励,当当前时刻ti=ti时,触发第i个时钟调度驱动信号,使第i个同步性或/和异步性任务响应执行。

在进行n个同步性任务时,同源时钟的基频为t0,当ti=i*t0,0<i≤n,且为自然数时,在ti时刻时,对于第p个同步性任务,0<p≤n且为自然数,当i能被整除p时,第p个时钟调度驱动信号触发,第p个同步性任务响应执行;当i不能被整除p时,第p个时钟调度驱动信号不触发;当i=0时,在t0时刻时,与n个同步性任务相应的n个时钟调度驱动信号均触发,n个同步性任务均响应执行。

在进行n个异步性任务时,每个异步性任务相应的时钟调度驱动信号的触发时间隔开,使各个异步性任务分别响应执行,各个异步性任务没有公共同步节点。

实施例1

如图1所示,为本发明实施例1的多时钟多任务并行实时仿真系统的结构示意图,该系统包含:仿真控制模块1、时钟域控制模块2、仿真任务模块3和硬件接口映射模块4。

其中,仿真控制模块1包含:资源配置子模块101、仿真任务集调度子模块102、仿真任务集中间层子模块103、时钟调度子模块104、数据发现子模块105、数据同传子模块106和数据存储子模块106。

其中,时钟域控制模块2包含:脉冲时钟获取子模块202、总线时钟获取子模块203和时钟激励子模块201。

一种同源异周期多任务时钟调度的方法,如图2所示,为本发明实施例1的同源异周期多任务时钟调度的流程图,进行同源异周期多任务时钟调度驱动时,方法具体如下:

第一步s1:在资源配置子模块101中部署各同步性任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第二步s2:时钟调度子模块104在仿真系统的初始化过程中,进行资源配置子模块101的加载,获取同步性任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第三步s3:在时钟激励子模块中挂起时钟激励,等待时钟激励触发;

第四步s4:当时钟激励触发时,标记当前状态时钟t进行累加,遍历同步性任务的时钟信息周期{t_1,t_2,...ti,…,t_n},判断前状态时钟t是否满足t==t_i,满足该条件时触发对应任务m_i的时钟调度驱动信号,否则直到遍历完成,等待下一个时钟激励。

一种同源异周期多任务时钟调度的时序信号响应方法,如图3所示,为本发明实施例1的同源异周期多任务时钟调度的时序图,本实施例中的仿真系统的仿真任务中含有:三个同步性任务,分别为同步性任务1a(第1个同步性任务)、同步性任务2a(第2个同步性任务)和同步性任务3a(第3个同步性任务)。同步性任务1a的仿真周期(即时钟信息周期)是t1,同步性任务2a的仿真周期(即时钟信息周期)是t2,同步性任务3a的仿真周期(即时钟信息周期)是t3。本系统的同源时钟的基频是t0。其中,t1=t0,t2=2t0,t3=3t0。同源异周期多任务时钟调度启动后,不同周期的任务响应情况具体如下:

(1)当t0(t0=0)触发时,时钟调度驱动信号1b(第1个时钟调度驱动信号)触发,同步性任务1a响应执行;时钟调度驱动信号2b(第2个时钟调度驱动信号)触发,同步性任务2a响应执行;时钟调度驱动信号3b(第3个时钟调度驱动信号)触发,同步性任务3a响应执行;

(2)当t1(t1=t1)触发时,时钟调度驱动信号1b触发,同步性任务1a响应执行;时钟调度驱动信号2b不触发,时钟调度驱动信号3b不触发;

(3)当t2(t2=t2)触发时,时钟调度驱动信号1b触发,同步性任务1a响应执行;时钟调度驱动信号2b触发,同步性任务2a响应执行;时钟调度驱动信号3b不触发;

(4)当t3(t3=t3)触发时,时钟调度驱动信号1b触发,同步性任务1a响应执行;时钟调度驱动信号2b不触发;时钟调度驱动信号3b触发,同步性任务3a响应执行;

(5)当t4(t4=4t0)触发时,时钟调度驱动信号1b触发,同步性任务1a响应执行;时钟调度驱动信号2b触发,同步性任务2a响应执行;时钟调度驱动信号3b不触发;

(6)当t5(t5=5t0)触发时,时钟调度驱动信号1b触发,同步性任务1a响应执行;时钟调度驱动信号2b不触发;时钟调度驱动信号3b不触发;

(7)当t6(t6=6t0)触发时,时钟调度驱动信号1b触发,同步性任务1响应执行;时钟调度驱动信号2b触发,同步性任务2a响应执行;时钟调度驱动信号3b触发,同步性任务3a响应执行。

在上述同源异周期多任务时钟调度中t0和t6是该仿真任务集的同步点。

实施例2

一种异构多任务时钟调度的方法,如图4所示,为本发明实施例2的异构时钟多任务时钟调度的流程图,进行异构时钟多任务时钟调度驱动时,方法具体如下:

第一步s1’:在资源配置子模块101中部署有各异步性任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n};

第二步s2’:时钟调度子模块104在仿真系统的初始化过程中,进行资源配置子模块101的加载,获取异步性任务{m_1,m_2,...mi,…,m_n}的时钟信息周期{t_1,t_2,...ti,…,t_n}

第三步s3’:在时钟激励子模块中挂起每一个异构时钟激励,等待时钟激励触发;

第四步s4’:当异构时钟i的时钟激励i触发时,时钟调度驱动信号i触发,异步性任务i响应执行,等待其余时钟激励触发。

一种异构多任务时钟调度的时序信号响应方法,如图5所示,为本发明实施例2的异构时钟多任务时钟调度的时序图,本实施例中的仿真系统的仿真任务中还含有:两个异步性任务,分别为异步性任务1a’(第1个异步性任务)和异步性任务2a’(第2个异步性任务)。异步性任务1a’的仿真周期(即时钟信息周期)是t1,异步性任务2a’的仿真周期(即时钟信息周期)是t2。异构时钟多任务时钟调度启动后,不同周期的任务响应情况具体如下:

(1)当t0、t1、t2、t3、t4、t5、t6触发时,时钟调度驱动信号1b’(第1个时钟调度驱动信号)触发,异步性任务1a’响应执行;

(2)当t10、t11、t12、t13、触发时,t10较t0慢半个周期,t11较t2慢半个周期,t12较t4慢半个周期,t13较t6慢半个周期,时钟调度驱动信号2b’(第2个时钟调度驱动信号)触发,异步性任务2a’响应执行;

上述异步性任务1和异步性任务2没有公共同步节点。

综上所述,本发明的多时钟多任务并行实时仿真系统及方法,该系统能够按多任务应用需求,形成同源时钟驱动和异构时钟驱动,从而满足多时钟多任务的并行仿真要求。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1