基于MC20模块的GPS/北斗定位系统的实验设计

2018-12-19 12:44朱克武林金妹袁小放
现代计算机 2018年32期
关键词:SIM卡串口指令

朱克武,林金妹,袁小放

(广东食品药品职业学院,广州 510520)

0 引言

全球卫星导航系统主要有美国的GPS、中国的北斗、俄罗斯的GLONASS、欧盟的GALILEO。GPS导航系统是以全球24颗定位人造卫星为基础,向全球各地全天候地提供三维位置、三维速度等信息的一种无线电导航定位系统。中国的北斗卫星导航系统和美国的GPS导航系统一样,同样能够在全球范围内全天候为各类用户提供高精度、高可靠定位、导航、授时服务,并具有短报文通信能力。GPS和北斗卫星导航系统除了应用在军事方面以外,还广泛应用于民用方面,如个人位置服务、气象应用、道路交通管理、铁路智能交通、海运和水运、航空运输等方面,带来了巨大的社会和经济效益。

MC20模块集成了GSM和GNSS(GPS+北斗)双系统,在该模块上进行AT指令的实验教学,学生能够加深对AT指令的理解,体验GPS和北斗信息的采集过程,熟练掌握GPS和北斗信息采集和信息分析的方法,为GPS和北斗技术的广泛应用和技术普及打下良好的基础。

1 MC20模块硬件组成

MC20模块支持GSM和GNSS(GPS+北斗)双系统定位,在网络交互的同时,可使用的卫星数量更多,搜星的时间更短,加快GNSS系统的定位速度,提高定位精确。

图1 MC20模块硬件组成

MC20模块如图1所示,主要包括:电源、STM32微处理器、串口、SIM卡、MC20核心芯片、有源天线或无源天线几个部分组成。

外接电源,电源(5V-12V),通过模块内部的稳压电路将外接电源降为5V,供模块使用。上位机通过串口对模块进行各种参数设置,主要是使用AT指令,完成GNSS数据的接收。SIM卡是一个装有微处理器的芯片卡,用来连接中国移动或中国电信的无线网络,如果没有插入SIM卡,MC20模块是连不上移动或电信的无线网络的,MC20不能通过无线网络接收或发送数据的,无法正常工作,因此,必须插入SIM卡,这样才能够将MC20采集的卫星信号通过无线网络传递到指定的数据服务器。有源天线内部集成了接收天线模块、低噪声放大模块、电源供给模块,有源天线必须放在户外或窗户上,接收GPS或北斗的卫星信号,放在室内是不能接收GPS或北斗信号的。无源天线只包含接收天线模块,优点是不需要外加电源将可以工作,结构简单,成本低廉,技术成熟,占空体积小,适合于紧凑型空间的GPS导航产品、蓝牙GPS、手机GPS等产品。如果设备与GPS接收模块之间有一定的距离,如距离超过1米,这种情况下,只能选择有源GPS天线。本模块集成了有源天线和无源天线,便于用户选择其中的一个使用。单片机STM32微处理器是MC20模块的核心控件之一,通过串口与上位机通讯,通过串口与MC20模块进行通讯,接收GPS或北斗信号。MC20芯片是整个模块的核心组件之一,采用联发科最新推出的多功能通信定位芯片研制而成,内嵌丰富的网络协议(如TCP、UDP、FTP、HTTP 等),还集成了多星座卫星系统(如GPS、北斗等),支持语言、短信、通话等功能,支持蓝牙功能,能够提供无线移动通信以及精准的导航定位功能。

2 MC20模块的串口设计

本系统主要是通过串口来串联上位机和下位机的。上位机和下位机使用串口连接,上位机向下位机发送AT指令,对MC20进行各种参数设置和控制,下位机将采集的数据发给上位机,供上位机使用。下位机的STM32 F103E微处理器使用一个串口和MC20的主串口相连,用于AT指令的发送、GPRS数据的传输、GNSS数据的传输。还可以使用MC20的辅助串口与微处理器相连,用于发送GNSS数据。

