论文部分内容阅读
摘要:以嵌入式计算机与操作系统接口的实际应用和兼容性为主要研究方向,针对嵌入式计算机的硬件抽象层的特殊结构与虚拟化技术的实际应用进行实际探讨。
1 研究背景
嵌入式计算机的系统与设备具有很长的生命周期,在其漫长服役过程之中,嵌入式计算机期间一旦出现故障需要更换,常会碰到所需元件停产或断档情况,只能将其他类似器件作为替代品,而器件更换又将付出验证与确认的重大代价。所以,如何将通过检验的软件不加修改的运行在新硬件上,是当前急需解决的重要问题。
2 软件结构模型
如图1所示,硬件抽象层会对底层硬件信息进行封装,并为上层软件提供低级别资源抽象访问权限,在此基础上,硬件抽象层能对操作系统进行逻辑上与空间上的分离,硬件抽象层与操作系统均具有独立编译能力,且能生成完全不同的映像。这种结构优点在于:CPU核心体系不会轻易发生改变,所改变的仅有硬件接口与外围芯片,重要的操作系统和应用程序均可保留原貌,无须重新安装生成。而该结构缺点也极为明显:硬件抽象层与操作系统以及应用映像通过空间分离,无法直接进行接口互访,需通过机制完成转化,方能进行接口互访[1-2]。
图2 硬件抽象层的体系结构
3 硬件抽象层结构模型
见图2,具体功能有以下几点:
(1)系统引导。完成相关数据初始化后启动用户配置映像;
(2)映像管理。硬件抽象层具有固化管理映像、擦除管理映像、加载管理映像等功能,该映像管理模块能通过设备驱动直接进行储存设备访问;
(3)硬件抽象层具有驱动所有体系结构设备与芯片的核心作用,设备驱动能为操作系统提供相应配置方式;
(4)硬件抽象层通过调试代理模块,能够对软件进行加载与调试,调试代理目的在于连通设备驱动与主机端之间的通信,并对相关函数进行映像操作。
4 隔离机制
就当前而言,国内自主版权操作系统鲜有能够完全满足图1软件模型的系统存在,这是因为该模型实际上是立项模型。而本文将采用Vx Works操作系统对硬件抽象层与操作系统隔离机制进行研究。作为嵌入式操作系统应用最广泛的系统,Vx Works经改造后如图3所示。Wind 内核只会通过操作系统层函数库对接口函数进行选择,再通过系统层函数库函数访问硬件抽象层中经过改造的 BSP 函数,从而实现隔离机制[3]。
图3 改造后的软件结构图
5 验证与测试
根据本文对操作系统改造的影响范围,我们将主要测量系统初始化时间、中断响应时间和异常响应时间,通过这三个时间指标来分析添加硬件抽象层与操作系统接口后对系统性能产生的影响。其中系统初始化时间测量对精度要求不高,使用软件方法,其他两项指标的测量使用硬件方法[4-5]。
5.1 系统初始化时间的测量
系统初始化时间是指从系统上电开始到启动函数usr Root()作为系统的根任务之间所用的时间。本文使用Vx Works中自带的时标读取函数vx Time Base Get()来测量。函数vx Time Base Get()可获取系统执行中的tick数,tick的频率为系统时钟频率的1/4。本文所选用的测试平台系统时钟为32MHz,因此tick的频率为8MHz。除去系统调用时压栈、出栈的过程,使用函数vx Time Base Get()测量的时间精度可以达到微秒级,满足系统初始化时间测量的需求。测量使用的主要代码如下:
UINT32 high,low;
UINT32 high1,low1;
UINT32 high2,low2;
vx Time Base Set(0,0);/*计数清零*/
vx Time Base Get(&high1,&low1);/*获取开始时间*/
…… /*系统初始化代码*/
vx Time Base Get(&high2,&low2);/*获取结束时间*/
high=high2-high1;
low=low2-low1;
5.2 中断响应时间的测量
在开始测量前,首先在中断处理程序的开始处添加一条语句,其作用是将硬件平台中的一位离散量从0置为1,作为进入中断处理程序的标志。然后示波器的通道A连接硬件平台的中断请求信号INQ,通道B连接离散量信号DIO,当中断产生时将触发示波器进行记录,截取示波器通道A和通道B的波形,进行测量和计算。使用上述测试方法完成系统初始化时间、中断响应时间和异常响应时间的测量。添加硬件抽象层与操作系统接口后,系统的初始化时间、中断响应时间和异常响应时间与添加前的系统相比都有一定程度的增加,这是因为改造后的系统多了一层硬件抽象层与操作系统接口的函数调用,但这些时间指标仍保持与原来相同的量级。本文使用的测试环境处理器为Power PC603E,如果选用性能更强的处理器,由于使用硬件抽象层与操作系统接口带来的性能损失将可以得到进一步缩小。测试结果表明本文研究的硬件抽象层与操作系统接口达到了设计的期望。
6 结语
目前国内针对硬件抽象层的研究刚刚起步,尚未形成相关标准。本文充分考虑嵌入式计算机的特点和要求,对硬件进行抽象,制定了相关接口,从而实现操作系统和硬件的隔离。通过对Vx Works操作系统的改造,验证了隔离机制,为嵌入式计算机硬件抽象层与操作系统接口的研究提供了一些可以借鉴的经验。
参考文献:
[1]NATO.STANAG 4626-2005 modular and open avionics architecture(Part II: software)[S].Brussels: Military Agency forStandardization,2005.
[2]A.S.Wake,Integrated Modular Avionics:Software ArchitectureConcept[R],Technical Report BAE-BSE-SP-RES-000009,2003.
[3]黄永葵.SAEAS4893《通用开放式体系结构(GOA)框架》评析[J].航空电子技术,2007(1):40-46.
[4]梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006(6):1257-1275.
[5]褚文奎,张凤鸣,张育等.基于COTS的军用软件保障问题研究[J].系统工程与电子技术,2007(12):2166-2170.
1 研究背景
嵌入式计算机的系统与设备具有很长的生命周期,在其漫长服役过程之中,嵌入式计算机期间一旦出现故障需要更换,常会碰到所需元件停产或断档情况,只能将其他类似器件作为替代品,而器件更换又将付出验证与确认的重大代价。所以,如何将通过检验的软件不加修改的运行在新硬件上,是当前急需解决的重要问题。
2 软件结构模型
如图1所示,硬件抽象层会对底层硬件信息进行封装,并为上层软件提供低级别资源抽象访问权限,在此基础上,硬件抽象层能对操作系统进行逻辑上与空间上的分离,硬件抽象层与操作系统均具有独立编译能力,且能生成完全不同的映像。这种结构优点在于:CPU核心体系不会轻易发生改变,所改变的仅有硬件接口与外围芯片,重要的操作系统和应用程序均可保留原貌,无须重新安装生成。而该结构缺点也极为明显:硬件抽象层与操作系统以及应用映像通过空间分离,无法直接进行接口互访,需通过机制完成转化,方能进行接口互访[1-2]。
图2 硬件抽象层的体系结构
3 硬件抽象层结构模型
见图2,具体功能有以下几点:
(1)系统引导。完成相关数据初始化后启动用户配置映像;
(2)映像管理。硬件抽象层具有固化管理映像、擦除管理映像、加载管理映像等功能,该映像管理模块能通过设备驱动直接进行储存设备访问;
(3)硬件抽象层具有驱动所有体系结构设备与芯片的核心作用,设备驱动能为操作系统提供相应配置方式;
(4)硬件抽象层通过调试代理模块,能够对软件进行加载与调试,调试代理目的在于连通设备驱动与主机端之间的通信,并对相关函数进行映像操作。
4 隔离机制
就当前而言,国内自主版权操作系统鲜有能够完全满足图1软件模型的系统存在,这是因为该模型实际上是立项模型。而本文将采用Vx Works操作系统对硬件抽象层与操作系统隔离机制进行研究。作为嵌入式操作系统应用最广泛的系统,Vx Works经改造后如图3所示。Wind 内核只会通过操作系统层函数库对接口函数进行选择,再通过系统层函数库函数访问硬件抽象层中经过改造的 BSP 函数,从而实现隔离机制[3]。
图3 改造后的软件结构图
5 验证与测试
根据本文对操作系统改造的影响范围,我们将主要测量系统初始化时间、中断响应时间和异常响应时间,通过这三个时间指标来分析添加硬件抽象层与操作系统接口后对系统性能产生的影响。其中系统初始化时间测量对精度要求不高,使用软件方法,其他两项指标的测量使用硬件方法[4-5]。
5.1 系统初始化时间的测量
系统初始化时间是指从系统上电开始到启动函数usr Root()作为系统的根任务之间所用的时间。本文使用Vx Works中自带的时标读取函数vx Time Base Get()来测量。函数vx Time Base Get()可获取系统执行中的tick数,tick的频率为系统时钟频率的1/4。本文所选用的测试平台系统时钟为32MHz,因此tick的频率为8MHz。除去系统调用时压栈、出栈的过程,使用函数vx Time Base Get()测量的时间精度可以达到微秒级,满足系统初始化时间测量的需求。测量使用的主要代码如下:
UINT32 high,low;
UINT32 high1,low1;
UINT32 high2,low2;
vx Time Base Set(0,0);/*计数清零*/
vx Time Base Get(&high1,&low1);/*获取开始时间*/
…… /*系统初始化代码*/
vx Time Base Get(&high2,&low2);/*获取结束时间*/
high=high2-high1;
low=low2-low1;
5.2 中断响应时间的测量
在开始测量前,首先在中断处理程序的开始处添加一条语句,其作用是将硬件平台中的一位离散量从0置为1,作为进入中断处理程序的标志。然后示波器的通道A连接硬件平台的中断请求信号INQ,通道B连接离散量信号DIO,当中断产生时将触发示波器进行记录,截取示波器通道A和通道B的波形,进行测量和计算。使用上述测试方法完成系统初始化时间、中断响应时间和异常响应时间的测量。添加硬件抽象层与操作系统接口后,系统的初始化时间、中断响应时间和异常响应时间与添加前的系统相比都有一定程度的增加,这是因为改造后的系统多了一层硬件抽象层与操作系统接口的函数调用,但这些时间指标仍保持与原来相同的量级。本文使用的测试环境处理器为Power PC603E,如果选用性能更强的处理器,由于使用硬件抽象层与操作系统接口带来的性能损失将可以得到进一步缩小。测试结果表明本文研究的硬件抽象层与操作系统接口达到了设计的期望。
6 结语
目前国内针对硬件抽象层的研究刚刚起步,尚未形成相关标准。本文充分考虑嵌入式计算机的特点和要求,对硬件进行抽象,制定了相关接口,从而实现操作系统和硬件的隔离。通过对Vx Works操作系统的改造,验证了隔离机制,为嵌入式计算机硬件抽象层与操作系统接口的研究提供了一些可以借鉴的经验。
参考文献:
[1]NATO.STANAG 4626-2005 modular and open avionics architecture(Part II: software)[S].Brussels: Military Agency forStandardization,2005.
[2]A.S.Wake,Integrated Modular Avionics:Software ArchitectureConcept[R],Technical Report BAE-BSE-SP-RES-000009,2003.
[3]黄永葵.SAEAS4893《通用开放式体系结构(GOA)框架》评析[J].航空电子技术,2007(1):40-46.
[4]梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006(6):1257-1275.
[5]褚文奎,张凤鸣,张育等.基于COTS的军用软件保障问题研究[J].系统工程与电子技术,2007(12):2166-2170.