本发明涉及一种用于光纤陀螺仪测试电路FPGA的实现方法。
背景技术:
光纤陀螺仪用于测量惯性空间的角速率,角速率数据的输出形式之一为串口形式,不同情况下光纤陀螺仪对外发送的波特率、校验位不同,造成光纤陀螺仪的测试工作难度大;同时由于光纤陀螺仪为温度敏感器件,测试时需要结合温度数据对角速率数据进行分析,因此急需一种灵活、通用的测试方法,接收不同时序输出的光纤陀螺仪,同时能够采集温度数据。现有技术中还没有这种方法。
技术实现要素:
本发明的目的是提供一种用于光纤陀螺仪测试电路的FPGA实现方法,通过模块化设计,通过FPGA设计代码中的参数设置,能够测试不同输出时序的光纤陀螺仪,实现方法简单快捷,通用性强。
本发明通过以下技术方案予以实现:一种用于光纤陀螺仪测试电路的FPGA实现方法,所述方法包括以下步骤:
步骤一:所述串口接收单元接收光纤陀螺仪角速率数据,将所述角速率数据发送给所述数据平滑单元;
步骤二:所述数据平滑单元接收所述角速率数据,并将角速率数据平滑处理后得到平均角速率数据并将所述平均角速率数据发送给所述数据缓存单元,同时输出平滑完成标志信号,并将所述平滑完成标志信号输出给所述温度采集单元;
步骤三:所述温度采集单元接收所述平滑完成标志信号后采集温度,并将温度发送给所述数据缓存单元;
步骤四:所述数据缓存单元接收所述平均角速率数据和所述温度后并存储,并将所述平均角速率数据和所述温度输出给所述数据发送单元;
步骤五:所述数据发送单元将所述平均角速率数据和所述温度发送给PC机。
上述用于光纤陀螺仪测试电路的FPGA实现方法中,在步骤一中,串口接收单元接收光纤陀螺仪角速率数据包括:串口接收单元根据接收波特率时钟分频参数对FPGA的输入时钟进行分频,得到串口接收波特率时钟,在接收波特率时钟的使能下依次接收串口数据的起始位、一个字节数据位、校验位和停止位,对校验位进行判断,校验位正确时一个字节数据作为正确的字节数据被接收;每个正确字节数据到来时计数器加1;计数器为0时接收帧头,计数器为1-3时接收3字节角速率数据,为4时接收帧尾;当接收到的帧头和帧尾正确时,串口接收模块将接收到的角速率数据发送给数据平滑模块。
上述用于光纤陀螺仪测试电路的FPGA实现方法中,在步骤二中,角速率数据平滑处理包括:接收到的2N个角速率数据进行累加得到角速率累加值,角速率累加值除以2N得到平均角速率数据。
上述用于光纤陀螺仪测试电路的FPGA实现方法中,在步骤三中,所述温度采集单元输出温度采集时钟,在接收平滑完成标志信号后在每个采集时钟下采集温度。
上述用于光纤陀螺仪测试电路的FPGA实现方法中,在步骤四中,所述数据缓存单元将接收到的平均角速率数据和温度数据存储到数据宽度为n,存储深度为2m的缓存FIFO中,当缓存FIFO中为非空时将缓存的数据输出给所述数据发送单元。
上述用于光纤陀螺仪测试电路的FPGA实现方法中,在步骤五中,所述数据发送单元根据发送波特率时钟分频参数对FPGA的输入时钟进行分频得到串口发送波特率时钟,在发送波特率时钟的使能下将数据缓存模块的平均角速率数据和温度数据通过串口发送。
本发明与现有技术相比具有如下优点:
1)本发明的串口接收单元的接收波特率时钟和校验位可在FPGA代码中设置,因此可测试不同时序输出的光纤陀螺仪,实现方法灵活快捷,通用性强;
2)本发明的数据平滑单元使得数据平滑,保证数据稳定可靠;
3)本发明的数据发送单元数据发送的波特率时钟、校验位可在FPGA代码中设置,可满足不同的数据发送需求。
附图说明
图1为光纤陀螺测试电路FPGA实现方法的功能框图;
图2为光纤陀螺测试电路FPGA功能模块配置参数说明图;
图3为光纤陀螺测试电路FPGA与AD芯片的接口图;
图4为光纤陀螺仪硬件原理框图。
具体实施方式
下面结合附图对本发明作进一步详细说明:
光纤陀螺仪用于测量惯性空间的角速率,其硬件原理框图如图4所示,其角速率数据的输出形式之一为串口形式。串口端周期性发送一帧数据,数据帧格式为一个字节帧头、三字节角速率数据字和一个字节帧尾。数据发送的波特率通常为115200bps或230400bps,每个字节数据发送时包括一位起始位、一个字节数据位、一位校验位和一位停止位。
本实施例提供一种光纤陀螺仪测试电路的FPGA实现方法,如图2所示,通过模块化设计,在FPGA代码中设置各功能模块的参数,能够测试不同输出时序的光纤陀螺仪。
以下结合图1中对一种光纤陀螺仪测试电路的FPGA实现方法进行说明:
步骤一:串口接收单元1接收光纤陀螺仪角速率数据,将角速率数据发送给数据平滑单元2。
具体的,串口接收单元1根据接收波特率时钟分频参数对FPGA的输入时钟进行分频,得到串口接收波特率时钟,在接收波特率时钟的使能下依次接收串口数据的起始位、一个字节数据位、校验位和停止位,对校验位进行判断,校验位正确时一个字节数据作为正确的字节数据被接收;
每个正确字节数据到来时计数器值加1;计数器为0时接收帧头,计数器为1-3时接收3字节角速率数据,为4时接收帧尾;当接收到的帧头和帧尾正确时,串口接收模块将接收到的角速率数据发送给数据平滑模块。
步骤二:数据平滑单元2接收角速率数据,并将角速率数据平滑处理后得到平均角速率数据并将平均角速率数据发送给数据缓存单元4,同时输出平滑完成标志信号,并将平滑完成标志信号输出给温度采集单元3;
具体的,角速率数据平滑处理包括:接收到的2N个角速率数据进行累加得到角速率累加值,角速率累加值除以2N得到平均角速率数据。
步骤三:温度采集单元3接收平滑完成标志信号后采集温度,并将温度发送给数据缓存单元4。
具体的,温度采集通过采集芯片AD7686的数据实现,AD7683与FPGA的接口如图3所示。温度采集单元3输出片选信号CS和采集时钟DCLOCK到AD7683,在接收平滑完成标志信号后在每个采集时钟DCLOCK采集AD7683的Dout输出,AD7683的数据采集时序可参见该芯片的用户手册。
步骤四:数据缓存单元4接收平均角速率数据和温度后并存储,并将平均角速率数据和温度输出给数据发送单元5。
具体的,数据缓存单元4将接收到的平均角速率数据和温度数据存储到数据宽度为n,存储深度为2m的缓存FIFO中,当缓存FIFO中为非空时将缓存的数据输出给数据发送单元5。
步骤五:数据发送单元5将平均角速率数据和温度发送给PC机。
具体的,数据发送单元5根据发送波特率时钟分频参数对FPGA的输入时钟进行分频得到串口发送波特率时钟,在发送波特率时钟的使能下将数据缓存模块的平均角速率数据和温度数据通过串口发送。
本实施例通过应用光纤陀螺测试电路FPGA采集光纤陀螺仪的角速率数据和温度数据,串口接收波特率时钟、校验位,角速率数据平滑次数;FIFO的宽度和存储深度;发送数据的波特率时钟、校验位可通过FPGA编程修改,因此可测试不同时序输出的光纤陀螺仪,同时能够采集温度数据,实现方法灵活快捷,通用性强。
下面以一个具体实施例对本发明的实施方案做进一步说明。
假设光纤陀螺仪输出角速率数据的帧格式为x“53”(帧头)、角速率数据的高字节数据、中字节数据、低字节数据和x“45”(帧尾),输出波特率为115200bps,每个字节的校验位为偶校验,光纤陀螺测试电路FPGA的输入时钟为11.0592MHz,平滑次数要求为128,缓存FIFO要求宽度为8Bits及深度为1024,发送数据的波特率要求为230400bps,发送的每个字节校验位为奇校验。
通过计算,将11.0592×106除以115200得到96,接收波特率时钟分频参数设置为96,11.0592×106除以230400得到48;因此在FPGA设计代码中设置各参数如下:
串口接收单元:接收波特率时钟分频参数为96,接收校验参数为0,一个字节帧头数据为x“53”,一个字节帧尾为x“45”,对应光纤陀螺仪的输出数据帧格式为x“53”(帧头)、角速率数据的高字节数据、中字节数据、低字节数据和x“45”(帧尾);数据输出波特率115200bps,每个字节的校验位为偶校验,数据平滑单元:数据平滑次数2N设置为27,即N=7,对应平滑次数为128;
数据缓存单元:数据宽度设置为n=8,存储深度为210=1024,即n=8,m=10,对应缓存FIFO的宽度为8Bits,深度为1024;
数据发送单元:发送波特率时钟分频参数设置为48,发送校验参数设置为1,数据发送波特率为230400bps,发送的每个字节校验位为奇校验。
上述参数在光纤陀螺仪测试电路的FPGA代码设置完成后,可用于对该光纤陀螺仪的测试。
本发明的串口接收单元的接收波特率时钟和校验位可在FPGA代码中设置,因此可测试不同时序输出的光纤陀螺仪,实现方法灵活快捷,通用性强;本发明的数据平滑单元使得数据平滑,保证数据稳定可靠;本发明的数据发送单元数据发送的波特率时钟、校验位可在FPGA代码中设置,可满足不同的数据发送需求。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。