CN112231266A - 一种基于查找表的arinc 429总线控制方法 - Google Patents
一种基于查找表的arinc 429总线控制方法 Download PDFInfo
- Publication number
- CN112231266A CN112231266A CN202011103074.XA CN202011103074A CN112231266A CN 112231266 A CN112231266 A CN 112231266A CN 202011103074 A CN202011103074 A CN 202011103074A CN 112231266 A CN112231266 A CN 112231266A
- Authority
- CN
- China
- Prior art keywords
- bus
- interrupt
- chip
- arinc429
- lookup table
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种基于查找表的ARINC 429总线控制方法,包括以下步骤:STEP1:对429总线接口、429控制芯片上的SPI控制器和429总线寄存器进行初始化;STEP2:使用429总线SPI接收通道配置方法spiA429CfgRxCHAN()对接收通道进行配置;STEP3:发送429总线数据;STEP4:接收429总线数据;STEP5:配置429总线中断服务。本发明在VxWorks驱动层对429总线进行控制,包括429总线接口的初始化,读写等,提高了429总线处理的效率,接收和发送的底层处理具有好时少的特点。
Description
技术领域
本发明属于航空航天系统数据通信技术领域,涉及一种基于查找表的ARINC 429总线控制方法。
背景技术
ARINC 429总线协议定义了航空电子设备和相关系统之间的数字信息传输要求。该总线为单向传输,只允许有一个发送器,但可以有多个接收器,通信带有奇偶校验的32位信息字,采用双极性归零码的三态调制编码方式,提高了抗干扰的能力。
发明内容
(一)发明目的
ARINC 429总线是一种常用的机载总线,是机载电子设备之间通讯的常用总线,总线数据采用半双工传输方式,一条总线上只允许单个发送器,每个发送器最多可对应20个接收器。429总线数据每一帧由32个位组成,32个位串行发送,传统的429总线驱动通道直接操作429总线读写FIFO将数据发送或接收,传统429总线处理方法在VxWorks驱动层耗费大量时间,本发明提出一种完备的429总线控制方法,使得429总线具有跟高的传输效率。
(二)技术方案
为了解决上述技术问题,本发明提供一种基于查找表的ARINC429总线控制方法包括以下步骤:
STEP1:使用429总线初始化方法Init429()对429总线接口进行初始化,使用Vxworks操作系统提供的系统SPI初始化方法sysSpiInit()对429控制芯片上的SPI控制器进行初始化,初始化并配置429总线寄存器,对429总线配置采用命令字+数据字的方式。
STEP2:使用429总线SPI接收通道配置方法spiA429CfgRxCHAN()对接收通道进行配置。设置发送使能,429总线速率配置为低速100kPbs,奇偶校验设置为无校验,清零自测试模式寄存器BIST,使用429总线芯片设备复位方法hi3210DevReset()对复位管脚发送高电平脉冲进行芯片复位,使用429总线芯片快读寄存器方法hi3210FastReadReg()对特殊模块寄存器MSR中的准备好标记位Ready进行校验。对429总线设备使用动态内存分配方法malloc分配长度为sizeof(SPI_A429_DRV_CTRL)字节的内存,其中SPI_A429_DRV_CTRL为429驱动控制寄存器结构,此结构包括片选信号cs,接收环形缓冲区rxRngBufId,发送环形缓冲区txRngBufId,发送消息信号量txDataSem;设置接收驱动环形缓冲区ring buffer,使用互斥信号量创建方法semMCreate创建发送互斥信号量txDataSem,使用429总线字节方式写寄存器方法hi3210WriteRegByte()使能接收0通道到7通道的所有标识label,以及使用该函数将接收0通道到7通道所有的中断映射表进行使能,配置接收中断屏蔽寄存器,使能所有中断输出。
STEP3:发送429总线数据
对429总线芯片进行片选,使用信号量获取方法semTake以非阻塞方式进行等待,需要一直等到中断发送信号量txDataSem。使用hi3210FastReadReg()方法查询发送的准备位是否置位,如果置位,使用429总线数据发送方法hi3210TransMsg发送429总线数据,使用信号量释放方法semGive释放txDataSem信号。
STEP4:接收429总线数据
设置接收消息缓冲区指针pRxMsg,定义429总线驱动结构SPI_A429_DRV_CTRL,对429总线进行片选。将接收缓冲区ID值rxRngBufId传入到环形缓冲区处理方法rngNBytes中,使用环形缓冲区内存获取方法rngBufGet将接收缓冲区ID值rxRngBufId、接收缓冲区指针pRxMsg、以及一个429消息结构的长度sizeof(ARINC429_MSG)(ARINC429_MSG消息结构包括一个int型的通道值channel,以及4字节的总线数据data)三个值分别传入到环形缓冲区内存获取方法rngBufGet中,判断返回值,当返回值为一个429消息结构的长度sizeof(ARINC429_MSG)时,则接收数据成功。
STEP5:配置429总线中断服务
首先对429总线进行片选,根据硬件设计获得中断号AINT_IRQ_NUM(在此设置为2),禁止AINT_IRQ_NUM中断,使用中断挂接方法intConnect函数将429总线中断服务函数spiA429Isr()挂接到中断号AINT_IRQ_NUM(这个值根据硬件设计决定)上。使能AINT_IRQ_NUM中断。当429芯片接收到中断响应,首先进入到中断服务函数spiA429Isr()中,使用429总线快读寄存器方法hi3210FastReadReg()读取中断寄存器APIR_F的值,如果不为零,则轮询检查8个通道的中断寄存器APIR_F对应位,使用429总线读消息方法hi3210ReadArincMsg将429总线数据读出。使用环形缓冲区内存存储方法rngBufPut方法将数据存入到环形缓冲区ring buffer中,此时可以通过中断将数据读出。
(三)有益效果
上述技术方案所提供的基于查找表的ARINC 429总线控制方法,在VxWorks驱动层对429总线进行控制,包括429总线接口的初始化,读写等,提高了429总线处理的效率,接收和发送的底层处理具有好时少的特点。
附图说明
图1为本发明方法的流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
参照图1所示,本发明基于查找表的ARINC 429总线控制方法包括以下步骤:
STEP1:使用429总线初始化方法Init429()对429总线接口进行初始化,使用Vxworks操作系统提供的系统SPI初始化方法sysSpiInit()对429控制芯片上的SPI控制器进行初始化,初始化并配置429总线寄存器,对429总线配置采用命令字+数据字的方式。
STEP2:使用429总线SPI接收通道配置方法spiA429CfgRxCHAN()对接收通道进行配置。设置发送使能,429总线速率配置为低速100kPbs,奇偶校验设置为无校验,清零自测试模式寄存器BIST,使用429总线芯片设备复位方法hi3210DevReset()对复位管脚发送高电平脉冲进行芯片复位,使用429总线芯片快读寄存器方法hi3210FastReadReg()对特殊模块寄存器MSR中的准备好标记位Ready进行校验。对429总线设备使用动态内存分配方法malloc分配长度为sizeof(SPI_A429_DRV_CTRL)字节的内存,其中SPI_A429_DRV_CTRL为429驱动控制寄存器结构,此结构包括片选信号cs,接收环形缓冲区rxRngBufId,发送环形缓冲区txRngBufId,发送消息信号量txDataSem;设置接收驱动环形缓冲区ring buffer,使用互斥信号量创建方法semMCreate创建发送互斥信号量txDataSem,使用429总线字节方式写寄存器方法hi3210WriteRegByte()使能接收0通道到7通道的所有标识label,以及使用该函数将接收0通道到7通道所有的中断映射表进行使能,配置接收中断屏蔽寄存器,使能所有中断输出。
STEP3:发送429总线数据
对429总线芯片进行片选,使用信号量获取方法semTake以非阻塞方式进行等待,需要一直等到中断发送信号量txDataSem。使用hi3210FastReadReg()方法查询发送的准备位是否置位,如果置位,使用429总线数据发送方法hi3210TransMsg发送429总线数据,使用信号量释放方法semGive释放txDataSem信号。
STEP4:接收429总线数据
设置接收消息缓冲区指针pRxMsg,定义429总线驱动结构SPI_A429_DRV_CTRL,对429总线进行片选。将接收缓冲区ID值rxRngBufId传入到环形缓冲区处理方法rngNBytes中,使用环形缓冲区内存获取方法rngBufGet将接收缓冲区ID值rxRngBufId、接收缓冲区指针pRxMsg、以及一个429消息结构的长度sizeof(ARINC429_MSG)(ARINC429_MSG消息结构包括一个int型的通道值channel,以及4字节的总线数据data)三个值分别传入到环形缓冲区内存获取方法rngBufGet中,判断返回值,当返回值为一个429消息结构的长度sizeof(ARINC429_MSG)时,则接收数据成功。
STEP5:配置429总线中断服务
首先对429总线进行片选,根据硬件设计获得中断号AINT_IRQ_NUM(在此设置为2),禁止AINT_IRQ_NUM中断,使用中断挂接方法intConnect函数将429总线中断服务函数spiA429Isr()挂接到中断号AINT_IRQ_NUM(这个值根据硬件设计决定)上。使能AINT_IRQ_NUM中断。当429芯片接收到中断响应,首先进入到中断服务函数spiA429Isr()中,使用429总线快读寄存器方法hi3210FastReadReg()读取中断寄存器APIR_F的值,如果不为零,则轮询检查8个通道的中断寄存器APIR_F对应位,使用429总线读消息方法hi3210ReadArincMsg将429总线数据读出。使用环形缓冲区内存存储方法rngBufPut方法将数据存入到环形缓冲区ring buffer中,此时可以通过中断将数据读出。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于查找表的ARINC 429总线控制方法,其特征在于,包括以下步骤:
STEP1:对429总线接口、429控制芯片上的SPI控制器和429总线寄存器进行初始化;
STEP2:使用429总线SPI接收通道配置方法spiA429CfgRxCHAN()对接收通道进行配置;
STEP3:发送429总线数据;
STEP4:接收429总线数据;
STEP5:配置429总线中断服务。
2.如权利要求1所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP1中,使用429总线初始化方法Init429()对429总线接口进行初始化。
3.如权利要求2所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP1中,使用Vxworks操作系统提供的系统SPI初始化方法sysSpiInit()对429控制芯片上的SPI控制器进行初始化。
4.如权利要求3所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP1中,初始化并配置429总线寄存器,对429总线配置采用命令字+数据字的方式。
5.如权利要求4所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP2中,设置发送使能,429总线速率配置为低速100kPbs,奇偶校验设置为无校验,清零自测试模式寄存器BIST,使用429总线芯片设备复位方法hi3210DevReset()对复位管脚发送高电平脉冲进行芯片复位,使用429总线芯片快读寄存器方法hi3210FastReadReg()对模块寄存器MSR中的准备好标记位Ready进行校验。
6.如权利要求5所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP2中,对429总线设备使用动态内存分配方法malloc分配长度为sizeof(SPI_A429_DRV_CTRL)字节的内存,其中SPI_A429_DRV_CTRL为429驱动控制寄存器结构,此结构包括片选信号cs,接收环形缓冲区rxRngBufId,发送环形缓冲区txRngBufId,发送消息信号量txDataSem;设置接收驱动环形缓冲区ring buffer,使用互斥信号量创建方法semMCreate创建发送互斥信号量txDataSem,使用429总线字节方式写寄存器方法hi3210WriteRegByte()使能接收0通道到7通道的所有标识label,以及使用该函数将接收0通道到7通道所有的中断映射表进行使能,配置接收中断屏蔽寄存器,使能所有中断输出。
7.如权利要求6所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP3中,对429总线芯片进行片选,使用信号量获取方法semTake以非阻塞方式进行等待,至到中断发送信号量txDataSem;使用hi3210FastReadReg()方法查询发送的准备位是否置位,如果置位,使用429总线数据发送方法hi3210TransMsg发送429总线数据,使用信号量释放方法semGive释放txDataSem信号。
8.如权利要求7所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP4中,设置接收消息缓冲区指针pRxMsg,定义429总线驱动结构SPI_A429_DRV_CTRL,对429总线进行片选;将接收缓冲区ID值rxRngBufId传入到环形缓冲区处理方法rngNBytes中,使用环形缓冲区内存获取方法rngBufGet将接收缓冲区ID值rxRngBufId、接收缓冲区指针pRxMsg以及一个429消息结构的长度sizeof(ARINC429_MSG)三个值分别传入到环形缓冲区内存获取方法rngBufGet中,判断返回值,当返回值为一个429消息结构的长度sizeof(ARINC429_MSG)时,则接收数据成功。
9.如权利要求8所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP5中,首先对429总线进行片选,获得中断号AINT_IRQ_NUM,禁止AINT_IRQ_NUM中断,使用中断挂接方法intConnect函数将429总线中断服务函数spiA429Isr()挂接到中断号AINT_IRQ_NUM上;使能AINT_IRQ_NUM中断;当429芯片接收到中断响应,首先进入到中断服务函数spiA429Isr()中,使用429总线快读寄存器方法hi3210FastReadReg()读取中断寄存器APIR_F的值,如果不为零,则轮询检查8个通道的中断寄存器APIR_F对应位,使用429总线读消息方法hi3210ReadArincMsg将429总线数据读出;使用环形缓冲区内存存储方法rngBufPut将数据存入到环形缓冲区ring buffer中,通过中断将数据读出。
10.如权利要求9所述的基于查找表的ARINC 429总线控制方法,其特征在于,所述步骤STEP5中,对429总线进行片选时,中断号AINT_IRQ_NUM设置为2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103074.XA CN112231266B (zh) | 2020-10-15 | 2020-10-15 | 一种基于查找表的arinc 429总线控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103074.XA CN112231266B (zh) | 2020-10-15 | 2020-10-15 | 一种基于查找表的arinc 429总线控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231266A true CN112231266A (zh) | 2021-01-15 |
CN112231266B CN112231266B (zh) | 2023-03-24 |
Family
ID=74113748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011103074.XA Active CN112231266B (zh) | 2020-10-15 | 2020-10-15 | 一种基于查找表的arinc 429总线控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231266B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571842A (zh) * | 2009-05-31 | 2009-11-04 | 北京航空航天大学 | 一种用于arinc429通讯的pci板卡装置 |
CN101937406A (zh) * | 2009-06-29 | 2011-01-05 | 研祥智能科技股份有限公司 | 一种VxWorks操作系统中实现驱动1394设备的方法和系统 |
CN102932489A (zh) * | 2012-10-28 | 2013-02-13 | 中国电子科技集团公司第十研究所 | 多通道arinc429总线接口 |
CN103823785A (zh) * | 2014-03-25 | 2014-05-28 | 北京航空航天大学 | 一种基于dsp和cpld开发的多路arinc429数据收发电路结构 |
CN104346229A (zh) * | 2014-11-14 | 2015-02-11 | 国家电网公司 | 一种用于嵌入式操作系统进程间通讯优化的处理方法 |
CN104965700A (zh) * | 2015-06-09 | 2015-10-07 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
CN105389282A (zh) * | 2015-10-19 | 2016-03-09 | 陕西宝成航空仪表有限责任公司 | 处理器和arinc429总线的通信方法 |
CN109062834A (zh) * | 2018-06-19 | 2018-12-21 | 广州星雨光电设备有限公司 | 基于dma的spi通讯方法、电子设备、存储介质、装置 |
CN109743241A (zh) * | 2018-12-26 | 2019-05-10 | 中国民航大学 | 一种基于高性能处理器的远程航空数据总线交换设备 |
CN110471880A (zh) * | 2019-07-19 | 2019-11-19 | 哈尔滨工业大学 | 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法 |
CN110750473A (zh) * | 2019-10-18 | 2020-02-04 | 天津津航计算技术研究所 | 一种基于管理表的1553b总线bc模式下消息配置处理方法 |
-
2020
- 2020-10-15 CN CN202011103074.XA patent/CN112231266B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571842A (zh) * | 2009-05-31 | 2009-11-04 | 北京航空航天大学 | 一种用于arinc429通讯的pci板卡装置 |
CN101937406A (zh) * | 2009-06-29 | 2011-01-05 | 研祥智能科技股份有限公司 | 一种VxWorks操作系统中实现驱动1394设备的方法和系统 |
CN102932489A (zh) * | 2012-10-28 | 2013-02-13 | 中国电子科技集团公司第十研究所 | 多通道arinc429总线接口 |
CN103823785A (zh) * | 2014-03-25 | 2014-05-28 | 北京航空航天大学 | 一种基于dsp和cpld开发的多路arinc429数据收发电路结构 |
CN104346229A (zh) * | 2014-11-14 | 2015-02-11 | 国家电网公司 | 一种用于嵌入式操作系统进程间通讯优化的处理方法 |
CN104965700A (zh) * | 2015-06-09 | 2015-10-07 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
CN105389282A (zh) * | 2015-10-19 | 2016-03-09 | 陕西宝成航空仪表有限责任公司 | 处理器和arinc429总线的通信方法 |
CN109062834A (zh) * | 2018-06-19 | 2018-12-21 | 广州星雨光电设备有限公司 | 基于dma的spi通讯方法、电子设备、存储介质、装置 |
CN109743241A (zh) * | 2018-12-26 | 2019-05-10 | 中国民航大学 | 一种基于高性能处理器的远程航空数据总线交换设备 |
CN110471880A (zh) * | 2019-07-19 | 2019-11-19 | 哈尔滨工业大学 | 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法 |
CN110750473A (zh) * | 2019-10-18 | 2020-02-04 | 天津津航计算技术研究所 | 一种基于管理表的1553b总线bc模式下消息配置处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112231266B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241953B2 (en) | Dynamic data-link selection over common physical interface | |
US7787490B2 (en) | Method and apparatus for multiplexing multiple protocol handlers on a shared memory bus | |
CN101504633B (zh) | 一种多通道dma控制器 | |
CN102647320B (zh) | 适用于高速1553总线协议控制的集成电路 | |
US10198382B2 (en) | 12C bus controller slave address register and command FIFO buffer | |
US6073205A (en) | System and method of write posting in a universal serial bus system | |
US7755791B2 (en) | Image processing apparatus and image forming apparatus | |
CN107580702B (zh) | 具有多模调制的增强虚拟gpio | |
KR19990087389A (ko) | 응용 장치와 버스 구조 사이의 비동기 데이터 전달을 자동으로관리하기 위한 비동기 데이터 파이프 | |
CN113391589A (zh) | 一种无人机异构设备统一接入与协议转换板卡 | |
US8161221B2 (en) | Storage system provided with function for detecting write completion | |
US6434161B1 (en) | UART with direct memory access buffering of data and method therefor | |
US6842797B1 (en) | USB adapter for burst mode communications | |
CN107852423B (zh) | 用于usb 2.0带宽保留的方法及系统 | |
GB2394323A (en) | High-throughput UART interfaces | |
EP1433071A1 (en) | Bus system and bus interface for connection to a bus | |
CN112231266B (zh) | 一种基于查找表的arinc 429总线控制方法 | |
US7610415B2 (en) | System and method for processing data streams | |
US6470404B1 (en) | Asynchronous communication device | |
CN111444125A (zh) | 一种扩展总线系统 | |
CN116340216A (zh) | 一种基于中断通知的arinc429总线通信组件和方法 | |
US20070005813A1 (en) | Peripheral device and method for interpreting redefined frame information structure | |
CN112231003A (zh) | 一种VxWorks系统下CAN设备管理方法 | |
US10860503B2 (en) | Virtual pipe for connecting devices | |
US8402178B2 (en) | Device to device flow control within a chain of devices |
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 |