基于状态机的arinc429编解码逻辑的实现方法

文档序号:6544133阅读:298来源:国知局
基于状态机的arinc429编解码逻辑的实现方法
【专利摘要】基于状态机的ARINC429编解码逻辑的实现方法,属于飞行器的数据通信【技术领域】。本发明为了解决ARINC429通讯总线的通信协议编解码实现方式成本高,灵活性差的问题。该逻辑方法通过通用控制器与FPGA芯片通过数据线、地址线和控制线进行信号交互,FPGA芯片通过电平转换单元与ARINC429总线进行通信协议数据传输;FPGA芯片实现ARINC429总线的编解码逻辑,通过编码电平转换单元接收串行编码数据信号后输出ARINC429总线标准电平;通过解码电平转换单元接收ARINC429总线标准解码信号后输出串行解码数据信号。本发明用于实现ARINC429总线的编解码逻辑。
【专利说明】基于状态机的ARINC429编解码逻辑的实现方法
【技术领域】
[0001]本发明涉及基于状态机的ARINC429编解码逻辑的实现方法,属于飞行器的数据通信【技术领域】。
【背景技术】
[0002]ARINC429总线将飞机的各系统或系统与部件通过双绞线互连起来,是各系统间或系统与部件间数字传输的主要途径。目前,飞行器的数据通信大多采用机载ARINC429通讯总线实现。
[0003]ARINC429通讯总线的通信协议编解码需要采用专业的集成芯片实现,如:H0LT公司的HS3282或DEVICE公司的DEI1016,这些芯片在其内部实现通信协议数据的串行一并行和并行一串行的转换。这种方案明显降低了 ARINC429通讯总线设计的难度,缩短了开发周期;但在需要数据多发多收的场合,会导致系统成本成倍的增加;还会增加电路板的体积,造成系统的灵活性差。

【发明内容】

