一种PPK-RTK的数据记录及定位信息获取的装置
技术领域
本发明涉及航拍高精度地记录数据和准确定位领域,具体涉及一种PPK-RTK的数据记录及定位信息获取的装置。
背景技术
航拍在城市规划、军事任务、沿海地区监视等方面得到了广泛运用。然而传统的航拍方法无法达到高精度的拍摄要求,定位也不够准确。为了航拍的需要,能精确的记录拍摄时间和拍摄地点等信息的需求,本发明可达到在事后记录每一个拍摄时刻和拍摄地点,为图像处理、信息融合等领域提供数据的支撑平台。
发明内容
本发明的目的在于提供了一种PPK-RTK的数据记录及定位信息获取的装置。其能精确的记录拍摄时间和拍摄地点等信息的需求,本发明可达到在事后记录每一个拍摄时刻和拍摄地点,为图像处理、信息融合等领域提供数据的支撑平台。
本发明的技术解决方案是:
一种PPK-RTK的数据记录及定位信息获取的装置,其特殊之处在于:包括一个处理器,通过UART接口和GPIO接口与处理器连接的导航授时模块,与处理器连接的局域网络总线CANBUS,电脑,与处理器或电脑连接的U盘,通过UART接口与处理器连接的地面站以及以太网PHY芯片。
上述授时模块采用FAT32文件系统,将GPS模块输出的带有卫星相位信息的原始数据记录到连接在处理器的U盘中,并在U盘中生成名为“raw.bin”文件;
所述在每次存放带有卫星相位信息的原始数据时需先判断串口接收的缓冲区是否已满;在具体实现过程是使用乒乓缓存:定义ping_pong变量;当该变量置0时,把处理器串口4的接收缓存区指向存放带有卫星相位信息的原始数据的0号缓冲区,当0号缓冲区存满以后,该变量置1,同时将串口4的接收缓存区指向存放带有卫星相位信息的原始数据的1号缓冲区。
上述PPK-RTK的数据记录及定位信息获取的装置,其特征在于:本装置中还设计USB的开关,当开关为向上拨状态时,带有卫星相位信息的原始数据不断地存入U盘中;当开关为向下拨状态时,U盘与处理器断开,此时让U盘通过电脑的USB接口连接到电脑,从而与电脑进行通信,通过后处理软件软件打开“来自串口的数据.bin”的文件,进行带有卫星相位信息的原始数据的读取与分析。
上述PPK-RTK的数据记录及定位信息获取的装置,其特征在于:在本装置的软件中包括停止记录带有卫星相位信息的原始数据的指令,只要接收到该指令,则停止记录。
上述将地面站发来的字节流式存放的MAVLINK保存到接收缓冲区中;
在缓冲区中寻找成完整的一帧数据按照MAVLINK包的帧格式进行解析;如果未找到完整的一帧数据,则记录下当前的位置,并继续前进找直到找到完整的一帧为止;当帧头为0XFE时即为找到MAVLINK包;
根据MAVLINK包的消息ID来判断是否是RTCM消息,如果是RTCM消息则将MAVLINK包中的有效负载信息利用strncpy函数提取出来且保存到一个缓冲区中,即完成了对完整的MAVLINK的RTCM解析;如果是开启停止信息,则方法同RTCM消息。
上述处理器与授时模块以1PPS计时,对于1PPS秒脉冲信号,采用上升沿作为准时沿,上升时间小于50ns,脉宽应为20ms~200ms;所述处理器与授时模块进行通信,当时钟稳定后,授时模块在每个整秒的上升沿向处理器发出1PPS秒脉冲信号。
上述授时模块的第一次对时是利用带有卫星相位信息的原始数据;在保证接收到的是正确的带有卫星相位信息的原始数据的基础上,将第一次接收到的带有卫星相位信息的原始数据的第7~12位代表GPS时间信息的数据提取到缓冲区中存放,同时在U盘中建立“第一次对时.bin”文件,完成第一次对时工作,以后每次对时以第一次对时时间为基准。
上述以太网PHY芯片实现处理器与以太网通信;采用RMII接口;
所述处理器中的MAC层和PHY层满足IEEE1588V2协议;采用DP83640PHY芯片结合处理器实现高精度的实时时钟的同步;在空中采用GPS模块对时,在地面站采用PHY芯片对时。
上述PPK-RTK的数据记录及定位信息获取的装置,其特征在于:使用所述CAN总线对外发送本装置当前的状态,包括GPS经纬度高度信息,精确到微秒级别的GPS时间。
上述PPK-RTK的数据记录及定位信息获取的装置,其特征在于:还包括接口芯片MAX3015;应用MAX3015芯片实现CANRX/TX到CAN物理层转换。
本发明的优点在于:能精确的记录拍摄时间和拍摄地点等信息的需求,本发明可达到在事后记录每一个拍摄时刻和拍摄地点,为图像处理、信息融合等领域提供数据的支撑平台。
附图说明
图1为本发明数据记录板连接示意图;
图2为本发明第一次对时程序流程图;
图3为本发明IEEE1588PTP时钟同步协议原理图;
图4为本发明CAN数据通过UART发送至上位机流程图。
具体实施方式
需要说明的是本发明授时模块可采用多种型号,只要本完成本发明所描述的功能即可,处理器也是如此。以下授时模块以瑞士U-blox公司的LEA-8T模块,处理器以STM32F427单片机为例详细阐述。
本发明采用的设备:瑞士U-blox公司的LEA-8T模块进行GPS数据记录开发板的研究工作。U-blox公司的LEA-8T模块是精确授时模块,为定位要求严格的应用提供精确GPS授时服务,例如基站。该模块的优势是针对降低功耗、提高灵敏度进行了优化,提供了UART、USB和DDC接口,具有集成天线检测功能。在固定位置下运行,GPS模块可以在只有一颗卫星可见度的情况下进行授时。这意味着即使在GPS卫星信号条件不利或天空可见度不佳的情况下也能输出准确的时间信息。模块还可提供原始数据输出。
1、记录带有卫星相位信息的原始数据
采用FAT32文件系统,将GPS输出的带有卫星相位信息的原始数据记录到与处理器连接的U盘中,并在U盘中生成名为“raw.bin”文件。
在每次存放带有卫星相位信息的原始数据时需先判断串口接收的缓冲区是否已满。采用乒乓技术起缓冲作用,防止一个缓冲区存满无法存放数据,造成数据遗漏的问题。在具体实现过程中,定义ping_pong变量。当该变量置0时,把处理器串口4的接收缓存区指向存放带有卫星相位信息的原始数据的0号缓冲区,当0号缓冲区存满以后,该变量置1,同时将串口4的接收缓存区指向存放带有卫星相位信息的原始数据的1号缓冲区。
为了能方便地看到并分析存在U盘中的带有卫星相位信息的原始数据,在硬件中设计USB的开关,当开关为向上拨状态时,带有卫星相位信息的原始数据不断地存入U盘中;当开关为向下拨状态时,U盘与处理器断开,此时可以让U盘通过电脑的USB接口连接到电脑,从而与电脑进行通信,我们通过diskgenius软件打开“来自串口的数据.bin”的文件,进行带有卫星相位信息的原始数据的读取与分析。
在软件中设计停止记录带有卫星相位信息的原始数据的指令,只要接收到该指令,则停止记录。
2、串口解析MAVLINK的RTCM(GNSS差分信号格式)
将地面站发来的字节流式存放的MAVLINK包存到接收缓冲区中;
在缓冲区中寻找成完整的一帧数据按照MAVLINK包的帧格式进行解析;如果未找到完整的一帧数据,则记录下当前的位置,并继续前进找直到找到完整的一帧为止。当帧头为0XFE时即为找到MAVLINK包。
根据MAVLINK包的消息ID来判断是否是RTCM消息,如果是RTCM消息则将MAVLINK包中的有效负载信息利用strncpy函数提取出来且保存到一个缓冲区中,即完成了对完整的MAVLINK的RTCM解析。
3、1PPS计时
对于1PPS秒脉冲信号,采用上升沿作为准时沿,上升时间小于50ns,脉宽应为20ms~200ms。
采用处理器与Ublox芯片进行通信。当时钟稳定后,Ublox芯片在每个整秒的上升沿向处理器发出1PPS秒脉冲信号。可以采用16位计时器来记录秒脉冲的个数,每接收一个1PPS秒脉冲信号中断记录一次时间,同时将计时器重新赋初值,当16位计时器溢出时将定时器清零。
4、第一次对时
利用U-Center软件配置GPS的串口1为只接收带有卫星相位信息的原始数据格式,开机后,就能利用处理器的串口4接收到带有卫星相位信息的原始数据。在保证接收到的是正确的带有卫星相位信息的原始数据的基础上,利用strncpy函数将第一次接收到的带有卫星相位信息的原始数据的第7~12位代表GPS时间信息的数据提取到缓冲区中存放,同时在U盘中建立“第一次对时.bin”文件,完成第一次对时工作,以后每次对时以第一次对时时间为基准。
5、PHY实现与以太网通信
提供支持IEEE-802.3-2002的介质访问控制器用于以态局域网通信,通过一个工业标准的介质无关接口(MII)或者是精简的介质无关接口(RMII)。要求一个外部的物理接口设备(PHY)来连接物理局域网总线。也就是说要实现以太网通信需要借助外部PHY芯片。项目中我们采用PHYDM9161芯片、RMII接口实现与以太网通信。
以太网没有提供网络时间同步的能力,为了达到时钟同步的功能,我们采用Ublox的GPS模块获取精确时间,使得接入的设备间实现时钟同步,但是这种系统可靠性低,容易受到干扰。而IEEE1588V2协议标准正好解决了该问题,为此我们采用IEEE1588V2协议。IEEE1588的基本功能是使分布式网络内的最精确时钟与其他时钟保持同步,它的精确时间协议PTP能够实现高精度的以太网时间同步。我们采用DP83640时间同步芯片实现高精度的实时时钟的同步。在空中采用GPS模块对时,在地面站采用PHY芯片对时。IEEE1588PTP时钟同步协议原理是主从设备通过收发PTP报文,用于计算主从设备发送PTP所需要的链路延时和主从时钟的时间差,从而根据计算出的时间差调整从时钟的时间,使得从时钟能实现时钟同步。IEEE1588PTP时钟同步协议原理图中的T1-T4为从时钟获得的四个时间戳。
6、UART与CAN
在航空领域,为了增加冗余度,本项目我们既使用UART总线,又使用CAN总线。程序包括:UART初始化、CAN初始化、UART串口接收中断服务程序、CAN发送中断服务程序等。我们采用UART串口接收地面发送来的MAVLINK包并解析。由于CAN总线具有抗干扰能力强、传输距离远、模块之间的数据交换可直接互相通信、数据传输实时性好等优势,我们可发现与传统多根信号线相比,CAN总线在四轴飞行器的便利。为此我们采用CAN总线来监控四轴飞行器的姿态、绝对位置定位信息、其他模块的信息等。每一个CAN总线报文都是明文传送,所以每个模块都可以不经过主机,而直接通过报文ID接收其他模块发出的报文。例如当电源板发送低电压警报到总线时,电调板可通过CAN总线中的报文ID,确定出此次报文是属于电源板发出的紧急信息,并做相应的处理。相反地,电源板可以监听CAN总线中电调板发送的电压电流反馈信息,如果发现超负荷运转等危机情况,利用电源板内置的蜂鸣器发出声音报警。
由于的UART没有缓存寄存器,而其CAN控制器在接收端有2个3级深度的FIFO。UART是以字节为单位发送数据,CAN是以可配置的多字节(小于9个字节)组成的帧为发送单位。所以有必要把接收到的CAN监控的数据打包通过串口发送给上位机进行数据的读取与分析。
基于模块中设计的需要,采用CSM100芯片将UART/CAN进行转换。应用CSM100模块可方便地完成具有UART结构的嵌入式微控制器实现CAN总线接口。