一种结合PPS信号读取GPS接收输出有效数据的方法与流程

文档序号:16312994发布日期:2018-12-19 05:21阅读:4474来源:国知局
一种结合PPS信号读取GPS接收输出有效数据的方法与流程

本发明涉及一种结合pps信号读取gps接收输出有效数据的方法,属于信号的接受与处理领域。

背景技术

目前,民用gps接收模块的应用相对成熟,厂商封装好的gps接收模块能经过简单的电路搭建实现gps数据以nmea-0183协议格式输出。gps接收模块产生的串行数据格式,可以通过mcu的uart采用中断方式或查询方式直接读取。

现有技术中一种获取高精度时间的方法,当时间服务器的cpu接收到卫星接收卡发送的pps上升沿时,进入时间处理程序,计算实时时钟和卫星接收卡的时间差,在下一个pps到来时,cpu在时间处理程序中将此时实时时钟芯片的时间与上一步所得的时间差之和设置到实时时钟芯片中,完成一次时间矫正,消除延时产生的误差,把gps接收模块提供的时间和时刻信息转化为时间服务器本身的时间,使时间服务器能够获得高精度的时间。

传统上,mcu通过uart可以采用中断方式或查询方式读取gps数据,这两种方式均需要mcu接收gps接收模块输出的全部数据,再判断相应的数据帧中定位状态是否为a(有效),从而决定是否继续进行数据处理。这两种工作方式均存在以下缺点:数据接收过程需要mcu相应程序持续干预,若gps接收模块未定位,输出的数据无效,那么mcu读取数据操作也是无效的,这占用mcu的工作时间,影响

mcu其它程序的运行;gps接收模块输出的nmea-0183协议数据帧包含gga、gll、gsa、gsv、rmc、vtg六种格式的数据,最大数据量约为500字节,接收过程中,gps数据每刷新一次,mcu需将以上数据全部进行存储,因此gps接收模块未定位时输出的无效数据将持续占用mcu的存储空间。



技术实现要素:

根据上述提出的技术问题,而提供一种结合pps信号读取gps接收机有效数据的方法。本发明主要利用通过用于检测pps信号电平的微控制单元mcu的总线扩展器gpio口线判断所述输入的pps信号,从而起到避免了mcu在gps数据接收上持续进入uart接收中断接收全部数据进行状态检测从而浪费工作时间且其它无效数据和非功能所需数据不再占用存储空间。

本发明包含一种结合pps信号读取gps接收机有效数据的方法,其特征在于,包括以下步骤:s1:读取秒脉冲pps信号;s2:通过用于检测pps信号电平的微控制单元mcu的总线扩展器gpio口线判断所述输入的pps信号;当pps信号为有效状态时,执行步骤s3;当pps信号为无效状态时,则执行步骤s1;s3:开启异步收发传输器uart接收中断,uart的数据接收rxd引脚读取gps接收机输出的gps数据;s4:判断所述pps信号的电平;若所述电平为上升沿则接收完毕,执行步骤s5;若所述电平为下降沿则执行步骤s3;s5:关闭uart接收中断,通过所述mcu处理所述gps接收输出的数据。

进一步的,判断所述输入的pps信号,若为低电平,则进入有限状态机fsm的初始状态m0;若为电平升高,则状态由m0进入m1;

更进一步的,当pps信号高电平保持时间小于等于1s,且电平开始下降的时刻记为t2,则状态由m1进入m2,则判定gps数据的定位状态为初步有效状态a,当pps信号高电平保持时间大于1s,则返回到初始状态m0;

更进一步的,当在状态m2时,若下一个脉冲时刻t3与前一个脉冲时刻t1的差值为1s,则进入状态m3,若下一个脉冲时刻t3与前一个脉冲时刻t1的差值大于或小于1s,则返回到初始状态m0;

更进一步的,当在状态m3下,若所述pps信号电平降低时刻t4与前一个电平降低时刻t2的差值为1s,则进入状态m4,所述pps信号电平降低时刻t4与前一个电平降低时刻t2的差值大于或小于1s,则返回到初始状态m0。

进一步的,所述有限状态机fsm包括m0-m4状态;

所述m0为初始状态,pps信号为低电平,gps信号为无效状态v;所述m1为pps信号第1个上升沿,pps信号为高电平,gps信号为无效状态v;所述m2为pps信号第1个脉冲结束且为低电平,gps信号为初步有效状态a;所述m3为pps信号第2个上升沿,pps信号为高电平,gps信号为无效状态v;所述m4为pps信号为第2个脉冲结束后的低电平,gps信号为确认有效状态a。

更进一步的,所述fsm状态触发条件为:

当pps信号电平由低变高,此时刻记为t1;

当pps信号高电平保持时间t1<1s后电平降低,降低时刻记为t2;

当pps信号高电平保持时间t1≥1s后电平降低,降低时刻记为t2;

当pps信号电平升高,升高时刻记为t3,与前一个电平升高时间差t3-t1=1s;

当pps信号电平升高,升高时刻记为t3,与前一个电平升高时间差t3-t1>1s;

当pps信号电平降低,降低时刻记为t4,与前一个电平降低时间差t4-t2=1s;

当pps信号电平降低,降低时刻记为t4,与前一个电平降低时间差t4-t2>1s。

进一步的,所述mcu采用cortex-m3架构的stm32f103vct6芯片,所述芯片通用的gpio口线作为输入引脚,接收所述gps接收模块的pps信号,所述芯片的uart实现对nmea-0183协议数据的接收和缓存。

