一种基于实时操作系统的星载驱动框架设计方法技术方案

技术编号:25598135 阅读:93 留言:0更新日期:2020-09-11 23:56
本发明专利技术公开了一种基于实时操作系统的星载驱动框架设计方法,其包括以下步骤:步骤一,针对星载外部设备进行分类;步骤二,针对每种设备的驱动定义用户级的设备结构体;步骤三,定义星载外部设备的操作接口;步骤四,将用户定义的接口与操作系统定义的结构体指针相关联;步骤五,将驱动编写编译成单独的模块,以.ko结尾,与内核实现分离;步骤六,嵌入式操作系统启动注册设备驱动,应用程序启动注册具体设备;步骤七,在操作系统之上,增加一层中间件层,统一管理设备,对外提供统一的硬件调用接口;步骤八,周期性监控每种外部设备。本发明专利技术能够将外部设备驱动模块与内核分离出来,实现解耦合,具有极大的可扩展性和便捷性。

【技术实现步骤摘要】
一种基于实时操作系统的星载驱动框架设计方法
本专利技术涉及星载嵌入式软件
,特别涉及一种基于实时操作系统的星载驱动框架设计方法。
技术介绍
嵌入式操作系统的主要功能之一,即是对平台硬件设备资源的管理。随着卫星的信息化、智能化任务需求变化,星载综合电子系统的功能不断升级换代,外部设备种类和接口呈现指数式增长。利用传统星载软件开发模式进行综合电子系统软件的开发,一方面不能够对高性能处理器的性能发挥出来,另一方面不能有效的对平台的外部设备接口进行管理和使用。同时,利用传统软件开发模式下,当这些众多的外部设备接口驱动发生问题时,升级换代不易操作,需要随同应用程序一起更新;使用嵌入式操作系统后,综合电子系统软件的规模和复杂度呈现指数级上升,综合电子系统软件的可靠性需要多方面来保证。仅仅依靠传统星载软件开发中使用的措施已经不能起到全面保证可靠性的目的,需要对嵌入式操作系统涉及到的方方面面(如内核、驱动、服务等)都进行可靠性保证,从而实现整个综合电子系统的软件的可靠性。。嵌入式操作系统中实现星载驱动框架技术在现有航天工程中应用较少,而已有技术中,星载驱动框架实现方法有:1、嵌入式操作系统实现在内存平坦映射模式下,且操作系统没有提供通用的驱动实现构架,针对平台的外部设备都是采用同传统星载软件开发中相同的方法,直接使用物理地址操作设备接口。没有实现应用与设备的解耦,该种实现方法中,依然无法有效提升软件复用率;2、虽然利用了嵌入式操作系统提供的通用设备驱动架构,但是将驱动同操作系统内核编译在一起,没有实现内核与驱动模块的分离,对于后续的功能升级换代不利。且将设备的所有操作都交由应用层负责管理,没有提供中间件层,对外部设备进行统一管理,该种方法对应用层的使用设备带来不利。
技术实现思路
本专利技术将要提供一种基于实时操作系统的星载驱动框架设计方法,以期解决目前星载嵌入式操作系统中外部设备驱动无通用框架、管理混乱和可靠性低等问题,并进一步提高利用嵌入式操作系统的星载系统软件设计的灵活性、可维护性和可靠性。本专利技术提供了一种基于实时操作系统的星载驱动框架设计方法,用来解决上述问题所在,包括以下步骤:一种基于实时操作系统的星载驱动框架设计方法,包括以下步骤:步骤一,针对星载外部设备进行分类,按嵌入式操作系统内定义划分为字符设备类、块设备类和网络设备类;步骤二,针对每种星载外部设备的驱动定义用户级的设备结构体,进行该设备的硬件抽象化,其中所述设备结构体包含该外部设备的基址、中断向量、配置参数选项,状态监控以及嵌入式操作系统中定义的字符设备结构体指针、块设备结构体指针;步骤三,用户定义星载外部设备的操作接口,至少包括读、写、控制、打开、关闭和中断处理过程接口;步骤四,将步骤三中用户定义的星载外部设备的操作接口注册到操作系统定义的类设备结构体指针当中,将用户级定义的设备结构体指针实例为类设备结构体指针,即用户定义的星载外部设备的操作接口作为嵌入式操作系统操作此设备时的回调函数处理;步骤五,将驱动编写编译成单独的模块,以.ko结尾,与内核实现分离;步骤六,在嵌入式操作系统中,分别对待设备驱动和设备;嵌入式操作系统启动时,先注册设备驱动;在应用程序启动前,再注册具体设备到系统中;步骤七,在嵌入式操作系统之上,增加一层中间件层,统一管理设备,对外提供统一的硬件调用接口,为方便用户以统一的方式使用所有外部设备;步骤八,驱动层为每种设备创建监视点;在中间件层,为每个外部设备创建一个周期性线程,用于监视其运行状态。可选地,所述步骤二中根据该设备的硬件抽象化,定义用户级的设备结构体,即该结构体能够描述该完整设备,其中,所述结构体包含设备的基址、中断向量、配置参数选项,状态监视,以及该设备对应的操作系统中定义的字符设备结构体指针、块设备结构体指针,用于注册后,操作系统将抽象的外部设备用一张链表“串”起来,统一管理,增强系统的规范性和通用性。可选地,所述步骤三中,用户定义星载外部设备的操作接口,至少包括如下操作:打开设备、关闭设备、从设备中读数据、向设备写数据、针对外部设备的控制操作和中断处理函数过程;上述所有操作都是直接操作具体外部设备,在注册驱动时,将函数指针赋于嵌入式操作系统驱动框架中相应的函数指针,在应用层操作具体硬件时,由操作系统通过遍历设备链表,找到对应设备后,通过注册的回调函数进行设备的操作。可选地,所述步骤四中,定义在用户级设备结构体中的类设备结构体指针是在操作系统内部,将同类型设备挂在一个链表中,链表上的所有设备具有相同的父指针;用户层发生设备文件操作时,通过系统调用,转变为遍历该类设备链表,由父指针开始寻找,直到找到对应设备指针,通过设备注册时,绑定的驱动函数进行回调操作,完成对设备的一次操作。可选地,所述步骤六中启动操作系统和应用程序时分别完成驱动和设备的注册,将两个步骤分在不同阶段;操作系统启动时加载设备驱动,即包括所有可能用到的驱动,而在加载启动应用程序时,只需注册本应用会涉及的具体硬件设备。可选地,所述步骤七中,“增加一层中间件层”中的“中间件层”增加了嵌入式操作系统之上,利用嵌入式操作系统提供的功能服务;在该中间件层中实现设备的打开、初始化、关闭、控制、读/写操作,屏蔽应用层对不同外部设备的不同操作方法。可选地,所述步骤八中“创建设备监视点”具体为:在驱动实现中,利用控制接口实现对设备状态的获取和设置,为中间件层实现设备监视提供支持;在中间件层中为每个设备单独创建一个线程,周期性对该设备进行监视,获取其状态,针对设备的异常状态采取相应的处理措施,保证设备的正常工作,增强设备和驱动的可靠性,进而增强系统的可靠性。综上所述,本专利技术能够提供对于在卫星综合电子系统中使用嵌入式操作系统,且对外部设备驱动以内核模块单独管理,利用中间件层的框架设计方法,对于提高星载系统软件可移植性、可靠性和可维护性有着积极的借鉴意义,在航天领域具有较好的实际工程应用价值。附图说明图1为本专利技术具体实施例一种基于实时操作系统的星载驱动框架设计方法的实现流程示意图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。如图1所示,本实施例公开了一种基于实时操作系统的星载驱动框架设计方法,包括步骤如下:步骤一,针对星载外部设备进行分类,按嵌入式操作系统内定义划分为字符设备类、块设备类和网络设备类;步骤二,针对每种星载外部设备的驱动定义用户级的设备结构体,进行该设备的硬件抽象化,其中所述设备结构体包含该外部设备的基址、中断向量、配置参数选项,状态监控以及嵌入式操作系统中定义的字符设备结构体指针、块设备结构体指针等,能够保证通过遍历某一类设备时,能够通过父指针找到对应的子设备;<本文档来自技高网
...

