基于查询和中断的混合式数据接收方法设计

所属栏目: 计算机网络论文 论文作者:/
论文摘要

  AFDX网络端系统实现符介ARINC664P7协议标准的数据传输接u功能,支持主机系统接入AFDX网络。

  一般情况下,AFDX网络端系统以接卡的形式与主机系统连接,并支持主机系统发送和接收AFDX网络数据。数据的接收一般在主机系统端通过软件完成,主机端软件通过查询或者中断的方式接收网络数据。采用查询的方式增加了主机系统的负载;中断的方式降低了系统的负载,但是频繁的数据接收中断会存在中断嵌套及覆盖的情况,导致中断的丢失现象,引起数据丢包的问题。针对这些问题,本文提出了一种中断和查询结介的数据接收方法,减轻主机系统负载的同时,避免了山于中断丢失而引起的数据丢包问题。

  1 AFDX网络端系统通信分析

  AFDX网络在以太网的基础上发展而来,在以太网的基础上增加了确定性及双通道的约束.提高了数据传输的可靠性,保证了数据传输的确定性。在以AFDX网络为核心的机载网络中,网络端系统作为网络接日卡,将各个主机系统连接至核心网络,其主要作用如下。

  }I)实现基于IEEE802.3协议标准的物理层;

  (2)实现基于虚拟链路VL的通信调度功能;

  (3)实现ICMP协议、UDP/IP通信协议栈;

  (4)而向主机系统提供采样、周期及SAP通信端服务。

  1.1 网络端系统架构

  标准的AFDX网络系统采用双冗余的设计,采用星形的结构,其基本架构如图I所示

论文摘要

  图1描述了3个主机系统构成的双余度AFDX网络交换网络结构,通过两台互为备份的交换机实现了双路冗余数据的传输,即使端系统模块单个端日或者某个交换机出现故障,仍可以山另外一个端日通过交换机进行数据的传输,保证网络数据的可靠性。在图1中,网络端系统女装在主机模块,构成主机系统,支持主机系统的AFDX网络通信,端系统模块与主机模块一般采用PCI总线,利用PMC接u实现主机模块与端系统模块的交互,端系统和主机模块架构如图2所示。

论文摘要

  图2中,端系统通过PCI接u与主机模块连接,和主机模块一起构成一个主机系统,通过双通道CHA和CHB与外部AFDX网络交互。采用图2的方式,端系统模块负责进行AFDX网络数据的处理,包括数据的接收、有效性检查、UDP/IP协议栈处理、数据解包等工作,自接将有效的数据内容传送至主机模块。主机模块只需从相应的存储器进行数据读操作即可完成数据接收,而小用进行大运算量的AFDX网络协议处理工作,减少了主湘L模块的运行负载。

  1.2 AFDX网络数据分类及其接收方式分析

  AFDX网络数据分为采样数据、队列数据及SAP数据3种。其中,采样数据为周期性数据,数据以一定的周期进行传输,数据接收缓冲区采用覆盖的方式,新数据到来将会覆盖旧数据,采样数据适用于周期性的状态消息,且应用仅关心最近一次采样数据。队列数据为事件性数据,数据的到来没有特定的规律,以随机的形式进行传输,因此,队列数据需要一定深度的数据缓冲区,用于对接收到的数据进行缓存,而当缓冲区满后,新来的数据被丢弃,队列数据适用于事件性的消息传输。AFDX网络SAP数据主要用于高层协议,支持目的IP及端u号的设定等功能,一般小用于普通的AFDX网络数据通信。

  数据的接收一般分为查询方式和中断方式两种。查询方式具备实现简单、数据吞吐量较快的优势,但查询方式在无数据传输时仍在进行查询操作,因此,查询方式增加了处理器的负担,对于任务较重的主机系统,小适介用查询方式进行数据接收。采用中断的方式,数据接收可大大减轻处理器的负担,仅当有数据时,处理器才参与数据接收,但当数据量较大时,会引起频繁的中断。山于中断嵌套及覆盖等原因,会存在中断丢失或响应小及时的情况,导致数据的丢失或顺序错乱。

  对于AFDX网络基本通信,包括采样数据通信和队列数据通信两种。采样数据本身具有周期性的特点,因此,在主机模块接收可以采用查询的方式,主机模块以定时器的方式按照采样数据的周期每隔一定的时间进行数据接收即可,小会造成主机模块的无效查询和处理器资源的浪费。而对于队列数据,其具有小可预知的特点,因此,对于数据量较大的数据传输,采用查询方式进行接收能够提高数据接收的效率,而对于数据量较小的数据传输,采用中断的方式可以节省处理器资源,降低主机系统的负载。而在实际应用中,山于其数据传输的小可预知性,对于队列数据,单独采用查询方式或者中断方式无法满足既降低主机负载又提高接收效率的数据接收要求。

  2 端系统接收方法设计

  针对AFDX网络端系统队列数据的特点,为了满足既降低主机负载又提高接收效率的要求,本文提出一种将中断和查询结介起来的方式,在无数据传输时,小消耗主机处理器资源,在数据传输量较大时,以查询的方式进行接收从而提高数据接收效率。

  本文端系统接收方法核心思想是:通过中断通知主机接收数据,而在数据接收时通过查询方式进行。端系统接收方法设计如图3所示。

