利用小区号和基站号可以做简单的GSM定位

利用小区号和基站号可以做简单的GSM定位

利用小区号和基站号可以做简单的GSM定位,下面给出一个取得小区号和基站号的方法。
首先依然是打开AT指令端口。
要取得小区号和基站号,需要首先让手机输出这两个号码,方法是利用设置命令”AT+CREG=2”。然后再发送AT+CREG?查询即可取得基站号和ID号。
返回值应该是这样的:
AT+CREG=2;+CREG?
+CREG: 2,n,”ABCD”,”ABCD”
OK
其中第一个“ABCD”是小区号(LAC),第二个“ABCD”是基站号(CI)。
至于运营商,可以用AT+COPS?获取。返回值应该类似这样:
AT+COPS?
+COPS: 0,0,”China Mobile”
OK
这样,就可以利用取得的基站号和ID号做基站定位了。
当然,这样的方法,需要用户不断的发送命令并读取,比较麻烦。因此还有一个Infineon自己的命令,可以自动返回基站信息,就是AT+XCELLINFO。首先发送AT+XCELLINFO=1,然后GSM模块就会持续发回小区信息,具体格式因为没有文档不是很清楚,但应该是这样的:
+XCELLINFO: a,b,c,LAC,CI,d
a/b/c/d的意义不是很清楚,只知道b应该是运营商代码(我收到的都是460,还有65535),d可能是信号强度,其他就不知道了。在不需要获取时,发送AT+XCELLINFO=0可以关闭小区信息发送。
类似的获取基站代码我以前做过,但是需要代码和具体位置的匹配数据库支持,否则无法知道实际位置,这对于用户来说,代码是没有意义的。
基站数据库网上不是有吗,移动数据定位之星好像就是用这个数据库的。不过这个数据库好像是网民自发收集的。
可以试试CELL ID +RTT定位。
最好能知道当前能够搜索到的所有基站的 基站ID、扇区编号、信号强度。就是除了CCED之外,不知道用什么指令实现。
来自:http://lxxavr.blog.163.com/blog/static/140299147201302522635692/

你可能感兴趣的:(STM32)