【技术保护点】
1.一种基于实时操作系统的星载驱动框架设计方法,其特征在于,包括以下步骤:/n步骤一,针对星载外部设备进行分类,按嵌入式操作系统内定义划分为字符设备类、块设备类和网络设备类;/n步骤二,针对每种星载外部设备的驱动定义用户级的设备结构体,进行该设备的硬件抽象化,其中所述设备结构体包含该外部设备的基址、中断向量、配置参数选项,状态监控以及嵌入式操作系统中定义的字符设备结构体指针、块设备结构体指针;/n步骤三,用户定义星载外部设备的操作接口,至少包括读、写、控制、打开、关闭和中断处理过程接口;/n步骤四,将步骤三中用户定义的星载外部设备的操作接口注册到操作系统定义的类设备结构体指针当中,将用户级定义的设备结构体指针实例为类设备结构体指针,即用户定义的星载外部设备的操作接口作为嵌入式操作系统操作此设备时的回调函数处理;/n步骤五,将驱动编写编译成单独的模块,以.ko结尾,与内核实现分离;/n步骤六,在嵌入式操作系统中,分别对待设备驱动和设备;嵌入式操作系统启动时,先注册设备驱动;在应用程序启动前,再注册具体设备到系统中;/n步骤七,在嵌入式操作系统之上,增加一层中间件层,统一管理设备,对外提供统一的硬件调用接口,为方便用户以统一的方式使用所有外部设备;/n步骤八,驱动层为每种设备创建监视点;在中间件层,为每个外部设备创建一个周期性线程,用于监视其运行状态。/n...

