GPS定位原理
目前手机上被广泛使用的移动定位技术有三种:基于网络的小区识别定位、集成GPS定位和A-GPS定位。
一、基于网络
即小区识别定位技术。GSM移动通信网络是由许多像蜂窝一样的小区构成的,每个小区都有自己的编号,由于手机通讯遵循蜂窝技术规范,因此只要手机不是离线模式,手机位于哪个小区就很容易知道,这种定位精度取决于移动终端所处蜂窝小区半径的大小,从几百米到几十公里不等,与其它技术相比,该技术精度最低,而且还会收取一定的月功能使用费。
二、集成GPS
即美国go-vern-ment提供的全球定位系统。24颗GPS卫星分布在6个道平面上,距离地面1万2千公里,以12小时的周期环绕地球运行,使得任意时刻地面上任意点都可以观测到4颗以上的卫星。集成GPS定位需要手机内置GPS模块,但该模块只有接收功能,没有发射功能。24颗GPS卫星不断向地球发射着包含时间、卫星点位等重要参数的信息,被我们的手机收到后,手机会利用多个卫星的同一时间发出的信号到达的先后顺序及时差计算出手机到各个卫星的距离,然后利用三维坐标中的距离公式,利用3颗卫星组成3个方程式,解算出手机的位置(X,Y,Z)。考虑到卫星时钟与手机时钟之间的误差,实际上有4个未知数,X、Y、Z和钟差,因而需要引入第4颗卫星,形成4个方程式进行求解,从而得到手机的经纬度和高程。事实上,手机往往可以锁住4颗以上的卫星,这时,手机可按卫星的星座分布分成若干组,每组4颗,然后通过算法挑选出误差最小的一组用作定位。
三、辅助GPS
即AssistGPS,简称A-GPS,是网络辅助的全球定位系统,这种方法实际就是"小区识别定位+集成GPS定位+远端数据计算+GPRS信息传输"。辅助GPS定位需要移动运营商提供其移动通信信号塔的GPS位置,并在移动网络上加建位置服务器,还需要在地面建设GPS基准站(用于实时观测卫星并向定位服务器提供全球实时星历数据)。
辅助GPS定位过程如下:
1、手机将距离最近的移动通信信号塔的GPS位置通过网络传输到位置服务器;
2、位置服务器(由GPS基准站提供全球即时星历数据)根据移动通信信号塔的GPS位置传输该信号塔(近似手机位置)当前上空的GPS星历信息到手机,这些信息将暂时保存在手机内存的特定位置(星历缓存);
3、手机从星历缓存读取数据并接收指定几颗卫星的信号(省去了繁重的信号接收、数据计算和筛选最优卫星分组等工作);
4、手机接收到指定几颗卫星的信号后,参考星历缓存中的位置信息(主要是仰角)校核计算出手机当前的位置,然后在屏幕上显示出来(警告:如果此时上空没有指定卫星信号(比如手机位于室内),则会从第1步往下重复,请小心你的流量);
5、手机随时间的变化(时间变化造成卫星偏移)和位置的移动(位置移动造成仰角改变)自动选择卫星,实时刷新星历缓存;
6、手机重复第3、第4和第5步骤。
7、其他重要环节的说明:①.如果手机有过一次成功定位,那么手机内存中就会有一个星历缓存,其中保存着上次的定位信息,退出定位软件也不会丢失,但一关机就没了。②.每次启动GPS后,模块首先读取星历缓存,然后尝试上次定位的卫星信号,接着会有两种情况:a.如果存在上次定位的卫星信号,则会立刻定位,屏幕不出现连网提示符,这就是为什么相对上次定位时间间隔和位置移动不大时一打开定位软件就能定位的原因;b.如果不存在上次定位的卫星信号,则星历缓存失效,手机从第1步开始重做所有步骤,屏幕出现连网提示符。
四、手机GPS模块概述
(一)GPS模块由信号接收硬件和数据处理软件两部分组成。数据处理软件是固化在主板芯片中的,跟电脑的BIOS一样,介于软件与硬件之间,说它软是因为通过特殊设备可以刷写它,说它硬是因为一般用户根本动不了它。A-GPS与纯GPS的不同之处,就是A-GPS比纯GPS在数据处理软件上多了一段联网获取辅助数据的程序。
GPS的工作过程概括如下(红色部分为A-GPS的特色任务,设置中不勾选A-GPS或者由星历缓存锁定卫星成功后将不被执行):
1、读取手机内存中的星历缓存(上次的定位信息);
2、锁定卫星并接收信号;
3、调用移动通讯网络将当前通讯基站的GPS位置发送给专业定位服务器;
4、接收专业定位服务器发来的当前通讯基站当前上空的GPS星云数据并写入手机内存中的星历缓存;
5、校核仰角并计算显示;
6、自主选星并刷新缓存(退出定位也不会丢失);
7、重复第1、2、5、6步骤。
(二)诺基亚美版机型之所以不能使用A-GPS,其实并非先天不能,而是我们不能,总不会美国佬每次定位都花10多分钟吧(有人认为美国对其本土覆盖的GPS信号实行不同码率因此纯GPS定位也会很快,谁有美国朋友不妨让他拔卡试试)!因为美版机型其GPS模块的数据处理软件部分与欧版机型是不同的,欧版机型的数据处理软件从用户设置中读取定位服务器地址和接入点,而美版机型的定位服务器地址和接入点是固化在数据处理软件当中的,直接从本身读取。必须注意的是,GPS模块的数据处理软件部分位于专门的芯片中,并不在系统ROM中,因此通过DIY固件的方法也无法修改。