APP下载

基于RapidIO总线的机载显示器通信系统设计与实现

2021-06-16钟海林张翼飞张景景杨粤涛曹峰

电子技术与软件工程 2021年4期
关键词:端口号枚举备份

钟海林 张翼飞 张景景 杨粤涛 曹峰

(1.苏州长风航空电子有限公司 江苏省苏州市 215151 2.空装驻苏州地区军事代表室 江苏省苏州市 215151)

1 概述

传统航空显示器通信系统中一般为单主机通信,不支持热备份冗余功能,一旦出现故障,其系统可靠性和稳定性往往得不到有效地保障。鉴于此,本文采用基于Tsi578 交换机的四级RapidIO 总线交叉级联结构,并设计实现了一种深度优先结合分级交换机端口升序处理的自适应动态递归遍历方法,该方法能够有效地实现对多级RapidIO 总线级联系统进行枚举,在其中一个通信主机出现故障后,备份主机能够接替原通信主机进行工作,并具备对系统通信主机热复位操作及动态修改各级交换机路由信息,实现航空显示器通信主机备份和通信路径冗余功能,极大地提高了系统的可靠性和稳定性。

2 系统架构

基于RapidIO 总线的显示器系统架构如图1 所示,系统包含DCM1、DCM2、GPM1、GPM2 和四个Tsi578 交换机,其中DCM为通信计算机主机(DCM2 作为备份主机)与两块GPM(图形产生板)进行数据传输,DCM 采用MPC8548E 作为主通信处理器,GPM 采用MPC8640 作为主通信处理器。系统通过Tsi578 构建形成星型与环形RapidIO 总线,其中DCM1 默认为RpaidIO 主机,如果DCM1 出现故障,则自动由DCM2 接替DCM1 工作。通过设计相应枚举算法对整个RapidIO 总线进行枚举,支持RapidIO 总线和路由表动态变化和主机(DCM1)与备份主机(DCM2)切换枚举。

MPC8548E 与MPC8640 内部集成RapidIO 总线控制器,其中RapidIO 总线控制器支持x1/x4 模式,传输速率可为1.25Gb、2.5Gb和3.125Gb,支持消息和门铃机制,消息单元支持存储地址寄存器最大长度4KB 的消息。Tsi578 交换芯片有8 个媒体访问控制器(MAC)组成16 个SRIO 端口,16 个端口按奇偶端口划分成对,在4x 串行模式下最多支持8 个端口,在1x 串行模式下最多支持16个端口,各端口速率可单独设置,每个端口具有灵活的测试特性包含若干回环模式和位错误率测试。

3 系统软件设计

3.1 枚举算法设计

根据系统架构与功能需求,本文按照深度优先原则对级联交换机进行分级处理(一级、二级、三级、四级),每级按端口升序处理并结合主机位置判断处理策略,提出了一种深度优先结合分层交换机升序处理的自适应动态递归遍历算法。该算法枚举流程示意如图2 所示,系统在DCM1 上电后首先进行一级交换处理,一级交换机处理主要是针对与DCM1 相连的外部设备,首先建立一级交换机与主控芯片MPC8548E 物理链接,并对一级交换机按端口按升序方式进行枚举,系统所有RapidIO 总线接口连接采用x4 模式,所以下一个端口号为端口2,若是1x 模式则下一个端口号为端口1。在一级交换枚举过程中发现下一级交换设备则进行二级交换枚举,同样按深度优先原则递归枚举该端口所连接的RapidIO 交换机及设备;依次采用同样方法处理三级交换枚举和四季交换枚举,系统最大的深度是四级交换机,四级为最后一级枚举,此后便依次递归返回到前一级遍历处理例程中。系统遍历枚举过程同步采集RapidIO总线通信路由信息表,DCM1 通过发出相应的Maintenance read 或writ 操作,配置相应级别的交换机寄存器,设置对应的路由信息。

需要注意的是对各个交换机进行配置时,不同层级的交换遍历需要设置相应的跳数,否则可能引起系统异常而终止枚举过程。当系统通信主机由DCM1 切换为DCM2 时,需要DCM2 重新对RapidIO 网络进行枚举,并对DCM1 枚举避让,防止出现对故障部件遍历而导致系统异常。

3.2 动态路由配置

图1:系统架构图

图2:RapidIO 总线枚举流程示意图

表1:系统交换路由表

本系统由四个交换机组成,各个端点对应连接端口号是相对固定的,但实际应用中,可能会存在其中一个或多个端点出现故障的情况。因此如何合理地设置系统通信路由信息是非常重要的,本文在具体枚举实施过程中融合进行相应路由配置的,其次紧随枚举过程进行路由信息配置从而实现自适应动态地修正实际中相应交换机的路由表(Lookup Table,LUT)。路由表的设置通过配置RIO_ROUTE_CFG_DESTID 和RIO_ROUTE_CFG_PORT 确定目的ID 与端口号之间的对应关系实现,并通过查表方式实现系统通信数据包的路由与转发。LUT 在系统正常运行的过程中可以再编程,通过主机的Maintance read and write 软件维护包,对交换芯片的路由表寄存器进行配置,改变输入包的目的ID 域到输出端口号,从而改变路由。