2.1 串口

单片机STM32 F103E微处理器内部有5路串口,在本系统的通信过程中,至少需要使用两个串口,第三个串口可以使用,也可以不使用。第一个串口连接上位机,上位机通过串口,发送AT指令到STM32 F103E,上位机接收下位机的数据,用户能够及时判断MC20模块当前的状态;第二路串口连接MC20的串口,这个串口是MC20的主串口,用于AT命令传送、GPRS数据

2.2 串口助手和AATT指令

本系统使用串口进行通讯,因此,上位机必须要有一个串口模块,负责串口通讯。串口通信有很多成熟的软件,如SSCOM、XCOM等串口助手软件。

SSCOM 3.3串口助手如图2所示,左上角的区域为接收数据区,用来显示串口接收的数据。右上角为“多条字符串定义”选项卡区域,由多个独立的文本框组成,一个文本框存放一个字符串,文本框的后面的“数字”是按钮,单击“数字”,将文本框里面的字符串以字符的形式发送出去,文本框的前面是一个复选框,选中复选框,则文本框里面的数据以16进制的形式发送。“隐藏”按钮是打开和关闭“多条字符串定义”选项卡窗口的。COM1是串口号,用户根据实际连接的串口进行选择。串口连接以后,一定要打开串口,才可以使用,否则,串口是不能使用的。串口一定要设置参数,默认数据位是8位,停止位是1位,无奇偶校验位,串口参数的设置主要是波特率的设置,本模块使用的波特率是115200。单击“发送”按钮,将下面的细长条文本框中的数据发送出去。最下面是串口发送、接收、串口是否打开等状态信息。

将AT指令事先在“多条字符串定义”选项卡中填好,发送的时候,只需要单击“数字”按钮,就完成文本框中数据的发送,下次打开串口助手的时候,文本框中的数据会被保存,不用一条一条输入,方便用户使用。

AT指令的使用,MC20接收AT指令后,会对指令进行响应的处理,并返回处理的结果,如果返回“OK”,则表明没有错误。传输,具有自适应波特率,多路复用等功能,通过主串口将AT指令传送到MC20,由MC20进行解析,MC20采集的GNSS数据通过主串口传输到STM32 F103E。主串口还可以将TCP命令、UDP命令等网络命令传送给MC20模块,MC20模块通过移动网络或联通网络,与远程服务器连接,通过主串口进行数据传输,既能够接收远程服务器的数据,也可以发送数据到服务器,这样,MC20模块就具有和无线网络通信的功能。第三路串口,这个串口可以使用,也可以不使用,MC20模块有一个辅助串口,用于传输MC20采集的GPS和北斗信号的,主串口也是可以传输GPS和北斗信号的,将这个辅助串口和STM32 F103E的串口相连,可以实时传输GPS和北斗信号。

图2 SSCOM 3.3串口助手

第一条指令必须是“AT”,如果返回“OK”,表明串口通讯正常,否则,需要检查串口的设置,直到返回“OK”。“AT+QGNSSC=1”指令,开启 GNSS 功能,PPS 指示灯点亮,开始定位工作。该命令只需要输入一次,打开GNSS模块电源,不需要反复输入,否则,会反复给GNSS模块供电,影响模块的使用。“AT+CSQ”指令查询当前网络的信号强度。“AT+CPIN?”指令查询是否有SIM卡,如果没有SIM卡,则不能使用移动或联通网络。“AT+CREG?”指令查询是否注册GSM网络,“AT+CGREG?”指令查询是否注册GPRS网络,返回字符串中,有1,表明SIM卡是本地卡,有5,表明SIM卡是漫游卡。“AT+QICSGP=1,“CMNET””指令表明SIM卡使用的是移动网络。“AT+QGNSSRD”指令是获取GPS和北斗卫星信息的指令。如果前面的AT指令没有返回错误,执行本条指令,就会采集到GPS和北斗信号。需要使用循环语句不断发送这条AT指令,开始的一段时间,采集的GPS和北斗信号数据都是0,因为,天线还没有接收到卫星信号,当卫星定位成功后,就能够采集到数据,这个过程可能要几十秒到几分钟,跟所处的环境、天线有关。

