技术领域
[0001] 本
发明涉及卫
星系统仿真技术领域,特别涉及一种卫星外设接口仿真系统及方法。
背景技术
[0002] 随着信息技术和空间技术的迅猛发展,卫星的复杂程度和新技术含量不断提高,研制周期进一步缩短,在轨寿命和可靠性要求更高,造成卫星研制工作难度不断加大,而且目前我国的国民经济建设和国防建设都对卫星的研制工作提出了更高的要求。为满足国家和用户对空间技术的需求,支持国民经济建设,支持国防
加速向信息化转变,我国航天工业部
门面临时间紧、任务重、技术复杂的挑战。因此必须采用更加先进的技术,提高技术和管理能
力,快、好、省地完成卫星的研制工作,最大程度地满足用户的要求。在这种背景下,利用日益成熟系统仿真技术,将在卫星的概念研究、方案论证、设计研发、集成测试和在轨维护等各方面,提升工作效率和准确率。
[0003] 卫星仿真系统,主要由如下四部分组成:芯片模型库、外设接口(如CAN等)模型库、单机模型库和分系统(如动力学等)模型库。外设接口的仿真建模,是卫星仿真系统构建的重要环节之一。卫星使用的外设接口可分为两大类,功能部件:中断、时钟、看门狗等,接口部件:同步串口,异步串口,CAN等。此类
硬件具备固定的功能,如CAN有标准协议规定,因此各厂家的产品一致性较好,但如同步/异步串口和时钟等,各厂家的实现具有较大差异性。因此一个通用的外设接口仿真模型建模方法,能完全兼容有标准协议和无标准协议各种外设接口,实现快速建模,对外设接口模型的可靠性、可重用性、可维护性等显得尤为重要。
[0004] 由于此类硬件在航天中应用量较小,难以像民用那样大批量生产,所以归一化程度低。现在卫星的外设接口仿真,都是面向具体卫星型号中用的外设接口做定向仿真,可重用性差。在外设接口仿真开发过程中,必需改动
软件代码,进而外设接口仿真在卫星系统仿真中,需要投入较大的开发人力和测试人力。进而导致价值极高的卫星高保真故障仿真,难以平台化。面对日益增涨的民用微
小卫星需求,卫星仿真系统难以工具化。故现在缺少一种通用的外设接口仿真模型建模方法,能避免重复开发,实现
质量可靠、开放通用的卫星单机模型。
发明内容
[0005] 本发明的目的在于提供一种卫星外设接口仿真系统及方法,以解决现有的卫星外设接口仿真系统可重用性差的问题。
[0006] 为解决上述技术问题,本发明提供一种卫星外设接口仿真系统,星上软件、CPU仿真软件、所述卫星外设接口仿真系统、单机和动力模
块依次连接,其中:
[0007] 所述星上软件、所述CPU仿真软件和所述动力模块为外部软件,所述单机为固定编码模块;
[0008] 所述卫星外设接口仿真系统按地址实现寄存器相应的读功能和写功能,所述卫星外设接口仿真系统包括可配置模块和配置文件,所述可配置模块包括寄存器地址模块和外设接口其他配置模块,所述寄存器地址模块用于存放寄存器地址,所述外设接口其他配置模块用于存放相关设计参数;
[0009] 所述配置文件分别连接所述寄存器地址模块和所述外设接口其他配置模块,所述配置文件用于按配置对所述寄存器地址模块和所述外设接口其他配置模块进行初始化。
[0010] 可选的,在所述的卫星外设接口仿真系统中,所述外设接口包括功能部件和接口部件,其中:
[0011] 所述功能部件包括中断模块、时钟模块和看门狗模块;
[0012] 所述接口部件包括同步串口模块、异步串口模块和CAN总线。
[0013] 可选的,在所述的卫星外设接口仿真系统中,所述相关设计参数包括地址偏移和波特率。
[0014] 可选的,在所述的卫星外设接口仿真系统中,所述卫星外设接口仿真系统还包括
定时器及功能函数模块,以及寄存器读写函数模块;
[0015] 所述定时器及功能函数模块用于存放功能函数;
[0016] 所述寄存器读写函数模块用于存放寄存器读写函数。
[0017] 本发明还提供一种基于如上所述的卫星外设接口仿真系统的卫星外设接口仿真方法,
[0018] 对所述寄存器地址和所述相关设计参数从外设接口代码中进行剥离,以使所述寄存器地址和所述相关设计参数能够被所述配置文件配置。
[0019] 可选的,在所述的卫星外设接口仿真方法中,将所述接口部件的接收/发送缓存队列从外设接口代码中进行剥离,通过所述配置文件配置;
[0020] 将所述接口部件和所述功能部件的中断从外设接口代码中进行剥离,通过所述配置文件配置。
[0021] 可选的,在所述的卫星外设接口仿真方法中,根据外设接口具有的寄存器个数构建模型,并通过配置文件配置具体寄存器的功能。
[0022] 可选的,在所述的卫星外设接口仿真方法中,将多个寄存器值对应的多种操作从外设接口代码中剥离,通过配置文件配置每个寄存器的读操作内容或写操作内容;
[0023] 用枚举的方式将所有的操作
固化为函数代码,以按配置匹配寄存器值再触发相应的操作函数。
[0024] 可选的,在所述的卫星外设接口仿真方法中,通过所述定时器及功能函数模块实现所述接口部件的波特率功能,以及所述功能部件周期触发功能,通过所述配置文件配置所述接口部件的波特率功能和所述功能部件周期触发功能;
[0025] 以用枚举的方式将所有的功能固化为函数代码,按配置匹配寄存器值再触发卫星外设接口仿真系统其余的功能函数,并通过所述配置文件配置调用。
[0026] 可选的,在所述的卫星外设接口仿真方法中,所述卫星外设接口仿真系统为C++语言的类,所述卫星外设接口仿真系统的读操作、写操作与功能函数为所述类的私有成员函数,所述卫星外设接口仿真系统的寄存器值、接收/发送缓存队列为所述类的私有成员变量;
[0027] 在所述类的对像创建的初始化过程中,根据配置文件中的配置,动态创建相应数据类型的变量,并多次按所述配置文件中配置的初始化变量,直致卫星外设接口仿真系统在所述配置文件中的所有配置项全部完成初始化。
[0028] 在本发明提供的卫星外设接口仿真系统及方法中,通过可配置模块包括寄存器地址模块和外设接口其他配置模块,寄存器地址模块存放寄存器地址,外设接口其他配置模块存放相关设计参数,配置文件按配置对寄存器地址模块和外设接口其他配置模块进行初始化,实现一种外设接口仿真的通用模型建模方法,利用该方法搭建出可重用、可配置的外设接口模型,该方法将解决目前航天级外设接口差异大,缺少标准化,仿真难以通用化的现状,该方法构建出的外设接口模型,可现实外设接口仿真的质量控制和性能指标精确化,该方法构建出的外设接口模型,可用于外设接口功能或性能创新时的
迭代开发与验证,可形成外设接口仿真模型库,解决卫星仿真系统模块化的外设接口仿真模块化问题,可解决外设接口故障仿真的通用化问题。
[0029] 本发明的可配置化外设接口模型,仅在初始化时,需要花费额外的时间做变量的初始化;在后续的仿真的运行过程中,可直接使用相应的变量,模型的运行速率并不受可配置的影响而变慢。
附图说明
[0030] 图1~2是本发明一
实施例的卫星外设接口仿真系统示意图;
[0031] 图3是本发明一实施例的异步串口配置内容示意图;
[0032] 图中所示:10-星上软件;20-CPU仿真软件;30-卫星外设接口仿真系统;31-可配置模块;311-寄存器地址模块;312-外设接口其他配置模块;32-配置文件;33-定时器及功能函数模块;34-寄存器读写函数模块;40-单机;50-动力模块。
具体实施方式
[0033] 以下结合附图和具体实施例对本发明提出的卫星外设接口仿真系统及方法作进一步详细说明。根据下面说明和
权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0034] 本发明的核心思想在于提供一种卫星外设接口仿真系统及方法,以解决现有的卫星外设接口仿真系统可重用性差的问题。
[0035] 为实现上述思想,本发明提供了一种卫星外设接口仿真系统及方法,星上软件、CPU仿真软件、所述卫星外设接口仿真系统、单机和动力模块依次连接,其中:所述星上软件、所述CPU仿真软件和所述动力模块为外部软件,所述单机为固定编码模块;所述外设接口按地址实现寄存器相应的读功能和写功能,所述外设接口包括可配置模块和配置文件,所述可配置模块包括寄存器地址模块和外设接口其他配置模块,所述寄存器地址模块用于存放寄存器地址,所述外设接口其他配置模块用于存放相关设计参数;所述配置文件分别连接所述寄存器地址模块和所述外设接口其他配置模块,所述配置文件用于按配置对所述寄存器地址模块和所述外设接口其他配置模块进行初始化。
[0036] <实施例一>
[0037] 本实施例提供一种卫星外设接口仿真系统,如图1所示,星上软件10、CPU仿真软件20、所述卫星外设接口仿真系统30、单机40和动力模块50依次连接,其中:所述星上软件10、所述CPU仿真软件20和所述动力模块50为外部软件,所述单机40为固定编码模块;所述卫星外设接口仿真系统30按地址实现寄存器相应的读功能和写功能,所述卫星外设接口仿真系统30包括可配置模块31和配置文件32,所述可配置模块31包括寄存器地址模块311和外设接口其他配置模块312,所述寄存器地址模块311用于存放寄存器地址,所述外设接口其他配置模块312用于存放相关设计参数;所述配置文件32分别连接所述寄存器地址模块311和所述外设接口其他配置模块312,所述配置文件32用于按配置对所述寄存器地址模块311和所述外设接口其他配置模块312进行初始化。
[0038] 具体的,在所述的卫星外设接口仿真系统中,所述外设接口包括功能部件和接口部件,其中:所述功能部件包括中断模块、时钟模块和看门狗模块;所述接口部件包括同步串口模块、异步串口模块和CAN总线。
[0039] 进一步的,在所述的卫星外设接口仿真系统中,所述相关设计参数包括地址偏移和波特率。所述卫星外设接口仿真系统30还包括定时器及功能函数模块33,以及寄存器读写函数模块34;所述定时器及功能函数模块33用于存放功能函数;所述寄存器读写函数模块34用于存放寄存器读写函数。
[0040] 本实施例的卫星外设接口仿真系统的创新点包括:
[0041] 一,将外设接口抽象为
数据处理过程,设计出将卫星外设接口仿真系统的设计参数通过配置文件进行配置,将功能部分进行代码固化的方法,实现通用化的外设接口模型建模方法。
[0042] 二,卫星外设接口仿真系统模型,会根据配置文件的配置,在模型类对像的构造函数中动态创建寄存器,并初始化相应的读/写函数
指针。
[0043] 三,同种类的外设接口设备,可按寄存器个数,分别建模;并用枚举的方式把所有在具有相同寄存器个数的外设备中出现的寄存器名字与读/写函数用代码固化下来。
[0044] 四,卫星外设接口仿真系统设备的波特率,可通过配置来设定相应的定时器周期实现。
[0045] 五,此系统的卫星外设接口仿真系统模型,仅在模型初始化时,需要额外的时间,将配置文件中的配置完成初始化,在仿真运行时,不会降低仿真速率。
[0046] 六,配置文件,可以使用任何格式作为存储文件格式,不仅限于文中具体实施中的XML格式。
[0047] 七,此卫星外设接口仿真系统模型构建方法,不仅限于卫星外设接口建模,还适用类似的航天/航空器的单机建模。
[0048] 在本实施例提供的卫星外设接口仿真系统中,通过可配置模块31包括寄存器地址模块311和外设接口其他配置模块312,寄存器地址模块311存放寄存器地址,外设接口其他配置模块312存放相关设计参数,配置文件32按配置对寄存器地址模块311和外设接口其他配置模块312进行初始化,实现一种外设接口仿真的通用模型建模方法,利用该方法搭建出可重用、可配置的卫星外设接口仿真系统模型,该方法将解决目前航天级外设接口差异大,缺少标准化,仿真难以通用化的现状,该方法构建出的卫星外设接口仿真系统模型,可现实外设接口仿真的质量控制和性能指标精确化,该方法构建出的卫星外设接口仿真系统模型,可用于外设接口功能或性能创新时的迭代开发与验证,可形成外设接口仿真模型库,解决卫星仿真系统模块化的外设接口仿真模块化问题,可解决外设接口故障仿真的通用化问题。
[0049] 本实施例的可配置化卫星外设接口仿真系统模型,仅在初始化时,需要花费额外的时间做变量的初始化;在后续的仿真的运行过程中,可直接使用相应的变量,模型的运行速率并不受可配置的影响而变慢。
[0050] 综上,上述实施例对卫星外设接口仿真系统的不同构型进行了详细说明,当然,本发明包括但不局限于上述实施中所列举的构型,任何在上述实施例提供的构型
基础上进行变换的内容,均属于本发明所保护的范围。本领域技术人员可以根据上述实施例的内容举一反三。
[0051] <实施例二>
[0052] 本实施例还提供一种基于上一实施例所述的卫星外设接口仿真系统的卫星外设接口仿真方法,对所述寄存器地址和所述相关设计参数从外设接口30代码中进行剥离,以使所述寄存器地址和所述相关设计参数能够被所述配置文件32配置。由于接口部件经常会有多个相同的部件连到不同的地址的使用情况。因此地址通过配置文件配置,是外设接口通用模型的基础之一。由于不同的
航天器设计需求,外设接口的设计参数变化大,无法标准化,将这些参数从代中剥离,通过配置文件配置。
[0053] 具体的,在所述的卫星外设接口仿真方法中,将所述接口部件的接收/发送缓存队列(FIFO)从外设接口代码中进行剥离,通过所述配置文件32配置;由于接口部件都需要接收数据、转发数据,故在硬件内部都有接收/发送缓存队列(FIFO),出于性能和成本考虑,接口部件FIFO的大小、半满定义等参数设定,无法标准化,需要将这些参数做成可配置。将所述接口部件和所述功能部件的中断从外设接口代码中进行剥离,通过所述配置文件32配置。不论接口部件还是功能部件,都可能需要对接芯片的中断IO,且中断触
发条件也是按需求设定,甚至不同型号使用了相同的芯片与外设接口部件,但由于PCBA布线等设计考虑,会接不同的中断IO,因此需要将这些参数和使用设置做成可配置。根据外设接口具有的寄存器个数构建模型,并通过配置文件32配置具体寄存器的功能。按外设接口不同的部件分类,每类器件根据寄存器个数的不同,构建不同的模型,具体寄存器的功能,可通过配置文件配置。例如,同步串口有3个寄存器、5个寄存器、7个寄存器等不同种类,我们对每个种类都构建一个外设接口模型,每个寄存器具体的功能,做成可配置。
[0054] 进一步的,在所述的卫星外设接口仿真方法中,将多个寄存器值对应的多种操作从外设接口代码中剥离,通过配置文件32配置每个寄存器的读操作内容或写操作内容;用枚举的方式将所有的操作固化为函数代码,以按配置匹配寄存器值再触发相应的操作函数。寄存器中不同值,对应着不同操作或状态,将寄存器不同值对应不同的操作从代码中剥离,可配置。并用枚举的方式将所有的操作固化函数代码,因此只需按配置,匹配寄存器值再触发相应的操作函数。通过系统公用的微秒级定时器,实现接口部件的波特率功能与功能部件需要周期触发的功能(如时钟部件的秒脉冲等),并且这些设置,均可通过配置文件配置。通过所述定时器及功能函数模块实现所述接口部件的波特率功能,以及所述功能部件周期触发功能,通过所述配置文件32配置所述接口部件的波特率功能和所述功能部件周期触发功能;以用枚举的方式将所有的功能固化为函数代码,按配置匹配寄存器值再触发卫星外设接口仿真系统30其余的功能函数,并通过所述配置文件32配置调用。
[0055] 另外,在所述的卫星外设接口仿真方法中,所述卫星外设接口仿真系统30为C++语言的类,所述卫星外设接口仿真系统30的读操作、写操作与功能函数为所述类的私有成员函数,所述卫星外设接口仿真系统30的寄存器值、接收/发送缓存队列为所述类的私有成员变量;在所述类的对像创建的初始化过程中,根据配置文件32中的配置,动态创建相应数据类型的变量,并多次按所述配置文件32中配置的初始化变量,直致卫星外设接口仿真系统30在所述配置文件32中的所有配置项全部完成初始化。将卫星外设接口仿真系统模型设计为C++的类,卫星外设接口仿真系统的读/写操作与功能函数即为类的私有成员函数,卫星外设接口仿真系统的寄存器、FIFO等为类的私有成员变量。因此外设接口仿真,即可转化为相应外设接口模型类的对像创建。在外设接口模型类对像创建的初始化过程中,需要根据配置文件中的配置,动态创建相应数据类型的变量,并按配置文件中配的初值初始化变量,重复此过程,直致卫星外设接口仿真系统在配置文件中的所有配置项全部完成初始化。
[0056] 下面结合实例,如图3所示,针对异步串口,使用XML文件作为配置文件,使用外设接口仿真的通用模型方法,进行建模。
[0057] 一,将异步串口中的设计参数提取出来,在XML中进行配置,并按异步串口的设计配上初始值,如图3所示。
[0058] 二,此异步串口为5个寄存器第一个版本,因此命名为msAsyncR51。初始化时,根据XML中配置的类名,创建对应的异步串口模型类对像。并根据enable项的设置对异步串口始能:0关闭,1始能。
[0059] 三,5个寄存器的地址偏移与默认值,在XML中配置。在类对像创建的构造函数中,创建5个相应的寄存器存储空间。如果某一寄存器读/写对应两个不同的寄存器但对应同一地址,则配置时配两个寄存器,地址偏移相同,寄存器名用”_r”与”_w”区分。
[0060] 四,5个寄存器对应的读/写函数,在模型类对像创建时,创建5组读/写函数指针,再根据寄存器名称,匹配模型中代码固化的寄存器读/写函数,用匹配的读/写函数地址初始化相应的寄存器读/写函数指针。
[0061] 五,由于使用5个寄存器的异步串口,不止一种,因此在msAsyncR51的异步串口模型中,需要用枚举的方式将相应的寄存器名字与读/写函数添加进来,并用代码的方式固化,并使用链表将每个寄存器与对应的读/写函数存储起来,以供初始化时使用。
[0062] 六,定义TX:为接口部件从芯片接收数据,再发送给外部设备;定义RX:为接口部件从外部设备接收数据,再发送给芯片。用mode项,配置接口部件单工/双工的工作方式与数据收发方向。并创建相应的FIFO,FIFO的属性按XML中的配置设定。
[0063] 七,根据XML配置,初始化中断
信号与触发条件,如图3中,异步串口产生中断条件为TX FIFO中数据降至64个字节。在异步串口模型类对像创建时建一个定时器,并根据波特率的设定算出从TX FIFO中每取出一个字节的时间长度为定时器触发周期,TX FIFO中一旦有数据时,启动定时器,从TX FIFO中取数据,每取一个字节的数据,判断下TX FIFO中的数据是否≤64字节,若此条件满足,则调用外部中断模型对像的中断触发函数,将中断号3作为函数参数,由中断模型对像模拟相应的IO口,产生3号中断。由于是纯软件仿真,不需要将中断的触发类型(如边沿的上升或下降,电平的高或低)仿真出来。
[0064] 八,由于异步串口支持多种波特率,因此在异步串口模型类中,需要用链表的方式初始化波特率的设置,将寄存器的值与对应的波特率作为一个
节点的数据。在波特率设置寄存器的写操作函数中,将写入的值与链表中每个节点的值逐一比对,若有匹配的,则取节点中的波特率值,并将其按芯片的主频换算出传输一个字节需要时间值,再用此时间值设置定时器触发的周期。这样即可实现异步串口按相应的波特率传输数据。
[0065] 九,异步串口其余的功能函数,也通过代码固化,以供定时器、寄存器读/写函数调用,实现相应的串口功能。
[0066] 十,重复此方法,可以对各种外设接口设备进行建模,对得出的模型进行分类,经过积累即可得到一个较全面、可靠、性能指标精确、可重用的外设接口模型库。
[0067] 在本发明提供的卫星外设接口仿真系统及方法中,通过可配置模块31包括寄存器地址模块311和外设接口其他配置模块312,寄存器地址模块311存放寄存器地址,外设接口其他配置模块312存放相关设计参数,配置文件32按配置对寄存器地址模块311和外设接口其他配置模块312进行初始化,实现一种外设接口仿真的通用模型建模方法,利用该方法搭建出可重用、可配置的外设接口模型,该方法将解决目前航天级外设接口差异大,缺少标准化,仿真难以通用化的现状,该方法构建出的外设接口模型,可现实外设接口仿真的质量控制和性能指标精确化,该方法构建出的外设接口模型,可用于外设接口功能或性能创新时的迭代开发与验证,可形成外设接口仿真模型库,解决卫星仿真系统模块化的外设接口仿真模块化问题,可解决外设接口故障仿真的通用化问题。
[0068] 本发明的可配置化外设接口模型,仅在初始化时,需要花费额外的时间做变量的初始化;在后续的仿真的运行过程中,可直接使用相应的变量,模型的运行速率并不受可配置的影响而变慢。
[0069] 本
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0070] 上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。