CN112291336B - 一种arinc429网卡的多通道并行数据加载方法 - Google Patents
一种arinc429网卡的多通道并行数据加载方法 Download PDFInfo
- Publication number
- CN112291336B CN112291336B CN202011164225.2A CN202011164225A CN112291336B CN 112291336 B CN112291336 B CN 112291336B CN 202011164225 A CN202011164225 A CN 202011164225A CN 112291336 B CN112291336 B CN 112291336B
- Authority
- CN
- China
- Prior art keywords
- data
- channel
- ith
- arinc429
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种ARINC429网卡的多通道并行数据加载方法,涉及航空设备领域,该方法创建一个驱动调用线程并每个通道分别创建一个数据处理线程,驱动调用线程采用快速轮询的机制按序处理各个通道的数据处理线程的数据收发请求,可以最大限度的利用网卡的多个通道,实现利用一块ARINC429网卡对多台ARINC429设备进行加载,由于控制处理数据需要时间,且传输协议规定数据间隔时间的存在,在快速轮询下基本不会造成各个通道收发数据的延迟,在体验上实际类似于并行加载,不会造成单个加载任务耗时的延长、速度不受影响,从而极大地提升了数据加载的效率,提高了对网卡的利用率。
Description
技术领域
本发明涉及航空设备领域,尤其是一种ARINC429网卡的多通道并行数据加载方法。
背景技术
ARINC429总线结构简单、性能稳定,抗干扰性强、可靠性高,是航空电子设备及有关***间的一种常用的数字信息传输形式。对ARINC429设备进行数据加载和下载主要通过ARINC429网卡进行通道直连通信,ARINC429网卡通常具有多个通道,常见的是4通道和8通道的制式,不同的通道分配有不同的传输速率适应不同的场景需求。但ARINC429网卡内部各个通道无法共用句柄因此无法并行通信,所以现有的ARINC429网卡无论有多少个通道,在进行数据加载时都只能通过一个通道对一个ARINC429设备进行加载,造成了其余通道的浪费。若要对多个ARINC429设备进行加载,则只能排队按序加载,或者为每个ARINC429设备配备一张ARINC429网卡进行加载,导致加载效率低下、加载成本上升。
发明内容
本发明人针对上述问题及技术需求,提出了一种ARINC429网卡的多通道并行数据加载方法,本发明的技术方案如下:
一种ARINC429网卡的多通道并行数据加载方法,该方法包括:
创建一个驱动调用线程,并为ARINC429网卡每个通道分别创建对应的数据处理线程,ARINC429网卡包括N个分别连接有ARINC429设备的通道,N≥2;
驱动调用线程检测第i个通道对应的第i个数据处理线程是否有数据收发请求,i为参数且i的起始值为1;
若第i个数据处理线程没有数据收发请求,则直接执行检测是否满足i<N的步骤;
若第i个数据处理线程有数据收发请求,则驱动调用线程根据第i个数据处理线程的数据收发请求调用ARINC429网卡提供的接口函数、基于第i个通道的数据缓存区通过第i个通道与对应的ARINC429设备进行数据收发,并执行检测是否满足i<N的步骤;
检测是否满足i<N,若i<N则令i=i+1,若i=N则令i=1,并再次执行驱动调用线程处理第i个通道对应的第i个数据处理线程的数据收发请求的步骤,第i+1个通道是第i个通道的按照预定顺序的下一个通道。
其进一步的技术方案为,该方法还包括:
创建全局的通道状态数组,通道状态数组包括N个成员变量,N个成员变量分别对应N个通道,且每个成员变量的取值为初始标识或预定标识;
则驱动调用线程检测第i个通道对应的第i个数据处理线程是否有数据收发请求,包括:
驱动调用线程检测通道状态数组中与第i个通道对应的成员变量,若检测到对应的成员变量为预定标识则确定第i个数据处理线程有数据收发请求,否则确定第i个数据处理线程没有数据收发请求。
其进一步的技术方案为,该方法还包括:
每个数据处理线程在请求收发数据时,查询通道状态数组中对应的成员变量的取值直至对应的成员变量当前为初始标识时,将对应的成员变量置为预定标识指示具有数据收发请求;
驱动调用线程在通过第i个通道与对应的ARINC429设备进行数据收发后,将通道状态数组中与第i个通道对应的成员变量置为初始标识。
其进一步的技术方案为,每个数据处理线程的数据收发请求包括数据发送请求,对应的成员变量的预定标识包括发送标识,则:
第i个数据处理线程在请求发送数据且查询到通道状态数组中对应的成员变量当前为初始标识时,将待发送数据写入第i个通道对应的数据缓存区中,并将对应的成员变量置为发送标识指示具有数据发送请求;
则驱动调用线程根据第i个数据处理线程的数据发送请求调用ARINC429网卡提供的接口函数通过第i个通道将第i个通道对应的数据缓存区中的待发送数据发送给所连接的ARINC429设备。
其进一步的技术方案为,每个数据处理线程的数据收发请求包括数据接收请求,对应的成员变量的预定标识包括接收标识,则:
第i个数据处理线程在请求接收数据且查询到通道状态数组中对应的成员变量当前为初始标识时,将对应的成员变量置为接收标识指示具有数据接收请求;第i个数据处理线程再次查询通道状态数组中对应的成员变量的取值直至对应的成员变量由驱动调用线程再次置为初始标识时从对应的数据缓存区中读取待接收数据;
其中,待接收数据是驱动调用线程根据第i个数据处理线程的数据接收请求调用ARINC429网卡提供的接口函数通过第i个通道接收到的所连接的ARINC429设备发送的、且写入第i个通道对应的数据缓存区中的数据。
其进一步的技术方案为,每个通道的数据缓存区包括待发送缓存区和待接收缓存区,且待发送缓存区中的待发送数据包括数据长度和数据主体,待接收缓存区中的待接收数据包括数据长度和数据主体,则当驱动调用线程处理第i个数据处理线程的数据收发请求时:
驱动调用线程按照第i个通道对应的待发送缓存区中的待发送数据的数据长度将数据主体发送给所连接的ARINC429设备;
或者,第i个数据处理线程从对应的数据缓存区中按照待接收数据的数据长度读取数据主体。
其进一步的技术方案为,每个通道的数据缓存区包括待发送缓存区和待接收缓存区,则方法包括:
为每个通道分别分配一个待发送缓存区和待接收缓存区,各个通道的待发送缓存区和待接收缓存区分别占用连续且独立的内存空间,且每个待发送缓存区和待接收缓存区占用的内存空间的大小与ARINC429网卡单次收发的最大数据长度匹配。
本发明的有益技术效果是:
本申请公开了一种ARINC429网卡的多通道并行数据加载方法,该方法可以最大限度的利用ARINC429网卡的多个通道,实现利用一块ARINC429网卡对多台ARINC429设备进行加载,由于控制处理数据需要时间,且传输协议规定数据间隔时间的存在,在快速轮询下基本不会造成各个通道收发数据的延迟,在体验上实际类似于并行加载,不会造成单个加载任务耗时的延长、速度不受影响,从而极大地提升了数据加载的效率,提高了对ARINC429网卡的利用率。
附图说明
图1是本申请中的***架构图。
图2是本申请公开的方法在通道需要发送数据时的调度流程示意图。
图3是本申请公开的方法在通道需要接收数据时的调度流程示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种ARINC429网卡的多通道并行数据加载方法,请参考图1所示的***架构图,该方法包括如下内容:
一、该方法所基于的硬件结构:
主要包括ARINC429网卡及其相连的N个ARINC429设备,N≥2。ARINC429网卡包含多个通道(channel),ARINC429网卡包含的通道数量大于等于N,每个ARINC429设备分别连接ARINC429网卡的一个通道。
实际可以是ARINC429网卡的每个通道都分别连接一个ARINC429设备,也可以是仅有部分通道连接ARINC429设备。图1以ARINC429网卡包含四个通道C0~C3且四个通道依次分别连接一个ARINC429设备T0~T3为例。
二、前期准备。
1、为ARINC429网卡每个通道分别创建一个对应的数据处理线程,用于管理该通道的数据收发,需要说明的是,本申请中所指的每个通道是网卡中连接有ARINC429设备的每个通道,而不是网卡实际包含的所有通道中的每个通道,也即为N个通道创建N个数据处理线程。比如在图1中依次为四个通道C0~C3分别创建四个数据处理线程X0~X3。
2、创建一个驱动调用线程,该驱动调用线程负责对ARINC429网卡进行初始化设置,并用于调用ARINC429网卡提供的接口函数(API)来实现ARINC429网卡的数据收发。具体的,调用ARINC429网卡提供的send接口函数来实现数据发送,调用receive接口函数来实现数据接收。
3、开辟一块连续的内存空间供各个通道使用,这块内存空间分成N份分别作为每个通道的数据缓存区,这多个数据缓存区分别占用连续且独立的内存空间。进一步的,每个通道的数据缓存区包括待发送缓存区和待接收缓存区,则为每个通道分别分配一个待发送缓存区和待接收缓存区,各个通道的待发送缓存区和待接收缓存区分别占用连续且独立的内存空间。以4个通道的情况为例,各个通道的数据缓存区形成内存布局示意图如图1所示。
每个待发送缓存区和待接收缓存区占用的内存空间的大小与ARINC429网卡单次收发的最大数据长度匹配,ARINC429网卡每次传输的单元为字(word),一个字为4个字节,则ARINC429网卡单次收发的最大数据长度即为每次能够收发的最大A429 word的个数。本申请将ARINC429网卡每次能够发送的最大数据长度记为maxSendWordCount、每次能够接收的最大数据长度记为maxReceiveWordCount,这两个长度可以自定义设定,设定值建议小于256,这样只需要一个字节来存储(0~255)。
根据ARINC429网卡每次能够发送的最大数据长度maxSendWordCount来分配待发送缓存区的内存空间的大小,本申请设定待发送缓存区的内存空间的大小为maxSendWordCount*4+1,其中一个字节用于存储数据主体的数据长度、其余字节用于存储数据主体,通常是第一个字节。
根据ARINC429网卡每次能够接收的最大数据长度maxReceiveWordCount来分配待接收缓存区的内存空间的大小,本申请设定待接收缓存区的内存空间的大小为maxReceiveWordCount*4+1,其中一个字节用于存储数据主体的数据长度、其余字节用于存储数据主体,通常是第一个字节。
4、创建一个全局的通道状态数组channelStateArr,一个驱动调用线程和N个数据处理线程都可以调用该通道状态数组。通道状态数组channelStateArr包括N个成员变量,N个成员变量分别对应N个通道,且每个成员变量的取值为初始标识或预定标识。当一个通道对应的成员变量的取值为初始标识时,表示该通道无需进行数据收发,当一个通道对应的成员变量的取值为预定标识时,表示该通道需要进行数据收发。进一步的,预定标识包括发送标识和接收标识,则当一个通道对应的成员变量的取值为发送标识时,表示该通道需要发送数据;当一个通道对应的成员变量的取值为接收标识时,表示该通道需要接收数据。初始标识和预定标识的具体形式可以自定义,比如本申请设定初始标识为0、发送标识为1、接收标识为2。
三、数据加载过程。
(1)数据处理线程的调度过程如下:
当每个通道需要与对应连接的ARINC429网卡进行数据收发时,该通道的数据处理线程会发出数据收发请求并与该通道的数据缓存区交互,该数据收发请求后续由驱动调用线程进行处理。各个通道的处理过程是类似,对于任意一个通道,其调度过程如下:
该通道的数据处理线程通过修改通道状态数组中对应的成员变量的取值发出数据收发请求,当数据处理线程请求进行数据收发时,数据处理线程首先查询通道状态数组中对应的成员变量的取值当前是否为初始标识,若对应的成员变量的取值当前即为预定标识,则表示该通道可能当前还有数据收发请求尚未被驱动调用线程处理完,则数据处理线程循环查询通道状态数组中对应的成员变量的取值,直至查询到对应的成员变量当前为初始标识时,表示可以发出新的数据收发请求,此时该数据处理线程将通道状态数组中对应的成员变量的取值由初始标识修改为预定标识指示具有数据收发请求。
数据收发请求包括请求向外发送数据的数据发送请求以及请求接收外部数据的数据接收请求,根据收发的情况不同,实际操作存在一些区别,本申请分开介绍如下,以第i个通道对应的第i个数据处理线程为例:
a、当第i个数据处理线程请求向外发送数据时。
第i个数据处理线程在请求发送数据且查询到通道状态数组中对应的成员变量当前为初始标识时,将待发送数据写入第i个通道对应的待发送缓存区中,并将对应的成员变量置为发送标识指示具有数据发送请求。
具体的,待发送缓存区中的数据包括待发送数据的数据长度和数据主体,第i个数据处理线程会统计需要发送的数据主体的长度作为数据长度存储在待发送缓存区中第一个字节,然后将数据主体写入后续的内存空间中。若待发送数据的数据大小大于待发送缓存区的内存空间大小,则将待发送数据分割成多次依次发送。
b、当第i个数据处理线程请求接收外部数据时。
第i个数据处理线程在请求接收数据且查询到通道状态数组中对应的成员变量当前为初始标识时,将对应的成员变量置为接收标识指示具有数据接收请求,然后第i个数据处理线程再次循环查询通道状态数组中对应的成员变量的取值,直至检测到其被再次置为初始标识时(由驱动调用线程处理完该数据接收请求后再次置为初始标识),从第i个通道对应的数据缓存区中读取待接收数据。
具体的,待接收缓存区中的数据包括待接收数据的数据长度和数据主体,第i个数据处理线程会读取待接收缓存区中的第一个字节确定数据长度,然后读取后续内存空间中具有该数据长度的数据即为数据主体。
(2)、驱动调用线程的调度过程。
各个通道的数据处理线程根据数据收发的需要发出相应的请求,而驱动调用线程会采用轮询机制按照预定顺序依次处理各个通道的请求,该预定次序可以由用户自定义配置,其调度过程如下:
步骤S1,驱动调用线程检测第i个通道所对应的第i个数据处理线程是否有数据收发请求,i为参数且i的起始值为1。
在本申请中,驱动调用线程通过检测通道状态数组channelStateArr中与第i个通道对应的成员变量的取值来确定第i个数据处理线程是否有数据收发请求,若检测到第i个通道对应的成员变量为预定标识则确定第i个数据处理线程有数据收发请求,否则确定第i个数据处理线程没有数据收发请求。进一步的,当检测到第i个通道对应的成员变量为发送标识时确定第i个数据处理线程有数据发送请求,当检测到第i个通道对应的成员变量为接收标识时确定第i个数据处理线程有数据接收请求。
步骤S2,若第i个数据处理线程没有数据收发请求,则直接执行检测是否满足i<N的步骤,也即执行如下步骤S4,对应实际场景也即直接跳过第i个通道,直接查询下一个通道是否有数据收发请求。
步骤S3,若第i个数据处理线程有数据收发请求,则驱动调用线程根据第i个数据处理线程的数据收发请求调用ARINC429网卡提供的接口函数、基于第i个通道的数据缓存区通过第i个通道与对应的ARINC429设备进行数据收发,收发情况分别如下:
若第i个数据处理线程有数据发送请求,则驱动调用线程调用ARINC429网卡提供的send接口函数通过第i个通道将第i个通道的待发送缓存区中的数据发送给对应连接的ARINC429设备。具体的,驱动调用线程读取第i个通道的待发送缓存区,根据第一个字节确定本次需要发送的待发送数据的数据长度,则后续内存空间中存储的该数据长度的数据即为数据主体,驱动调用线程在循环中一个一个调用ARINC429网卡的发送send接口函数通过第i个通道将数据主体发送出去。
若第i个数据处理线程有数据接收请求,则驱动调用线程调用ARINC429网卡提供的receive接口函数通过第i个通道接收对应连接的ARINC429设备并写入第i个通道的待接收缓存区中。具体的,驱动调用线程会统计接收到的数据主体的数长度作为待接收数据的数据长度,然后将该数据长度写入第i个通道的待接收缓存区的第一个字节,将数据主体写入后续的内存空间中。
无论是接收还是发送的情况下,驱动调用线程在通过第i个通道与对应的ARINC429设备进行数据收发后,都将通道状态数组中与第i个通道对应的成员变量再次置为初始标识。后续执行检测是否满足i<N的步骤,也即执行如下步骤S4。
步骤S4,检测是否满足i<N,若i<N则令i=i+1,若i=N则令i=1,并再次执行上述步骤S1,不断循环处理。
为了更清楚的说明调度过程,本申请基于图1所示的结构假设驱动调用线程采用轮询机制按照通道C0~C3的顺序依次处理各个通道的请求,驱动调用线程的轮询过程如图1中虚线所示,同时假设初始标识为0、发送标识为1、接收标识为2,本申请介绍其调度过程,通道需要发送数据时的调度过程请参考图2,通道需要接收数据时的调度过程请参考图3:
假设初始时通道状态数组中这个成员变量的取值均为0,通道C0需要发送数据,通道C2需要接收数据,通道C1和通道C3既不需要发送数据也不需要接收数据,则各个数据处理线程的调度为:通道C0的数据处理线程X0查看通道状态数组中对应的成员变量0当前取值为0,将需要发送的数据写入通道C0的待发送缓存区中,然后将成员变量0置为1。通道C2的数据处理线程X2查看通道状态数组中对应的成员变量0当前取值为0,则将对应的成员变量2置为2,并不停循环查询该成员变量2的取值。通道C1和通道C3对应的成员变量为0保持不变。
假设此时当前通道状态数组如下所示,则驱动调用线程的调度过程为:
1、驱动调用线程处理通道C0的请求,驱动调用线程检测通道状态数组中对应的成员变量0为1,表示数据处理线程X0请求发送数据,则驱动调用线程读取通道C0的待发送缓存区中的数据,并调用ARINC429网卡的send接口函数通过通道C0发送给ARINC429设备T0,然后将通道状态数组中成员变量0的取值再次重置为0。
2、驱动调用线程按顺序处理通道C1的请求,驱动调用线程检测通道状态数组中对应的成员变量1为0,表示通道C1不需要收发数据,则驱动调用程序直接跳过通道C1,继续处理通道C2的请求。
3、驱动调用线程按顺序处理通道C2的请求,驱动调用线程检测通道状态数组中对应的成员变量2为2,表示数据处理线程X2有数据接收请求,则驱动调用程序调用ARINC429网卡的receive接口函数通过通道C2接收ARINC429设备T2的数据,并写入通道C2的待接收缓存区中,然后将通道状态数组中成员变量2的取值置为0。然后数据处理线程X2会查询到成员变量2的取值再次变为0,则数据处理线程X2从通道C2的待接收缓存区中读取到ARINC429设备T2发送过来的数据。
4、驱动调用线程按顺序处理通道C3的请求,驱动调用线程检测通道状态数组中对应的成员变量3为0,表示通道C3不需要收发数据,则驱动调用程序直接跳过通道C3,继续处理通道C1的请求,往复循环。
以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (6)
1.一种ARINC429网卡的多通道并行数据加载方法,其特征在于,所述方法包括:
创建一个驱动调用线程,并为ARINC429网卡每个通道分别创建对应的数据处理线程,所述ARINC429网卡包括N个分别连接有ARINC429设备的通道,N≥2;
所述驱动调用线程检测第i个通道对应的第i个数据处理线程是否有数据收发请求,i为参数且i的起始值为1;
若所述第i个数据处理线程没有数据收发请求,则直接执行检测是否满足i<N的步骤;
若所述第i个数据处理线程有数据收发请求,则所述驱动调用线程根据所述第i个数据处理线程的数据收发请求调用ARINC429网卡提供的接口函数、基于所述第i个通道的数据缓存区通过所述第i个通道与对应的ARINC429设备进行数据收发,并执行检测是否满足i<N的步骤;
检测是否满足i<N,若i<N则令i=i+1,若i=N则令i=1,并再次执行所述驱动调用线程处理第i个通道对应的第i个数据处理线程的数据收发请求的步骤,第i+1个通道是第i个通道的按照预定顺序的下一个通道;
其中,所述方法还包括:创建全局的通道状态数组,所述通道状态数组包括N个成员变量,所述N个成员变量分别对应N个通道,且每个成员变量的取值为初始标识或预定标识;则所述驱动调用线程检测第i个通道对应的第i个数据处理线程是否有数据收发请求,包括:所述驱动调用线程检测所述通道状态数组中与所述第i个通道对应的成员变量,若检测到对应的成员变量为预定标识则确定所述第i个数据处理线程有数据收发请求,否则确定所述第i个数据处理线程没有数据收发请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
每个数据处理线程在请求收发数据时,查询所述通道状态数组中对应的成员变量的取值直至对应的成员变量当前为初始标识时,将对应的成员变量置为预定标识指示具有数据收发请求;
所述驱动调用线程在通过所述第i个通道与对应的ARINC429设备进行数据收发后,将所述通道状态数组中与第i个通道对应的成员变量置为初始标识。
3.根据权利要求2所述的方法,其特征在于,每个数据处理线程的数据收发请求包括数据发送请求,对应的成员变量的预定标识包括发送标识,则:
第i个数据处理线程在请求发送数据且查询到所述通道状态数组中对应的成员变量当前为初始标识时,将待发送数据写入所述第i个通道对应的数据缓存区中,并将对应的成员变量置为发送标识指示具有数据发送请求;
则所述驱动调用线程根据所述第i个数据处理线程的数据发送请求调用ARINC429网卡提供的接口函数通过所述第i个通道将所述第i个通道对应的数据缓存区中的待发送数据发送给所连接的ARINC429设备。
4.根据权利要求2所述的方法,其特征在于,每个数据处理线程的数据收发请求包括数据接收请求,对应的成员变量的预定标识包括接收标识,则:
第i个数据处理线程在请求接收数据且查询到所述通道状态数组中对应的成员变量当前为初始标识时,将对应的成员变量置为接收标识指示具有数据接收请求;所述第i个数据处理线程再次查询所述通道状态数组中对应的成员变量的取值直至对应的成员变量由所述驱动调用线程再次置为初始标识时从对应的数据缓存区中读取待接收数据;
其中,所述待接收数据是所述驱动调用线程根据所述第i个数据处理线程的数据接收请求调用ARINC429网卡提供的接口函数通过所述第i个通道接收到的所连接的ARINC429设备发送的、且写入所述第i个通道对应的数据缓存区中的数据。
5.根据权利要求3或4所述的方法,其特征在于,每个通道的数据缓存区包括待发送缓存区和待接收缓存区,且待发送缓存区中的待发送数据包括数据长度和数据主体,待接收缓存区中的待接收数据包括数据长度和数据主体,则当所述驱动调用线程处理第i个数据处理线程的数据收发请求时:
所述驱动调用线程按照第i个通道对应的待发送缓存区中的待发送数据的数据长度将数据主体发送给所连接的ARINC429设备;
或者,第i个数据处理线程从对应的数据缓存区中按照待接收数据的数据长度读取数据主体。
6.根据权利要求1所述的方法,其特征在于,每个通道的数据缓存区包括待发送缓存区和待接收缓存区,则所述方法包括:
为每个通道分别分配一个待发送缓存区和待接收缓存区,各个通道的待发送缓存区和待接收缓存区分别占用连续且独立的内存空间,且每个待发送缓存区和待接收缓存区占用的内存空间的大小与ARINC429网卡单次收发的最大数据长度匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011164225.2A CN112291336B (zh) | 2020-10-27 | 2020-10-27 | 一种arinc429网卡的多通道并行数据加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011164225.2A CN112291336B (zh) | 2020-10-27 | 2020-10-27 | 一种arinc429网卡的多通道并行数据加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112291336A CN112291336A (zh) | 2021-01-29 |
CN112291336B true CN112291336B (zh) | 2022-08-12 |
Family
ID=74373418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011164225.2A Active CN112291336B (zh) | 2020-10-27 | 2020-10-27 | 一种arinc429网卡的多通道并行数据加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112291336B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887319B (zh) * | 2021-02-01 | 2022-07-01 | 上海帆一尚行科技有限公司 | 一种基于下行流量的网络状态监控方法、装置和电子设备 |
CN114598497B (zh) * | 2022-01-26 | 2023-10-20 | 南京南瑞信息通信科技有限公司 | 基于传输卡可纠错多通道的数据隔离装置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932489A (zh) * | 2012-10-28 | 2013-02-13 | 中国电子科技集团公司第十研究所 | 多通道arinc429总线接口 |
CN104050121A (zh) * | 2014-06-13 | 2014-09-17 | 四川亚美动力技术有限公司 | 双收双发可编程arinc429通讯接口芯片 |
CN109445325A (zh) * | 2018-10-15 | 2019-03-08 | 四川九洲空管科技有限责任公司 | 一种基于fpga的高速arinc429数据处理方法 |
-
2020
- 2020-10-27 CN CN202011164225.2A patent/CN112291336B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932489A (zh) * | 2012-10-28 | 2013-02-13 | 中国电子科技集团公司第十研究所 | 多通道arinc429总线接口 |
CN104050121A (zh) * | 2014-06-13 | 2014-09-17 | 四川亚美动力技术有限公司 | 双收双发可编程arinc429通讯接口芯片 |
CN109445325A (zh) * | 2018-10-15 | 2019-03-08 | 四川九洲空管科技有限责任公司 | 一种基于fpga的高速arinc429数据处理方法 |
Non-Patent Citations (3)
Title |
---|
ARINC429-USB接口卡软件设计;杨志强;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20130615(第6期);正文第4-54页 * |
基于SystemVerilog的多通道ARINC429总线通讯板卡的设计;崔惠珊;《现代电子技术》;20140815;第37卷(第16期);全文 * |
某型直升机自动驾驶仪综合测试设备的研制;叶思隽;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20070715(第1期);正文第22-70页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112291336A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5175818A (en) | Communication interface for independently generating frame information that is subsequently stored in host memory and sent out to transmitting fifo by dma | |
CN112291336B (zh) | 一种arinc429网卡的多通道并行数据加载方法 | |
US20070002172A1 (en) | Linking frame data by inserting qualifiers in control blocks | |
CN111221759B (zh) | 一种基于dma的数据处理***及方法 | |
EP4002137B1 (en) | Secure digital (sd) direct command for improving throughput with a reduced memory footprint | |
WO1984002629A1 (en) | Method and apparatus for bus contention resolution | |
KR100919159B1 (ko) | 멀티미디어 카드 인터페이스 방법, 컴퓨터 프로그램 생성물및 장치 | |
US20040085996A1 (en) | High-throughput UART interfaces | |
US6542941B1 (en) | Efficient command delivery and data transfer | |
EP0523878A1 (en) | Deterministic method for allocation of a shared resource | |
CN113079113B (zh) | 数据传输装置和数据传输*** | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
KR20030019093A (ko) | 패킷 제어 시스템 및 통신 방법 | |
KR100560277B1 (ko) | 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체 | |
US7840722B2 (en) | Method for receiving data over an SDIO interface and device using the same | |
CN110798269A (zh) | 基于gpio实现pcm从机功能的方法及*** | |
CN111767154B (zh) | 用于无阻塞通讯的无锁环形队列实现方法 | |
CN111245794B (zh) | 数据传输方法和装置 | |
CN108234352B (zh) | 电子控制单元和数据发送方法 | |
US20030093594A1 (en) | Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller | |
CN118132474A (zh) | 基于dma的数据传输*** | |
CN111124987B (zh) | 一种基于pcie的数据传输控制***和方法 | |
CN113268358A (zh) | 数据通信方法、装置和***及多设备级联*** | |
CN112835823B (zh) | 存储控制器应答发送方法 | |
CN112559196B (zh) | 一种进程间通讯数据共享的传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |