NMEA解码和校正是全球定位系统(GPS)中的关键问题,涉及到GPS授时与导航定位的准确性和实时性。GPS系统广泛应用于通信、航空、航海、测绘等诸多领域,对精度和稳定性要求极高。传统的NMEA解码和校正多依赖于PC机或单片机实现,但存在复杂度高、精度难以提高等问题。
本文介绍的是一种全新的基于现场可编程门阵列(FPGA)的NMEA解码和校正算法设计。FPGA是一种可以通过编程实现自定义硬件功能的集成电路,具有高集成度、可重配置性和并行处理能力强等特点。相较于传统的PC机或单片机解决方案,使用FPGA实现的GPS授时系统具有成本低、精度高、稳定性好的优势。
NMEA 0183协议是美国国家海洋电子协会(NMEA)指定的标准GPS数据通信协议,广泛应用于GPS接收器。NMEA 0183协议定义了多种语句格式,用于传输卫星定位数据、当前卫星信息、可视卫星信息、推荐定位信息、地面速度信息和地理定位信息等。每条语句都以“$”作为帧起始标志,后面跟着语句名和具体数据,最后以回车换行符结束。校验和的计算方法是将帧内所有字符进行异或运算,将结果转换为16进制的ASCII字符,作为校验数据。
在算法设计中,首先要根据GPS输入秒脉冲的上升沿来循环判断码的帧起始位、帧状态和帧结束位标志,直至完成NMEA码的正确解码。解码算法的设计基于NMEA 0183协议定义的语句格式。然后,利用线性预测理论对系统时间进行校正。线性预测是一种信号处理技术,通过历史数据预测未来值。在本文提出的校正算法中,利用最小预测误差原则,对前一时间段的系统时间进行加权计算。当系统出现丢码、误码或无法正常工作时,以预测计算值作为当前系统时间的预测值进行校正和时间维持。
为了实现这些算法,需要使用硬件描述语言(HDL)对解码和校正算法进行编程,并将这些逻辑编程通过FPGA芯片生成相应的硬件电路。硬件描述语言如VHDL或Verilog,允许设计者在硬件层面描述功能并进行仿真验证。通过在FPGA内部生成硬件电路,该算法能够获得高效率并实时执行。
最终的仿真与硬件测试结果证明,该基于FPGA的NMEA解码和校正算法是精确有效的,并具有较高的经济实用性和稳定性。这为实现高效、精确的GPS授时系统提供了一种新的技术方案。
关键词FPGA、NMEA码、解码、线性预测、校正
文章还提到,现有的时间校正方法,如直接使用GPS时间维持、本地晶振计数和GPS时间结合维持、NMEA 0183码解析信息维持等方法,大多基于PC机实现,导致成本高且维持时间精度不高。而尚未实现的理论方法,如概率论方法和线性回归方法,虽然在理论上可行,但尚未在实践中得到应用。本文提出的FPGA实现方案有效地解决了这些传统方法存在的问题,为GPS授时系统的设计和开发提供了一种新的技术路径。