论文摘要

  图3(a)为端系统模块的数据接收流程,图(b)为主机模块数据接收流程。在端系统模块,当从网络上接收到数据时,首先进行数据的正确性校验,当数据校验无误时,将数据中的UDP/IP协议头及校验等信息去除,进行解包处理,获取到有效数据,并通过DMA的方式将有效数据传送至主机模块内存中,检测数据的类型,当为队列数据时,触发主机PCI中断信号,通知主机进行数据接收。在主机模块,当有中断信号发生时,获取数据端日号,进行数据接收,当完成一次数据接收后,继续查看数据接收队列是否为空,如果小为空,继续接收数据,自至数据接收队列为空。

  图3中在主机模块进行数据接收时,需要查询接收队列,接收队列存放了端系统模块接收到的消息的端日C7信息,接收队列存放在端系统模块上,通过PCI地址映射,在主机模块上可以访问。

  消息接收队列缓冲区如图4所示。在端系统模块上.消息接收队列缓冲区以循环双I-I RAM形式进行维护,提供读指针PR给主机模块,提供写指针PW给端系统模块。当端系统接收到数据时,通过PW指针将接收到数据的端日号信息写至消息接收队列,然后PW指针加1;当PW指针超过缓冲区长度时,PW指针重新指向缓冲区对头第一个缓冲区。当主机模块接收到中断信号后,通过PR指针依次从消息队列中取出端u号信息,并进行数据接收,自至消息队列中无数据。即PR和PW相等时,PR指针每取出一个端u号进行加i操作,当超过缓冲区长度时,PR指针重新指向缓冲区对头的第一个缓冲区。

论文摘要

  采用图3的数据接收流程和图4所示端系统消息接收队列,将中断方式和查询方式结介起来。一方而,一次中断就可以将接收队列中的数据全部接收,即中断后采用查询方式将接收队列中的数据全部接收,提高接收效率;另一方而,当无数据时,主机模块小进行接收的任何操作,小用增加主机负载。同时,当出现丢中断的情况时,小会出现数据丢失的问题,数据会在上一次中断或下一次中断时通过查询的方式被接收。

  3 端系统接收方法实现

  端系统模块实现了AFDX网络功能.向主机模块提供了数据接收的API接u。在端系统接收方法的实现上,一方而需要在主机模块上维护消息接收的中断处理函数;另一方而,需要设计阻塞式接收的API接口,提供给主机应用使用。

  软件设计上利用信号量机制f31来实现端系统的数据接收功能。

  在主机模块初始化时,建立信号量,当有数据接收中断发生时,在中断函数中,首先通过sem自VP函数释放信号量,然后进行清中断操作。主机模块数据接收API函数设计如图5所示。

论文摘要

  如图5所示,数据接收API函数在运行时.首先判断接收标识是否为0,如果接收标志为0,表明无中断通知主机有数据,通过SPmTP函数进入阻塞状态;如果接收标志小为0,表明已经有中断通知主机有数据,且接收队列小为空,则自接从接收队列中获取接收端日号,进行数据接收。当在中断处理函数中通过semGive释放信号量后,主机模块接收API获取到信号量,首先将接收标志置1.然后遍历接收队列.将接收队列中端日号信息的数据接收完成之后,将接收标志置0,完成一次中断接收过程。

  主模块数据接收API函数采用阻塞接收的方式,当没有信号量且接收标志为。API函数处于阻塞状态,小占用主机模块的处理器资源,而仅当有接收中断发生时,才占用处理器资源进行数据接收。

  本文总结了AFDX网络端系统数据接收方式及利用中断和查询方式进行数据接收的小足,设计了一种将中断和查询两种方式混介在一起的数据接收方式,并对其进行了软件实现。通过这种方式,很好地解决了AFDX网络数据查询接收方式主机负载重的问题,也解决了AFDX网络中断接收方式丢包的问题.在保证数据高效接收的同时,降低了处理处理器资源的占用,在AFDX网络端系统工程实践中得到了很好的应用。

  参考文献。
  [1]664P7-1,Aircraft data network part?:avionics full duplexswitched ethernet network.
  [2]赵永库,李贞,唐来胜.AFDX网络协议研究[J].计算机测量与控制,2011,19(12):3137-3142.
  [3]张杨,于银涛.VxWorks内核、设备3V动与BSP开发详解fMl.北京:人民邮电出版社,2009.

'); })();