卫星项目
http://www.nasa.gov/mission_pages/cubesats/overview
http://kicksat.github.io/
http://projectcalliope.com/
http://www.diyspaceexploration.com
https://www.ardusat.com/
http://www.diyspaceexploration.com
http://pocketspacecraft.com
卫星导航开源代码汇总
一、RTKLIB
1、github:https://github.com/rtklibexplorer/RTKLIB
http://rtkexplorer.com/
2、RTKLIB源码之一:单点定位解析
https://www.zybuluo.com/taqikema/note/1101465#matmul
3、从零开始解读RTKLIB:
https://blog.csdn.net/sylvia0726/article/category/7517595
4、RTKLIB源码阅读笔记:
https://zhuanlan.zhihu.com/p/78359579
二、GNSS-SDRLIB
1、GNSS-SDRLIB
https://github.com/taroz/GNSS-SDRLIB
三、GPS TOOLBOX
The GPS Toolbox
ArduSat:利用开源硬件制造的微型卫星
NASA’s cFS
NASA核心飞行系统(cFS)软件框架提供了一系列已建立的软件应用程序,用于操作机载空间飞行计算机系统。cFS中的核心飞行执行官(cFE)为软件开发人员提供一套可重用的服务,这些服务根据卫星系统管理所需的基本功能而定制。软件环境为飞行计算机的实现提供了一种高级模块化方法[26]。
NASAcFS帮助开发人员提高代码的可重用性,减少源代码行。与通常所说的“裸机”编程不同,飞行软件应用程序是从头开始构建的,cFS宣传快速开发。cFS框架内的cFE提供了机载飞行软件系统所需的许多基本代码服务,如定时和事件处理,以及软件总线维护。还为特定于航班的应用程序(如文件管理和系统安全检查)提供了应用程序编程接口(API)[26]。
该框架遵循发布-订阅软件模式,其中所有cFS应用程序在运行时订阅特定的cFE服务。这种模式可以简化软件开发过程,在这个过程中,应用程序可以很容易地从软件总线中添加和删除。此外,cFE有一组可配置的需求,可以在多个平台上运行,包括Linux桌面计算机。这对于测试而言至关重要,因为它使软件开发团队能够在桌面上构建和运行应用程序,并理解应用程序将能够在飞行硬件上以相同的方式运行[26]。
cFS使用分层架构,一层的内部可以更改,而不会影响其他层,这使得框架可以在多个操作系统上运行,而无需修改[25]。图4可以更好地理解该框架的体系结构。
KubOS
正如KubOS文档[4]所述,它由一个开源平台组成,该平台为卫星开发者提供了快速开发太空就绪软件所需的工具和库。该框架由Kubos公司开发,旨在处理卫星飞行软件的各个方面,因此用户只需编写所谓的任务应用程序,即可控制任务的行为。Kubos平台由软件开发工具包(SDK)组成,这意味着它提供构建应用程序所需的所有工具。KubOS框架体系结构的核心组件是KubOS Linux操作系统,它由一个定制的Linux发行版组成,该发行版是为托管任务应用程序而创建的。Kubos API驻留在操作系统上,简化了编写任务应用程序和服务的过程。它包括通信协议和硬件设备的软件抽象。该框架还提供一系列服务,允许用户完成典型的飞行软件任务,如遥测存储、文件管理、外壳访问和硬件交互。体系结构的上层是任务应用程序,它是控制卫星行为的任何东西,由用户开发,可以用Python或Rust编程语言编写[4]。图5可以更好地理解该框架的体系结构。
图4。NASA cFS框架的架构[28]
图5。KubOS框架的体系结构。蓝色的东西通常由Kubos开发,而绿色的东西则是任务代码,由用户为其特定任务和有效载荷编写。[4].
CubedOS
CubedOS由佛蒙特技术学院的CubeSat实验室开发。该框架的主要目标是为立方体卫星任务提供一个强大的软件平台,并简化立方体卫星作战软件的开发。与之前研究的两个平台不同,CubedOS是用SPARK/Ada编写的,这使得关键部分的正式验证不存在运行时错误的可能性[15]。
该框架提供了一个操作环境,该环境承载模块,并基于发布者-订阅者模型提供模块间通信,但也为模块提供了有用的功能。该框架是完全模块化的,这允许根据任务要求插入或拔出模块。CubedOS体系结构如图6所示,其中由实心圆阵列表示的CubedOS环境为功能模块提供了通信基础设施,功能模块由标记为T1到T4的圆表示[15]。
CubedOS不依赖于操作系统,应用程序可以直接在裸硬件上执行。尽管对于需要操作系统的更复杂的应用程序,CubedOS可以在Linux或VxWorks上执行[15]。根据任务要求,这可能是一个限制,因为Linux不是实时操作系统,VxWorks是专有软件。
图6.CubedOS结构[15].
架构比较分析
上一节研究的三个框架有许多共同的特性和属性。这三个系统提供了为卫星任务构建飞行软件所需的基本功能和一些额外的实用程序。表2中列出了每个框架的组件和功能特性。
这三种选择侧重于模块化、可重构性和可移植性,以使开发人员能够在相对较短的时间内构建具有特定需求的应用程序。同样重要的是展示每个框架的其他非功能性特征,这些特征在表3中列出。
显然,从这三个提议中,更完整、更成熟的是NASA的cFS,然而这也带来了相当大的学习曲线。内存占用不是最小的,带有FreeRTOS的cFS的典型配置的大小约为1MB[17],这可能代表对低成本OBC模块的限制,例如Pumpkin INC.的PPM E1,它有256KB的内部闪存和96KB的内部RAM[19]。
KubOS框架还提供了广泛的功能,与其他tho替代方案不同,KubOS允许在Python或Rust编程语言上编写用户应用程序。为了实现这一点,KubOS平台运行在KubOS Linux发行版之上。这可能会带来缺点,因为操作系统层限制了可移植性,增加了内存占用,典型的KubOS配置可能会占用2.5 MB以上,并且根据任务要求,Linux操作系统可能无法提供实时功能。KubOS的硬件可移植性也有限,应用程序只能在官方支持的COTS板、ISIS、Pumpkin和Beaglebone平台之间进行移植[4]。
CubedOS是三个框架中最具创新性的,因为它提供了形式验证功能,可以避免某些类型的运行时错误。此外,根据任务要求,CubedOS可以在不使用操作系统的情况下执行,这减少了内存占用。然而,正如该项目网页[20]上所述,CubedOS仍在进行中,在撰写本文时,许多功能仍然缺失。
表 2. Cfs、Kubos和Cubedos框架的组件和功能[4][5][15][16][17]
Component/Functionality |
ShortDescription |
cFS |
KubOS |
CubedOS |
|
HousekeepingandFaultTolerance |
|||||
Telemetrycollection |
Collecttelemetrydataautomatically |
Yes |
Yes |
Noinfo |
|
Telemetry storage |
Storecollectedtelemetrydata |
Yes |
Yes |
Noinfo |
|
Telemetrytransmission |
Transmitcollectedtelemetrytogroundsegment |
Yes |
Yes |
Noinfo |
|
Faultmanagement |
Detectafaultandtakeanaction |
Yes |
Yes |
Noinfo |
|
Watchdog |
Interfaceformanagewatchdogtimers |
Yes |
Yes |
Noinfo |
|
Commands&Activities |
|||||
Acceptcommands |
Acceptandhandlecommandsfromgroundsegment |
Yes |
Yes |
Yes |
|
Storecommands |
StoreCommandsandscheduledexecution |
Yes |
Yes |
Yes |
|
Eventdetection |
Triggeractivitieswhenanspecificeventoccurs |
Yes |
Yes |
Noinfo |
|
ActivityScheduler |
Scheduleson-boardactivities |
Yes |
Yes |
Yes |
|
Timehandling |
|||||
Timemanagement |
Provideandmanagespacecrafttime |
Yes |
Yes |
Yes |
|
Communications |
|||||
Software messagespassing |
Messagetransmission betweensoftwaremodules |
Yes(Publisher-subscribermodel) |
Yes(ImplementedbytheOS) |
Yes(Publisher-subscribermodel) |
|
Remotecommunication |
Transfers/receivesdatato/fromtheground |
Yes |
Yes |
Yes |
|
Communicationwith subsystems |
Interfacetotransfer/receivedatato/fromthesubsystems |
Yes |
Yes |
Yes |
|
Datahandling |
|||||
Parameters database |
Interfaceformanagingparameters,setandgetvalues |
Yes |
Yes |
Noifo |
|
FileSystem |
Interfaceformanagingfiles |
Yes |
Yes |
Yes |
|
Logcollection |
Collectandstoretheresultofactivities(i.e.commands,events,etc.) |
Yes |
Noinfo |
Yes |
|
Utilities |
Checksum,encoding/decoding,compression, etc. |
Yes |
Yes |
Yes |
|
Testing&debugging |
|||||
Debuggingsupport |
Outputs informationfordebugging |
Yes |
Yes |
Noinfo |
|
Testingsupport |
Possibletoperformautomatedtesting |
Yes |
Yes |
Yes(Allowsforformalverification) |
|
表3。Cfs、Kubos和Cubedos框架的非功能特性[4][5][15][16][17]
Non-funtional feature |
Description |
cFS |
KubOS |
CubedOS |
Maturity |
Howmanytimeshasthesoftwarebeenusedinspace |
Manymissions |
Non |
Non |
Portability |
Easytoportintermsofoperatingsystemandhardware |
Yes(OSandHardwareabstractionlayer) |
Onlybetweensupportedboards |
Yes(OSandHardwareabstractionlayer) |
Modularity |
Modulesarecompletelyindependent |
Yes |
Yes |
Yes |
Documentation |
Coverageofthedocumentation |
Extensive |
Basic |
Basic |
Learningcurve |
Howdifficulttolearn |
High |
High(Many technologiesinvolvedi.e. Rust,Python,C) |
Low(ifyouknow Spark/Ada) |
Memoryfootprint |
Memoryrequired |
Around1MBwithFreeRTOS |
Above2.5MB withLinux |
Low(Donot requires OS) |
Licensing |
TypeofLicense |
NASAOpenSourceAgreement |
ApacheLicensev2.0 |
GNUGeneralPublicLicense |
飞行软件架构
我们的目标是提出一个开源软件框架,在未来的CubeSat学术任务中,学生可以轻松理解和实现该框架。对于一个简单的嵌入式系统来说,现有的许多平台要么过于复杂,要么为刚接触实时系统的学生提供了太多的学习曲线。例如,NASA cFS提供了一个高度健壮的框架,尽管在程序内存有限的微控制器上运行它可能无法实现。我们的目标是提供一个简单易用的软件框架,可以在标准实时操作系统上运行。
基本理念
在框架的设计和实现阶段开始之前,阐述了一些理念/原则,以指导团队完成开发过程,并帮助他们在面临困境时做出决策。
• •注重简单:始终保持简单。如果没有严格必要,就不要实施。
• •显性比隐性更好:永远不要假设用户什么都知道,更好地记录每个功能和结构,也尽量不要使用首字母缩写。
• •易于学习和使用,甚至无需文档:因为目标用户是学生,所以需要直观的产品。
• •静态优于动态:始终尝试使用静态分配而不是动态分配,以避免潜在的内存错误。
• •贪心胜过懒惰:如果无法通过静态分配实现,则仅在软件初始化期间使用动态分配。保留初始化期间可能需要的所有内存,而不是在任务正常执行期间。
软件质量
以前面介绍的三个软件框架为例,需要一些软件质量属性,以克服空间软件的复杂性和挑战。在这项工作中,模块化和可移植性是重点目标。
• 模块化:这意味着每个软件组件独立于其他组件,这允许对每个组件进行单独的验证,并大大提高了框架的可重构性[13]。
• 可移植性:Mooney[18]将软件单元定义为可移植的(跨一类环境),前提是运输和适应新环境(同一类环境)的成本低于重新开发的成本。对于这项工作,软件单元是框架,需要跨两类环境实现可移植性:硬件和操作系统层。这意味着该框架应该易于在不同的硬件平台之间移植,但也应该支持不同的操作系统。
软件架构
提出的体系结构由四层组成:操作系统、网络层、框架服务和特定于用户的软件应用程序。在最低级别,操作系统将支持框架中每个任务的线程化,还将提供任务和资源管理之间的通信。目标是提供一个通用的实时软件框架。因此,体系结构不应局限于任何特定的实时操作系统。
上一层的操作系统是网络层,其主要目的是在航天器和地面段之间建立通信链路,因此地面站应处理相同的协议。为了满足这一要求,选择了开源库CubeSat Space Protocol(CSP)[21]。稍后将提供进一步的描述。
网络层之上是拟议框架的主要功能。服务层从CSP抽象出来,将提供七个特定模块:内务管理、参数数据库、计时、数据存储、命令处理、调试和数据记录器。这些服务将在下一节中介绍。最后,在最高级别,用户将能够使用下面提供的服务定义特定于航班的应用程序。软件框架将清楚地为用户提供一个程序过程,以便用户对所提供的服务进行特定的调用。所描述的体系结构如图7所示。
图7。拟议框架的架构。蓝色的图层是框架的一部分,而绿色的图层应由用户为特定任务提供。
操作系统
所研究的框架表明,实时操作系统是实现卫星飞行软件的基础,因为这本身就是并发的,因为空间系统包含大量元素,如实时运行的传感器和执行器,共享资源,如内存[13]。如前所述,该体系结构不是为特定的实时操作系统设计的,因此(由CSP)提供了一个抽象层,软件开发人员负责选择操作系统。然而,由于低成本OBC模块的限制,操作系统层应占用最少的内存,并应提供以下基本功能:
l线程创建
l线程同步
l相互交流
l时间管理
l记忆管理
l系统关闭和重启呼叫
有时还需要在台式计算机上的非实时操作系统(如Linux、Windows或Mac OS)上执行飞行软件。当软件开发人员需要开始编写和测试特定于任务的应用程序,但他们没有卫星的特定硬件时,这很有用。这种能力也可以通过CSP提供的抽象层来实现。
网络层
为了实现跨卫星和地面段的通信网络,必须建立可靠的数据发送和接收协议。目前存在多种通信协议,但重要的是使用符合卫星需求的协议,同时保持较小的内存占用和处理能力。斧头。25是一种主要用于无线电通信系统的通信协议。这是一种在业余无线电社区普遍使用的简单数据格式。尽管其简单性有利于无线电通信链路,但该协议并未提供实现车载嵌入式系统网络的框架。斧头。25通常适用于车载卫星网络中更大的通信协议。
另一个高度通用的通信协议是TCP/IP,它通常与Internet相关联。TCP/IPhas已被证明是建立计算机网络的一个强大而可靠的工具,尽管其占地面积对于计算能力和内存有限的CubeSat任务来说可能太大。
CubeSat空间协议(CSP)是专门为满足CubeSat任务的需要而制定的。该协议保持了简单性和可靠的功能,非常适合建立车载立方体卫星网络。CSP提供了广泛的高级功能,同时保持了非常小的内存占用,因为需要48 KB的代码和小于1 KB的RAM[21]。使用CSP可以移植到的操作系统非常重要。CSP可以进行所有操作系统调用(即创建任务、同步任务、创建队列等),而无需软件开发人员调用特定于操作系统的语言。这大大提高了整个框架的可移植性。
架构服务
根据表II,我们可以确定飞行软件框架中应包含的基本模块,以便适用于大多数卫星任务。如前所述,这项工作的主要目的之一是开发一个简单直观的软件框架,易于学习和使用,因此本提案试图通过几个通用模块实现尽可能多的功能。形成该分析的结果模块如下所示:
-
星务服务:星务(HK)服务负责向地面段提供有关航天器状态和健康的遥测数据,因此该服务应能够自动收集、存储和传输遥测数据。如果需要知道航天器的状态,即使在轨道上没有与地面通信链路的部分,存储遥测数据也可能对任务有好处。
-
参数服务:参数服务作为航天器参数的数据库,应提供设置和获取任何参数值的简便方法。参数可以描述为帮助建模或描述系统的变量,例如,它可以是ADC的指向方向,或者EPS的输出电压,或者即使通信系统处于打开或关闭状态。因此,该服务应支持任何类型的值(即布尔值、整数、浮点数和字符串)。使用参数服务而不是平台的内置变量实现特定任务的应用程序有助于航天器的控制和监控,因为任何参数值都可以随时修改或检索。
-
指挥服务:指挥服务负责为地面段提供随时控制航天器的能力。该模块应能实时接收和执行来自地面的命令。通常,在网络层的软件包中编码的命令到达,因此该模块应能够解码并解释命令包的内容。对于这项工作,由命令执行的特定操作将被称为命令例程。所需的命令例行程序的数量和每个命令例行程序执行的操作是任务的具体说明,应由用户执行。通常情况下,地面段希望发送给航天器的每个命令都有一个结果,因此该服务应能够从任何命令例程捕获结果,并将其发送回地面。根据任务要求,存储命令也是必要的,这提供了执行命令的能力,即使在轨道段没有与地面通信链路的情况下也是如此。为此,命令包还应指定何时执行命令例行程序,这可以通过最终条件来指定,例如,当时间达到某个值时,或当GPS坐标在某个范围内时,甚至当电池电量下降到某个阈值以下时。一些飞行软件将基于时间的条件与其他事件条件分开处理,为简单起见,本提案将基于时间的条件视为任何事件条件。
-
时间服务:时间服务为管理卫星上的时间提供接口。该模块应能够为需要该功能的软件单元提供实际时间戳。时间戳可以是任务经过的时间或实际的地面时间。对于第二种类型,该服务应提供一个使时间戳与地面同步的例程。该服务还应提供与看门狗定时器交互的接口。看门狗定时器是在特定时间段内重置的电子定时器,如果在任何给定时刻,该时间段已过且定时器未重置,则意味着发生了异常,因此看门狗触发纠正措施,通常会重新启动受影响的子系统。与存储服务一样,在不同的平台上,对与时钟和看门狗定时器进行交互的调用可能会有所不同。因此,底层实现应由用户给出。
-
存储服务:存储服务包括管理文件的接口,应提供创建、读取、更新和删除文件的功能。需要注意的是,处理文件的低级调用在不同平台(硬件/操作系统)之间可能有所不同,因此该服务应提供一个抽象层,但底层实现应由用户提供。
-
日志服务:有时非常需要存储有关航天器状态、活动结果、错误发生或任何其他事件的信息。日志服务负责将此类数据存储在名为日志文件的文件中。向日志文件中添加新记录时,应包括事件发生时的准确时间戳。
-
调试服务:调试服务是一个小而重要的模块,允许任务开发者在开发过程中监控和操作飞行软件。它应提供打印信息和从调试控制台读取命令的功能。此功能的实际实现可能因平台而异,因此此服务应提供一个抽象层,但底层实现应由用户提供。
架构实现
在实施和测试阶段,GWU CubeSat团队使用Microchip Technology Inc.的STK600开发系统[23]和AT32UC3C0512C微控制器[24]。32位微控制器具有512 KB的可编程内存、68 KB的RAM内存,并配置为以16MHz运行。
对于操作系统层,团队选择了FreeRTOS[22]。FreeRTOS是一个开源的实时操作系统,它满足第IV-E节中所述的所有要求,并且CSP已经被移植到该系统中。这也是GWU CubeSat使用的操作系统,也是实施飞行软件的推荐选项。
通过这种配置,GWU CubeSat团队展示了一个具有以下属性的轻量级功能飞行软件框架。
模块化
实现的框架被证明是模块化的,来自框架服务层的所有服务都是独立的,并且可以单独使用。这使软件开发人员可以选择仅为特定应用程序使用一些服务,还可以添加其他模块。
可移植性
所实现的框架在操作系统层表现出了良好的可移植性。框架服务和任务特定应用程序进行的所有操作系统调用都使用CSP提供的接口。因此,该框架可以在CSP支持的任何操作系统(即FreeRTOS、Linux、Windows和Mac-OS)上轻松执行。但是,其他操作系统的端口可以很容易地编写。
在硬件方面,通过为特定硬件提供接口,该框架也被证明是可移植的。文件系统、时钟管理和看门狗定时器管理的接口由框架服务层提供。CSP提供用于内存管理以及关闭和重新启动硬件的接口。具体硬件的底层实现应由软件开发人员提供。
实时性
由于FreeRTOS提供的实时支持平台,实现的框架能够提供实时功能。这一点在测试阶段得到了证明,在测试阶段,软件能够实时响应带有不同请求的传入消息。
存储占用
实现的框架显示了非常低的内存占用,甚至低于cFS和Kubos框架。对于使用FreeRTOS、CSP、七种建议的服务和具有特定硬件驱动程序的基本应用程序的配置,软件需要大约76 KB的ROM和26 KB的RAM。这使得该框架适用于低成本的商用OBC,比如前面提到的Pumpkin INC.的PPM E1,它有256KB的内部闪存和96KB的内部RAM[19]。图8和图9显示了AT32UC3C0512C微控制器上编译实现占用的内存的分解,该微控制器有512 KB的ROM和68 KB的RAM内存。
图8。AT32UC3C0512C ROM(512 KB)分配细分。总分配15%(76.8KB)
图9。AT32UC3C0512C内存(64 KB)分配故障。总分配量为37.9%(25.79 KB)。
从图8和图9可以看出,对于ROM和RAM,CSP都代表了最大的分区。这可能是因为库提供了大量功能,但也因为必须分配存储传入和传出CSP数据包的内存空间。对于ROM和RAM,建议的框架服务代表第二大分区,这可能是因为由参数和命令服务分配的表。FreeRTOS和应用程序对RAM和ROM的空间要求相似,这表明FreeRTOS内核的占用空间非常小,非常适合CubeSat任务。饼图上的应用程序部分还考虑了硬件支持包,每个平台的硬件支持包不同,这可能是应用程序需要比FreeRTOSkernel更多RAM的原因。
文档
框架服务的每个模块都提供了一个有文档记录的API,其中包括对模块一般功能的描述,以及对API的每个结构和功能的描述。一些函数和结构描述还提供了如何使用它们的示例。GWU CubeSat团队确保在实施过程中记录所有软件单元。文档遵循Doxygen格式,因此可以生成文档。
参考文献
[1] M.A.Swartwout,”CubeSatDatabase,” Google Sites.[On- line].Available:https://sites.google.com/a/slu.edu/swartwout/home/cubesat-database.[Accessed:17-May-2018].
[2] M.A.Swartwout,”CubeSatsandMissionSuccess:2017Update”,presentedatthe2017ElectronicTechnologyWorkshop,NASAElec-tronicPartsandPackagingProgram(NEPP),NASAGoddardSpaceFlightCenter,27June2017.
[3] NASA,”coreFlightSystem(cFS),”nasa.gov,2017.[Online].Available:https://cfs.gsfc.nasa.gov/.
[4] KubosCorporation,”KubosDocumentation,”kubos.co,2017.[Online].Available:http://docs.kubos.co/1.2.0/index.html.
[5] C.BrandonandP.Chapin,”CubedOS:ASPARKMessagePassingFrameworkforCubeSatFlightSoftware,”2017.[Online].Available:https://frama-c.com/download/framaCDay/FCSD17/talk/07_Brandon_Chapin.pdf.
[6] R.Nugent,R.Munakata,A.Chin,R.Coelho,andJ.Puig-Suari,”TheCubeSat:ThePicosatelliteStandardforResearchandEducation,”bluecubesat.com,2014.[Online].Available:http://www.bluecubesat.com/wp-content/uploads/2014/05/www.cubesat.org_images_More_Papers_cps2008.pdf.
[7] A.HutputtanasinandA.Toorian,”CubeSatDesignSpecification,”http://org.ntnu.no,03-Jun-2004.[Online].
Available: http://org.ntnu.no/studsat/docs/proposal_1/A8-CubesatDesignSpecification.pdf.
[8] R.Bedington,X.Bai,E.Truong-Cao,Y.C.Tan,K.Durak,VillarZafra,J.A.Grieve,D.K.L.Oi,andA.Ling,Nanosatelliteexperimentstoenablefuturespace-basedQKDmissions,EPJQuantumTechnology,18-Oct-2016.[Online].Available:https://epjquantumtechnology.springeropen.com/articles/10.1140/epjqt/s40507-016-0051-7.
[9] J.R.Wertz,W.J.Larson,”SpaceMissionAnalysisandDesign.”ThirdEdition,MicrocosmPress,1999.
[10] A.E.Heunis,”DesignandImplementationofGenericFlightSoftwareforaCubeSat,”psu.edu,2014.[Online].
Available: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.838.2694&rep=rep1&type=pdf.
[11] J.Bahr,”AnAdvancedApproachtoSatelliteSoftwareandCom-municationBasedonSmartOSandCompassProtocol,”2016.[Online].Available:http://www.diva-portal.org/smash/get/diva2:1031994/FULLTEXT02.
[12] M.L. Volstad, ”Internal Data Bus of a Small Student Satellite,”2011.[Online].Available:https://daim.idi.ntnu.no/ masteroppgaver/006/6403/masteroppgave.pdf.
[13] A. B. Ivanov and S. Bliudze,”RobustSoftwareDevelopmentforUniversity-BuiltSatellites,”2017.[Online].
Available:https://infoscience.epfl.ch/record/225659/files/2017IEEEPaper.pdf.
[14] W. Pree,”MetaPatternsAMeansForCapturingtheEssentialsofReusableObject-OrientedDesign.”[Online].
Available: https://pdfs.semanticscholar.org/2bf6/ 7e7f683acf2625640892b72ef07f7bafdd95.pdf.
[15] VermontTechnicalCollege,CubedOSOperatingSystem.2018.Cube-dOSdocumentationgeneratedfromLatexfiles. [Online]. Avail- able:https://github.com/cubesatlab/cubedos/tree/master/doc.
[16] L.Prokop,NASAsCoreFlightSoftware-aReusable Real-TimeFramework,2014.[Online].Available:http://www.uh.edu/nsm/_docs/cosc/seminars/2015/0225-prokop-slides.pdf.
[17] J.Wilmot,UsingCCSDSStandardstoReduceMissionCosts.[On-line].Available:https://ntrs.nasa.gov/archi-ve/nasa/casi.ntrs.nasa.gov/20170007440.pdf.
[18] J.D.Mooney,BringingPortabilitytotheSoftwareProcess,1997.[Online].Available:https://pdfs.semantics-cholar.org/ ef08/695a3e437ea58f48e247f72b4bac61140c5c.pdf.
[19] PumpkinInc,PluggableProcessorModuleE1(PPME1).[Online].Available:http://www.pumpkinspace.com/store/p129/Pluggable_Processor_Module_E1_(PPM_E1).html.[Accessed:Jun-2018].
[20] CubedOS Project Overview, cubesatlab.org. [Online]. Available: http://www.cubesatlab.org/CubedOS.jsp.[Accessed:Jun-2018].
[21] GitHub-libcsp.[Online].Available:https://github.com/libcsp/libcsp.[Accessed:Jun-2018].
[22] FeaturesOverview[AboutFreeRTOS].[Online].Available:https://www.freertos.org/FreeRTOS_Features.html.[Accessed:Jun-2018].
[23] STK600, Microchip Technology Inc. [Online]. Available: http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=ATSTK600.[Accessed:Jun-2018].
[24] AT32UC3C0512C,MicrochipTechnologyInc.[Online].Available:https://www.microchip.com/wwwproducts/en/AT32UC3C0512C.[Accessed:Jun-2018].
[25] D.McComas,NASA/GSFCsFlightSoftwareCoreFlightSystem,2012.[Online].Available:https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20130013412.pdf.
[26] A.Cudmore,NASA/GSFCsFlightSoftwareArchitecture: Core FlightExecutiveandCoreFlightSystem,2011.[Online].Available:http://flightsoftware.jhuapl.edu/files/2011/FSW11_Cudmore.pdf.
[27] CubeSpace,”CubeComputer.”[Online].Available:https://cubespace.co.za/cubecomputer/.
[28] A.Cudmore,G.Crum,S.Sheikh,andJ.Marshall,BigSoftwareforSmallSats:AdaptingcFStoCubeSatMissions.[Online].Available:https://digitalcommons.usu.edu/cgi/viewcontent.cgi?referer=https://www.goo-gle.com/&httpsredir=1&article=3303&context=smallsat.
原文始发于微信公众号(太空安全):汇总卫星开源项目
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论