[0004]本发明目的是为了解决ARINC429通讯总线的通信协议编解码实现方式成本高,灵活性差的问题,提供了一种基于状态机的ARINC429编解码逻辑的实现方法。
[0005]本发明所述基于状态机的ARINC429编解码逻辑的实现方法,它基于通用控制器、编码电平转换单元、解码电平转换单元和FPGA芯片实现,
[0006]该逻辑方法通过通用控制器与FPGA芯片通过数据线、地址线和控制线进行信号交互,FPGA芯片再通过编码电平转换单元和解码电平转换单元与ARINC429总线进行通信协议数据传输;
[0007]通过FPGA芯片实现ARINC429总线的编解码逻辑,在FPGA芯片内部,通过解码逻辑模块接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑;通过编码逻辑模块实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据
信号;
[0008]通过编码电平转换单元接收TA、TB两路串行编码数据信号,并将其进行电平转换后输出ARINC429总线标准电平;
[0009]通过解码电平转换单元接收ARINC429总线标准解码信号,并将其进行电平转换后输出RA、RB两路串行解码数据信号。
[0010]编码逻辑模块实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号的具体过程为:
[0011]编码逻辑模块内部模块包括编码状态控制器、编码FIFO寄存器、发送控制器、32位字长格式变换器、25位字长格式变换器、32位字长发送状态机、25位字长发送状态机和码制调元模块;
[0012]通用控制器输出字长设置信号1ngset和波特率设置信号speedset [O:1]给编码状态控制器,编码状态控制器将接收的字长设置信号1ngset写入编码配置寄存器获得编码的字长状态信号longreal,然后根据发送控制器的当前状态信号busy将编码的字长状态信号1ngreal和波特率设置信号speedreal [O:1]发送给发送控制器;
[0013]通用控制器输出写请求信号wrreq给编码FIFO寄存器,并输出待编码的32位并行数据data[0:31]给编码FIFO寄存器,编码FIFO寄存器输出写满缓存标志信号wrfull给通用控制器;编码FIFO寄存器接收发送控制器输出的读请求信号rdreq后将缓存后的并行数据q[0:31]输出给发送控制器,发送控制器同时接收编码FIFO寄存器发送的读空标志信号 rdempty ;
[0014]发送控制器根据字长状态信号1ngreal选择32位字长格式变换器或25位字长格式变换器,根据波特率设置信号speedreal [O:1]改变格式变换器、发送状态机及码制调元模块的工作时钟频率,根据字长状态信号1ngreal使能对应的格式变换器,并输出32位并行数据给相应的格式变换器;
[0015]当32位字长格式变换器接收32位并行数据时,给32位字长发送状态机发送使能信号en32,将接收的32位并行数据按照ARINC429协议要求的32位字长数据格式进行变换,并将变换后的32位并行数据data32[0:31]输出给32位字长发送状态机,32位字长发送状态机输出工作状态信号busyl给发送控制器;
[0016]当25位字长格式变换器接收32位并行数据时,给25位字长发送状态机发送使能信号en25,将接收的32位并行数据按照ARINC429协议要求的25位字长数据格式进行变换,并将变换后的25位并行数据data25[0:24]输出给25位字长发送状态机,25位字长发送状态机输出工作状态信号busy2给发送控制器;
[0017]32位字长发送状态机或25位字长发送状态机在工作状态时,输出使能信号en给码制调元模块,并输出转换后的串行数据bit给码制调元模块,码制调元模块将接收的I位串行数据bit变为两路ARINC429信号,输出TA、TB两路串行编码数据信号。
[0018]解码逻辑模块接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑的具体过程为:
[0019]解码逻辑模块内部模块包括解码状态控制器、解码FIFO寄存器、FIFO写控制器、解码格式变换器、接收控制器、采样状态机和时钟使能器,
[0020]时钟使能器通过时钟信号Clk设置工作时钟,通过波特率设置信号speedreal [0:1]设置波特率,并且根据时钟信号elk和波特率设置信号speedreal [O:1]输出使能信号clk_en给采样状态机,采样状态机接收RA、RB两路串行解码数据信号,并根据使能信号clk_en的控制输出采样完成信号sam_0Ver给接收控制器,采样状态机还将接收的RA、RB两路串行解码数据信号根据ARINC429协议对于高电平和低电平时对RA和RB信号的定义变换为串行数据bit输出给接收控制器;
[0021]接收控制器根据接收的字长状态信号1ngreal及与采样状态机同步接收的RA、RB两路串行解码数据信号发送采样使能信号en_rec给采样状态机,并且判断接收到的RA、RB两路串行解码数据是否符合ARINC429协议对数据的要求,若否,输出错误信号err给解码状态控制器,并输出当前工作状态信号busy给解码状态控制器,输出接收完成标志信号rec_over给解码格式变换器,还将接收的串行数据bit按照ARINC429协议要求的数据排列原则转换后输出待接收并行数据信号rec_data[0:31]给解码格式变换器;[0022]解码格式变换器根据字长状态信号1ngreal对接收的并行数据信号rec_data[0:31]进行转换,获得并行数据cha_data[0:31],数据转换完成后,给FIFO写控制器发送转换完成标志信号cha_over,并将并行数据cha_data[0:31]发送给FIFO写控制器;
[0023]FIFO写控制器数据写满后产生溢出信号overflow给解码状态控制器,FIFO写控制器发送写请求信号wrreq给解码FIFO寄存器,并将对并行数据cha_data[0:31]转换后获得的并行数据data [0:31]输出给解码FIFO寄存器,解码FIFO寄存器在数据写满时,发送写满缓存信号wrfull给FIFO写控制器;
[0024]解码FIFO寄存器对并行数据data[0:31]进行缓存处理后获得并行数据q[0:31],输出给通用控制器,当解码FIFO寄存器读空时发送读空标志信号rdempty给通用控制器,通用控制器发送读请求信号rdreq给解码FIFO寄存器;
[0025]解码状态控制器根据通用控制器输出的字长设置信号1ngset和波特率设置信号speedset[0:l]对待解码数据的字长和接收速率进行设置,输出波特率设置信号speedreal[0:1]。
[0026]本发明的优点:本发明所述基于状态机的ARINC429编解码逻辑方法在FPGA芯片内部实现ARINC429总线的编解码,其编解码逻辑主要依靠状态机来实现,这种ARINC429编解码的实现方法减小了 ARINC429设备的体积,降低了成本,提高了设备的可移植性和灵活性。它在使用中,根据ARINC429信号的特点,在ARINC429接口方面支持100kbit/s、50kbit/s和12.5kbit/s三种传输波特率可选,数据支持32位或25位两种帧长可调。
[0027]本发明在FPGA内部实现数据的缓存以及ARINC429协议的编解码,完成数据的串并转换。通过通用控制器读写FPGA内的寄存器或者数据缓存FIFO来控制编解码的过程。在多发多收的场合,可以在FPGA内部根据需要的收发路数来复制相应数量的编解码逻辑块,应用非常灵活。
【专利附图】

