一种分区实时操作系统FC-以太网桥接网卡适配方法
未命名
08-12
阅读:379
评论:0
一种分区实时操作系统fc-以太网桥接网卡适配方法
技术领域
1.本发明涉及分区实时嵌入式操作系统开发、fc协议与以太网协议网络通信,具体涉及到分区实时操作系统下的fc-以太网协议桥接通信的实现方法。
背景技术:
2.1997年,美国航空电子工程委员会为民用飞机的综合模块化航电系统定义了一套名为arinc653的软件安全规范,制定了操作系统层与应用软件层之间的标准接口,引入了分区概念,实现了应用程序之间的时空隔离,目前arinc653标准已成为主流开放式航电系统遵循的一种重要规范。vxworks653是美国风河(wind river)公司安全关键arinc653平台的一个核心组成部分,是嵌入式行业内先进的隔离实时操作系统,通过分区的时空资源分配确保应用程序的安全关键性,采用严格的两级调度机制,具有良好的实时性与稳定性,且完全满足arinc653与rtca/do-178的要求。目前vxworks653已经成功运用于全球100多家公司、40多种飞机的180多个子系统。
3.以太网协议(ethernet)是目前使用最广泛的网络通信协议,最早于1973年提出,并于1983年由xerox、intel、dec三家公司联合发布了ethernet ii协议,基于其成本低廉、易于组网、可扩展性强的特点已成为了主流网络的实现技术,目前许多的成熟应用程序及通信中间件均采用该技术进行开发。
4.光纤通道协议(fibre channel,fc)是由美国标准化委员会的x3t11小组于1988年提出的高速串行传输协议,解决了并行总线scsi遇到的技术瓶颈,是大规模密集存储系统高效传输的有效解决方案。fc协议相比以太网协议更加复杂,但同时具备通道和网络双重优势,具有高带宽、高可靠性、高稳定性,高抗电磁干扰等优点,能够提供非常稳定可靠的通信连接,适合构建大型的数据传输和通信网络,支持1x、2x、4x和8x的带宽连接速率。因此fc协议也在机载航电系统上得到了广泛应用,用以构建高速机载通信网络,也随之诞生了相应的光纤通道-航空电子环境(fibre channel-avionics environment,fc-ae)系列标准,常用标准协议为fc-ae-asm。
5.实现fc-以太网桥接通信,将有助于现有以太网应用在光纤网络上的拓展,但由于以太网协议与fc协议自身存在着较大差异,其通信方案的实现需要涉及硬件驱动、操作系统等多个方面,存在着部分系统fc设备无法直接识别的问题,尤其是对于fc-以太网的桥接通信设备而言,其添加的转换模块需要上层操作系统的兼容;对于vxworks653系统而言,与其相关的软硬件接口均需符合arinc653标准,在系统api调用权限限制及系统运行时的健康管理等方面较为严格,桥接通信方案的设计不仅要避免对于上层以太网应用的影响,还需符合相应的标准规范;此外相比于vxworks、linux等主流嵌入式操作系统,目前vxworks653的国内研究较少,参考资料及其匮乏,因此针对vxworks653系统的fc-以太网桥接网卡适配尚留有研究空白。
6.但对于航电系统中的机载计算机开发,实现vxworks653系统平台上fc-以太网桥接通信,将结合三者优点,有助于提高航电系统的开放性、实时性与可靠性,采用
vxworks653操作系统以保证机载应用的可靠实时响应,利用机载光纤通道进行数据的高效实时传输,采用基于以太网协议开发的成熟应用将降低系统的研发成本并提高可靠性。三者的结合使得航电系统,以至关键实时系统可借助现有成熟应用极大丰富系统功能,在开放式架构的趋势下为其提供更为广阔的发展前景。
技术实现要素:
7.为解决fc设备识别、以太网应用的光纤通信等问题,本发明提出了一种分区实时操作系统fc-以太网桥接网卡的适配方法。本发明中具体采用vxworks653 2.5系统作为分区实时操作系统、p2020 rdb-pca板卡作为整体硬件部署平台、fce-1221a子卡(简称fc子卡)作为fc-以太网桥接网卡进行具体的实例构建。
8.本发明基于通过pci-e识别fc子卡为虚拟以太网网卡的方法,实现vxworks653分区实时操作系统的fc-以太网桥接通信,其具体步骤如下,流程图如图1所示:
9.步骤s1:通过系统文件修改,完成pci-e环境配置,调用核心层系统函数,为fc设备完成系统注册。
10.步骤s2:对fc驱动库进行修改,完成fc协议与以太网协议地址的映射关联,之后进行针对操作系统的适配添加。
11.步骤s3:完成fc子卡的系统设备注册,将其识别为虚拟的以太网网卡,在系统核心层进行桥接网卡初始化,完成桥接网卡的参数配置。
12.至此,完成了vxworks653核心层系统中fc-以太网桥接网卡的设置,将fc子卡识别为了一张虚拟的以太网网卡,上层分区内应用可以通过以太网函数接口,直接调用fc设备在光纤通道上进行数据收发操作。
13.本发明的有益效果是:将实现分区实时嵌入式操作系统对于fc设备的兼容识别,使其能够为上层以太网协议应用直接使用,为安全关键系统的功能扩展提供基础通信支持。本发明提供的思路,可以为基于分区实时操作系统的通信架构搭建、通信协议兼容及应用组件移植等方面提供普适通用的思路与参考方法。
附图说明
14.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
16.附图1一种分区实时操作系统fc-以太网桥接通信的方法流程示意图
17.附图2本发明系统平台架构示意图
18.附图3本发明实施例的系统配置文件中pci-e设备内存池条目设置展示图
19.附图4本发明实施例基于pci-e识别fc子卡的结果图
20.附图5本发明实施例的fc-以太网数据帧封装解封流程示意图
21.附图6本发明实施例修改后的fc驱动模块示意图
22.附图7本发明实施例fc驱动源文件可执行文件编译过程图
23.附图8本发明实施例光纤通道以太网命令通信测试结果图
具体实施方式
24.为了使本发明的技术方案与实现目的的表述更加清楚、明白,下面将对本发明的实施步骤进行具体说明。
25.本发明的实施实例采用软硬件环境是采用飞思科尔公司的p2020 rdb-pca硬件板卡搭载vxworks653 2.5操作系统;选用光航信公司的fce-1221a节点卡(简称fc子卡)通过pci-e与硬件板卡相连,提供光纤传输支持,其系统平台架构示意图如附图2所示。本实例是对本发明的具体个例解释,用以充分展示本发明的实施思路,其实现实例不局限此实例。
26.本发明围绕vxworks653分区实时操作系统提出了一种fc-以太网桥接网卡的适配方法,其具体适配方法如下:
27.步骤s1:通过系统文件修改,完成pci-e环境配置,借用核心层系统函数,为fc设备完成系统注册。
28.步骤s1.1:修改核心层系统配置文件,完成对于pci-e核心io内存池的添加。
29.首先在核心层的系统配置文件中,完成对于pci-e设备核心io内存池的添加,该内存池将为来自pci-e设备的数据提供空间。本例对应fsl_p2020_rdb.xml文件,在系统原有核心io内存池之后补充添加“kernelio3”条目,大小为256m,其配置结果如附图3所示。
30.步骤s1.2:修改核心层系统配置头文件,添加或修改有关pci-e设备基本信息的宏变量。
31.在核心层系统配置头文件中,需要添加有关pci-e设备内存空间基址、内存大小、pci-e桥等基本信息的宏变量定义,这些信息上述内存池信息对应,将在驱动注册和pci-e驱动库函数使用时作为参数。在本例中对应的系统配置头文件为config.h与fsl_p2020_rdb.h,补充添加的基本信息宏变量包含pcie_law_base、pcie_law_size、pcie_law_size1、pcie_mmu_tlb_sz、pcie_mmu_adrs、pcie_mmu_size、pcie_io_adrs、pcie_io_size、pcie_mmu_memio_adrs、pcie_mmu_memio_size等,修改这些内存大小及寄存器地址,使其与板级支持包中的描述文件中的值保持一致。
32.步骤s1.3:修改核心层系统库函数文件,并完成pci-e驱动注册。
33.在核心层系统库函数文件中,添加被引用的驱动库操作库函数的源文件和头文件等,使pci-e驱动接口并入核心层操作系统,利用相应初始化函数完成pci-e设备驱动的注册,为基于pci-e连接的fc子卡设备读写数据操作提供接口支持。在本实例中对应的核心层库函数文件为syslib.c,添加的头/源文件包括《drv/pci/m85xxpci.h》、《spelib.h》、《pci/pciexconfigshow.c》、《pci/pciexautoconfiglib.c》、《drv/m85xxtimer.c》、《drv/pictmrdrv.c》等,之后在syslib.c文件中使用syshwinit函数完成pci-e的设备驱动注册,使得系统在加载时自动完成pci-e驱动库的加载,可以通过pci-e操作fc子卡进行数据读写。
34.步骤s1.4:完成pci-e设备的参数配置,实现fc设备的识别。
35.在核心操作系统用户代码段利用pci-e的配置函数完成相应参数设置,在系统加载后完成对于连接到的fc子卡识别,是实现操作fc设备的基础。本实例于vxworks653核心层操作系统的usrappinit.c文件的用户代码段中,使用syspciexpressautoconfig函数完
成对于pci-e设备的自动配置,在系统加载后于主机上调用host shell执行pciexdeviceshow命令以查询pci-e挂载设备,可以成功查询到向量号(vendorid)为0x10ee的fc子卡,其fc子卡识别结果如附图4所示。
36.步骤s2:对fc驱动库进行修改,完成fc协议与以太网协议地址的映射关联,之后进行针对操作系统的适配添加。
37.步骤s2.1:修改fc驱动库,添加协议封装接口,完成fc协议与以太网协议的地址映射关联。
38.以fc-id中的domain id、area id、port id分别对应以太网地址中的mac、ip、port地址,以此建立起fc与以太网的地址一一映射关系,此后在fc驱动中添加相应接口,将来自上层系统的以太网数据帧作为数据段封装进fc帧中,以此实现fc-以太网的桥接通信。在本实例中采用tcp/ip四层网络协议模型作为以太网数据帧的封装基础,其协议封装流程如附图5所示,修改后的fc驱动模块示意图如附图6所示。
39.步骤s2.2:完成fc驱动库函数的适配修改,利用操作系统对应编译器将其编译为静态链接库。
40.核对fc驱动库函数与操作系统的pci-e及以太网函数接口,确保一致,使得系统以太网应用能够通过pci-e操作fc设备;之后将fc驱动库源文件在操作系统对应的编译器中编译为若干个可执行文件,之后采用对应编译工具将可执行文件编译为静态链接库加入系统运行,通过系统配置即可实现fc驱动库的功能调用。本实例利用workbench工作台的vxworks653 2.5development shell中运行gnu相关指令,完成fc驱动库的可执行文件编译工作,其源文件的可执行文件编译编译结果如附图7所示;之后利用arrpc和ranlibppc工具将若干个可执行文件统合成fc驱动静态链接库pci_6553.a。
41.步骤s2.3:添加fc驱动静态链接库至系统映像。
42.在系统编译配置选项中,设置相应参数,使得fc驱动静态链接库加入系统映像的编译流程中。本实例在workbench的核心层项目编译属性选项卡中,通过在build command框中补充添加extra_libs+=$(prj_dir)/pci_6553.a语句,将已编译好的fc驱动静态链接库加入到系统运行映像中。
43.步骤s3:完成fc子卡的系统设备注册,将其识别为虚拟的以太网网卡,在系统核心层进行桥接网卡初始化,完成桥接网卡的参数配置。
44.步骤s3.1:核心层系统卸载现有以太网网卡。
45.在核心层系统用户代码段使用相应函数完成现有以太网网卡的设备及协议栈等相关配置卸载,为挂载fc子卡预留相应空间。本实例于核心层usrappinit.c文件的用户代码段中,使用ipdetach与muxdevunload函数完成对于现有以太网网卡的卸载,同时利用hostdelete与routedelete函数完成对于以太网主机及路径相关配置信息的卸载。
46.步骤s3.2:完成fc设备的参数配置,实现虚拟网卡初始化。
47.在核心层系统用户代码段使用相应函数完成fc设备的参数配置,同时完成fc-id与以太网地址的映射关系建立,通过pci-e将fc设备识别为一张以太网网卡,以此实现虚拟网卡的挂载,使其能够被上层以太网应用直接使用。本实例于核心层usrappinit.c文件的用户代码段中,依次利用ipattach和usrnetifconfig函数完成对于用户自定义网卡,即虚拟网卡的配置,同时利用netinit接口和pciconfig接口实现fc设备初始化,以及完成对于
存储有fc-id以太网地址映射关系的配置文件读取,至此完成了fc-桥接网卡的全部适配过程,在光纤通道上采用两块p2020 rdb板卡连接fce-1221a子卡,装载vxworks653 2.5版本分区实时操作系统,在其上位机host shell中互相运行以太网ping命令进行通信测试,其测试结果如附图8所示,结果证明本发明实例成功实现fc-以太网桥接网卡的适配,可以在光纤通道上直接运行以太网命令。
48.本发明实施例如上所述,通过修改系统配置、适配相应驱动库的方法,基于pci-e将具有fc-以太网桥接功能的fc子卡识别为一张虚拟的以太网网卡,使得上层以太网应用可以直接在光纤通道上通信,解决了fc设备识别兼容问题,实现了分区实时操作系统fc-以太网桥接网卡的适配。
49.本发明提出的分区实时操作系统fc-以太网桥接网卡的适配方法,是基于总线设备实现对于fc通信设备的兼容识别,通过相应系统配置与代码修改,使得上层应用可以直接调用fc通信设备接口,可以基于本发明在不同硬件平台上完成对于fc协议通信设备的兼容识别,为以太网应用的移植、系统平台功能扩展提供基础支持。
50.在不偏离本发明的基本技术思路和精神原则的情况下,针对上述细节所做出的任何明显的修改,或等同的替换,或进一步的优化,均应包含在本发明的权利要求范围内。
技术特征:
1.一种分区实时操作系统fc-以太网桥接网卡适配方法,其特征在于,通过修改系统文件和配置系统环境,利用硬件总线将fc通信设备识别为虚拟以太网网卡,实现对于fc桥接通信网卡的兼容,使得上层以太网应用可以直接调用相应接口;此外,该方法可以针对不同的应用场景和需求进行定制和调整,以实现不同软硬件环境的桥接通信;所述适配方法包括以下步骤:步骤s1:通过系统文件修改,完成pci-e环境配置,调用核心层系统函数,为fc设备完成系统注册;步骤s2:对fc驱动库进行修改,完成fc协议与以太网协议地址的映射关联,之后进行针对操作系统的适配添加;步骤s3:完成fc子卡的系统设备注册,将其识别为虚拟的以太网网卡,在系统核心层进行桥接网卡初始化,完成桥接网卡的参数配置。2.根据权利要求1所述的分区实时操作系统fc-以太网桥接网卡适配方法,其特征在于,所述步骤s1中,具体步骤为:步骤s1.1:修改核心层系统配置文件,完成对于pci-e核心io内存池的添加;步骤s1.2:修改核心层系统配置头文件,添加或修改有关pci-e设备基本信息的宏变量;步骤s1.3:修改核心层系统库函数文件,并完成pci-e驱动注册;步骤s1.4:完成pci-e设备的参数配置,实现fc设备的识别。3.根据权利要求1所述的分区实时操作系统fc-以太网桥接网卡适配方法,其特征在于,所述步骤s2中,具体步骤为:步骤s2.1:修改fc驱动库,添加协议封装接口,完成fc协议与以太网协议的地址映射关联;步骤s2.2:完成fc驱动库函数的适配修改,利用操作系统对应编译器将其编译为静态链接库;步骤s2.3:添加fc驱动静态链接库至系统映像。4.根据权利要求1所述的分区实时操作系统fc-以太网桥接网卡适配方法,其特征在于,所述步骤s3中,具体步骤为:步骤s3.1:核心层系统卸载现有以太网网卡;步骤s3.2:完成fc设备的参数配置,实现虚拟网卡初始化。
技术总结
本发明涉及一种分区实时操作系统FC-以太网桥接网卡的适配方法。本发明通过修改分区实时系统核心层相关系统文件、配置相关系统环境、适配编译相关驱动库与链接库的方式,利用PCI-E总线将FC设备在核心层用户代码段注册为一张虚拟的以太网网卡,解决了现有FC设备与操作系统不兼容的问题,使得上层以太网应用可以直接基于以太网接口函数直接进行光纤通道的数据传输。本发明提出的FC-以太网桥接网卡的适配方法可以解决分区实时操作系统对于通信设备的兼容问题,对现有以太网应用移植、系统平台功能扩展提供直接支持,也可以为基于分区实时系统的航电系统开发、通信架构设计提供更加符合开放式架构需求的实施思路。实验结果表明,本发明可以有效地实现操作系统及应用对于FC通信设备的兼容识别,上层应用可以基于以太网接口函数直接在光纤网络上通信。网接口函数直接在光纤网络上通信。网接口函数直接在光纤网络上通信。
技术研发人员:肖瑾 时家齐 宋博洋 胡晓光
受保护的技术使用者:北京航空航天大学
技术研发日:2023.05.31
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
