GPS基础知识
GPS基础知识
冷启动
冷启动是指模块内部没有任何参的星历或历书的情况下,模块的首次启动,一般而言,由于模块内部没有星历参数,这个时候接收卫星信号开始,就要在天线接收的范围内不停的寻找并下载星历,它的首次运作时功耗大,内部运算复杂,需要不停的下载当前天空的有效星历,需要一定的时间,冷启动时的灵敏度较弱,主要是模块对自己所处的大概位置没有星历的情况下无法估算,就比如我们到了一个陌生的沙漠荒野,无法得知自己当前所处的方向一样,没有可参照物,为了搞清楚自己所在的位置,你需要找到几个参照物来确定自己所处的位置,你需要做的事情就是仔细的把不熟悉的环境里面每个角落全部找一遍,找出能够得知现有位置的参照物.
其实GPS模块的工作原理同我们人一样,冷启动的时候要做很多无用功,就是需要把天空里的每一个角落里面的信号象过筛子一样的全部搜索一遍,这个过程中的耗电非常大,在找到一颗卫星之后,要开始下载星历,如果在下载的途中因为信号程度的变化,如比开车途中,车的位置不停的改变,它接受的信号也是无法获得完整的信息,势必造成冷启动的过程延长,在信号弱的地方下载星历的时候也会延长.
其实这个下载星历的速度比喻跟我们上网没有两样,例如我们刚开机联线,从网上下载一个文件,如果遇上网速好,则很快就可以下载完成,若信号不稳定,有时候会遇上断线,我们的网线下载过程必须重新建立连线,重新开始,而用CDMA/GPRS的用户更有体会,在火车上上网的时候时断时续,当然没有在基站附近效果好.
当GPS模块连续的寻找到三颗或以上的卫星的时候,它的日子就开始好过了,就比如我们人在野外临时凭感觉绘制了一张草草的地图,你至少可以判定自己的大概位置,这个时候,GPS查找新卫星所设定的范围就会缩小,2D定位,也就是平面定位OK了,接下来就是花的时间去找更多的卫星,到了四颗卫星的时候,OK,3D定位,也就是高度都出来了.
当模块再工作一阵子,当前的信息都下载得差不多了的时候,模块才正式的进入信号稳定接受的状态,也就是说轻微的移动或是信号的变化对它的影响已经不是太强烈了,主要是内部存储了相应的当前星历,即使短暂丢失,就象是我们熟悉了一个新的环境,凭记忆也能够很快的找回到当前的坐标,这个时候,是不是我们花的时间就会更少呢?
卫星或是星历就是这样不停的刷新的资料,稳定下来之后呢,耗电自然就降低了.
这个情况就象你第一次去了大观园,第一次去的时候看到了真正的大象,猴子,老虎,假山,密林,把你弄得个眼花缭乱,分不清东西南北,在里面呆久了,到处都逛遍玩了一整天了,地形也就熟悉了,到头看来大观园就那么巴掌大的地盘,这时来了个顽皮鬼把你眼睛蒙上松开一下,相信你也能很快分清东南西北了.
于是乎,GPS在这个状态了,即使是偶尔又跑到信号弱的地方,只要是重新调整一下,它重新可以马上进入比较良好的接受状态,即便是工作环境不怎么样,它也能凭些记忆或是内部运算获得定位情况远比在同一地点的冷启动的情况好很多.
你肯定会想,哦,原来模块正常工作了,这个时候才是我们最想要的,要是模块没有冷启动这个过程多好呀,当然可以通过网络到u-blox的网站里面下载历书也能够做接近的程度,可是不要忘记了,星历跟历书是有区别的,历书是u-blox通过全世界范围内182个地面接受器接受到的卫星资料再通过电脑软件进行卫星模拟轨迹的运算,这个时候历书形成了,可以是1天,7天,或是2周的历书,理论上也可以是几年,也就是说在某些情况下几年都不需要冷启动就能实现上述的情况.
现实里面遇到的问题是,卫星的运动轨迹并不是我们可以轻易控制,它的运动范围会不停的改变,然后地面站会进行修正指引,再改变再修正,也就是理论上计算完美动运轨迹的历书是不太适合精确范围的定位,但无论有了好的历书之后一定会缩短我们的冷启动时间,所以u-blox的A-GPS也好,还是AssistNow,都是很经典的发明,只是现实应用中需要联网受限罢了.
热启动
如果说冷启动的过程是艰难的,就象我们不情愿的每天在一个陌生地要适应新环境,我们有时候要保持自己清醒的头脑,让自己生活在一个熟悉的环境里,看熟悉的电视,听熟悉的音乐,睡熟悉的床,过心情爽朗的晴朗夏日.
而我们也希望模块也能时候保持这样的好心情,就是熟悉它自己的环境.有的时候我们需要短暂关闭GPS或是整机,为了保存它的使用环境,让它在下一次尽快的进入现有的状态,我们需要给它进行当前星历的保存,让它保存的方法就是使用后备电池,后备电池可以维持模块8-12小时的工作时间,如果我们由于某些原因,在让断电的机器重新启动,也就意味着模块在2个小时以内再次加电,这个时候它的启动会比较快,大约是3秒钟左右达到正常定位的水平,原因是当前天空的卫星状态没有太大的改变,也就是说经过我们头顶的卫星移动变化得不是很远,就象是我们在家里附近的地区你往往也能够很快找到回家的路,因为这个时候你的参照物变化得比较小.
别看这一颗小小的后备电池或后备电源,足可以让你省去许多的烦琐的等待过程.
温启动
有的时候我们未必就选择在2小时内开机,除非是你真的很有耐心每两个小时启动一次,可是谁又会这样做呢?如果机器关闭即模块主供电断电2个小时之后,在后备电池还有电能的情况下,在不超过8个小时之内的情况是,当我们再次启动模块导航的时候,就会发现模块启动也不是很快,比热启动慢了很多,只是比冷启动收星要快,对环境的要求比冷启动要求有降低,这种情况会分很多种不同的原因,例如时间或头顶的卫星状况越接近保存时候的状态,它的定位时间就会越短,反之就会越长,通俗点来讲就是模块断电的时间越长,它所再次接通导航花的时间也会增加.
解释它的原因就是如果我们离家离的时间越是相隔得短,再次回到家里你越快熟悉周围的环境,如果这个时候你的脑袋里的记忆棒没有出问题的话.
而一旦时间太长,时过境迁的话,头顶的卫星全部变化了,星历也不起多大的作用了,例如过了20小时,没办法,机器仍旧是冷启动了.
计算机是人设计的程序指行机器,它的思维不能超越人的思维模式,而很多时候人工IA的智能产品例如GPS系统,其实也是基于人工想法的实现,在自然规律的变化中找到相应的解决方案,了解我们人类自身的思维活动规律,就可以更好的为我们的产品进行更好的更新的设计服务.
GPS基础知识的更多相关文章
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- 【RL-TCPnet网络教程】第29章 NTP网络时间协议基础知识
第29章 NTP网络时间协议基础知识 本章节为大家讲解NTP (Network Time Protocol,网络时间协议)和SNTP(简单网络时间协议,Simple Network Time ...
- 【STM32H7教程】第29章 STM32H7的USART串口基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第29章 STM32H7的USART串口基础知识和 ...
- SLAM第一篇:基础知识
无论在室内.野外.空中还是水下,SLAM是机器人进入未知环境遇到的第一个问题.本期给大家介绍SLAM的基础知识:传感器与视觉SLAM框架 近来年,智能机器人技术在世界范围内得到了大力发展.人们致力于把 ...
- Flutter调研(1)-Flutter基础知识
工作需要,因客户端有部分页面要使用flutter编写,需要QA了解一下flutter相关知识,因此,做了flutter调研,包含安装,基础知识与demo编写,第二部分是安装与环境配置. —— Flut ...
- day63:Linux:nginx基础知识&nginx基础模块
目录 1.nginx基础知识 1.1 什么是nginx 1.2 nginx应用场景 1.3 nginx组成结构 1.4 nginx安装部署 1.5 nginx目录结构 1.6 nginx配置文件 1. ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
随机推荐
- MySQL性能优化的最佳20+条经验(转)
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序 员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...
- LoadRunner变量到参数的互换
作者QQ:764714258,转载请说明出处,阅读此文需要良好的C基础 LoadRunner中,web性能测试使用的脚步是C语言编写的.C语言中有变量的概念,LoadRunner工具中带有参数这个概念 ...
- html实现网站全局按钮点击后置灰,不允许连续点击
<script> document.addEventListener("mouseup", upHandler, true); function upHandler(e ...
- go http请求基础
1.请求方法: get post get 加请求参数,请求参数会加到url后面 post加请求参数,请求参数会放在body里面 请求方式:1.直接在url后面加参数 如:http://www.tes ...
- 非常easy学习的JQuery库 : (二) 选择器
作用 选择器同意您对元素组或单个元素进行操作. 在前面的章节中,我们介绍了一些有关怎样选取 HTML 元素的实例. 关键点是学习 jQuery 选择器是怎样准确地选取您希望应用效果的元素. jQuer ...
- Android使用ImageView显示网络图片
本案例使用ImageView 简单的实现了网络图片的调用.当中注意事项.由于用到了网络,这里採用了HttpClient方法訪问网络联接,关于怎样使用,可參照文章 Android中使用HttpClien ...
- 如何突破PHP程序员的技术瓶颈分析
来自:http://www.jb51.net/article/27740.htm 身边有几个做PHP开发的朋友,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议, ...
- 已经mock类中引用的其它service类,但是在invoke私有方法的时候,该service类是空值
错误原因:没有在开始测试用例的时候,初始化类的所有注解方法. 解决方法: 使用mock方法创建mock对象时,需要在测试用例执行前执行以下代码.通常, 这句代码可以放在测试基类或者@Before 中. ...
- [译]GLUT教程 - 整合代码1
Lighthouse3d.com >> GLUT Tutorial >> Input >> The Code So Far 以下是前面几节的完整整合代码: #inc ...
- Window10 安装问题汇总
7月28号之后,由于没有收到windows的升级提醒,所以下载了ISO文件手动进行了升级. 本文就升级过程中遇到的问题进行一下总结: 1.ISO文件名称:cn_windows_1 ...