本发明的优点在于:本发明的uart通信方式中设uart工作波特率与gps接收模块工作波特率相同,均为9600bps,nmea-0183协议数据计算,uart每传输1帧协议数据需要时间约为520ms。本发明中,mcu与gps接收模块的通信只有在gpio口线检测到pps信号为状态s4(即确认有效状态a)后才开始进行,这种方式避免了mcu在gps数据接收上持续进入uart接收中断接收全部数据进行状态检测从而浪费工作时间。

进一步的本发明对于gps数据而言,返回的nmea-0183协议数据帧最大数据量约为500字节,在判断gps数据的定位状态为确认有效状态a后,mcu再开启uart接收中断接收并存储数据进行后续处理,这种确保存储的数据一定有效的处理方法避免了mcu存储空间被无效数据大量占用,mcu将读取到的有效数据直接进行筛选处理,得到所需数据,其它无效数据和非功能所需数据不再占用存储空间。

附图说明

为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的整体流程示意图。

图2为本发明的实施例的模块结构图。

具体实施方式

为使本发明的实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:

如图1-2所示为本发明一种结合pps信号读取gps接收机有效数据的方法,包括以下步骤:

在本实施方式中,步骤s1:读取秒脉冲pps信号;s2:通过用于检测pps信号电平的微控制单元mcu的总线扩展器gpio口线判断输入的pps信号;当pps信号为有效状态时,执行步骤s3;当pps信号为无效状态时,则执行步骤s1;s3:开启异步收发传输器uart接收中断,uart的数据接收rxd引脚读取gps接收机输出的gps数据;s4:判断pps信号的电平;若电平为上升沿则接收完毕,执行步骤s5;若电平为下降沿则执行步骤s3;s5:关闭uart接收中断,通过mcu处理gps接收输出的数据。可以理解为在其它实施方式中,微控制单元mcu还可以采用其它的控制单元,只要能够满足能够处理pps信号并进行判断即可。

作为优选的实施方式,判断输入的pps信号,若为低电平,则进入有限状态机fsm的初始状态m0;若为电平升高,则状态由m0进入m1。

作为优选的实施方式,当pps信号高电平保持时间小于等于1s,且电平开始下降的时刻记为t2,则状态由m1进入m2,则判定gps数据的定位状态为初步有效状态a,当pps信号高电平保持时间大于1s,则返回到初始状态m0。

作为优选的实施方式,当在状态m2时,若下一个脉冲时刻t3与前一个脉冲时刻t1的差值为1s,则进入状态m3,若下一个脉冲时刻t3与前一个脉冲时刻t1的差值大于或小于1s,则返回到初始状态m0。

作为优选的实施方式,当在状态m3下,若pps信号电平降低时刻t4与前一个电平降低时刻t2的差值为1s,则进入状态m4,pps信号电平降低时刻t4与前一个电平降低时刻t2的差值大于或小于1s,则返回到初始状态m0。

作为优选的实施方式,有限状态机fsm包括m0-m4状态;m0为初始状态,pps信号为低电平,gps信号为无效状态v;m1为pps信号第1个上升沿,pps信号为高电平,gps信号为无效状态v;m2为pps信号第1个脉冲结束且为低电平,gps信号为初步有效状态a;m3为pps信号第2个上升沿,pps信号为高电平,gps信号为无效状态v;m4为pps信号为第2个脉冲结束后的低电平,gps信号为确认有效状态a。

作为优选的实施方式,fsm状态触发条件为:当pps信号电平由低变高,此时刻记为t1,则fsm触发;当pps信号高电平保持时间t1<1s后电平降低,降低时刻记为t2;当pps信号高电平保持时间t1≥1s后电平降低,降低时刻记为t2;当pps信号电平升高,升高时刻记为t3,与前一个电平升高时间差t3-t1=1s;当pps信号电平升高,升高时刻记为t3,与前一个电平升高时间差t3-t1>1s;当pps信号电平降低,降低时刻记为t4,与前一个电平降低时间差t4-t2=1s;当pps信号电平降低,降低时刻记为t4,与前一个电平降低时间差t4-t2>1s。

作为优选的实施方式,mcu采用cortex-m3架构的stm32f103vct6芯片,芯片通用的gpio口线作为输入引脚,接收gps接收模块的pps信号,芯片的uart实现对nmea-0183协议数据的接收和缓存。可以理解为在其它实施方式中,mcu还可以采用其它型号,架构,只要能够满足接受gps信号即可。

如图2所示为本申请的一种实施例,包括提供的电路模块结构图,gps接收模块电路、mcu芯片、电源模块和时钟电路。

在本实施方式中,gps接收模块电路包括集成gps接收模块、有源天线电路;gps接收模块能够独立工作,并通过串行数据i/o口输出标准nmea-0183协议数据,波特率为9600bps。可以理解为,在其它实施方式中,gps接收模块还可以采用其它型号。

在本实施方式中,mcu芯片采用cortex-m3架构的stm32f103vct6芯片,该芯片通用的gpio口线与gps接收模块的pps信号连接,用于检测pps信号电平,通过该芯片的uart实现对nmea-0183协议数据的接收和缓存。在本实施方式中,电源模块包括3片spx5205电压转换芯片及其工作配置电路,将5.0v电压转换为3.3v电压为mcu和gps接收模块提供工作电源。在本实施方式中,mcu的时钟电路为8mhz晶振电路,为stm32芯片提供外部输入时钟源。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1