... timeout occurred without receiving an answer. Retrying...!
Polling: CFG-MSG - B5 62 06 01 02 00 01 40 4A 73 ...
... failed due to timeout!
Polling: CFG-MSG - B5 62 06 01 02 00 02 10 1B 45 ...
... timeout occurred without receiving an answer. Retrying...!
Polling: CFG-MSG - B5 62 06 01 02 00 02 10 1B 45 ...
这里将详细介绍以飞扬科技的评估套件为蓝本,介绍瑞士公司的GPS模块硬件制作案例
u-blox公司产品波特率修改及与单片机接口参数应用:
瑞士u-blox公司提供的专业测试软件u-center,不但是专业级别的测试软件,而且可以对u-blox公司的模块进行相应的模块功能设置,功能强大,我们将为你介绍部分常用的相关与模块接口的使用功能.
以下介绍的是通过u-blox公司的UBX协议来配合u-center软件来对u-blox公司的GPS模块进行模块的设置参数更改,UBX格式是u-blox公司独家开发且应用于所有自产的模块中的可支持的通信协议,UBX格式具体说明资料可以在本站内进行下载.
以下主要内容包括:
利用u-center软件来修改GPS模块的波特率
通过单片机来进行模块的操作
休眠模块的设定及唤醒
u-blox 模块4Hz刷新频率更改(TIM-LR/4R除外)
u-blox 模块NMEA精简字符信息输出
u-blox 模块冷启动时间TTFF测试刷新
u-blox 模块A-GPS辅助快速冷启动的实现方法
友情提示:
对于以下内容中提及的所有问题,若使用为特殊的高规格场合,且不考虑成本问题,我们建议客户选用LEA-4H/5H模块
利用u-center软件来修改GPS模块的波特率:
第一步: 以飞扬科技的TIIM-4H评估测试主板套件为例,连接好相关硬件并打开u-center软件并设置好COM口及9600的初始波特率出现如下界面:
第二步: 在顶部栏目状态栏中选中模块配置修改框如下图所示:
第三步: 将出现下图所示的栏目框,是u-blox针对于模块进行的配置参数选项,选择UBX>>CFG(config)>>PRT(ports),
默认的波特率是9600,如上图所示
你可以根据需要修改相应的波特率在下拉菜单中进行选择,例如我们计划选用通信波特率为57600,请在Baudrate中选择57600,并请按底部的SEND按钮对模块进行命令发送:
第四步: 选择完新的波特率之后,我们再在主栏目中选择当前选择新的波特率57600进行实时通信,如下图所示:
第五步: 我们现在已经使用了新设置的57600的波特率进行通信,但如果要掉电保存在模块的FLASH当中还需要对当前的信息进行操作,下次模块断电启动后便可从模块的FLASH(或E2PROM)当中读取新设置的波特率了,请选择栏目框当中的: UBX>>CFG(config)>>CFG(configuration)选项中,
墨认为: save current configuration 选项,这是进行保存设置的选项
然后我们再次在底部的状态栏再次选择SEND对模块进行保存指令的发送
好棒,我们的波特率设置就完成了,现在再重新启动u-center软件,你会发现现在通信已经是新设置的波特率了.
关于以上波特率适合于u-blox模块系列的修改事宜:
不过,我们的设置是钟对于飞扬科技的TIM-4H板为例,因为u-blox的模块的存储器分为几种:
ROM版本,例如LEA-4S/4A,TIM-4S/4A系列
E2PROM版本,如新出的LEA-4S-1,TIM-4S-1
8M Flash的版本,如LEA-4H/4P/LH/LP,TIM-4H/4P/LH/LP
E2PROM版本及FLASH版本是可以通过u-center软件来完成配置及修改,但ROM版的如LEA-4S/4A及TIM4S/4A系列,内部是没有FLASH的,而这几个版本在中国为大多数客户选用,而且将涉及到调整波特率的问题,那么改变参数的方法如下:
第一种方式需要通过外围的引脚定义接线来硬件配置波特率及启动参数等相对较常用的配置,这些内容可以参考u-blox的原厂的模块PDF文档
第二种方式是每次在机器一开始运行时,便选用单片机来对模块进行控制,给模块的串口通信端发送相应的代码来控制不同的波特率,关于用单片机来控制当前模块的通信波特率,请参考以下章节:
通过单片机来进行模块的操作
现在客户更关心的问题是怎么样利用单片机或其它系统来对模块进行操作,最常见的就是对模块进行冷启动
什么情况下进行冷启动呢?一是客户客观的需要,二是有时比如在信号特别差的地方,很久都没有办法收到GPS信号,有时转换地点也不行,这时候选用冷启动运行新的搜星定位反而会令到启动速度更快,在这种情况之下有些客户便选择冷启动让模块重新查找星系定位,设置方法如下:
第一部: 在状态栏当中选择: UBX>>CFG(config)>>Startup option
以在Startup option中,将会有热启动,温启动,冷启动三个选项,分别对应三种不同的启动方式,我们选择三种模式就会发现在蓝色框当中的16进制代码会发生相应的变化,注意蓝色框当中的红色框,那段代码是对模块启动控制三种方式的16进制代码,这些代码将是我们利用单片机对模块进行控制所需要用到的内容
第二步:我们选中红色栏目当的内容,将红色框内的16进制代码通过单片机对模块的UART通信端口进行发送,发送三种不同的代码就可以通过单片机来控制GPS模块的热启动,温启动,冷启动三个状态了.
好了,到这里大家对使用获取的代码来控制u-blox公司的GPS模块有一定的概念了,我们再回过来讲比较复杂的开机冷启动时配置ROM版本的LEA-4A/4S及TIM-4A/4S的波特率问题:
关于用单片机控制ROM版本的LEA-4A/4S及TIM-4A/4S模块波特率的实例:
第一步: 在状态栏当中选择: UBX>>CFG(config)>>PRT(ports),在Baudrate中选择不同的参数就会有不同的波特率,注意蓝色方框的代码变化
第二步: 选择需要的波特率,提取蓝色方框中的红色框内的16进制代码,用单片机对模块的UART端口进行数据发送,上面谈到是在机器冷启动的时候便开始发送,模块便开始在当前的波特率下进行通讯工作.
另外,若是以蓝牙等形式没有单片机等相连的直接发送模块的方式,也需要使用波特率设置,可以用上页中提到的用硬件外接跳线的方式设置波特率.
休眠模块的设定及唤醒
接下来我们再补充一下大家关心的休眠模式的设定:
我们找到 UBX--->CONFIG--->FXN(Fix Now Mode)
1. 在如下设置窗口,设置参数,具体各个参数的作用,请参看我们的系统集成手册62~65示意图解释。
2.将Power Mode改为FixNOW模式,可以启动休眠模式,发送蓝色方框内的红方框内容代码给模块。
3.如果要在休眠状态唤醒模块,请发送蓝色方框内的红色指令。
以上三个实例,简单介绍了利用单片机来对模块的参数更改,其它的特殊控制功能,如闪灯频率的变化,启动参数,省电模式选项等等,均通过此种方式都可以进行相应的控制,足可见u-center软件的良好的易用性,强大的测试开发功能及u-blox公司强大的研发实力,u-center不愧是全球顶级的GPS专业测试评估调试软件.
近日内会整理出以下最新内容(实测中):
u-blox 模块4Hz刷新频率更改(TIM-LR/4R除外)
我们找到 UBX--->CONFIG--->Rate(rates)
1. 在如下设置窗口,设置Measurement的参数,更改不同的ms将会有不同的速率更新,以下为每秒4Hz输出为例:
附注:对于4A/4S系列的ROM版本模块,只能发送相应的指令代码给模块而不能进行以下的保存
2:我们底部的状态栏再次选择SEND对模块进行保存指令的发送
3:再选中UBX>>CFG(config)>>CFG(configuration)选项中,
墨认为: save current configuration 选项,这是进行保存设置的选项
4:最后我们再次在底部的状态栏再次选择SEND对模块进行保存指令的发送
u-blox 模块NMEA精简字符信息输出
对于普通的客户而言,我们阅读GPS输出的参数格式一般是用国际通用的NMEA码来查看GPS的输出信息,它包括时间/经度/纬度,高度,信号强度等等,每个指令集包括的格式都不同,以下是标准的GPS NMEA码输出信息:
标准的1Hz速度处理下出现的NMEA码信息
特别需要注意的是,只有u-blox的模块NMEA码的经纬度输出是小数点后5位的,其它公司的产品是4位数,为什么呢,因为u-blox是高精度GPS模块,小数点后的数位越多,自然就越精确啰.
但是有时候客户往往出于自己的考虑,例如CPU的功耗低,而且运算速度慢,希望尽量减少其中不相关的参数输出,当然,进行以下的实验,我们也不能确信是否有利于省电,这需要实验及时间来验证,但不管如何,我们还是要实验如何实现这一步:
我们找到 UBX--->CFG(config)-->MSG(messages)
1: 在Message里面选择你所需要屏蔽的数据内容,以屏蔽NMEA GPGGA指令输出为例,选用这个选项
附注:对于4A/4S系列的ROM版本模块,只能发送相应的蓝色框内指令代码给模块而不能进行以下的保存
2:我们可以做的有两件事情,如果你是4H及4S-1系列的产品线,请选择将要去除Target所需要关闭的选项去钩
去钩则表示关闭该段数据输出
对于4A/4S系列的ROM版本模块,则是只能发送去钩变化后的蓝色框内指令代码给模块而不能进行以下的保存
3:最后我们再次在底部的状态栏再次选择SEND对模块进行保存指令的发送
4:再次查看指令集输出,发现NMEA GPGGA的消息指令集消失了:
同样,你也可以对其它指令进行相应的精简输出操作.
u-blox 模块冷启动时间TTFF测试
我们可以通过u-center软件来查看u-blox 模块冷启动时间TTFF测试时间,冷启动时间TTFF对于手持机而言的重要之处在于反映GPS进入定位状态的等待的时间,TTFF时间与GPS模块的冷启动搜索窗口数目,机器的设计,天线选用及使用时间及使用周围环境有很大关系,使用以下为u-center软件测试的TTFF时间:
但有些时候并不会在u-center软件上面显示,我们可以刷新u-center选项进行显示:
我们找到 UBX--->NAV(Navigation)-->STATUS (Navigation Status)
TTFF是冷启动时间
Time since Powrup 是电源模块一通电则开始计算的时间
u-blox 模块A-GPS辅助快速冷启动的实现方法(以下方法u-box是开放式下载服务,不需要收取任何费用)
u-blox 模块A-GPS辅助快速冷启动的实现总体来讲有三种方式,那我们介绍其中应用最广泛最简单应用的两种:
第一种方式: online在线式辅助快速冷启动技术:
特别提示: 第一种方法在线式辅助冷启动技术适用于目前生产的u-blox第四代及第五代等全系列产品,但前提是需要有intelnet网络支持,可以是通过intelnet,ADSL,WLAN,wifi,蓝牙,GPRS,CMDA等各种联网方式:
1:打开u-center软件,注意,以下推荐使用u-center5.0以上的版本:
打开辅助online冷启动按钮,即如上图所示,将会显示出以下内容:
你要问蓝色框内的 User: [email protected] 还有密码怎么来的,办法是一份空白发邮件到: [email protected]
u-blox公司的服务器将会返回一个确认的邮箱地址及密码
我们输入邮箱跟密码之后,再按确认键,如果成功,
将下来将会马上下载相应的星历,进行快速冷启动,记住,当前星历下载在模块当中是当前起2小时内有效!
怎么样,是不是很简单啊?
基本上而言,使用u-blox第四代的模块在此种情况下冷启动时间会超过10秒,而第五代产品最快是1秒辅助冷启动,而且初始定位即有不错的精度
第二种方式: offline辅助快速冷启动技术:
offline离线式冷启动技术相对而言要比较麻烦,那就是先要去u-blox公司的服务器下载1天到14天可选的GPS历书,注意是历书不是星历,这是u-blox公司通过自己的服务器解析出来的未来1天到14天的卫星运动轨迹描绘,具体实现方法参考以下章节,特别说明的,以下章节只能适合于H版的模块,例如LEA-4H或LEA-5H,尾缀为S或是A版的ROM版本以下方法完全不适合:
1: 到u-blox公司的A-GPS服务器下载相应的历书包
网址是http://alp.u-blox.com/
我们看到,我们下载的最长时间的14天数据包数据大小是93.2KB
2:选择1-14天内的历书包下载,在以上情况中,虽然看起来1天之内的历书时间比较短,可是有两个原因,时间短的历书下载的字节数目相对较小,尤其是用于手机等联网收费场合下载费用低,速度也较快,当然如果是14天版本,那么我们导入模块以后就在14天的环境里面可以实现快速冷启动了.
我们来介绍如何导入数据包:
选择 Tools>>AlmanacPlu,会跳出以下菜单
选择14天的历书文件包打开,点击确定,14天的历书就顺顺利利的下载到u-blox的H版模块当中了
接下来的14天,我们将享受快速的冷启动技术,本技术可以应用于PDA/PND的不能上网的设备,按以上方法需要导入数据包即可
由于历书包是随着时间的流逝而临近失效期,例如14天的历书总计有效时间是366小时,那经过366小时之后就历书是失效状态,我们将介绍以下方法用来查看如何知道已经使用的时间天数:
接下来将会有特殊应用环境的静态飘移参数更改 (测试中)
敬请留意!
以上资料鸣谢u-blox技术支持团队提供技术支持