需要注意的是,由于是在自动遍历枚举系统的情况下,存在未知的情况下对后续遍历设备的数目及拓扑结构进行枚举的需求,只有妥善地处理这种情况才能实现系统真正地动态自适应的枚举。需要在一级交换机中将所有通往二级、三级及四级交换机的路由信息都设置完毕,在其后几级交换机中也做类似的设置。表1 是根据上述路由策略配置的系统各级交换机路由信息。

4 系统通信余度设计

系统的余度设计包含两个方面:一是系统通信计算机双机热备份,二是系统通信路径冗余。其中通信计算机双机热备份是通过DCM1 与DCM2 热备份实现,而通信路径冗余则通过对DCM2 冗余枚举构成。

4.1 通信计算机双机热备份机制

通信计算机双机热备份机制是在系统中提供一个备份通信主机,在正常上电启动模式下,由DCM1 负责对整个系统进行枚举并与GPM1 和GPM2 进行数据通信,而DCM2 则根据位置判断不对系统进行枚举。DCM1 成功完成RapidIO 网络枚举后,通过门铃信息与DCM2 进行心跳包通信,一旦在规定的时间内DCM2 没有接收到DCM1 的心跳包,则认为DCM1 没有成功对整个RapidIO网络进行枚举或者成功枚举后在运行一段时间后出现故障不能正常完成RapidIO 通信,此时DCM2 接管整个RapidIO 网络并重新枚举,若DCM2 也未正常完成RapidIO 枚举或不能实现与GPM1 和GPM2 的RapidIO 通信则报向上级处理例程报故,否则使用DCM2替代DCM1 与GPM1 和GPM2 进行数据通行。

4.2 通信路径冗余机制

通信路径冗余机制的实现则与系统的拓扑结构紧密相关,如图1 所示,假设如果没有对DCM2 进行枚举,则DCM1 到GPM1和GPM2 只有一条路径可走,如果其中任一条出现故障或损坏,则DCM1 无法与其进行数据通信。而当DCM2 也被枚举过后,从DCM1 到达GPM1 就有以下几条路径可走:1)DCM1—>GPM1,2)DCM1—>DCM2—>GPM1,3)DCM1—>GPM2—>DCM2—>GPM1。而从DCM1 到GPM2 也是有以下几条路径可以走1)DCM1—>GPM2,2)DCM1—>DCM2—>GPM2,3)DCM1—>GPM1—>DCM2—>GPM2。通过对DCM2 的冗余枚举实现了系统在拓扑结构上通信路径的冗余机制。需要注意的是通信路径冗余仅在DCM1 作为通信主机时才具备条件实现,当DCM1 出现故障交权给DCM2 后,上述多条路径则不再存在,仅保留DCM2—>GPM1 和DCM2—>GPM2 两条路径。

5 系统复位与边界处理设计

本系统常态工作状态下只有一个RapidIO 通信主机,系统的各个路由信息是存储在交换机的相应端口寄存器中,没有外置存储器,所以掉电或复位后路由信息将会丢失。在系统实际运行中,苛求系统不产生复位的情况是不可能的,也是不切实际的,为了提高系统的健壮性就必须解决系统复位问题,这里的复位问题主要指主机热复位问题,是指主机在已经完成对RapidIO 交换网络进行枚举工作后,因为各种因而引起的系统复位问题(不包括RapidIO 通信从机的复位问题,RapidIO 通信从机复位后则必须强制通信主机对其再次进行枚举)。

出现复位情况的处理与上电时通信主机对整个系统进行枚举的情况是有差异的,因为此时系统内部各个RapidIO 通信从机都已被锁定,此时适应于先前初始化的锁定判断条件就不再适用于这种情况,而且需要考虑的是这种复位后的处理也要适用于目前系统的各种类型拓扑结构。本文通过改变枚举初始化流程,预先读取交换机和设备锁定状态寄存器,判断设备锁定状态,根据不同状态执行相应锁定或解锁操作,若为解锁操作,则结合需锁定值与已写入值进行比较判断,如果此次需锁定的值与交换机已经写入的锁定值是一致的,则认为这是主机复位后再次对其进行枚举。

因为枚举策略采用递归调用方式,本文通过结合交换机固定端口号、已分配的设备ID 值大小以及目前所处于哪一级交换处理例程中进行进行边界条件判定。重点解决各种可能出现的组合情况下分级递归遍历边界条件的设置,并根据不同的层级架构设定相应地边界判别条件作为终止循环条件,避免对已经遍历过的目标设别再次进行枚举导致总线枚举故障。

6 结论

本文所设计RapidIO 总线显示器通信系统,解决了显示器产品中RapidIO 总线交换组网及系统冗余备份技术。随着航空系统的发展,作为标准的高速串行板级互联技术,RapidIO 必将得到越来越广泛的应用,而基于RapidIO 总线组网问题更是实际应用中不可避免的,系统的研制为后续各种组网应用提供了坚实的基础,改变了以往数据通信单主机模式,极大地提高了航空显示器系统的可靠性和稳定性。

猜你喜欢

端口号枚举备份
基于理解性教学的信息技术教学案例研究
一种高效的概率图上Top-K极大团枚举算法
创建vSphere 备份任务
在Docker容器中安装应用程序
浅谈以java为基础的Socket通信简介及实现
旧瓶装新酒天宫二号从备份变实验室
基于太阳影子定位枚举法模型的研究
Winsock编程在《计算机网络基础》教学中的应用
基于Android系统的互动展示APP的研究与设计
出版原图数据库迁移与备份恢复