基于多任务机制的分布式遥测采集方法和系统与流程

文档序号:20767815发布日期:2020-05-15 19:13阅读:113来源:国知局
基于多任务机制的分布式遥测采集方法和系统与流程
本发明涉及星载电子设备领域,具体地,涉及一种基于多任务机制的分布式遥测采集方法和系统。
背景技术
:星载计算机作为整星遥测处理核心,完成整星多信源用户遥测数据采集、存储、组帧、下行等功能,通过对各路遥测数据的统一处理,实现星地遥测的实时传输。随着卫星功能复杂度的提升,信源构成增多,各信源遥测实现方式不一,遥测数据类型多样,传输需求各不相同,与星载计算机之间的通信机制无法统一,为整星遥测采集的实施带来难度。目前,在航天及电子领域中,遥测数据的采集方式专用性强,且多为介绍遥测数据采集系统的具体实现,重点分析硬件层面的设计,如专利文献cn102163365a公开一种遥测数据采集方法,介绍了一种中心计算机和多台配置在远方的数据采集器以无线方式通信的计算机遥测数据采集系统;专利文献cn105607520a公开一种通用可扩展的航天器遥测采集控制装置,介绍了一种可扩展的遥测采集电路设计方法;专利文献cn104267622a公开一种基于任务及时间的卫星遥测采集装置及其采集方法,为卫星系统的遥测数据和实时任务以及时间建立对应关系等,这些技术无法解决多种遥测信源的分类采集问题,且多为单任务设计,无法满足多信源遥测采集并发的实时性要求。卫星采用符合ccsds标准的分包遥测方案,以分包方式进行数据分层动态管理,规定各信源以统一的遥测格式组织本系统内遥测,减少信源多样性造成的遥测不规范性,增加了遥测设计的灵活性。同时,星载计算机多采用高可靠、硬实时的多任务架构体系,以定时器中断或外部中断驱动任务运行,每个任务可执行不同频度要求的业务。基于此,根据信源与星载计算机通信方式,将同一通信方式下的信源按同构化处理,视作一类信源。利用星载计算机多任务机制特性,改变传统单一任务采集所有遥测的方式,采用一一对应采集的方式,即一个任务采集一类信源遥测数据,通过添加任务的形式增加一类信源,通过删减任务的形式移除一类信源,将离散化的遥测采集方法转变为集约化分布处理的遥测采集方法。通过星载计算机中的保护变量实现任务锁机制,为每类信源分配一把任务锁,以此解决任务间冲突可能。遥测采集操作由多任务并行执行,遥测采集结果由主任务集中处理,形成异构遥测采集的分布式结构。技术实现要素:针对现有技术中的缺陷,本发明的目的是提供一种基于多任务机制的分布式遥测采集系统和方法。根据本发明提供的一种基于多任务机制的分布式遥测采集系统,包括主任务、信源任务、信源任务锁、信源遥测缓存池,信源任务、信源任务锁、信源遥测缓存池作为一组信源构件存在;主任务开启遥测处理,通过信源任务锁与信源任务交互;每个信源任务具备一个信源任务锁,由信源任务发出遥测采集指令,每个信源任务采集同一类型多个信源的遥测,并将采集得到的遥测数据存放到所述信源任务对应的信源遥测缓存池,由主任务按着设定周期统一处理所有信源遥测缓存池中的数据。优选地,所述主任务按着设定周期执行,根据信源任务列表对信源任务进行遍历执行,通过信源任务锁与每个信源任务建立交互关系,所述信源任务持有该信源任务锁,将采集得到的遥测数据写入对应的信源遥测缓存池,写入完成之后释放该信源任务锁,由主任务持有该信源任务锁,对信源遥测缓存池作镜像处理,处理完成之后释放该信源任务锁。优选地,所述信源任务开启遥测采集,根据与信源任务关联的信源列表进行遍历执行,对信源列表中的一个信源发出遥测采集启动命令,等待设定时间后,取回该遥测采集的遥测数据,信源列表遍历完毕之后,将遥测数据写入对应的信源遥测缓存池。优选地,所述主任务与多组信源构件进行交互,进行多个信源任务并行执行,每个信源任务设置对应的信源任务锁,以避免信源任务执行冲突。优选地,所述主任务对所有信源遥测缓存池中的数据进行集中处理,形成异构分布式的遥测采集。优选地,所述信源任务锁设计忙、闲两种状态,只有处于闲状态时可被获取,获取后立刻置为忙状态,释放后恢复闲状态。优选地,所述同一类型多个信源的遥测是依据通信关系识别同一类信源,当出现新的信源时,识别其与采集计算机之间的通信关系,若通信关系已存在,则加入现有信源任务的信源列表;否则,则新增信源任务,新增信源任务锁和信源遥测缓存区,将该信源添加的新增信源任务的信源列表中。优选地,通过增加或删除一组信源构件的形式,进行遥测采集的扩展。根据本发明提供的一种基于多任务机制的分布式遥测采集方法,包括主任务、信源任务、信源任务锁、信源遥测缓存池,信源任务、信源任务锁、信源遥测缓存池作为一组信源构件存在;主任务开启遥测处理,通过信源任务锁与信源任务交互;每个信源任务具备一个信源任务锁,由信源任务发出遥测采集指令,每个信源任务采集同一类型多个信源的遥测,并将采集得到的遥测数据存放到所述信源任务对应的信源遥测缓存池,由主任务按着设定周期统一处理所有信源遥测缓存池中的数据。优选地,所述的基于多任务机制的分布式遥测采集方法,包括以下步骤:步骤s1:主任务启动运行,按设定周期遍历信源遥测缓存池;步骤s2:主任务尝试获取信源遥测缓存池所对应的信源任务锁;步骤s3:主任务成功获取信源任务锁后,将信源任务锁对应的信源遥测缓存池中的数据读出并拷贝镜像,执行遥测后处理;若不成功,则等待至信源任务锁成功获取,读操作完成后,释放信源任务锁;步骤s4:重复步骤s2~步骤s3,完成所有信源遥测缓存池的遥测后处理;步骤s5:信源任务由定时器或外部中断启动,并行运行;步骤s6:信源任务遍历该信源任务的信源列表,并在遍历过程中,依次向信源列表内的信源发送遥测采集启动命令;步骤s7:信源收到启动命令后,准备遥测数据,将准备好的遥测数据写入自身缓存,等待信源任务取走;步骤s8:信源任务等待设定时间后,再次遍历信源列表,依次采集每个信源的遥测数据,完成本次采集;步骤s9:信源任务尝试获取信源任务锁,成功获取后向信源遥测缓存池中写入本次采集数据;若不成功,则等待成功获取后再执行写入操作,写入操作完成后,释放信源任务锁;步骤s10:重复步骤s6~步骤s9,持续更新所有信源遥测。与现有技术相比,本发明具有如下的有益效果:1、本发明利用星载计算机多任务机制特性,改变传统单一任务采集所有遥测的方式,采用一一对应采集的方式,即一个任务采集一类信源遥测数据,通过添加任务的形式增加一类信源,通过删减任务的形式移除一类信源,将离散化的遥测采集方法转变为集约化分布处理的遥测采集;2、本发明通过星载计算机中的保护变量实现任务锁机制,为每类信源分配一把任务锁,以此解决任务间冲突可能;遥测采集操作由多任务并行执行,遥测采集结果由主任务集中处理,形成异构遥测采集的分布式结构;3、本发明提供基于多任务机制的分布式遥测采集结构,可灵活适应不同航天器的遥测采集需求,实现分布式采集、集中式处理的遥测采集结构。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1为分布式遥测采集的结构示意图;图2为分布式遥测采集中主任务的工作过程示意图;图3为分布式遥测采集中信源任务的工作过程示意图。具体实施方式下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。目前,卫星采用符合ccsds标准的分包遥测方案,以分包方式进行数据分层动态管理,规定各信源以统一的遥测格式组织本系统内遥测,减少信源多样性造成的遥测不规范性,增加了遥测设计的灵活性。同时,星载计算机多采用高可靠、硬实时的多任务架构体系,以定时器中断或外部中断驱动任务运行,每个任务可执行不同频度要求的业务。基于此,根据信源与星载计算机通信方式,将同一通信方式下的信源按同构化处理,视作一类信源。利用星载计算机多任务机制特性,改变传统单一任务采集所有遥测的方式,采用一一对应采集的方式,即一个任务采集一类信源遥测数据,通过添加任务的形式增加一类信源,通过删减任务的形式移除一类信源,将离散化的遥测采集方法转变为集约化分布处理的遥测采集方法。通过星载计算机中的保护变量实现任务锁机制,为每类信源分配一把任务锁,以此解决任务间冲突可能。遥测采集操作由多任务并行执行,遥测采集结果由主任务集中处理,形成异构遥测采集的分布式结构。如图1所示,本发明提出的基于多任务机制的分布式遥测采集,由主任务、信源任务、信源任务锁、信源遥测缓存池构成,主任务负责遥测处理,信源任务负责遥测采集,主任务与信源任务之间通过信源任务锁和信源遥测缓存池进行交互。每个信源任务负责采集一类信源遥测,具备一个信源任务锁和一个遥测缓存池。当出现新信源时,识别其与采集计算机之间的通信关系,若已存在,则加入现有信源任务的信源列表;否则,新增信源任务,新增信源任务锁与信源遥测缓存区,将该信源添加到新增信源任务的信源列表。主任务与信源任务对该信源任务对应的信源遥测缓存池进行读写操作时,都必须持有对应的信源任务锁。当只有一类信源时,信源任务可用作主任务。主任务定周期执行,信源任务可定周期执行或触发执行。信源任务、信源任务锁、信源遥测缓存池为一组构件,代表同一类信源的所有遥测采集要素,本发明提出的分布式遥测采集结构中可出现一组或多组构件,以代表一类或多类遥测信源。通过增加或删除构件组的形式,实现该遥测采集结构的可扩展性,以适应不同航天器遥测采集需求。主任务可用作一类信源任务,按固定周期执行。当且仅当本发明所提供的结构内仅有一个任务时,信源任务可用作主任务。主任务用作信源任务时,该信源任务锁可取消,该信源遥测缓存池不可取消。信源任务通过信源任务锁与主任务发生交互,两者成功建立交互关系后,信源任务持有该信源任务锁,将该任务采集到的遥测写入该信源遥测缓存池中,写入操作完成后释放该信源任务锁。主任务与信源任务通过信源任务锁获得对信源遥测缓存区的操作权,只有持有该缓存区对应的任务锁后,方可对缓存区进行读写操作。主任务按一定周期统一处理所有信源遥测缓存池数据,处理过程中依次持有被处理信源任务锁,处理完该信源遥测缓存池则释放该信源任务锁。所有对信源遥测缓存池的写入与处理操作必须在持有信源任务锁的情况下进行。分布式遥测采集结构实施在星载计算机上,采集由星载计算机,导航接收机、姿轨控接口单元、电源下位机、1553b总线,热控服务单元、功率驱动单元、rs22总线组成实施。星载计算机与导航接收机、姿轨控接口单元、电源下位机通过1553b总线连接,其中星载计算机作为总线控制器(bc),导航接收机和电源下位机为远程终端(rt),接受bc调度控制;bc与rt之间通过mil-std-1553b协议规定的命令字、数据字和状态字通信,采用消息块结构。因此,星载计算机将所有rt视作一类信源,分配信源任务b1553_task,分配信源缓存区b1553_tmbuff和信源任务锁b1553_lock,信源列表结构如表1所示,b1553_task依据该表对所有rt遍历采集遥测。其中,信源号1568表示导航接收机实时遥测,信源号1601表示姿轨控接口单元实时遥测,信源号1648表示电源管理下位机实时遥测。表1b1553_task信源任务信源列表定义同时,星载计算机与热控服务单元、功率驱动单元通过rs22总线连接,其中星载计算机作为采集发起端,热控服务单元和功率驱动单元为采集从端,双方通过规定的串口通信协议进行通信。因此,星载计算机将所有从端视作一类信源,分配信源任务rs422_task,分配信源缓存区rs422_tmbuff和信源任务锁rs422_lock,信源列表结构如表2所示,rs422_task依据该表对所有从端遍历采集遥测。其中,信源号192表示热控服务单元实时遥测,信源号128表示功率驱动单元实时遥测。表2rs422_task信源任务信源列表定义信源号遥测名称标识符串口通道号消息字节数192热控服务单元实时遥测rk_tm_id364128功率驱动单元实时遥测edr_tm_id2512星载计算机提供主任务tm_task,用于遥测采集的启动和处理。tm_task为信源任务b1553_task分配镜像缓存区b1553_tmpool,大小、结构与b1553_tmbuff完全一致;为信源任务rs422_task分配镜像缓存区rs422_tmpool,大小、结构与rs422_tmbuff完全一致。信源任务锁设计忙、闲两种状态,只有处于闲状态时可被获取,获取后立刻置为忙状态,释放后恢复闲状态。状态表征如表3所示,设计值为0表示信源任务锁状态为空闲,设计值为1表示信源任务锁忙。表3信源任务锁忙闲状态定义设计值信源任务锁状态0空闲1忙分布式遥测采集流程如图2所示,包括如下步骤:(1)主任务tm_task启动运行,按一定周期遍历信源遥测缓存池,包括信源遥测缓存池b1553_tmbuff和信源遥测缓存池rs422_tmbuff;(2)主任务尝试获取信源遥测缓存池b1553_tmbuff所对应的信源任务锁b1553_lock;(3)主任务成功获取信源任务锁b1553_lock后,将信源遥测缓存池b1553_tmbuff中的数据读出并拷贝镜像,执行遥测后处理;若不成功,则等待至信源任务锁b1553_lock成功获取。读操作完成后,释放信源任务锁b1553_lock;(4)重复步骤(2)~(3),完成信源遥测缓存池rs422_tmbuff的遥测处理;(5)信源任务b1553_task由定时器启动,信源任务rs422_task由外部中断启动,并行运行;(6)信源任务b1553_task遍历该任务的信源列表(1~s1),并在遍历过程中,依次向列表内信源发送遥测采集启动命令,列表内信源包括导航接收机、姿轨控接口单元、电源下位机;(7)各信源收到启动命令后,准备遥测数据,将准备好的遥测数据写入自身缓存,等待信源任务b1553_task取走;(8)信源任务b1553_task等待一段时间后,再次遍历信源列表,依次采集每个信源的遥测数据,完成本次采集;(9)信源任务b1553_task尝试获取信源任务锁b1553_lock,成功获取后向信源遥测缓存池b1553_tmbuff中写入本次采集数据;若不成功,则等待成功获取后再执行写入操作。写入操作完成后,释放信源任务锁b1553_lock;(10)重复步骤(6)~(9),同理更新信源任务rs422_task的所有信源遥测。信源任务、信源任务锁、信源遥测缓存池一一对应,当且仅当本发明所提供的结构内仅有一个任务时,主任务可用作信源任务。出现新增信源x时,识别x与星载计算机之间的通信关系r,若已存在通过r确定的信源任务t,则将x添加到t的信源列表中;若不存在,则识别为新的通信关系r’,增加相应的信源任务t’,为新的信源任务t’分配一组新的构件(信源任务t’,信源任务锁l’,信源遥测缓存池p’),同时将x列为t’信源列表中一项。优选地,在上述过程中,主任务为tm_task由500ms定时器触发,每周期处理一次;信源任务b1553_task的信源准备好自身遥测数据写入子地址t_tm等待b1553_task取走。在本实施过程中,星载计算机(bc)与rt之间采用矢量字位作为握手机制,bc向rt发送“查询矢量字”命令,作为遥测采集启动标识,rt收到命令后查询自身是否已准备好遥测数据,若准备完毕,则置矢量字位,bc查到后进行采集动作,否则跳过该rt,不进行相关采集动作。信源任务rs422_task则按周期无条件取走信源的缓存数据。本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1