3 GNSS数据的分析

通过“AT+QGNSSRD”指令,获取GPS和北斗卫星信息,包括:GNGGA(GPS定位信息)、GNRMC(推荐定位信息)、GPGSA(当前卫星信息)、GPGSV(可见GPS卫星信息)、BDGSV(可见北斗卫星信息)、GNGLL(定位地理信息)、GPVTG(地面速度信息)。

GPS和北斗的数据主要是经度、纬度、高度、速度、航向等。因此,主要分析GNGGA(GPS/北斗定位信息)、GNRMC(推荐定位信息)这两条数据。

3.1 GNGGA 数据分析

GNGGA是GPS定位信息。数据格式为:$GNG⁃GA,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh。其中:$是接收数据的开始标记。GNGGA是GPS定位信息,各个数据之间使用逗号分割。后面的数据分别是:UTC时间、纬度、纬度半球(N为北纬,S为南纬)、经度、经度半球(E为东经,W为西经)、定位质量指示、使用卫星数量、水平精确度、天线离海平面的高度(海拔高度)、大地水准面高度、差分时间、差分参考基站标号。*是接收数据的结束标记。hh是校验码。

通过分割逗号,取出对应的数据。从GNGGA数据类型中,需要取出UTC时间、纬度、纬度半球、经度、经度半球、海拔高度。

3.2 GNRMC数据分析

GNRMC是推荐定位信息。数据格式:$GNRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh。其中:$是接收数据的开始标记。GNRMC是推荐定位信息,各个数据之间使用逗号分割。后面的数据分别是:UTC时间、定位状态(A为有效,V为无效定位)、纬度、纬度半球(N为北纬,S为南纬)、经度、经度半球(E为东经,W为西经)、地面速度、地面航向、UTC日期、磁偏角、磁偏角方向、模式指示。*是接收数据的结束标记。hh是校验码。

通过分割逗号,取出对应的数据。从GNRMC数据类型中,需要取出UTC时间、纬度、纬度半球、经度、经度半球、地面速度、UCT日期。

通过对GPS定位信息和推荐定位信息的分析,可以得到当前位置所在的纬度、经度、高度、速度、地面航向、日期、时间等关键数据,将这些数据应用到地图服务器上,就可以在地图上看见MC20模块所在的位置,方向、速度等信息。

4 结语

随着GPS、北斗卫星定位系统的广泛使用和普及,培养学生掌握和运用卫星定位系统,显得非常重要。通过对小车GPS定位系统的学习,让学生能够自己动手连接MC20模块,掌握串口在GPS定位系统中的作用,通过串口助手的使用,让学生熟练掌握AT指令,并能够理解每一条AT指令的含义,根据AT指令的返回信息,判断MC20模块当前的工作状态。通过对GPS和北斗数据的分析,加深对GPS和北斗数据的理解,通过程序设计,在一堆数据中,取出自己需要的数据,并能够将这些数据应用到地图服务器上,锻炼了学生的编程能力。通过GPS定位系统的实践教学,让学生能够掌握GPS的使用,达到了预期的教学目标,为社会培养大批GPS和北斗应用人才,推动了GPS和北斗卫星信息在各行各业的广泛应用。

猜你喜欢
SIM卡串口指令
基于 Verilog HDL 的多周期 CPU 设计与实现
SIM卡防盗很关键 小喻教你如何给它“上保险”
《单一形状固定循环指令G90车外圆仿真》教案设计
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
SIM卡的“减肥史”
用户将是最大受益者
关于ARM+FPGA组建PLC高速指令控制器的研究
MCS—51单片机中的多串口通讯技术的应用
MAC指令推动制冷剂行业发展