【附图说明】
[0028]图1是本发明所述基于状态机的ARINC429编解码逻辑的实现方法的原理框图;
[0029]图2是编码逻辑模块的原理框图;
[0030]图3是发送控制器的状态转换时序图;
[0031]图4是32位字长发送状态机的状态转换时序图;
[0032]图5是25位字长发送状态机的状态转换时序图;
[0033]图6是解码逻辑模块的原理框图;
[0034]图7是采样状态机的状态转换时序图。
【具体实施方式】
[0035]【具体实施方式】一:下面结合图1说明本实施方式,本实施方式所述基于状态机的ARINC429编解码逻辑的实现方法,它基于通用控制器1、编码电平转换单元2、解码电平转换单元3和FPGA芯片4实现,
[0036]该逻辑方法通过通用控制器I与FPGA芯片4通过数据线、地址线和控制线进行信号交互,FPGA芯片4再通过编码电平转换单元2和解码电平转换单元3与ARINC429总线进行通信协议数据传输;[0037]通过FPGA芯片4实现ARINC429总线的编解码逻辑,在FPGA芯片4内部,通过解码逻辑模块4-1接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑;通过编码逻辑模块4_2实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号;
[0038]通过编码电平转换单元2接收TA、TB两路串行编码数据信号,并将其进行电平转换后输出ARINC429总线标准电平;
[0039]通过解码电平转换单元3接收ARINC429总线标准解码信号,并将其进行电平转换后输出RA、RB两路串行解码数据信号。
[0040]本实施方式中,通用控制器I可以为DSP或MCU。
[0041]【具体实施方式】二:下面结合图1和图2说明本实施方式,本实施方式对实施方式一作进一步说明,本实施方式所述编码逻辑模块4-2实现ARINC429总线编码逻辑并输出TA、TB两路串行编码数据信号的具体过程为:
[0042]编码逻辑模块4-2内部模块包括编码状态控制器4-21、编码FIFO寄存器4_22、发送控制器4-23、32位字长格式变换器4-24、25位字长格式变换器4_25、32位字长发送状态机4-26、25位字长发送状态机4-27和码制调元模块4_28 ;
[0043]通用控制器I输出字长设置信号1ngset和波特率设置信号speedset [O:1]给编码状态控制器4-21,编码状态控制器4-21将接收的字长设置信号1ngset写入编码配置寄存器获得编码的字长状态信号1ngreal,然后根据发送控制器4-23的当前状态信号busy将编码的字长状态信号1ngreal和波特率设置信号speedreal [O:1]发送给发送控制器4-23 ;
[0044]通用控制器I输出写请求信号wrreq给编码FIFO寄存器4-22,并输出待编码的32位并行数据data [0:31]给编码FIFO寄存器4_22,编码FIFO寄存器4_22输出写满缓存标志信号wrfull给通用控制器I ;编码FIFO寄存器4_22接收发送控制器4_23输出的读请求信号rdreq后将缓存后的并行数据q [0:31]输出给发送控制器4_23,发送控制器4_23同时接收编码FIFO寄存器4-22发送的读空标志信号rdempty ;
[0045]发送控制器4-23根据字长状态信号1ngreal选择32位字长格式变换器4_24或25位字长格式变换器4-25,根据波特率设置信号speedreal [0:1]改变格式变换器、发送状态机及码制调元模块的工作时钟频率,根据字长状态信号1ngreal使能对应的格式变换器,并输出32位并行数据给相应的格式变换器;
[0046]当32位字长格式变换器4-24接收32位并行数据时,给32位字长发送状态机4_26发送使能信号en32,将接收的32位并行数据按照ARINC429协议要求的32位字长数据格式进行变换,并将变换后的32位并行数据data32[0:31]输出给32位字长发送状态机4_26,32位字长发送状态机4-26输出工作状态信号busyl给发送控制器4_23 ;
[0047]当25位字长格式变换器4-25接收32位并行数据时,给25位字长发送状态机4_27发送使能信号en25,将接收的32位并行数据按照ARINC429协议要求的25位字长数据格式进行变换,并将变换后的25位并行数据data25[0:24]输出给25位字长发送状态机4_27,25位字长发送状态机4-27输出工作状态信号busy2给发送控制器4_23 ;
[0048]32位字长发送状态机4-26或25位字长发送状态机4_27在工作状态时,输出使能信号en给码制调元模块4-28,并输出转换后的串行数据bit给码制调元模块4_28,码制调元模块4-28将接收的I位串行数据bit变为两路ARINC429信号,输出TA、TB两路串行编码数据信号。
[0049]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显示和改变发送通道的状态。
[0050]码制调元模块4-28将I位串行数据变为两路ARINC429信号后从I/O管脚输出,输出的信号经H1-8585转换电平后,即为标准的ARINC429编码信号。
[0051]【具体实施方式】三:下面结合图3说明本实施方式,本实施方式对实施方式二作进一步说明,本实施方式所述发送控制器4-23有四种工作状态,分别为:空闲状态、等待状态、32位字长格式变换器使能状态和25位字长格式变换器使能状态,其初始工作状态为空闲状态,各状态之间的转换过程为:
[0052]空闲状态:当检测到读空标志信号rdempty=l,发送控制器4-23保持空闲状态;当当前状态信号busy=0,并且字长状态信号1ngreal=L转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号1ngreal=O,转入25位字长格式变换器使能状态;当读空标志信号rdempty=0,当前状态信号busy=l,转入等待状态;
[0053]等待状态:当检测到当前状态信号busy=0,并且字长状态信号1ngreal=I,转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号1ngreal=O,转入25位字长格式变换器使能状态;
[0054]32位字长格式变换器使能状态:该状态完成后,自动转入空闲状态;
[0055]25位字长格式变换器使能状态:该状态完成后,自动转入空闲状态。
[0056]本实施方式中,发送控制器4-23根据1ngreal值选择不同的发送通道,它先根据编码FIFO寄存器4-22输出的rdempty信号判断FIFO是否读空,若FIFO为空,则不使能格式变换器。若FIFO不为空,再判断发送通道是否处于忙状态,若发送通道处于忙状态,等待其处于空闲状态,发送通道处于空闲状态后,发送控制器使能格式变换器。具体状态转换时序如图3所示。
[0057]【具体实施方式】四:下面结合图4说明本实施方式,本实施方式对实施方式三作进一步说明,本实施方式所述32位字长发送状态机4-26在使能信号en32控制下开始工作,包括空闲状态、准备状态、LABEL状态、SDI状态、DATA状态、SSM状态、P状态和等待状态,各状态之间的转换过程为:
[0058]空闲状态:当检测到使能信号en32=0,32位字长发送状态机4_26保持空闲状态;当检测到使能信号en32=l,转入准备状态;
[0059]准备状态:从32位字长格式变换器4-24读取并行数据data32[0:31],并按ARINC429协议将并行数据data32[0:31]分为LABEL、SD1、DATA、SSM和P五个部分,并在LABEL状态、SDI状态、DATA状态、SSM状态和P状态中依次通过移位将并行数据data32[0:31]的上述五个部分串行发出,直至等待状态;[0060]等待状态:发送完4比特位静默位后,回到空闲状态。
[0061]【具体实施方式】五:下面结合图5说明本实施方式,本实施方式对实施方式三或四作进一步说明,本实施方式所述25位字长发送状态机4-27在使能信号en25控制下开始工作,包括空闲状态、准备状态、LABEL状态、DATA状态、P状态和等待状态,各状态之间的转换过程为:
[0062]空闲状态:当检测到使能信号en25=0,25位字长发送状态机4_27保持空闲状态;当检测到使能信号en25=l,转入准备状态;
[0063]准备状态:从25位字长格式变换器4-25读取并行数据data25 [0:24],并按ARINC429协议将并行数据data25 [0:24]分为LABEL、DATA和P三个部分,并在LABEL状态、DATA状态和P状态中依次通过移位将并行数据data25 [0:24]的上述三个部分串行发出,直至等待状态;
[0064]等待状态:发送完4比特位静默位后,回到空闲状态。
[0065]32位字长发送状态机4-26和25位字长发送状态机4_27的状态转换图分别如图4和图5所示。32位字长发送状态机4-26在使能信号en32控制下开始工作,其在准备状态时从格式变换器读取,并按ARINC429协议将数据分为LABEL、SD1、DATA、SSM、P五个部分,在接下来的五个状态中依次,通过移位将五个部分的数据依次串行发出,在等待状态发送完4比特位静默位后,回到空闲状态。25位字长发送状态机工作的过程与其相似,只不过其没有SD1、SSM状态。
[0066]【具体实施方式】六:下面结合图1和图6说明本实施方式,本实施方式对实施方式一、二、三、四或五作进一步说明,本实施方式所述解码逻辑模块4-1接收RA、RB两路串行解码数据信号,并对两路串行解码数据信号实现ARINC429总线解码逻辑的具体过程为:
[0067]解码逻辑模块4-1内部模块包括解码状态控制器4-11、解码FIFO寄存器4_12、FIFO写控制器4-13、解码格式变换器4-14、接收控制器4_15、采样状态机4_16和时钟使能器 4-17,
[0068]时钟使能器4-17通过时钟信号elk设置工作时钟,通过波特率设置信号speedreal [0:1]设置波特率,并且根据时钟信号elk和波特率设置信号speedreal [O: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 ;
[0069]接收控制器4-15根据接收的字长状态信号1ngreal及与采样状态机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 ;
[0070]解码格式变换器4-14根据字长状态信号1ngreal对接收的并行数据信号rec_data [0:31]进行转换,获得并行数据cha_data [0:31],数据转换完成后,给FIFO写控制器4-13发送转换完成标志信号cha_over,并将并行数据cha_data[0:31]发送给FIFO写控制器 4-13 ;
[0071]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 ;
[0072]解码FIFO寄存器4-12对并行数据data[0:31]进行缓存处理后获得并行数据q[0:31],输出给通用控制器1,当解码FIFO寄存器4_12读空时发送读空标志信号rdempty给通用控制器I,通用控制器I发送读请求信号rdreq给解码FIFO寄存器4_12 ;
[0073]解码状态控制器4-11根据通用控制器I输出的字长设置信号1ngset和波特率设置信号speedset[0:l]对待解码数据的字长和接收速率进行设置,输出波特率设置信号speedreal[0:1]。
[0074]本实施方式中,解码逻辑模块4-1的输入信号RA和RB为ARINC429标准电平经过电平转换芯片如HI8444转换的数字串行信号,q[0:31]为经过FPGA解码后输出的32位并行数据。解码逻辑模块4-1主要由接收控制器4-15控制工作,RA、RB经采样后,通过串行移位变为32位,当为25位时,加O至32位,经格式变换后写入FIF0,通过解码状态控制器4-11改变状态。
[0075]本实施方式中,解码状态控制器4-11通过longset、speedset设置接收通道的字长、波特率,为保证接收控制器4-15及采样状态机4-16正常工作,解码状态控制器4-11只有在接收控制器4-15处于非busy的时候,才会改变解码逻辑模块4-1的实际字长、波特率。
[0076]解码逻辑模块4-1中的解码状态控制器4-11根据speedreal,定时发出使能信号给采样状态机4-16、接收控制器4-15,通过改变使能信号的周期,就可以使采样状态机在100kbit/s、50kbit/s和12.5kbit/s波特率时以不同的速率采样。时钟使能器使整个解码逻辑模块4-1是以同步时钟工作的,提高了接收单元的稳定性与可靠性。
[0077]【具体实施方式】七:下面结合图7说明本实施方式,本实施方式对实施方式六作进一步说明,本实施方式所述采样状态机4-16在使能信号clk_en控制下开始工作,包括空闲状态、接收位为O初采样状态、接收位为I初采样状态、接收位为O错误重采样状态、接收数据重采样状态、接收位为I错误重采样状态、接收位确认为O状态、接收位确认为I状态和接收成功状态,其初始工作状态为空闲状态;
[0078]采样状态机4-16接收的数据为RARB,采样状态机4_16根据ARINC429总线协议生成的接收位为O或1,将采样状态机4-16接收的数据RARB和根据ARINC429总线协议生成的接收位作为上述各状态之间的转换条件信号,表示为RARB/接收位;并且各状态之间的转换依据如下条件作为数据接收的正确状态:
[0079]RA=0,RB=I,接收位为 O ;
[0080]RA= I,RB=O,接收位为 I ;
[0081]其它为错误状态;
[0082]由此上述各状态之间的转换过程为:
[0083]空闲状态:当检测到转换条件信号01/0,转入接收位为O初采样状态;当检测到转换条件信号10/1,转入接收位为I初采样状态;
[0084]接收位为O初采样状态:当检测到转换条件信号00/0或11/0,转入接收位为O错误重采样状态;当检测到转换条件信号01/0,转入接收位确认为O状态;当检测到转换条件信号10/0,转入接收数据重采样状态;
[0085]接收位为I初采样状态:当检测到转换条件信号01/0,转入接收数据重采样状态;当检测到转换条件信号10/1,转入接收位确认为I状态;当检测到转换条件信号00/0或11/0,转入接收位为I错误重采样状态;
[0086]接收位为O错误重采样状态:当检测到转换条件信号00/0、11/0或10/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为O状态;
[0087]接收数据重采样状态:当检测到转换条件信号00/0或11/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为O状态;当检测到转换条件信号10/1,转入接收位确认为I状态;
[0088]接收位为I错误重采样状态:当检测到转换条件信号00/0、11/0或01/0,转入空闲状态;当检测到转换条件信号10/1,转入接收位确认为I状态;
[0089]接收位确认为O状态:该状态完成后,自动转入接收成功状态;
[0090]接收位确认为I状态:该状态完成后,自动转入接收成功状态;
[0091]接收成功状态:该状态完成后,自动转入空闲状态。
[0092]本实施方式中,由于ARINC429协议规定发送的每一位数据前半位为有效部分,后半位必须为静默状态以区分发送的相邻两位数据,因此,设计采样状态机是以接收波特率的20倍速率采样,在处于前半位数据时期的第4、5、6次采样处取样,取两次相同结果为最终结果。由于ARINC429协议是根据RA、RB两路串行信号确定一比特位数据的,为保证采样结果正确,滤除尖峰脉冲干扰,设计如图7所示的采样状态机。
[0093]测试实验:测试时,首先进行收发通路测试,在逻辑中将ARINC429发送的TA、TB和接收的RA、RB用线短接。用DM642程序端向通道一连续发送数据0xaa55,用Quartus II里的SignalTap调试软件观察发送和接收信号,接收正确。
[0094]本发明方法根据ARINC429总线协议在FPGA内部实现了 ARINC429的编解码逻辑。经过测试表明,该设计方案正确可行,降低了多发多收时的成本,在提供稳定可靠的数据传输特性的基础上提高了设计的通用性和灵活性,在实际应用中,运行稳定,通信快速可靠,具有很高的工程应用价值。
【权利要求】
1.一种基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,它基于通用控制器(I)、编码电平转换单元(2)、解码电平转换单元(3)和FPGA芯片(4)实现, 该逻辑方法通过通用控制器(I)与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两路串行解码数据信号。
2.根据权利要求1所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,编码逻辑模块(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); 通用控制器(I)输出字长设置信号1ngset和波特率设置信号speedset[O:1]给编码状态控制器(4-21),编码状态控制器(4-21)将接收的字长设置信号1ngset写入编码配置寄存器获得编码的字长状态信号longreal,然后根据发送控制器(4-23)的当前状态信号busy将编码的字长状态信号1ngreal和波特率设置信号speedreal [0:1]发送给发送控制器(4-23); 通用控制器(I)输出写请求信号wrreq给编码FIFO寄存器(4-22),并输出待编码的32位并行数据data [0:31]给编码FIFO寄存器(4_22),编码FIFO寄存器(4_22)输出写满缓存标志信号wrful I给通用控制器(I);编码FIFO寄存器(4-22 )接收发送控制器(4-23 )输出的读请求信号rdreq后将缓存后的并行数据q[0:31]输出给发送控制器(4_23),发送控制器(4-23)同时接收编码FIFO寄存器(4-22)发送的读空标志信号rdempty ; 发送控制器(4-23)根据字长状态信号1ngreal选择32位字长格式变换器(4_24)或25位字长格式变换器(4-25),根据波特率设置信号speedreal [0:1]改变格式变换器、发送状态机及码制调元模块的工作时钟频率,根据字长状态信号1ngreal使能对应的格式变换器,并输出32位并行数据给相应的格式变换器; 当32位字长格式变换器(4-24)接收32位并行数据时,给32位字长发送状态机(4_26)发送使能信号en32,将接收的32位并行数据按照ARINC429协议要求的32位字长数据格式进行变换,并将变换后的32位并行数据data32[0:31]输出给32位字长发送状态机(4-26 ),32位字长发送状态机(4-26 )输出工作状态信号busy I给发送控制器(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)将接收的I位串行数据bit变为两路ARINC429信号,输出TA、TB两路串行编码数据信号。
3.根据权利要求2所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,发送控制器(4-23)有四种工作状态,分别为:空闲状态、等待状态、32位字长格式变换器使能状态和25位字长格式变换器使能状态,其初始工作状态为空闲状态,各状态之间的转换过程为: 空闲状态:当检测到读空标志信号rdempty=l,发送控制器(4-23)保持空闲状态;当当前状态信号busy=0,并且字长状态信号1ngreal=L转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号1ngreal=O,转入25位字长格式变换器使能状态;当 读空标志信号rdempty=0,当前状态信号busy=l,转入等待状态; 等待状态:当检测到当前状态信号busy=0,并且字长状态信号1ngreal=I,转入32位字长格式变换器使能状态;当当前状态信号busy=0,并且字长状态信号1ngreal=O,转入25位字长格式变换器使能状态; 32位字长格式变换器使能状态:该状态完成后,自动转入空闲状态; 25位字长格式变换器使能状态:该状态完成后,自动转入空闲状态。
4.根据权利要求3所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于, 32位字长发送状态机(4-26 )在使能信号en32控制下开始工作,包括空闲状态、准备状态、LABEL状态、SDI状态、DATA状态、SSM状态、P状态和等待状态,各状态之间的转换过程为: 空闲状态:当检测到使能信号en32=0,32位字长发送状态机(4_26)保持空闲状态;当检测到使能信号en32=l,转入准备状态; 准备状态:从32位字长格式变换器(4-24)读取并行数据data32[0:31],并按ARINC429协议将并行数据data32 [0:31]分为LABEL、SD1、DATA、SSM和P五个部分,并在LABEL状态、SDI状态、DATA状态、SSM状态和P状态中依次通过移位将并行数据data32[0:31]的上述五个部分串行发出,直至等待状态; 等待状态:发送完4比特位静默位后,回到空闲状态。
5.根据权利要求4所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于,25位字长发送状态机(4-27)在使能信号en25控制下开始工作,包括空闲状态、准备状态、LABEL状态、DATA状态、P状态和等待状态,各状态之间的转换过程为: 空闲状态:当检测到使能信号en25=0,25位字长发送状态机(4_27)保持空闲状态;当检测到使能信号en25=l,转入准备状态; 准备状态:从25位字长格式变换器(4-25)读取并行数据data25[0:24],并按ARINC429协议将并行数据data25 [0:24]分为LABEL、DATA和P三个部分,并在LABEL状态、DATA状态和P状态中 依次通过移位将并行数据data25 [0:24]的上述三个部分串行发出,直至等待状态; 等待状态:发送完4比特位静默位后,回到空闲状态。
6.根据权利要求5所述的基于状态机的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)通过时钟信号elk设置工作时钟,通过波特率设置信号speedreal [0:1]设置波特率,并且根据时钟信号elk和波特率设置信号speedreal [O: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)根据接收的字长状态信号1ngreal及与采样状态机(4_16)同步接收的RA、RB两路串行解码数据信号发送采样使能信号en_rec给采样状态机(4_16),并且判断接收到的RA、RB两路串行解码数据是否符合ARINC429协议对数据的要求,若否,输出错误信号err给解码状态控 制器(4-11),并输出当前工作状态信号busy给解码状态控制器(4-11),输出接收完成标志信号recover给解码格式变换器(4-14),还将接收的串行数据bit按照ARINC429协议要求的数据排列原则转换后输出待接收并行数据信号rec_data[0:31]给解码格式变换器(4-14); 解码格式变换器(4-14)根据字长状态信号1ngreal对接收的并行数据信号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),通用控制器(I)发送读请求信号rdreq给解码FIFO寄存器(4-12); 解码状态控制器(4-11)根据通用控制器(I)输出的字长设置信号1ngset和波特率设置信号speedset[0:l]对待解码数据的字长和接收速率进行设置,输出波特率设置信号speedreal[0:1]。
7.根据权利要求6所述的基于状态机的ARINC429编解码逻辑的实现方法,其特征在于采样状态机(4-16)在使能信号clk_en控制下开始工作,包括空闲状态、接收位为O初采样状态、接收位为I初采样状态、接收位为O错误重采样状态、接收数据重采样状态、接收位为I错误重采样状态、接收位确认为O状态、接收位确认为I状态和接收成功状态,其初始工作状态为空闲状态; 采样状态机(4-16)接收的数据为RARB,采样状态机(4-16)根据ARINC429总线协议生成的接收位为O或1,将采样状态机 (4-16)接收的数据RARB和根据ARINC429总线协议生成的接收位作为上述各状态之间的转换条件信号,表示为RARB/接收位;并且各状态之间的转换依据如下条件作为数据接收的正确状态: RA=O, RB=I,接收位为O ; RA=I,RB=0,接收位为I ; 其它为错误状态; 由此上述各状态之间的转换过程为: 空闲状态:当检测到转换条件信号01/0,转入接收位为O初采样状态;当检测到转换条件信号10/1,转入接收位为I初采样状态; 接收位为O初采样状态:当检测到转换条件信号00/0或11/0,转入接收位为O错误重采样状态;当检测到转换条件信号01/0,转入接收位确认为O状态;当检测到转换条件信号10/0,转入接收数据重采样状态; 接收位为I初采样状态:当检测到转换条件信号01/0,转入接收数据重采样状态;当检测到转换条件信号10/1,转入接收位确认为I状态;当检测到转换条件信号00/0或11/0,转入接收位为I错误重采样状态; 接收位为O错误重采样状态:当检测到转换条件信号00/0、11/0或10/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为O状态; 接收数据重采样状态:当检测到转换条件信号00/0或11/0,转入空闲状态;当检测到转换条件信号01/0,转入接收位确认为O状态;当检测到转换条件信号10/1,转入接收位确认为I状态; 接收位为I错误重采样状态:当检测到转换条件信号00/0、11/0或01/0,转入空闲状态;当检测到转换条件信号10/1,转入接收位确认为I状态; 接收位确认为O状态:该状态完成后,自动转入接收成功状态; 接收位确认为I状态:该状态完成后,自动转入接收成功状态; 接收成功状态:该状态完成后,自动转入空闲状态。
【文档编号】G06F13/42GK103944898SQ201410155479
【公开日】2014年7月23日 申请日期:2014年4月17日 优先权日:2014年4月17日
【发明者】林连雷, 张玉莲 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1