【技术特征摘要】
1.一种基于实时操作系统的星载驱动框架设计方法,其特征在于,包括以下步骤:
步骤一,针对星载外部设备进行分类,按嵌入式操作系统内定义划分为字符设备类、块设备类和网络设备类;
步骤二,针对每种星载外部设备的驱动定义用户级的设备结构体,进行该设备的硬件抽象化,其中所述设备结构体包含该外部设备的基址、中断向量、配置参数选项,状态监控以及嵌入式操作系统中定义的字符设备结构体指针、块设备结构体指针;
步骤三,用户定义星载外部设备的操作接口,至少包括读、写、控制、打开、关闭和中断处理过程接口;
步骤四,将步骤三中用户定义的星载外部设备的操作接口注册到操作系统定义的类设备结构体指针当中,将用户级定义的设备结构体指针实例为类设备结构体指针,即用户定义的星载外部设备的操作接口作为嵌入式操作系统操作此设备时的回调函数处理;
步骤五,将驱动编写编译成单独的模块,以.ko结尾,与内核实现分离;
步骤六,在嵌入式操作系统中,分别对待设备驱动和设备;嵌入式操作系统启动时,先注册设备驱动;在应用程序启动前,再注册具体设备到系统中;
步骤七,在嵌入式操作系统之上,增加一层中间件层,统一管理设备,对外提供统一的硬件调用接口,为方便用户以统一的方式使用所有外部设备;
步骤八,驱动层为每种设备创建监视点;在中间件层,为每个外部设备创建一个周期性线程,用于监视其运行状态。


2.根据权利要求1所述的一种基于实时操作系统的星载驱动框架设计方法,其特征在于,所述步骤二中根据该设备的硬件抽象化,定义用户级的设备结构体,即该结构体能够描述该完整设备,其中,所述结构体包含设备的基址、中断向量、配置参数选项,状态监视,以及该设备对应的操作系统中定义的字符设备结构体指针、块设备结构体指针,用于注册后,操作系统将抽象的外部设备用一张链表“串”起来,统一管理,增强系统的规范性和通用性。


3.根据权利要求1所述的一种基于实时操作系统的星载驱动框架设计方法,其特征在于,所述步骤三中,用户定义星载外部设备的操...

【专利技术属性】
技术研发人员:白亮陈议邱源包佳东施雯刘骁彭飞
申请(专利权)人:上海航天计算机技术研究所
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1