论文部分内容阅读
摘 要:航空电子系统涵盖了整个飞机上所有的航电应用任务,对飞机飞行任务的执行起着至关重要的作用,如果没有航电系统,飞机仅仅是一架能飞上天的机器而已,有了航电系统飞机才能展现出它的强大功能。随着对飞机功能要求的不断提高,航电应用的数量越来越多,设计也越来越复杂,在众多复杂的设计中,各个应用之间跨平台进行的数据交换是非常重要的一环。本文讨论了一种实现数据跨平台使用的方法。
关键词:综合化航电;数据交换;航电应用
引言
随着综合化航空电子系统实现的功能越来越复杂,单一的硬件模块已经不能满足全部航电应用的运行需求,因此,所有的航电应用根据功能划分以及对硬件资源的要求,被合理地分配到各个不同的硬件模块上。在硬件模块方案设计阶段,设计人员会根据分配给该模块的航电应用的实际资源需求,来选择最适合的硬件体系架构。最终,航电系统中就会出现各种不同的硬件平台互相协同工作的局面。在不同硬件平台上运行的航电应用之间需要数据交换,因此,就需要对综合化航电系统中跨平台数据使用方法进行研究并提出合理可行的解决方案。
1 跨平台数据差异
跨平台数据差异主要涉及两方面的内容:与CPU相关的大小端数据存储方式、与编译器相关的数据对齐格式。
1.1 大小端数据存储方式
大小端存储格式不同,体现为多字节数据在内存中的存储表示方法不同:采用大端模式时,数据的高位存储在内存的低地址中;采用小端模式时,数据的高位存储在内存的高地址中。大小端数据对齐主要由硬件设计所选取的CPU型号确定,例如:在目前主流的CPU系列中,X86系列采用小端模式,PPC系列则采用大端模式。
1.2 编译器数据对齐格式
数据对齐格式的差异,体现为在经编译器编译完成之后的目标码中,不同字节长度的数据连续存放时,对于每一个单独数据的存储起始地址的要求上。例如:同样一组数据,采用2字节对齐方式,与采用4字节对齐方式,最终在内存中的存放结果是不相同的。
虽然数据的对齐操作具体由编译器来执行完成,但是对于数据对齐格式的要求,则不是完全由编译器所决定的,编译器对于数据对齐格式的选择,很大程度上还是依赖于目标码最终的硬件执行环境(主要是CPU对于数据对齐的硬性要求)。
2 应用数据的不同类型
在航电应用中,经常遇到的需要跨平台使用的数据主要有以下两种类型:
静态独立数据,是指该数据并不随着应用程序一起由编译器编译生成,该类数据经常对应系统的配置信息数据集。这些系统配置信息由宿主机上的专用配置工具进行配置,配置完成后生成可供应用程序在目标机上进行访问的二进制数据,该二进制数据最终被固化在目标机的非易失存储设备上,或者直接以文件的形式存储在目标机的文件系统中。应用程序在使用该类数据时,必须按照其内部的二进制数据格式进行操作,因此使用效率相对低一些。
编译器联编数据,是指应用程序源码中直接由程序数据类型所定义的程序数据。这些数据经编译器编译完成后,绝大部分存储在应用程序目标码的数据段中。通常情况下,该数据与应用程序一起由编译器编译完成,并生成在同一个二进制文件中,最终会随着应用程序的目标码,一起被固化进目标机的非易失存储区域。也有极少数情况下,这部分程序数据会被单独生成一个二进制文件,并固化在编译器指定的内存地址中。但是,不论是与应用程序的二进制文件一起生成还是单独生成,该类型的数据都能够直接被应用程序高效地使用。
3 应用数据的跨平台使用
对于静态独立数据,由于最终的二进制格式不是由编译器按照程序定义的数据结构生成的,因此,应用程序在使用该数据时必须要了解数据的存储方式。为了使静态独立数据对应的二进制格式,能够满足跨平台使用的要求,则需要该二进制格式与具体的编译器无关。因此,需要在二进制数据的起始位置,对数据格式进行必要的描述,例如:数据所采用的大小端方式、不同类型数据所在的存储位置、连续存储数据的对齐方式等。根据这些描述性信息,应用程序对整个二进制数据的存储格式就有了一个全面的了解,并且能够找到任何所需的数据内容。采用这种方式访问数据,应用程序需要在数据描述信息的指导下完成,如果每次对于数据的访问都需要对描述信息进行解析,那么数据访问效率会很差。因此,需要在应用程序的启动运行阶段,由一段专门的解析程序,一次性对全部的数据内容进行解析,并将解析后获得的数据,以当前程序运行时所支持的编译器格式进行存放,供后续应用程序直接访问,这样就大大提高了数据的访问效率。
对于编译器联编数据,最主要的问题则是数据对齐。随着硬件存储技术的飞速发展,现代航电系统中对于内存的使用,已经不像以前那样进行严格的控制。因此,可以对该问题采用一个简单的一刀切的处理办法:对所有的程序数据都采用4字节对齐的方式进行定义,即:将4字节以下的数值数据都统一定义为32位,将所有的字符串数据都定义为4字节的整数倍。这样虽然会浪费一小部分内存空间,但是极大地提高了数据跨平台使用能力。
4 结束语
随着航电系统所采用的硬件环境越来越复杂,对于航电系统中数据跨平台使用的要求也越来越高。设计数据跨平台使用方案时,在数据使用方面,不仅要考虑到跨平台的通用性,同时也要兼顾对于数据访问的效率;在硬件环境方面,除了要考虑目前系统中所采用的硬件环境外,还要考虑到后续系统升级时可能出现的各种情况。只有把上述所有影响因素都考虑在内,最终设计的数据跨平台使用方案才会有一个比较合理的生命存续周期。
参考文献:
[1] 柳翠寅,韩敏,袁继敏. 基于XML的跨平台数据安全交换[J]. 微计算机信息,2007,23(11-3):35-37.
[2] 侯琰,龙虹. Web Services在跨平台数据交换中的应用[J]. 计算机应用与软件,2006,23(3):59-60.
[3] 靳其兵,王艳艳,龙萍. 基于FDT的OPC跨平台数据访问研究[J]. 计算机工程,2010,36(4):265-266.
作者简介:王宁,男,(1982.3-),陕西渭南人,本科,工程师,主要从事综合化航电系统软件的研究、机载实时容错分布式系统的研究。
韩春阳,男,(1987.3-),黑龙江五常人,本科,工程师,主要从事综合化航电系统软件的研究、机载实时容错分布式系统的研究。
关键词:综合化航电;数据交换;航电应用
引言
随着综合化航空电子系统实现的功能越来越复杂,单一的硬件模块已经不能满足全部航电应用的运行需求,因此,所有的航电应用根据功能划分以及对硬件资源的要求,被合理地分配到各个不同的硬件模块上。在硬件模块方案设计阶段,设计人员会根据分配给该模块的航电应用的实际资源需求,来选择最适合的硬件体系架构。最终,航电系统中就会出现各种不同的硬件平台互相协同工作的局面。在不同硬件平台上运行的航电应用之间需要数据交换,因此,就需要对综合化航电系统中跨平台数据使用方法进行研究并提出合理可行的解决方案。
1 跨平台数据差异
跨平台数据差异主要涉及两方面的内容:与CPU相关的大小端数据存储方式、与编译器相关的数据对齐格式。
1.1 大小端数据存储方式
大小端存储格式不同,体现为多字节数据在内存中的存储表示方法不同:采用大端模式时,数据的高位存储在内存的低地址中;采用小端模式时,数据的高位存储在内存的高地址中。大小端数据对齐主要由硬件设计所选取的CPU型号确定,例如:在目前主流的CPU系列中,X86系列采用小端模式,PPC系列则采用大端模式。
1.2 编译器数据对齐格式
数据对齐格式的差异,体现为在经编译器编译完成之后的目标码中,不同字节长度的数据连续存放时,对于每一个单独数据的存储起始地址的要求上。例如:同样一组数据,采用2字节对齐方式,与采用4字节对齐方式,最终在内存中的存放结果是不相同的。
虽然数据的对齐操作具体由编译器来执行完成,但是对于数据对齐格式的要求,则不是完全由编译器所决定的,编译器对于数据对齐格式的选择,很大程度上还是依赖于目标码最终的硬件执行环境(主要是CPU对于数据对齐的硬性要求)。
2 应用数据的不同类型
在航电应用中,经常遇到的需要跨平台使用的数据主要有以下两种类型:
静态独立数据,是指该数据并不随着应用程序一起由编译器编译生成,该类数据经常对应系统的配置信息数据集。这些系统配置信息由宿主机上的专用配置工具进行配置,配置完成后生成可供应用程序在目标机上进行访问的二进制数据,该二进制数据最终被固化在目标机的非易失存储设备上,或者直接以文件的形式存储在目标机的文件系统中。应用程序在使用该类数据时,必须按照其内部的二进制数据格式进行操作,因此使用效率相对低一些。
编译器联编数据,是指应用程序源码中直接由程序数据类型所定义的程序数据。这些数据经编译器编译完成后,绝大部分存储在应用程序目标码的数据段中。通常情况下,该数据与应用程序一起由编译器编译完成,并生成在同一个二进制文件中,最终会随着应用程序的目标码,一起被固化进目标机的非易失存储区域。也有极少数情况下,这部分程序数据会被单独生成一个二进制文件,并固化在编译器指定的内存地址中。但是,不论是与应用程序的二进制文件一起生成还是单独生成,该类型的数据都能够直接被应用程序高效地使用。
3 应用数据的跨平台使用
对于静态独立数据,由于最终的二进制格式不是由编译器按照程序定义的数据结构生成的,因此,应用程序在使用该数据时必须要了解数据的存储方式。为了使静态独立数据对应的二进制格式,能够满足跨平台使用的要求,则需要该二进制格式与具体的编译器无关。因此,需要在二进制数据的起始位置,对数据格式进行必要的描述,例如:数据所采用的大小端方式、不同类型数据所在的存储位置、连续存储数据的对齐方式等。根据这些描述性信息,应用程序对整个二进制数据的存储格式就有了一个全面的了解,并且能够找到任何所需的数据内容。采用这种方式访问数据,应用程序需要在数据描述信息的指导下完成,如果每次对于数据的访问都需要对描述信息进行解析,那么数据访问效率会很差。因此,需要在应用程序的启动运行阶段,由一段专门的解析程序,一次性对全部的数据内容进行解析,并将解析后获得的数据,以当前程序运行时所支持的编译器格式进行存放,供后续应用程序直接访问,这样就大大提高了数据的访问效率。
对于编译器联编数据,最主要的问题则是数据对齐。随着硬件存储技术的飞速发展,现代航电系统中对于内存的使用,已经不像以前那样进行严格的控制。因此,可以对该问题采用一个简单的一刀切的处理办法:对所有的程序数据都采用4字节对齐的方式进行定义,即:将4字节以下的数值数据都统一定义为32位,将所有的字符串数据都定义为4字节的整数倍。这样虽然会浪费一小部分内存空间,但是极大地提高了数据跨平台使用能力。
4 结束语
随着航电系统所采用的硬件环境越来越复杂,对于航电系统中数据跨平台使用的要求也越来越高。设计数据跨平台使用方案时,在数据使用方面,不仅要考虑到跨平台的通用性,同时也要兼顾对于数据访问的效率;在硬件环境方面,除了要考虑目前系统中所采用的硬件环境外,还要考虑到后续系统升级时可能出现的各种情况。只有把上述所有影响因素都考虑在内,最终设计的数据跨平台使用方案才会有一个比较合理的生命存续周期。
参考文献:
[1] 柳翠寅,韩敏,袁继敏. 基于XML的跨平台数据安全交换[J]. 微计算机信息,2007,23(11-3):35-37.
[2] 侯琰,龙虹. Web Services在跨平台数据交换中的应用[J]. 计算机应用与软件,2006,23(3):59-60.
[3] 靳其兵,王艳艳,龙萍. 基于FDT的OPC跨平台数据访问研究[J]. 计算机工程,2010,36(4):265-266.
作者简介:王宁,男,(1982.3-),陕西渭南人,本科,工程师,主要从事综合化航电系统软件的研究、机载实时容错分布式系统的研究。
韩春阳,男,(1987.3-),黑龙江五常人,本科,工程师,主要从事综合化航电系统软件的研究、机载实时容错分布式系统的研究。