图1 u-blox 6 模块结构
由两个功能部分组成:射频(RF)和基带(Baseband)部分。
RF前端包括输入匹配元件、SAW(声表面波)带通滤波器、u-blox 6 RF-IC(带集成的LNA)和频率源。
基带部分,包括u-blox 6基带处理器、RTC晶体振荡器和附加的元件如:用于扩展编程和灵活性的可选FLASH内存
u-blox6接收器有三个电源脚:VCC、V_BCKP和VDDUSB。
l VCC:主电源
主电源接到VCC脚。在运行期间,u-blox 6 GPS模块的消耗的电流变化非常大,特别是节电模式的时候。系统电源应该能提供短时的峰值电流。当从备份模式切换到正常模式或者启动时u-blox6模块先给内核域的内部电容充电,这时会产生一个很大的电流,对于低功耗的应用,使用节电或备份模式,电源或在模块输入的低ESR电容担负着这个充电电流。
l V_BCKP:备份电源
在VCC失去的时候,实时时钟和备份RAM的供电通过V_BCKP脚。这个备份电源使得u_blox6接收器能够以若启动或温启动方式(取决于VCC掉电的时间长度)从掉电中恢复过来, 可以保持配置信息存储在备份RAM中不丢失。如果无备份电池连接,接收器上电的时候会执行冷启动。
如果无备份电池,V_BCKP脚应该连接到GND。
只要VCC维持对u-blox6接收器的供电,备份电池就不会为RTC和备份RAM供电,这样可以节省电池消耗,见图2。此时RTC和BBR的供电来自于VCC脚。
应当避免在V_BCKP脚上的高阻:在从主电源切换到备份电源期间,一个短时电流峰值能在这个脚上引起较大的电压降,这可能会出现问题。
图2备份电池和电压
l VDD_USB:USB接口电源
在LEA-6和NEO-6中,VDD_USB电源提供给USB接口,如果不使用USB接口,VDD_USB脚必须连接到GND。更详细的信息参考1.6.2.1节的内容。
有两个连续运行模式(最大性能模式和ECO模式)和一个间歇运行模式(节电模式)。最大性能模式自由使用捕获引擎,导致最好的可能的TTFF(Time To First Fix),然而Eco模式优化捕获引擎的使用以降低电流消耗。在中等和强信号时,这些模式的捕获跟踪性能几乎没什么不同。
l 最大性能模式:在最大性能模式,u-blox6接收器以全部性能使用捕获引擎来搜索可能的卫星,直到星历完全下载下来。结果,在下面的时候,会达到跟踪的当前功耗:
n 一个有效的GPS位置是固定的
n 星历完全被下载下来
n 可看到的所有卫星的星图是有效的。
l Eco模式:在Eco模式下,仅在需要导航的时候,u-blox 6接收器使用捕获引擎搜索新的卫星:
n 在冷启动时,u-blox 6搜索足够的卫星,用来导航和优化捕获引擎的使用以便下载它们的星图。
n 在非冷启动时,u-blox6着重于搜索可用的卫星,这些卫星的轨道按星历是已知的。
在Eco模式,u-blox6捕获引擎限制它的搜索资源的使用,以减少功耗,结果是发现最微弱信号的那些卫星的时间可能相对于最大性能模式稍微长一些。
u-blox6只要定位固定,就会撤销捕获引擎,足够数目(至少4个)的卫星正被跟踪,跟踪引擎联系搜索和跟踪新的没有任何轨道信息的卫星。
l 节电模式:u-blox 6接收器包括节电模式。它以周期跟踪方式运行,从而达到显著降低平均功耗的目的。节电模式能被配置成不同的更新周期,为了最佳的GPS性能,u-blox推荐更新周期是1s,更多的信息见u-blox6的通讯协议中关于接收器的描述。
航位推测(Dead Reckoning)、PPP和精确定时特征不应该在节电模式下使用。
LEA-6模块支持有源天线,监视电路使用V_ANT脚为有源天线供电,在V_ANT前使用一个10欧姆的电阻。更详细的信息见2.6节。
如果不使用这个脚,应该将V_ANT脚接地。
u-blox 6接收器模块具有系统监视功能,便于嵌入式处理器和相关的外设监视管理其运行,这些系统监视功能是UBX协议“MON”类的一部分。详细见接收器通讯规范。
u-blox 6具有UART接口(RxD1/TxD1),支持波特率4.8到115.2kBit/s,但注意这个信号输入输出电平是0V到VCC范围,而不是标准的RS232接口电平,所以需要有电平转换IC,如MAX3232。不支持硬件握手信号和同步操作。更多的信息见LEA-6/NEO-6/MAX-6的数据手册。
u-blox 6的USB接口支持12Mbit/s全速数据速率。
USB接口需要一些外部元件以实现USB2.0规范要求的物理特性。这些外部元件如图3和表1所示。
为了兼容USB规范,VBUS必须通过LDO(U1)将5V的VBUS降为3.3V再连接到模块的VDD_USB脚。
如果模块是作为自供电的USB设备,那么当VCC电源没有,基带IC核可能没有供电的时候,因为VBUS依然有效,它仍然会向USB Host表示模块依然存在并准备好通讯,这种情况是不希望的,所以应当通过VCC-LDO使能信号(EN)或一个电压监视器输出来禁止LDO(U1)。按照LDO(U1)的特性,推荐在它的输出端接一个下拉电阻R11,以确保VDD_USB不会浮空。如果模块采用总线供电,则LDO(U1)不需要进行使能控制。
图3 USB接口
表一 USB外部元件小结
代号 |
元件 |
功能 |
注释 |
U1 |
LDO |
将VBUS的(4.4V-5.25V)转换为3.3V |
如果GPS接收器作为一个USB自供电器件操作,几乎不需要电流(约1mA),但是如果总线供电,U1必须使能,以提供最大约70mA的电流,可以使用廉价的LDO,如LTC3410。 |
C23,C24 |
电容 |
满足LDO(U1)的要求 |
|
D2 |
保护二极管 |
连接的时候,起到过载电压/ESD保护 |
使用低容抗的ESD保护,如ST微电子公司的USBLC6-2 |
R4,R5 |
终端电阻 |
建立全速驱动器的28-44欧姆阻抗 |
推荐使用22欧姆 |
R11 |
电阻 |
推荐值为10K,用做USB自供电设置,对于总线供电,R11可以不用。 |
在LEA-6、NEO-6和MAX-6模块上,有一个I2C接口,用做串行通讯,作为现实数据通道接口(DDC)。关于DDC实现的更多信息参考通讯规范里的u-blox 6接收器表述关于DDC接口的背景知识见附录C.1。
l u-blox 6接收器通常运行在I2C从模式,主模式仅在外部EEPROM作为存储配置时才支持,任何节点都不可以连接到这个总线上,此时,接收器企图通过对一个特定地址的写和读操作来检测这样的非掉电易失内存元件是否存在。
l TX准备好指示信号用于FW7.0x,见1.7.6
l U-blox 6 DDC接口支持与u-blox无线模块间的串行通讯。见可用的无线模块的手册。
l 对于u-blox 6,当读DDC内部寄存器地址0xFF(信息发送缓冲),主器件在每个字节被存取之前一定不要设置读地址,因为这样会导致一个错误行为。因为在每个字节被从寄存器0xFF读出之后,内部寄存器地址被加1,而在0xFF处饱和,随后读可以连续执行。
脚SDA2和SCL2内部有一个13k的上拉电阻,如果容性总线负载很大,可能需要附加外部上拉电阻。表2列出最大上拉电阻值。对于仅连接外部EEPROM,内置的上拉电阻旧足够了。
表2 DDC接口的上拉电阻值
负载电容 |
上来电阻R20、R21 |
50pF |
N/A |
100pF |
18k |
250pF |
4.7k |
l 与I2C EEPROM通讯,作为I2C 主器件
串行I2C内存可以连接到DDC接口,这可以用做保存永久配置,它会由固件自动识别,内存地址必须设为0b10100000(0xA0)且尺寸固定为4KB
图4 GPS接收模块连接一个外部串行I2C内存
图5 外部Host连接外部串行I2C内存
注意图5与图4的不同,在图5中,存在EEPROM,但是这个EEPROM由Host/CPU使用,这是允许的,但是需要预防确保GPS接收器不检测EEPROM器件,有效地配置GPS接收器成总线的MASTER,从而引起与外部HOST冲突。
为了确保EEPROM期间不被GPS接收器检测,最重要的是设置EEPROM地址不为0xA0,这种方式,EEPROM保持自由地被用作其它目的,GPS接收器会表现为SLAVE。
l 确保在启动的时候,HOST允许足够的时间用于GPS接收器通过总线通讯以确定EEPROM的存在,仅当这个质询过程结束,HOST才能作为对总线全部控制的MASTER器件使用。
l 还要注意,FLASH版的模块不企图存储任何信息在外部EEPROM中,这样也不企图与外部EEPROM通讯,ROM版的模块在启动的时候总是查询外部EEPROM,查询过程在启动的250ms之内完成,这个时间内,外部HOST必须给ROM版的GPS接收器完成其查询。
l 尽管FLASH版的模块在启动时不企图检测EEPROM,但是并不建议在250ms内通过DDC与GPS通讯,因为由于忙于启动的其他事物,GPS接收器并不能做出响应。
表3 推荐的I2C EEPROM器件列表
厂家 |
型号 |
ST |
M24C32-R |
Microchip |
24AA32A |
Catalyst |
CAT24C32 |
Samsung |
S524AB0X91 |
u-blox 6 NEO模块有SPI接口,SPI允许外部设备的连接,如FLASH存储器、A/D转换器或与HOST CPU连接。
LEA-6R具有SPI接口用于连接外部传感器,这个接口仅能作为SPI MASTER模式操作,两个片选可用于外部从设备,见2.2.3.1。
TX准备好指示用于LEA-6H(FW7.0),见1.7.6
SPI的背景知识见附录C.2。
l 连接SPI FLASH存储器(NEO-6模块)
图6 连接外部SPI内存到u-blox GPS接收器
SPI FLASH内存连接到SPI接口,用于存储Assist Now Offline数据或者接收器的配置,当连接到SS_N上,固件会自动识别。
最小SPI FLASH内存尺寸是1Mbit。
表4支持的SPI FLASH内存器件
厂家 |
型号 |
Winbond |
W25X10A |
Winbond |
W25X20A |
AMIC |
A25L010 |
AMIC |
A25L020 |
l 通过SPI与NEO-6通讯,将NEO-6连接到一个SPI MASTER上
图7 连接到SPI MASTER
为了使接收器上电的时候能正确地读取配置(因为SPI的MOSI、MISO、SCK启动的时候用作配置脚),必须保证在启动的时候使SS_N为高。之后,SPI功能不会影响配置脚。
l 管脚配置为作为从器件之一。
缓冲器NC7SZ125由CS_N使能。通过这个缓冲器,使得在上电的时候确保GPS启动的配置读取正确。因为SPI的MOSI、MISO、SCK启动的时候用作配置脚。
LEA-6具有这个模块的系统硬件复位输入脚,低电平有效。
使用开漏输出的元件来驱动。
在模块内部有一个3.3K的上拉电阻,上拉到VCC,这要求复位电路应当有一定的驱动能力(1mA)。
NEO-6和MAX-6没有这个RESET_N脚,但这个功能可以被实现,方法是用一个3.3K的电阻将NEO-6/MAX-6的8脚连接到9脚。这样NEO-6的8脚或MAX-6的9脚可以作为RESET_N来使用。
EXTINT0是一个外部中断脚,具有固定的相对VCC的输入电压阈值(详见数据手册),在LEA-6T模块上它可以用做时间标记功能,在所有的u-blox LCC模块上,作为节电模式的唤醒功能。如果不用这个脚,就让这个脚浮空。
AADET_N是一个输入脚,用做报告外部电路是否检测到一个外部天线。低电平表示检测到天线,高电平表示没检测到外部天线。见2.6.4节的实现实例。
ROM版模块提供3个配置脚(CFG_COM0、CFG_COM1、CFG_GPS0)用作启动时的配置,这些配置在启动后立刻有效,一旦模块启动,配置可以通过UBX配置信息修改,这些修改的配置信息保持有效直到掉电或复位。如果这些配置存储在电池保护的RAM中,那么修改的配置会保持,除非电池没电了。
模块的数据手册上会说明这些配置脚的配置方法,实际上所有的配置脚都不需要上拉,因为内部都有上拉电阻,因此缺省就是1,除非需要,你才需要下拉它。
某些配置脚与其它功能共享,在启动期间,模块读配置脚的状态,之后,才转换为其他功能。
MAX-6没有配置脚。
更详细的信息,见模块的数据手册。
LEA-6T有秒脉冲信号脚(TIMEPULSE2),更详细的信息和配置见LEA-6的数据手册,以及通讯规程里的u-blox 6接收器描述。
TX准备好信号,表示接收器有数据需要发送,听者可以等待TX准备好信号,以代替查询DDC或SPI接口,UBX_CFG_PRT信息允许你配置TX准备好信号有效前的极性和缓冲器里的字节数。TX准备好信号可以映射到GPIO05(TXD1)脚,TX准备好信号缺省是禁止的。
u-blox无线模块(LEON和LISA)自动配置和使能TX准备好功能。
更多信息见LEA-6数据手册及通讯规范里的u-blox 6接收器的描述。
ANTOFF信号可以映射到GPIO22(脚17),ANTOFF信号缺省是禁止的。
为了配置ANTOFF功能,请参考包括在通讯规程里的u-blox 6接收器描述。
对LEA-6T-0,天线监视器GPIOs的编号不同与LEA-6模块,被连接到特定的PIOs:
l ANTOFF内部映射到GPIO13
l ANTSHORT内部映射到GPIO8(脚20)
l AADET_N(有效天线检测)映射到GPIO8(脚20)
如果设备恢复到缺省配置,没有天线电源。
CFG_ANT命令设置PIO且使能电源控制,短路电流检测,短时掉电,短路电流恢复。
为了永久存储设置,发送带选项 “保存当前参数到BBR和SPI FLASH(!)” 的UBX_CFG_CFG命令。
见图46,开路电流检测方案。
为了配置这些功能,见通讯规范里的u-blox 6接收器的描述。
图9 完整的LEA-6R设计框图
表6 LEA-6R的特殊脚
脚 |
信号名称 |
方向 |
用法 |
27 |
SPEED |
Input |
里程计速度脉冲 |
23 |
SCK |
Output |
SPI时钟 |
22 |
SPI_SCS1_N |
Output |
ADC/转速传感器的片选信号 |
21 |
FWD |
Input |
方向指示(1=前向) |
9 |
SPI_SCS2_N |
Output |
温度传感器的片选信号 |
2 |
MISO |
Input |
串行数据(MASTER为输入/SLAVE为输出) |
1 |
MOSI |
Output |
串行数据(MASTER为输出/SLAVE为输入),悬空 |