CN103944898B - 基于状态机的arinc429编解码逻辑的实现方法 - Google Patents
基于状态机的arinc429编解码逻辑的实现方法 Download PDFInfo
- Publication number
- CN103944898B CN103944898B CN201410155479.6A CN201410155479A CN103944898B CN 103944898 B CN103944898 B CN 103944898B CN 201410155479 A CN201410155479 A CN 201410155479A CN 103944898 B CN103944898 B CN 103944898B
- Authority
- CN
- China
- Prior art keywords
- state
- signal
- data
- controller
- arinc429
- 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.)
- Expired - Fee Related
Links
Landscapes
- Communication Control (AREA)
Abstract
基于状态机的ARINC429编解码逻辑的实现方法,属于飞行器的数据通信技术领域。本发明为了解决ARINC429通讯总线的通信协议编解码实现方式成本高,灵活性差的问题。该逻辑方法通过通用控制器与FPGA芯片通过数据线、地址线和控制线进行信号交互,FPGA芯片通过电平转换单元与ARINC429总线进行通信协议数据传输;FPGA芯片实现ARINC429总线的编解码逻辑,通过编码电平转换单元接收串行编码数据信号后输出ARINC429总线标准电平;通过解码电平转换单元接收ARINC429总线标准解码信号后输出串行解码数据信号。本发明用于实现ARINC429总线的编解码逻辑。
Description
技术领域
本发明涉及基于状态机的ARINC429编解码逻辑的实现方法,属于飞行器的数据通信技术领域。
背景技术
ARINC429总线将飞机的各系统或系统与部件通过双绞线互连起来,是各系统间或系统与部件间数字传输的主要途径。目前,飞行器的数据通信大多采用机载ARINC429通讯总线实现。
ARINC429通讯总线的通信协议编解码需要采用专业的集成芯片实现,如:HOLT公司的HS3282或DEVICE公司的DEI1016,这些芯片在其内部实现通信协议数据的串行→并行和并行→串行的转换。这种方案明显降低了ARINC429通讯总线设计的难度,缩短了开发周期;但在需要数据多发多收的场合,会导致系统成本成倍的增加;还会增加电路板的体积,造成系统的灵活性差。
发明内容
本发明目的是为了解决ARINC429通讯总线的通信协议编解码实现方式成本高,灵活性差的问题,提供了一种基于状态机的ARINC429编解码逻辑的实现方法。
本发明所述基于状态机的ARINC429编解码逻辑的实现方法,它基于通用控制器、编码电平转换单元、解码电平转换单元和FPGA芯片实现,
该逻辑方法通过通用控制器与FPGA芯片通过数据线、地址线和控制线进行信号交互,FPGA芯片再通过编码电平转换单元和解码电平转换单元与ARINC429总线进行通信协议数据传输;
通过FPGA芯片实现ARINC429总线的编解码逻辑,在FPGA芯片内部,通过解码逻辑模块接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑;通过编码逻辑模块实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号;
通过编码电平转换单元接收TA、TB两路串行编码数据信号,并将其进行电平转换后输出ARINC429总线标准电平;
通过解码电平转换单元接收ARINC429总线标准解码信号,并将其进行电平转换后输出RA、RB两路串行解码数据信号。
编码逻辑模块实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号的具体过程为:
编码逻辑模块内部模块包括编码状态控制器、编码FIFO寄存器、发送控制器、32位字长格式变换器、25位字长格式变换器、32位字长发送状态机、25位字长发送状态机和码制调元模块;
通用控制器输出字长设置信号longset和波特率设置信号speedset[0:1]给编码状态控制器,编码状态控制器将接收的字长设置信号longset写入编码配置寄存器获得编码的字长状态信号longreal,然后根据发送控制器的当前状态信号busy将编码的字长状态信号longreal和波特率设置信号speedreal[0:1]发送给发送控制器;
通用控制器输出写请求信号wrreq给编码FIFO寄存器,并输出待编码的32位并行数据data[0:31]给编码FIFO寄存器,编码FIFO寄存器输出写满缓存标志信号wrfull给通用控制器;编码FIFO寄存器接收发送控制器输出的读请求信号rdreq后将缓存后的并行数据q[0:31]输出给发送控制器,发送控制器同时接收编码FIFO寄存器发送的读空标志信号rdempty;
发送控制器根据字长状态信号longreal选择32位字长格式变换器或25位字长格式变换器,根据波特率设置信号speedreal[0:1]改变格式变换器、发送状态机及码制调元模块的工作时钟频率,根据字长状态信号longreal使能对应的格式变换器,并输出32位并行数据给相应的格式变换器;
当32位字长格式变换器接收32位并行数据时,给32位字长发送状态机发送使能信号en32,将接收的32位并行数据按照ARINC429协议要求的32位字长数据格式进行变换,并将变换后的32位并行数据data32[0:31]输出给32位字长发送状态机,32位字长发送状态机输出工作状态信号busy1给发送控制器;
当25位字长格式变换器接收32位并行数据时,给25位字长发送状态机发送使能信号en25,将接收的32位并行数据按照ARINC429协议要求的25位字长数据格式进行变换,并将变换后的25位并行数据data25[0:24]输出给25位字长发送状态机,25位字长发送状态机输出工作状态信号busy2给发送控制器;
32位字长发送状态机或25位字长发送状态机在工作状态时,输出使能信号en给码制调元模块,并输出转换后的串行数据bit给码制调元模块,码制调元模块将接收的1位串行数据bit变为两路ARINC429信号,输出TA、TB两路串行编码数据信号。
解码逻辑模块接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑的具体过程为:
解码逻辑模块内部模块包括解码状态控制器、解码FIFO寄存器、FIFO写控制器、解码格式变换器、接收控制器、采样状态机和时钟使能器,
时钟使能器通过时钟信号clk设置工作时钟,通过波特率设置信号speedreal[0:1]设置波特率,并且根据时钟信号clk和波特率设置信号speedreal[0:1]输出使能信号clk_en给采样状态机,采样状态机接收RA、RB两路串行解码数据信号,并根据使能信号clk_en的控制输出采样完成信号sam_over给接收控制器,采样状态机还将接收的RA、RB两路串行解码数据信号根据ARINC429协议对于高电平和低电平时对RA和RB信号的定义变换为串行数据bit输出给接收控制器;
接收控制器根据接收的字长状态信号longreal及与采样状态机同步接收的RA、RB两路串行解码数据信号发送采样使能信号en_rec给采样状态机,并且判断接收到的RA、RB两路串行解码数据是否符合ARINC429协议对数据的要求,若否,输出错误信号err给解码状态控制器,并输出当前工作状态信号busy给解码状态控制器,输出接收完成标志信号rec_over给解码格式变换器,还将接收的串行数据bit按照ARINC429协议要求的数据排列原则转换后输出待接收并行数据信号rec_data[0:31]给解码格式变换器;
解码格式变换器根据字长状态信号longreal对接收的并行数据信号rec_data[0:31]进行转换,获得并行数据cha_data[0:31],数据转换完成后,给FIFO写控制器发送转换完成标志信号cha_over,并将并行数据cha_data[0:31]发送给FIFO写控制器;
FIFO写控制器数据写满后产生溢出信号overflow给解码状态控制器,FIFO写控制器发送写请求信号wrreq给解码FIFO寄存器,并将对并行数据cha_data[0:31]转换后获得的并行数据data[0:31]输出给解码FIFO寄存器,解码FIFO寄存器在数据写满时,发送写满缓存信号wrfull给FIFO写控制器;
解码FIFO寄存器对并行数据data[0:31]进行缓存处理后获得并行数据q[0:31],输出给通用控制器,当解码FIFO寄存器读空时发送读空标志信号rdempty给通用控制器,通用控制器发送读请求信号rdreq给解码FIFO寄存器;
解码状态控制器根据通用控制器输出的字长设置信号longset和波特率设置信号speedset[0:1]对待解码数据的字长和接收速率进行设置,输出波特率设置信号speedreal[0:1]。
本发明的优点:本发明所述基于状态机的ARINC429编解码逻辑方法在FPGA芯片内部实现ARINC429总线的编解码,其编解码逻辑主要依靠状态机来实现,这种ARINC429编解码的实现方法减小了ARINC429设备的体积,降低了成本,提高了设备的可移植性和灵活性。它在使用中,根据ARINC429信号的特点,在ARINC429接口方面支持100kbit/s、50kbit/s和12.5kbit/s三种传输波特率可选,数据支持32位或25位两种帧长可调。
本发明在FPGA内部实现数据的缓存以及ARINC429协议的编解码,完成数据的串并转换。通过通用控制器读写FPGA内的寄存器或者数据缓存FIFO来控制编解码的过程。在多发多收的场合,可以在FPGA内部根据需要的收发路数来复制相应数量的编解码逻辑块,应用非常灵活。
附图说明
图1是本发明所述基于状态机的ARINC429编解码逻辑的实现方法的原理框图;
图2是编码逻辑模块的原理框图;
图3是发送控制器的状态转换时序图;
图4是32位字长发送状态机的状态转换时序图;
图5是25位字长发送状态机的状态转换时序图;
图6是解码逻辑模块的原理框图;
图7是采样状态机的状态转换时序图。
具体实施方式
具体实施方式一:下面结合图1说明本实施方式,本实施方式所述基于状态机的ARINC429编解码逻辑的实现方法,它基于通用控制器1、编码电平转换单元2、解码电平转换单元3和FPGA芯片4实现,
该逻辑方法通过通用控制器1与FPGA芯片4通过数据线、地址线和控制线进行信号交互,FPGA芯片4再通过编码电平转换单元2和解码电平转换单元3与ARINC429总线进行通信协议数据传输;
通过FPGA芯片4实现ARINC429总线的编解码逻辑,在FPGA芯片4内部,通过解码逻辑模块4-1接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑;通过编码逻辑模块4-2实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号;
通过编码电平转换单元2接收TA、TB两路串行编码数据信号,并将其进行电平转换后输出ARINC429总线标准电平;
通过解码电平转换单元3接收ARINC429总线标准解码信号,并将其进行电平转换后输出RA、RB两路串行解码数据信号。
本实施方式中,通用控制器1可以为DSP或MCU。
具体实施方式二:下面结合图1和图2说明本实施方式,本实施方式对实施方式一作进一步说明,本实施方式所述编码逻辑模块4-2实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号的具体过程为:
编码逻辑模块4-2内部模块包括编码状态控制器4-21、编码FIFO寄存器4-22、发送控制器4-23、32位字长格式变换器4-24、25位字长格式变换器4-25、32位字长发送状态机4-26、25位字长发送状态机4-27和码制调元模块4-28;
通用控制器1输出字长设置信号longset和波特率设置信号speedset[0:1]给编码状态控制器4-21,编码状态控制器4-21将接收的字长设置信号longset写入编码配置寄存器获得编码的字长状态信号longreal,然后根据发送控制器4-23的当前状态信号busy将编码的字长状态信号longreal和波特率设置信号speedreal[0:1]发送给发送控制器4-23;
通用控制器1输出写请求信号wrreq给编码FIFO寄存器4-22,并输出待编码的32位并行数据data[0:31]给编码FIFO寄存器4-22,编码FIFO寄存器4-22输出写满缓存标志信号wrfull给通用控制器1;编码FIFO寄存器4-22接收发送控制器4-23输出的读请求信号rdreq后将缓存后的并行数据q[0:31]输出给发送控制器4-23,发送控制器4-23同时接收编码FIFO寄存器4-22发送的读空标志信号rdempty;
发送控制器4-23根据字长状态信号longreal选择32位字长格式变换器4-24或25位字长格式变换器4-25,根据波特率设置信号speedreal[0:1]改变格式变换器、发送状态机及码制调元模块的工作时钟频率,根据字长状态信号longreal使能对应的格式变换器,并输出32位并行数据给相应的格式变换器;
当32位字长格式变换器4-24接收32位并行数据时,给32位字长发送状态机4-26发送使能信号en32,将接收的32位并行数据按照ARINC429协议要求的32位字长数据格式进行变换,并将变换后的32位并行数据data32[0:31]输出给32位字长发送状态机4-26,32位字长发送状态机4-26输出工作状态信号busy1给发送控制器4-23;
当25位字长格式变换器4-25接收32位并行数据时,给25位字长发送状态机4-27发送使能信号en25,将接收的32位并行数据按照ARINC429协议要求的25位字长数据格式进行变换,并将变换后的25位并行数据data25[0:24]输出给25位字长发送状态机4-27,25位字长发送状态机4-27输出工作状态信号busy2给发送控制器4-23;
32位字长发送状态机4-26或25位字长发送状态机4-27在工作状态时,输出使能信号en给码制调元模块4-28,并输出转换后的串行数据bit给码制调元模块4-28,码制调元模块4-28将接收的1位串行数据bit变为两路ARINC429信号,输出TA、TB两路串行编码数据信号。
ARINC429编码实现主要在编码逻辑模块4-2中,其最后输出的TA、TB两路串行编码数据直接连接编码电平转换单元2,如HI8585,变成标准的ARINC429电平输出。编码逻辑模块4-2在发送控制器4-23的控制下工作,由于发送32位字长数据的时序与发送25位字长数据的时序差别较大,且格式变换方式也不一样,因此将发送32位字长数据与发送25位字长数据的通道分别作为独立通道设计。数据写入编码FIFO寄存器4-22后,在发送控制器4-23的控制下,格式变换后,由发送控制器4-23变为串行数据,经码制调元后输出。可以通过编码状态控制器4-21显示和改变发送通道的状态。
码制调元模块4-28将1位串行数据变为两路ARINC429信号后从I/O管脚输出,输出的信号经HI-8585转换电平后,即为标准的ARINC429编码信号。
具体实施方式三:下面结合图3说明本实施方式,本实施方式对实施方式二作进一步说明,本实施方式所述发送控制器4-23有四种工作状态,分别为:空闲状态、等待状态、32位字长格式变换器使能状态和25位字长格式变换器使能状态,其初始工作状态为空闲状态,各状态之间的转换过程为:
空闲状态:当检测到读空标志信号rdempty=1,发送控制器4-23保持空闲状态;当当前状态信号busy=0,并且字长状态信号longreal=1,转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号longreal=0,转入25位字长格式变换器使能状态;当读空标志信号rdempty=0,当前状态信号busy=1,转入等待状态;
等待状态:当检测到当前状态信号busy=0,并且字长状态信号longreal=1,转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号longreal=0,转入25位字长格式变换器使能状态;
32位字长格式变换器使能状态:该状态完成后,自动转入空闲状态;
25位字长格式变换器使能状态:该状态完成后,自动转入空闲状态。
本实施方式中,发送控制器4-23根据longreal值选择不同的发送通道,它先根据编码FIFO寄存器4-22输出的rdempty信号判断FIFO是否读空,若FIFO为空,则不使能格式变换器。若FIFO不为空,再判断发送通道是否处于忙状态,若发送通道处于忙状态,等待其处于空闲状态,发送通道处于空闲状态后,发送控制器使能格式变换器。具体状态转换时序如图3所示。
具体实施方式四:下面结合图4说明本实施方式,本实施方式对实施方式三作进一步说明,本实施方式所述32位字长发送状态机4-26在使能信号en32控制下开始工作,包括空闲状态、准备状态、LABEL状态、SDI状态、DATA状态、SSM状态、P状态和等待状态,各状态之间的转换过程为:
空闲状态:当检测到使能信号en32=0,32位字长发送状态机4-26保持空闲状态;当检测到使能信号en32=1,转入准备状态;
准备状态:从32位字长格式变换器4-24读取并行数据data32[0:31],并按ARINC429协议将并行数据data32[0:31]分为LABEL、SDI、DATA、SSM和P五个部分,并在LABEL状态、SDI状态、DATA状态、SSM状态和P状态中依次通过移位将并行数据data32[0:31]的上述五个部分串行发出,直至等待状态;
等待状态:发送完4比特位静默位后,回到空闲状态。
具体实施方式五:下面结合图5说明本实施方式,本实施方式对实施方式三或四作进一步说明,本实施方式所述25位字长发送状态机4-27在使能信号en25控制下开始工作,包括空闲状态、准备状态、LABEL状态、DATA状态、P状态和等待状态,各状态之间的转换过程为:
空闲状态:当检测到使能信号en25=0,25位字长发送状态机4-27保持空闲状态;当检测到使能信号en25=1,转入准备状态;
准备状态:从25位字长格式变换器4-25读取并行数据data25[0:24],并按ARINC429协议将并行数据data25[0:24]分为LABEL、DATA和P三个部分,并在LABEL状态、DATA状态和P状态中依次通过移位将并行数据data25[0:24]的上述三个部分串行发出,直至等待状态;
等待状态:发送完4比特位静默位后,回到空闲状态。
32位字长发送状态机4-26和25位字长发送状态机4-27的状态转换图分别如图4和图5所示。32位字长发送状态机4-26在使能信号en32控制下开始工作,其在准备状态时从格式变换器读取,并按ARINC429协议将数据分为LABEL、SDI、DATA、SSM、P五个部分,在接下来的五个状态中依次,通过移位将五个部分的数据依次串行发出,在等待状态发送完4比特位静默位后,回到空闲状态。25位字长发送状态机工作的过程与其相似,只不过其没有SDI、SSM状态。
具体实施方式六:下面结合图1和图6说明本实施方式,本实施方式对实施方式一、二、三、四或五作进一步说明,本实施方式所述解码逻辑模块4-1接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑的具体过程为:
解码逻辑模块4-1内部模块包括解码状态控制器4-11、解码FIFO寄存器4-12、FIFO写控制器4-13、解码格式变换器4-14、接收控制器4-15、采样状态机4-16和时钟使能器4-17,
时钟使能器4-17通过时钟信号clk设置工作时钟,通过波特率设置信号speedreal[0:1]设置波特率,并且根据时钟信号clk和波特率设置信号speedreal[0:1]输出使能信号clk_en给采样状态机4-16,采样状态机4-16接收RA、RB两路串行解码数据信号,并根据使能信号clk_en的控制输出采样完成信号sam_over给接收控制器4-15,采样状态机4-16还将接收的RA、RB两路串行解码数据信号根据ARINC429协议对于高电平和低电平时对RA和RB信号的定义变换为串行数据bit输出给接收控制器4-15;
接收控制器4-15根据接收的字长状态信号longreal及与采样状态机4-16同步接收的RA、RB两路串行解码数据信号发送采样使能信号en_rec给采样状态机4-16,并且判断接收到的RA、RB两路串行解码数据是否符合ARINC429协议对数据的要求,若否,输出错误信号err给解码状态控制器4-11,并输出当前工作状态信号busy给解码状态控制器4-11,输出接收完成标志信号rec_over给解码格式变换器4-14,还将接收的串行数据bit按照ARINC429协议要求的数据排列原则转换后输出待接收并行数据信号rec_data[0:31]给解码格式变换器4-14;
解码格式变换器4-14根据字长状态信号longreal对接收的并行数据信号rec_data[0:31]进行转换,获得并行数据cha_data[0:31],数据转换完成后,给FIFO写控制器4-13发送转换完成标志信号cha_over,并将并行数据cha_data[0:31]发送给FIFO写控制器4-13;
FIFO写控制器4-13数据写满后产生溢出信号overflow给解码状态控制器4-11,FIFO写控制器4-13发送写请求信号wrreq给解码FIFO寄存器4-12,并将对并行数据cha_data[0:31]转换后获得的并行数据data[0:31]输出给解码FIFO寄存器4-12,解码FIFO寄存器4-12在数据写满时,发送写满缓存信号wrfull给FIFO写控制器4-13;
解码FIFO寄存器4-12对并行数据data[0:31]进行缓存处理后获得并行数据q[0:31],输出给通用控制器1,当解码FIFO寄存器4-12读空时发送读空标志信号rdempty给通用控制器1,通用控制器1发送读请求信号rdreq给解码FIFO寄存器4-12;
解码状态控制器4-11根据通用控制器1输出的字长设置信号longset和波特率设置信号speedset[0:1]对待解码数据的字长和接收速率进行设置,输出波特率设置信号speedreal[0:1]。
本实施方式中,解码逻辑模块4-1的输入信号RA和RB为ARINC429标准电平经过电平转换芯片如HI8444转换的数字串行信号,q[0:31]为经过FPGA解码后输出的32位并行数据。解码逻辑模块4-1主要由接收控制器4-15控制工作,RA、RB经采样后,通过串行移位变为32位,当为25位时,加0至32位,经格式变换后写入FIFO,通过解码状态控制器4-11改变状态。
本实施方式中,解码状态控制器4-11通过longset、speedset设置接收通道的字长、波特率,为保证接收控制器4-15及采样状态机4-16正常工作,解码状态控制器4-11只有在接收控制器4-15处于非busy的时候,才会改变解码逻辑模块4-1的实际字长、波特率。
解码逻辑模块4-1中的解码状态控制器4-11根据speedreal,定时发出使能信号给采样状态机4-16、接收控制器4-15,通过改变使能信号的周期,就可以使采样状态机在100kbit/s、50kbit/s和12.5kbit/s波特率时以不同的速率采样。时钟使能器使整个解码逻辑模块4-1是以同步时钟工作的,提高了接收单元的稳定性与可靠性。
具体实施方式七:下面结合图7说明本实施方式,本实施方式对实施方式六作进一步说明,本实施方式所述采样状态机4-16在使能信号clk_en控制下开始工作,包括空闲状态、接收位为0初采样状态、接收位为1初采样状态、接收位为0错误重采样状态、接收数据重采样状态、接收位为1错误重采样状态、接收位确认为0状态、接收位确认为1状态和接收成功状态,其初始工作状态为空闲状态;
采样状态机4-16接收的数据为RARB,采样状态机4-16根据ARINC429总线协议生成的接收位为0或1,将采样状态机4-16接收的数据RARB和根据ARINC429总线协议生成的接收位作为上述各状态之间的转换条件信号,表示为RARB/接收位;并且各状态之间的转换依据如下条件作为数据接收的正确状态:
RA=0,RB=1,接收位为0;
RA=1,RB=0,接收位为1;
其它为错误状态;
由此上述各状态之间的转换过程为:
空闲状态:当检测到转换条件信号01/0,转入接收位为0初采样状态;当检测到转换条件信号10/1,转入接收位为1初采样状态;
接收位为0初采样状态:当检测到转换条件信号00/0或11/0,转入接收位为0错误重采样状态;当检测到转换条件信号01/0,转入接收位确认为0状态;当检测到转换条件信号10/0,转入接收数据重采样状态;
接收位为1初采样状态:当检测到转换条件信号01/0,转入接收数据重采样状态;当检测到转换条件信号10/1,转入接收位确认为1状态;当检测到转换条件信号00/0或11/0,转入接收位为1错误重采样状态;
接收位为0错误重采样状态:当检测到转换条件信号00/0、11/0或10/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为0状态;
接收数据重采样状态:当检测到转换条件信号00/0或11/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为0状态;当检测到转换条件信号10/1,转入接收位确认为1状态;
接收位为1错误重采样状态:当检测到转换条件信号00/0、11/0或01/0,转入空闲状态;当检测到转换条件信号10/1,转入接收位确认为1状态;
接收位确认为0状态:该状态完成后,自动转入接收成功状态;
接收位确认为1状态:该状态完成后,自动转入接收成功状态;
接收成功状态:该状态完成后,自动转入空闲状态。
本实施方式中,由于ARINC429协议规定发送的每一位数据前半位为有效部分,后半位必须为静默状态以区分发送的相邻两位数据,因此,设计采样状态机是以接收波特率的20倍速率采样,在处于前半位数据时期的第4、5、6次采样处取样,取两次相同结果为最终结果。由于ARINC429协议是根据RA、RB两路串行信号确定一比特位数据的,为保证采样结果正确,滤除尖峰脉冲干扰,设计如图7所示的采样状态机。
测试实验:测试时,首先进行收发通路测试,在逻辑中将ARINC429发送的TA、TB和接收的RA、RB用线短接。用DM642程序端向通道一连续发送数据0xaa55,用QuartusⅡ里的SignalTap调试软件观察发送和接收信号,接收正确。
本发明方法根据ARINC429总线协议在FPGA内部实现了ARINC429的编解码逻辑。经过测试表明,该设计方案正确可行,降低了多发多收时的成本,在提供稳定可靠的数据传输特性的基础上提高了设计的通用性和灵活性,在实际应用中,运行稳定,通信快速可靠,具有很高的工程应用价值。
Claims (6)
1.一种基于状态机的ARINC429编解码逻辑的实现方法,它基于通用控制器(1)、编码电平转换单元(2)、解码电平转换单元(3)和FPGA芯片(4)实现,
该逻辑方法通过通用控制器(1)与FPGA芯片(4)通过数据线、地址线和控制线进行信号交互,FPGA芯片(4)再通过编码电平转换单元(2)和解码电平转换单元(3)与ARINC429总线进行通信协议数据传输;
通过FPGA芯片(4)实现ARINC429总线的编解码逻辑,在FPGA芯片(4)内部,通过解码逻辑模块(4-1)接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑;通过编码逻辑模块(4-2)实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号;
通过编码电平转换单元(2)接收TA、TB两路串行编码数据信号,并将其进行电平转换后输出ARINC429总线标准电平;
通过解码电平转换单元(3)接收ARINC429总线标准解码信号,并将其进行电平转换后输出RA、RB两路串行解码数据信号;
其特征在于,编码逻辑模块(4-2)实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号的具体过程为:
编码逻辑模块(4-2)内部模块包括编码状态控制器(4-21)、编码FIFO寄存器(4-22)、发送控制器(4-23)、32位字长格式变换器(4-24)、25位字长格式变换器(4-25)、32位字长发送状态机(4-26)、25位字长发送状态机(4-27)和码制调元模块(4-28);
通用控制器(1)输出字长设置信号longset和波特率设置信号speedset[0:1]给编码状态控制器(4-21),编码状态控制器(4-21)将接收的字长设置信号longset写入编码配置寄存器获得编码的字长状态信号longreal,然后根据发送控制器(4-23)的当前状态信号busy将编码的字长状态信号longreal和波特率设置信号speedreal[0:1]发送给发送控制器(4-23);
通用控制器(1)输出写请求信号wrreq给编码FIFO寄存器(4-22),并输出待编码的32位并行数据data[0:31]给编码FIFO寄存器(4-22),编码FIFO寄存器(4-22)输出写满缓存标志信号wrfull给通用控制器(1);编码FIFO寄存器(4-22)接收发送控制器(4-23)输出的读请求信号rdreq后将缓存后的并行数据q[0:31]输出给发送控制器(4-23),发送控制器(4-23)同时接收编码FIFO寄存器(4-22)发送的读空标志信号rdempty;
发送控制器(4-23)根据字长状态信号longreal选择32位字长格式变换器(4-24)或25位字长格式变换器(4-25),根据波特率设置信号speedreal[0:1]改变格式变换器、发送状态机及码制调元模块的工作时钟频率,根据字长状态信号longreal使能对应的格式变换器,并输出32位并行数据给相应的格式变换器;
当32位字长格式变换器(4-24)接收32位并行数据时,给32位字长发送状态机(4-26)发送使能信号en32,将接收的32位并行数据按照ARINC429协议要求的32位字长数据格式进行变换,并将变换后的32位并行数据data32[0:31]输出给32位字长发送状态机(4-26),32位字长发送状态机(4-26)输出工作状态信号busy1给发送控制器(4-23);
当25位字长格式变换器(4-25)接收32位并行数据时,给25位字长发送状态机(4-27)发送使能信号en25,将接收的32位并行数据按照ARINC429协议要求的25位字长数据格式进行变换,并将变换后的25位并行数据data25[0:24]输出给25位字长发送状态机(4-27),25位字长发送状态机(4-27)输出工作状态信号busy2给发送控制器(4-23);
32位字长发送状态机(4-26)或25位字长发送状态机(4-27)在工作状态时,输出使能信号en给码制调元模块(4-28),并输出转换后的串行数据bit给码制调元模块(4-28),码制调元模块(4-28)将接收的1位串行数据bit变为两路ARINC429信号,输出TA、TB两路串行编码数据信号。
2.根据权利要求1所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,发送控制器(4-23)有四种工作状态,分别为:空闲状态、等待状态、32位字长格式变换器使能状态和25位字长格式变换器使能状态,其初始工作状态为空闲状态,各状态之间的转换过程为:
空闲状态:当检测到读空标志信号rdempty=1,发送控制器(4-23)保持空闲状态;当当前状态信号busy=0,并且字长状态信号longreal=1,转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号longreal=0,转入25位字长格式变换器使能状态;当读空标志信号rdempty=0,当前状态信号busy=1,转入等待状态;
等待状态:当检测到当前状态信号busy=0,并且字长状态信号longreal=1,转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号longreal=0,转入25位字长格式变换器使能状态;
32位字长格式变换器使能状态:该状态完成后,自动转入空闲状态;
25位字长格式变换器使能状态:该状态完成后,自动转入空闲状态。
3.根据权利要求2所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,
32位字长发送状态机(4-26)在使能信号en32控制下开始工作,包括空闲状态、准备状态、LABEL状态、SDI状态、DATA状态、SSM状态、P状态和等待状态,各状态之间的转换过程为:
空闲状态:当检测到使能信号en32=0,32位字长发送状态机(4-26)保持空闲状态;当检测到使能信号en32=1,转入准备状态;
准备状态:从32位字长格式变换器(4-24)读取并行数据data32[0:31],并按ARINC429协议将并行数据data32[0:31]分为LABEL、SDI、DATA、SSM和P五个部分,并在LABEL状态、SDI状态、DATA状态、SSM状态和P状态中依次通过移位将并行数据data32[0:31]的上述五个部分串行发出,直至等待状态;
等待状态:发送完4比特位静默位后,回到空闲状态。
4.根据权利要求3所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,25位字长发送状态机(4-27)在使能信号en25控制下开始工作,包括空闲状态、准备状态、LABEL状态、DATA状态、P状态和等待状态,各状态之间的转换过程为:
空闲状态:当检测到使能信号en25=0,25位字长发送状态机(4-27)保持空闲状态;当检测到使能信号en25=1,转入准备状态;
准备状态:从25位字长格式变换器(4-25)读取并行数据data25[0:24],并按ARINC429协议将并行数据data25[0:24]分为LABEL、DATA和P三个部分,并在LABEL状态、DATA状态和P状态中依次通过移位将并行数据data25[0:24]的上述三个部分串行发出,直至等待状态;
等待状态:发送完4比特位静默位后,回到空闲状态。
5.根据权利要求4所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,解码逻辑模块(4-1)接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑的具体过程为:
解码逻辑模块(4-1)内部模块包括解码状态控制器(4-11)、解码FIFO寄存器(4-12)、FIFO写控制器(4-13)、解码格式变换器(4-14)、接收控制器(4-15)、采样状态机(4-16)和时钟使能器(4-17),
时钟使能器(4-17)通过时钟信号clk设置工作时钟,通过波特率设置信号speedreal[0:1]设置波特率,并且根据时钟信号clk和波特率设置信号speedreal[0:1]输出使能信号clk_en给采样状态机(4-16),采样状态机(4-16)接收RA、RB两路串行解码数据信号,并根据使能信号clk_en的控制输出采样完成信号sam_over给接收控制器(4-15),采样状态机(4-16)还将接收的RA、RB两路串行解码数据信号根据ARINC429协议对于高电平和低电平时对RA和RB信号的定义变换为串行数据bit输出给接收控制器(4-15);
接收控制器(4-15)根据接收的字长状态信号longreal及与采样状态机(4-16)同步接收的RA、RB两路串行解码数据信号发送采样使能信号en_rec给采样状态机(4-16),并且判断接收到的RA、RB两路串行解码数据是否符合ARINC429协议对数据的要求,若否,输出错误信号err给解码状态控制器(4-11),并输出当前工作状态信号busy给解码状态控制器(4-11),输出接收完成标志信号rec_over给解码格式变换器(4-14),还将接收的串行数据bit按照ARINC429协议要求的数据排列原则转换后输出待接收并行数据信号rec_data[0:31]给解码格式变换器(4-14);
解码格式变换器(4-14)根据字长状态信号longreal对接收的并行数据信号rec_data[0:31]进行转换,获得并行数据cha_data[0:31],数据转换完成后,给FIFO写控制器(4-13)发送转换完成标志信号cha_over,并将并行数据cha_data[0:31]发送给FIFO写控制器(4-13);
FIFO写控制器(4-13)数据写满后产生溢出信号overflow给解码状态控制器(4-11),FIFO写控制器(4-13)发送写请求信号wrreq给解码FIFO寄存器(4-12),并将对并行数据cha_data[0:31]转换后获得的并行数据data[0:31]输出给解码FIFO寄存器(4-12),解码FIFO寄存器(4-12)在数据写满时,发送写满缓存信号wrfull给FIFO写控制器(4-13);
解码FIFO寄存器(4-12)对并行数据data[0:31]进行缓存处理后获得并行数据q[0:31],输出给通用控制器(1),当解码FIFO寄存器(4-12)读空时发送读空标志信号rdempty给通用控制器(1),通用控制器(1)发送读请求信号rdreq给解码FIFO寄存器(4-12);
解码状态控制器(4-11)根据通用控制器(1)输出的字长设置信号longset和波特率设置信号speedset[0:1]对待解码数据的字长和接收速率进行设置,输出波特率设置信号speedreal[0:1]。
6.根据权利要求5所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于采样状态机(4-16)在使能信号clk_en控制下开始工作,包括空闲状态、接收位为0初采样状态、接收位为1初采样状态、接收位为0错误重采样状态、接收数据重采样状态、接收位为1错误重采样状态、接收位确认为0状态、接收位确认为1状态和接收成功状态,其初始工作状态为空闲状态;
采样状态机(4-16)接收的数据为RARB,采样状态机(4-16)根据ARINC429总线协议生成的接收位为0或1,将采样状态机(4-16)接收的数据RARB和根据ARINC429总线协议生成的接收位作为上述各状态之间的转换条件信号,表示为RARB/接收位;并且各状态之间的转换依据如下条件作为数据接收的正确状态:
RA=0,RB=1,接收位为0;
RA=1,RB=0,接收位为1;
其它为错误状态;
由此上述各状态之间的转换过程为:
空闲状态:当检测到转换条件信号01/0,转入接收位为0初采样状态;当检测到转换条件信号10/1,转入接收位为1初采样状态;
接收位为0初采样状态:当检测到转换条件信号00/0或11/0,转入接收位为0错误重采样状态;当检测到转换条件信号01/0,转入接收位确认为0状态;当检测到转换条件信号10/0,转入接收数据重采样状态;
接收位为1初采样状态:当检测到转换条件信号01/0,转入接收数据重采样状态;当检测到转换条件信号10/1,转入接收位确认为1状态;当检测到转换条件信号00/0或11/0,转入接收位为1错误重采样状态;
接收位为0错误重采样状态:当检测到转换条件信号00/0、11/0或10/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为0状态;
接收数据重采样状态:当检测到转换条件信号00/0或11/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为0状态;当检测到转换条件信号10/1,转入接收位确认为1状态;
接收位为1错误重采样状态:当检测到转换条件信号00/0、11/0或01/0,转入空闲状态;当检测到转换条件信号10/1,转入接收位确认为1状态;
接收位确认为0状态:该状态完成后,自动转入接收成功状态;
接收位确认为1状态:该状态完成后,自动转入接收成功状态;
接收成功状态:该状态完成后,自动转入空闲状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410155479.6A CN103944898B (zh) | 2014-04-17 | 2014-04-17 | 基于状态机的arinc429编解码逻辑的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410155479.6A CN103944898B (zh) | 2014-04-17 | 2014-04-17 | 基于状态机的arinc429编解码逻辑的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103944898A CN103944898A (zh) | 2014-07-23 |
CN103944898B true CN103944898B (zh) | 2017-03-01 |
Family
ID=51192382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410155479.6A Expired - Fee Related CN103944898B (zh) | 2014-04-17 | 2014-04-17 | 基于状态机的arinc429编解码逻辑的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103944898B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389282B (zh) * | 2015-10-19 | 2018-09-21 | 陕西宝成航空仪表有限责任公司 | 处理器和arinc429总线的通信方法 |
CN108011693B (zh) * | 2017-11-08 | 2020-09-11 | 江西洪都航空工业集团有限责任公司 | 一种基于arinc429总线通信的通用数据组码方法 |
CN109752999A (zh) * | 2019-01-02 | 2019-05-14 | 中国船舶重工集团公司第七0七研究所 | 一种基于fpga的arinc429总线通信方法 |
CN112765069B (zh) * | 2021-01-14 | 2022-11-01 | 凌云科技集团有限责任公司 | Arinc429总线icd反求方法、装置和系统 |
CN115828814B (zh) * | 2023-02-13 | 2023-05-12 | 中兵通信科技股份有限公司 | 基于fpga的arinc429协议软核的电路设计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571842A (zh) * | 2009-05-31 | 2009-11-04 | 北京航空航天大学 | 一种用于arinc429通讯的pci板卡装置 |
CN201869205U (zh) * | 2010-11-19 | 2011-06-15 | 陕西千山航空电子有限责任公司 | Arinc429总线信号编解码电路 |
CN102932489A (zh) * | 2012-10-28 | 2013-02-13 | 中国电子科技集团公司第十研究所 | 多通道arinc429总线接口 |
-
2014
- 2014-04-17 CN CN201410155479.6A patent/CN103944898B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571842A (zh) * | 2009-05-31 | 2009-11-04 | 北京航空航天大学 | 一种用于arinc429通讯的pci板卡装置 |
CN201869205U (zh) * | 2010-11-19 | 2011-06-15 | 陕西千山航空电子有限责任公司 | Arinc429总线信号编解码电路 |
CN102932489A (zh) * | 2012-10-28 | 2013-02-13 | 中国电子科技集团公司第十研究所 | 多通道arinc429总线接口 |
Also Published As
Publication number | Publication date |
---|---|
CN103944898A (zh) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103944898B (zh) | 基于状态机的arinc429编解码逻辑的实现方法 | |
CN101364097B (zh) | 一种高实时性的多通道数据采集系统 | |
CN105573239A (zh) | 一种高速背板总线通讯控制装置及方法 | |
CN101923440B (zh) | 一种高速异步数据采集系统 | |
CN101770424A (zh) | 适于数字通信终端底层协议栈的数据采集与仿真系统 | |
CN105553883A (zh) | 基于fpga的多dsp数据交换装置 | |
CN102331981A (zh) | 一种用于fpga中实现数据无冲突实时存取的方法 | |
CN105720986B (zh) | 具有统一时间标志的多路数据采集系统 | |
CN101605081B (zh) | 数据传输装置、数据接收装置以及控制数据传输的方法 | |
CN106843023B (zh) | 一种基于fpga的电力数据采集系统 | |
CN104243083B (zh) | 一种数据映射方法、装置及电子设备 | |
CN204256732U (zh) | 基于PCI-Express接口的高速数据传输装置 | |
CN106411463B (zh) | 一种基于异步时钟的高速数据传输装置及方法 | |
CN103107862B (zh) | 逻辑器件及其mdio数据发送方法 | |
CN108983036B (zh) | 一种基于电子式互感器的行波测距系统 | |
CN101887635A (zh) | 深水浅层高分辨率多道地震勘探数据传输系统 | |
CN105634897B (zh) | 一种应用于串行总线分析仪器的can总线协议解码ip核 | |
CN2684471Y (zh) | 内嵌误码测试功能的光端机 | |
CN101976216B (zh) | 基于ieee 1500标准的ip核测试结构及测试方法 | |
CN102063401B (zh) | 分布录波装置的tdmow串行总线结构及编码方法 | |
CN107066419A (zh) | 可扩展的自适应n×n通道数据通信系统 | |
CN102637059B (zh) | 时间偏差处理装置及其处理方法 | |
CN205864459U (zh) | 一种电力2兆信号转为以太网网络信号的转换系统 | |
CN105871655B (zh) | 一种应用于串行总线分析仪器的波特率估计ip核系统 | |
CN1140976C (zh) | 七号信令分析仪 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170301 Termination date: 20210417 |
|
CF01 | Termination of patent right due to non-payment of annual fee |