周 音,张 渊,汪鹏志
(1.中国人民解放军91977部队,北京 100036;2.中国船舶集团有限公司第七二二研究所,湖北 武汉 430079)
议进行组网,形成多网结构;能无线传输多种外部在高速高带宽数据通信系统中,同时存在多处输入的原始数据,外部数据主要通过各种外部硬件理器的应用环境下,网控器要完成复杂的多链路接口传输进入通信系统。网控器软件功能复杂,数协议切换以及对无线网络进行实时管理,数据量据量大,硬件接口复杂,且分布在多个处理器下,所大,硬件接口十分复杂。网控器要完成多种任务,以基于该应用场景,本文提出一种基于VPX总线比如,处于运动状态中的多个节点可按照约定的通的网络控制器 DSP通用软件设计,屏蔽了 IO物理接信协议自动组网,将网络结构进行分层化管理:节口的区别,方便移植,降低开发成本,同时也可以满点具备迟入网以及退网的功能,整个网络可实现网足实时数据通信中大数据量、大计算量、高带宽传络拓扑动态性调整;多个子网可根据约定的通信协输的需求。
VPX总 线[1]是 一 种 由 VITA(VME International Trade Association)组织在2007年推出的基于 VME总线标准的新的工业高速串行总线标准。它不仅延续了VME总线的机械结构和基本规范等特性,而且还具备以下优点:
(1)VPX总线使用高速串行通信方式替换并行通信方式,并且设计了更多的IO接口,大幅增强了系统设计的灵活度以及数据传输能力。
(2)VPX总线使用了泰科公司研制的 MultiGig RT2连接器产品,可以将更多的IO口用于提高系统的传输速率。同时,这种连接器连接十分紧密,稳定性高,具备防静电保护能力,信号干扰更小,能提高在恶劣条件下传输的可靠性。
(3)VPX总线对电源供电进行了升级,通过使用高电压输入,减少背板电流,不仅可以提供更高功率,还能减小电磁兼容带来的影响。理论上 VPX总线采用 5V供电可提供的最大功率为120 W,而VME总线相同条件下最高仅能提供90 W功率。
考虑到本文中通信系统终端应用场景的复杂性,采用 VPX总线结构设计,可以确保系统对更小尺寸和重量、耐高低温以及抗震性能的需求。除此以外,使用 VPX总线高速差分串行通信方式,能够为RapidIO接口提供最快可达 5 Gb/s的传输速率,能够满足通信终端高速带宽以及高功率的需求,同时也可以有效避免由于终端内部板卡间功耗较高而导致的散热问题[2-3]。
高速高带宽数据通信系统的终端由机箱以及内部的功能板卡构成,其布局如图1所示。终端的机箱采用全封闭式加固设计,各板卡采用机箱传导风冷方式进行散热处理,各板卡之间通过背板使用 VPX总线进行互联互通。终端主要包括六个部分:主控CPU板、接入 CPU板、DSP接收板、 DSP发送板、电源模块、背板。
网控器的功能主要在 DSP和CPU板卡上实现。DSP发送板主要完成发送时机控制,外部接口数据的分类存储,无线数据的组装等功能;DSP接收板主要完成无线数据的接收和解析等功能。主控 CPU板主要完成外部接口数据的分类、转换,外设控制等功能;接入 CPU板主要完成对外人机界面交互,状态信息上报等功能。其中,SRIO交换功能主要由 RapidIO交换芯片完成,交换芯片经 SRIO总线与背板连接器相连,从而完成各板卡之间的高速互通。
基于软件功能模块设计与分层设计的思想,软件架构设计分为三层,如图2所示。
(1)硬件抽象层[4-6]。硬件抽象层主要对片内资源(例如中断、 I/O接口、定时器、寄存器等)进行常规设置,将 SFR(special function register,特殊功能寄存器)的详细操作封装起来,形成可供上层调用的接口。
(2)功能模块层。功能模块层调用硬件抽象层提供的接口,完成片外功能模块,封装模块内部的详细操作,形成可供上层调用的接口。
图1 机箱板卡示意图
图2 软件分层设计
(3)应用程序层。应用程序层主要是一些开发类的工作,软件整体功能的实现。
分层架构可以做到以下要求:层与层之间不能跨层调用;模块与模块之间各自独立,无关联关系;模块提供统一的接口供调用;模块的功能可以在原有的基础上进行扩展,但不更改原有的功能。
功能模块层使用驱动层的 API,来实现数据的发送和接收。驱动层的 API为自定义的标准接口,除了其他特殊功能函数,一般会包含如下三个核心函数:
(1)Interface_Init:初始化函数,主要完成硬件参数的配置和初始化工作。
(2)Interface_Send:发送函数,主要完成对数据的发送。
(3)Interface_Recv:接收函数,主要完成对数据的接收。
在DSP软件的分层设计中,消息传递机制是基于VPX架构的,各板卡之间高速互通,能满足多处理器同步,处理器之间交互大数据量的要求,故基于 VPX互通的消息传递机制是核心。本文设计基于 VPX互通的消息传递机制,消息报文格式如表 1所示。
表1 消息格式
其中,按照消息的分发方向和消息类型可分为三类:
(1)设备类型:主要是设备类的设备信息,状态信息等。
(2)上报类型:主要是向上级控制软件传送此类消息,包括各种实时状态信息,业务申请等。
(3)内部类型:主要是机箱内部各板卡之间传递的消息。
在三种消息类型的基础上,可定义各子类型消息。消息类的函数主要有三种:
(1)Msg _Handle(unsigned char bType,unsigned char bSubType,unsigned char* pbData,unsigned short sLen)。消息处理函数,主要完成消息的解析处理。其中,bTy p e为消息类型,bSubType为消息子类型,pbData为数据地址,sLen为数据长度。在 Msg _Handle的函数处理中,会调用功能模块层的某些模块。
(2)Msg_ Dis(unsigned char bType,unsigned char bSubType,unsigned char* pbData,unsigned short sLen)。消息分发函数,主要完成消息的转发以及本版卡此消息类型的处理(调用 Msg_ Handle)。其中,bTy pe为消息类型,bSubType为消息子类型,pbData为数据地址,sLen为数据长度。根据消息类型和消息子类型,发送指定的数据给指定的某个或多个板卡。
(3)Msg _Recv(unsigned char* pbData,unsigned short sLen)。消息接收处理函数,主要完成消息的接收和缓存。其中,pbData为待接收数据的地址,sLen为待接收数据的长度。在循环队列中完成缓存后,数据会在main主函数中调用 Msg _ Handle进行解析处理。
基于这个消息传递处理机制,可实现多处理器的同步以及多处理器之间大数据量的传递。同时由于驱动层自定义 API的存在,消除了底层硬件接口的差异,具备良好的可移植性。
本文设计了一种适合高速高带宽数据通信系统中,同时存在多处理器的应用环境下,一种基于VPX的DSP软件通用架构设计,该设计屏蔽了底层硬件差别,统一使用标准化的硬件接口API,可实现网控器功能,提供多链路协议切换以及对无线网络进行实时管理的功能,同时也满足大数据量的要求。同时基于对底层硬件接口区别的屏蔽,该框架可方便地移植到其他硬件接口的平台,也实现了模块化分层化。