基于arinc 429的通信方法、装置及扩展接口的制作方法
【专利摘要】本发明适用于通信【技术领域】,提供了一种基于ARINC?429的通信方法、装置及扩展接口。包括:接收X86系统总线发送过来的数据发送请求;获取ARINC?429收发器预设的数据封装位数,根据数据封装位数将待发送数据封装为待发送的数据包;获取存储数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将数据包存储到获取的缓存区中;将所述获取的缓存区中存储的所述数据包发送到所述ARINC?429收发器。本发明通过缓存区的标识号实现了对缓存区的区分,同时实现了将与ARINC?429收发器数据发送和接收过程中涉及的缓存进行了隔离,大大提高了数据通信的效率以及通信的可靠性。
【专利说明】基于ARINC 429的通信方法、装置及扩展接口
【技术领域】
[0001]本发明属于通信【技术领域】,尤其涉及一种基于ARINC 429的通信方法、装置及扩
展接口。
【背景技术】
[0002]由于ARlNCXAeronauticalRadio Incorporated)429总线结构简单、性能稳定、抗干扰性强、可靠性高,且采用非集中控制,因此,在航空领域被广泛使用。而使用X86系统的主板常用的 X86 系统总线有 LPC (Low Pin Count), SPI (Serial Peripheral Interface),PCI (Peripheral Component Interconnect)、PCIX(PC1-X)以及 I2C(Inter — IntegratedCircuit)等,没有直接和ARINC429总线相连的接口,因此,如果使用X86系统的计算机/设备需要和ARINC 429总线上其它外设通讯时,现有技术就存在扩展性差的现象,无法实现X86系统和ARINC 429总线直接通信。
[0003]则需要对现有主板接口进行扩展以实现与ARINC 429总线的通信。
[0004]现有技术主要使用可编程逻辑器件来实现现有X86系统主板上通用接口的扩展,以实现与ARINC 429总线的互联互通。同时,为了能够使得操作系统支持对该设备的访问,需要设计相关的驱动软件。此外,为了支持429的多通道,硬件上需要对多个429芯片采用并联的方式,且需要可编程逻辑器件来进行逻辑上的优化处理,确保每一个通道的数据能够收发。所以,现有技术在接口扩展时扩展方式复杂,且扩展后的接口可扩展性差。
【发明内容】
[0005]本发明实施例的目的在于提供一种基于ARINC 429的通信方法,旨在解决由于现有技术无法提供一种有效的扩展方式,导致扩展的ARINC 429总线接口可扩展性差的问题。
[0006]本发明实施例是这样实现的,一种基于ARINC 429的通信方法,所述方法包括下述步骤:
[0007]接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据;
[0008]获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包;
[0009]获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中;
[0010]将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
[0011]本发明实施例的另一目的在于提供一种基于ARINC 429的通信装置,其特征在于,所述装置包括:
[0012]发送请求接收单元,用于接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据;[0013]数据包封装单元,用于获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包;
[0014]数据包存储单元,用于获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中;以及
[0015]数据包发送单元,用于将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
[0016]本发明实施例的另一目的还在于提供一种包括上述基于ARINC 429的通信装置的扩展接口。
[0017]本发明实施例通过对一现有X86系统总线发送过来待发送数据根据ARINC 429收发器预设的数据封装位数进行封装,并将封装后的数据包存储到获取的缓存区的标识号在多个缓存区中对应的缓存区中,最后将获取的缓存区中存储的数据包发送到ARINC 429收发器,从而通过缓存区的标识号实现了对缓存区的区分,同时实现了将与ARINC 429收发器通信时数据发送和接收过程中涉及的缓存进行了隔离,大大提高了数据通信的效率以及通信的可靠性。
【专利附图】
【附图说明】
[0018]图1是本发明实施例一提供的基于ARINC 429的通信方法的实现流程图;
[0019]图2是本发明实施例一提供的基于ARINC 429的通信方法的具体示例示意图;
[0020]图3是本发明实施例二提供的基于ARINC 429的通信方法的实现流程图;
[0021]图4是本发明实施例三提供的基于ARINC 429的通信装置的结构图;以及
[0022]图5是本发明实施例四提供的基于ARINC 429的通信装置的结构图。
【具体实施方式】
[0023]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0024]以下结合具体实施例对本发明的具体实现进行详细描述:
[0025]实施例一:
[0026]图1示出了本发明实施例一提供的基于ARINC 429的通信方法的实现流程,详述如下:
[0027]在步骤SlOl中,接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据。
[0028]在本发明实施例中,设备驱动程序接收操作系统中文件系统通过X86系统总线发送过来的数据发送请求,其中,数据发送请求包括待发送数据,X86系统总线可以是LPC、SP1、PCI或PCIX等常用X86系统总线。
[0029]在步骤S102中,获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包。
[0030]在本发明实施例中,由于ARINC 429收发器(例如,HS-3282控制芯片等)有着本身的规范,因此,需要设备驱动程序获取ARINC 429收发器设置的数据封装格式,例如,封装的数据包的位数,典型地,ARINC 429收发器为HS-3282控制芯片时,HS-3282可支持的数据包位数为32、25位。当设备驱动程序获取到ARINC 429收发器预设的数据封装位数时,根据该数据封装位数将待发送数据封装为待发送的数据包。
[0031]在步骤S103中,获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中。
[0032]在本发明实施中,预先设置有多个缓存区,每个缓存区对应着不同的标识号,设备驱动程序根据获取的标识号可以获取对应缓存区的地址,从而将数据包存储到获取的缓存区中。优选地,在将数据包存储到获取的缓存区之前,可检测获取的缓存区是否已满,当获取的缓存区未满时,则将数据包存储到获取的缓存区。当获取的缓存区已满时,则需要等待。在具体实施过程中,为了保证发送数据的顺序,多个缓存区可以以队列结构进行组织,从而形成多个FIFO (First Input First Output,FIFO)队列,当然也可以以其它数据结构进行组织,在此不用发限制本发明。
[0033]在本发明实施例中,缓存区的标识号可以包含在数据发送请求中,也可以预先设置缓存区的分配规则,从而可以从数据发送请求中或根据分配规则获取缓存区的标识号,进而可根据标识号与缓存区的对应关系获取对应缓存区的地址。
[0034]可以看出,在本发明实施例中,通过对多个缓存区的独立操作(例如,读、写操作)实现了数据读、写的分离,从而实现了数据的多通道访问,减少了数据读取中的出错率,提高了数据读取的可靠性。
[0035]在步骤S104中,将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
[0036]在本发明实施例中,设备驱动程序将存储的获取的缓存区中存储的数据包发送到所述ARINC 429收发器之前,可以先检测ARINC 429收发器是否在向获取的缓存区发送数据,是则等待,否则将存储的数据包发送到ARINC 429收发器。
[0037]作为示例地,图2示出了本实施例的一【具体实施方式】。在该示例中包括X86系统总线接口 10、现场可编程门阵列(Field Programmable Gate Array, FPGA) 20,以及 ARINC429收发器30。其中,ARINC 429收发器由多个HS-3282控制芯片组成,FPGA则提供了多个缓存区,其中的缓存区以FIFO队列的形式表示。FIFI_TX1、FIFI_TX2以及FIFI_TX3表示存储从X86系统总线接口发送过来的数据的缓存区FIFO队列,FIFI_RX1、FIFI_RX2、FIFI_RX3以及FIFI_RX4表示存储从ARINC 429收发器30发送过来的数据的缓存区FIFO队列。
[0038]在本发明实施例中,使用FPGA提供多个缓存区,从而可以实现通信通道的快速扩展,提高了扩展接口的可扩展性,另外,由于HS-3282性能稳定,因此,本发明实施例使用多个HS-3282控制芯片作为ARINC 429收发器,可以较大地提高扩展接口的稳定性。
[0039]本发明实施例通过对一现有X86系统总线发送过来待发送数据根据ARINC 429收发器预设的数据封装位数进行封装,并将封装后的数据包存储到获取的缓存区的标识号在多个缓存区中对应的缓存区中,最后将获取的缓存区中存储的数据包发送到ARINC 429收发器,从而通过缓存区的标识号实现了对缓存区的区分,同时实现了将与ARINC 429收发器通信时数据发送和接收过程中涉及的缓存进行了隔离,大大提高了数据通信的效率以及通信的可靠性。[0040]实施例二:
[0041]图3示出了本发明实施例二提供的基于ARINC 429的通信方法的实现流程,详述如下:
[0042]在步骤S301中,接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据。
[0043]在步骤S302中,获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包。
[0044]在步骤S303中,获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中。
[0045]在步骤S304中,将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
[0046]在本发明实施例中,步骤S301至步骤S304与实施例一中步骤SlOl至S 104对应相同,在此不再赘述。
[0047]在步骤S305中,当接收到所述ARINC 429收发器发送的中断信号后,获取待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量。
[0048]在本发明实施例中,当ARINC 429收发器需要向前述X86系统总线发送数据时,可以以中断的方式进行处理。ARINC 429收发器首先发送一中断信号,当中央处理单元(CPU)接收到中断信号后,调用预设的中断服务程序,中断服务程序获取待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量。
[0049]可选地,作为一示例,当待读取数据包的数量为空时,则判断待读取数据包所在缓存区的溢出标识,如果该标识为真,则待读取数据包的数量为对应缓存区的最大容量,否则数量为O。
[0050]在步骤S306中,根据所述待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量读取所述待读取数据包。
[0051]在步骤S307中,从读取到的所述待读取数据包中解析出原始数据,将所述原始数据发送给所述X86系统总线。
[0052]在本发明实施例中,当CPU接收到中断信号后,可以通过将包括中断参数的中断信号(例如,中断入口参数)发送给中断服务程序,通过中断服务程序执行获取待读取数据包所在的缓存区的标识号、待读取数据包的数量的步骤,以及步骤S306、S307,具体地,可以调用预设的回调函数,执行获取待读取数据包所在的缓存区的标识号、待读取数据包的数量的步骤,以及步骤S306、S307当X86系统总线(例如,PCI系统总线)接收到数据后,可以根据预设数据封装格式进行封装并输出。具体地,向X86系统发送封装好的数据。
[0053]在本发明实施例中,提供了 ARINC 429收发器向常用X86系统总线发送数据的方法,实现ARINC 429收发器与常用X86系统总线的通信,保证了数据通信的效率以及通信的可靠性。
[0054]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。
[0055]实施例三:[0056]图4示出了本发明实施例三提供的基于ARINC 429的通信装置的结构,为了便于说明,仅不出了与本发明实施例相关的部分,其中包括:
[0057]发送请求接收单元41,用于接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据。
[0058]数据包封装单元42,用于获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包。
[0059]数据包存储单元43,用于获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中。
[0060]数据包发送单元44,用于将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
[0061 ] 在本发明实施例中,各单元的实施方式与实施例中各步骤的实施方式对应相同,在此不再赘述。
[0062]实施例四:
[0063]图5示出了本发明实施例四提供的基于ARINC 429的通信装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中,基于ARINC 429的通信装置包括发送请求接收单元51、数据包封装单元52、数据包存储单元53、数据包发送单元54、数量获取单元55、数据包读取单元56以及原始数据发送单元57,具体地:
[0064]发送请求接收单元51,用于接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据。
[0065]数据包封装单元52,用于获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包。
[0066]数据包存储单元53,用于获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中。
[0067]在本发明实施例中,在将数据包存储到获取的缓存区之前,可检测获取的缓存区是否已满,当获取的缓存区未满时,则将数据包存储到获取的缓存区。当获取的缓存区已满时,则需要等待。因此,优选地,本发明实施例中数据包存储单元53还可以包括缓存区检测单元531。
[0068]缓存区检测单元531,用于检测数据包存储单元53获取的缓存区是否已满,当所述获取的缓存区未满时,缓存区检测单元531触发数据包存储单元53执行将所述数据包存储到获取的缓存区中的步骤。
[0069]数据包发送单元54,用于将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
[0070]数量获取单元55,用于当接收到所述ARINC 429收发器发送的中断信号后,获取待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量;
[0071]数据包读取单元56,用于根据所述待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量读取所述待读取数据包;以及
[0072]原始数据发送单元57,用于从读取到的所述待读取数据包中解析出原始数据,将所述原始数据发送给所述X86系统总线。
[0073]在本发明的另一实施例中,还提供了一种扩展接口,所述扩展接口包括前述实施中所述的基于ARINC 429的通信装置。
[0074]本发明实施例通过对一现有X86系统总线发送过来待发送数据根据ARINC 429收发器预设的数据封装位数进行封装,并将封装后的数据包存储到获取的缓存区的标识号在多个缓存区中对应的缓存区中,最后将获取的缓存区中存储的数据包发送到ARINC 429收发器,从而通过缓存区的标识号实现了对缓存区的区分,同时实现了将与ARINC 429收发器通信时数据发送和接收过程中涉及的缓存进行了隔离,大大提高了数据通信的效率以及通信的可靠性,同时,本发明实施例还提供了 ARINC 429收发器向常用X86系统总线发送数据的方法,实现ARINC 429收发器与常用X86系统总线的通信,保证了数据通信的效率以及通信的可靠性。
[0075]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于ARINC 429的通信方法,其特征在于,所述方法包括下述步骤: 接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据;获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包; 获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中; 将所述获取的缓存区中存储的所述数据包发送到所述ARINC 429收发器。
2.如权利要求1所述的方法,其特征在于,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区的步骤之后,将所述数据包存储到获取的缓存区中的步骤之前,所述方法还包括: 检测所述获取的缓存区是否已满; 当所述获取的缓存区未满时,执行将所述数据包存储到获取的缓存区中的步骤。
3.如权利要求1所述的方法,其特征在于,所述方法还包括: 当接收到所述ARINC 429收发器发送的中断信号后,获取待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量; 根据所述待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量循环读取所述待读取数据包; 从读取到的所述待读取数 据包中解析出原始数据,将所述原始数据发送给所述X86系统总线。
4.如权利要求1至3任一所述的方法,其特征在于,所述X86系统总线为LPC、SP1、PC1、PCIX或12C总线。
5.如权利要求4所述的方法,其特征在于,所述ARINC429收发器由多个HS-3282组成。
6.一种基于ARINC 429的通信装置,其特征在于,所述装置包括: 发送请求接收单元,用于接收X86系统总线发送过来的数据发送请求,所述数据发送请求包括待发送数据; 数据包封装单元,用于获取ARINC 429收发器预设的数据封装位数,根据所述数据封装位数将所述待发送数据封装为待发送的数据包; 数据包存储单元,用于获取存储所述数据包的缓存区的标识号,根据所述标识号从预设的多个缓存区中获取所述标识号对应的缓存区,将所述数据包存储到获取的缓存区中;以及 数据包发送单元,用于将所述获取的缓存区中存储的所述数据包发送到所述ARINC429收发器。
7.如权利要求6所述的装置,其特征在于,所述数据包存储单元还包括: 缓存区检测单元,用于检测所述获取的缓存区是否已满。
8.如权利要求6所述的装置,其特征在于,所述装置还包括: 数量获取单元,用于当接收到所述ARINC 429收发器发送的中断信号后,获取待读取数据包所在的缓存区的 标识号以及所述待读取数据包的数量; 数据包读取单元,用于根据所述待读取数据包所在的缓存区的标识号以及所述待读取数据包的数量读取所述待读取数据包;以及 原始数据发送单元,用于从读取到的所述待读取数据包中解析出原始数据,将所述原始数据发送给所述X86系统总线。
9.如权利要求1至8所述的装置,其特征在于,所述ARINC429收发器由多个HS-3282组成。
10.一种扩展接口,所述 扩展接口包括权利要求9所述的装置。
【文档编号】H04L12/861GK103888375SQ201210553612
【公开日】2014年6月25日 申请日期:2012年12月19日 优先权日:2012年12月19日
【发明者】陈志列, 熊威, 何丽红, 袁伟评 申请人:研祥智能科技股份有限公司