CN112231266A - 一种基于查找表的arinc 429总线控制方法 - Google Patents

一种基于查找表的arinc 429总线控制方法 Download PDF

Info

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
Application number
CN202011103074.XA
Other languages
English (en)
Other versions
CN112231266B (zh
Inventor
王雨龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202011103074.XA priority Critical patent/CN112231266B/zh
Publication of CN112231266A publication Critical patent/CN112231266A/zh
Application granted granted Critical
Publication of CN112231266B publication Critical patent/CN112231266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling 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总线控制方法。
背景技术
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。
CN202011103074.XA 2020-10-15 2020-10-15 一种基于查找表的arinc 429总线控制方法 Active CN112231266B (zh)

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)

* Cited by examiner, † Cited by third party
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模式下消息配置处理方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
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