您现在的位置: 晨光科技 >> 文章 >> 技术 >> 单片机 >> 正文  
  A6&A7 GSM/GPRS/GPS模块使用教程           
A6&A7 GSM/GPRS/GPS模块使用教程
[ 作者:佚名    转贴自:http://www.waaax.top/forum.php?mod=viewthread&tid=36&fromuid=1    点击数:21    更新时间:2020/5/26    文章录入:LA ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]

A6&A7 GSM/GPRS/GPS模块使用教程 

2018-04-08 21:24 发布

F21 GSM/GPRS/GPS模块 330900
配套资料包例程等下载地址:
游客,本帖隐藏的内容需要【维可思电子论坛会员】才可浏览

A6 A7 模块手册

一 基础说明

A6模块应用于GSM/GPRS应用

https://item.taobao.com/item.htm?id=542988971078

A7模块应用于GSM/GPRS/GPS应用

https://item.taobao.com/item.htm?id=542990843269

视频教程【详细说明可以参考视频教程】


UploadFiles/2020526123638734.png

1.1 A6模块说明





1.2 A7模块说明





1.3 供电说明

1.推荐使用DC9V1A电源适配器连接DC接口使用

https://item.taobao.com/item.htm?id=41915338664

2.使用锂电池给锂电池接口V_BAT和GND供电,必须是锂电池,不能是其他电池。

https://item.taobao.com/item.htm?id=534844358840

3.电脑或者其他开发板的5V扩展到板子上的Vin和GND来供电,或者接DC输入接口供电,但是因为5V在电压底线

需要电源至少是DC5V2A以上的电源才可以

1.4 启动说明

1.手动启动

电源开关打开后,按PWR_KEY按键1s以上启动内核(类同于手机开机)

2.自启动

将板子上PWR_KEY和V_BAT短路后,启动板子电源开关,板子会自动开机,不用再按开机按键去启动模块,实现开机自启动。

1.5 串口通讯设置

默认波特率115200,数据位8,停止位1

接线方式:

A6&A7模块 USB-TTL模块
U_TXD RXD
U_RXD TXD
GND GND

界面如下图:(如果该软件在您电脑打不开,也可以用其他的串口助手,比如资料包内的SSCOM软件也可以)


1.6 基础测试指令

AT                        测试AT指令是否能用有返回
AT+CPIN?        测试SIM卡是否准备好
AT+CCID                测试SIM卡ID
AT+CSQ                测试信号强度

注意指令后面要带“回车”才能正常有返回指令OK

二 拨打、接听、挂断电话

ATD 用于拨打任意电话号码,格式为: ATD + 号码 + ;,末尾的’;’一定要加上,否则不能成功拨号,
如发送: 
ATD10086;
即可实现拨打 10086。
ATA 用于应答电话,当收到来电的时候,给模块发送: ATA,即可接听来电。
ATH 用于挂断电话,要想结束正在进行的通话,只需给模块发送: ATH,即可挂断。

2.1 关于耳机听不到声音的说明

问题1:

A6 A7 模块 默认声道是喇叭输出,需要切换到耳机输出,不然听不到声音。
使用到的 AT 指令: AT+SNFS=0 ,如果想切换成喇叭输出,则用 AT+SNFS=1

问题2:

A6 A7模块耳机麦克使用一体式四段接口OMTP标准,而不是CTIA标准,本店只能选用最通用的耳机接口来做,请不能使用的朋友,购买能使用的耳机麦克,谢谢。

手机耳机分为两种标准:OMTP标准通常被叫做国家标准,CTIA被称为国际标准。两者的区别在于插头最后两节GND和MIC顺序相反。CTIA耳机插入OMTP设备会造成声音小且失真。

OMTP标准:苹果4S及更新的版本所配耳机(中国销售的部分),诺基亚、华为、中兴、联想、山寨机等。

联想耳机及华为有部分是CTIA。

CTIA标准:三星、苹果(中国以外销售的部分)、索尼、MOTO(部分)





三 读取中英文短信

AT+CMGF=1                        //设置TEXT MODE
AT+CSDH=1                        //显示文本格式
AT+CNMI=0,2,0,0,0        //显示新收到的短信

设置成功后,可以用其它手机发送一条短信到模块。模块接收到短信后显示如下:



四 发送英文短信

AT+CMGF=1                        //设置TEXT MODE
AT+CSCS="GSM"
AT+CMGS="17719228082"                //其中电话号码要发送给谁短信就写谁
TEST MESSAGE                        //这里写任意短信内容,英文数字标点等
然后用HEX格式发送 1A  把短信发送出去,然后接收端手机就能接收到模块发送的短信了

五 发送带中文短信 PDU模式

PDU格式在线转换工具:

http://www.multisilicon.com/blog/a22201774~/pdu.htm


然后按照以下流程发送指令

AT+CMGF=0                //设置PDU格式
AT+CSCS="GSM"
AT+CMGS=19                //记得是用CMGS不是CMGW
0011000D91687117298280F20008AA044F60597D                //记得发送这个数据后面别加换行
1A                                //HEX发送数据,把短信发送出去

六 GPRS通讯

6.1 公网IP环境检测

在百度下搜索IP,查询出来一个IP如下:


然后,在自己的电脑连接的路由器内查看一下IP


如果以上两个IP不一致,说明没有公网IP。如果你发现自己没有公网IP,不要难过,大部分的宽带用户现在都没有公网IP了,没有的话怎么测试呢,往下看。。。

6.2 内网映射

没有公网IP就相当于没有自己家的确切门牌号,别人是访问不了自己家,这个是一个道理,所以我们就要用到一种技术叫内网映射,其中用到一个软件叫“花生壳”

http://hsk.oray.com/download/

这个软件可以让自己有一个域名或者说IP,让网络上其它人去访问。

下载、安装、注册自己的账户这里省略,相信大家都会。

然后登陆自己的花生壳客户端,


添加映射,这里需要收费8元(目前是这个价格,不知道以后多少),这个是花生壳软件的资费,没办法谁让我们没有公网IP,


应用名称:随便填写

内网主机:填写自己本机的IP

端口:可以随意,这里我习惯用8086

然后点击确定

花生壳会分配我们一个外网访问地址


绕了这么远终于可以对于外网发送数据到arthasarthas.6655.la 这个域名的 30396端口的数据会直接转发到您的电脑192.168.1.104 这个主机的 8086 端口。

接下来我们来测试下arthasarthas.6655.la这个域名对应的IP是多少

在电脑的运行界面,输入cmd,调出 DOS界面


输入ping arthasarthas.6655.la


获取这个可以直接访问的IP  122.228.19.57

接线来我们来测试下这个IP,能否正常使用,

在自己电脑上建立一个服务器,一个客户端,看能否正常互相通讯,

服务器设置如下:


客户端设置如下:


客户端和服务器互相通讯测试


如果如上图所示能互相发送数据,那么恭喜你终于可以摆脱没有公网IP的困扰了,可以进行下面的GPRS模块收发数据测试了。

6.3 GPRS模块和电脑建立的服务器TCP通讯

先用以下指令设置GPRS模块

AT+CGATT=1
AT+CGDCONT=1,"IP","CMNET"
AT+CGACT=1,1

设置好后就可以连接IP通讯了

AT+CIPSTART="TCP","122.228.19.57",30396
AT+CIPSEND

看到> 就可以发送数据了,比如我们发送以下内容

ILoveMCU.taobao.com

然后hex格式下发送 1A,结束发送数据

在连接状态下,可以使用服务器发送数据,GPRS模块能接收到数据,比如发送一个“Server ASK”

GPRS模块会收到

+CIPRCV:10,Server ASK

想断开连接,可以发送以下指令

AT+CIPCLOSE


七 GPS应用(仅适用于A7模块,A6没有该功能)

A7模块 在 A6 的基础上增加了 GPS 功能。
使用说明:增加的 AT 包括

AT+GPS=1                 打开 GPS
AT+GPS=0                 关闭 GPS
AT+AGPS=1                 打开 AGPS
AT+AGPS=0                 关闭 AGPS

打开 GPS/AGPS 后,默认 NEMA 信息从 GPS_TXD 管脚以 9600 的波特率输出,如果要让 NEMA
从 AT 串口输出,可以使用 AT+GPSRD。

AT+GPSRD=0                 关闭 NEMA 从 AT 口输出
AT+GPSRD=N                 NEMA 信息 N 秒从 AT 口输出一次,实际使用将 N 换成数字;

7.1 GPS协议NMEA-0183简介

NMEA 0183是美国国家海洋电子协会(National Marine ElectronicsAssociation)为海用电子设备制定的标准格式。目前业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritimeservices)标准协议。

NMEA-0183协议采用ASCII码来传递GPS定位信息,我们称之为帧。

帧格式形如:$aaccc,ddd,ddd,,ddd*hh(CR)(LF)

1、“$”:帧命令起始位

2、aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc)

3、ddd…ddd:数据

4、“*”:校验和前缀(也可以作为语句数据结束的标志)

5、hh:校验和(check sum),$与*之间所有字符ASCII码的校验和(各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符)

6、(CR)(LF):帧结束,回车和换行符

序号 命令 说明 最大帧长
1 $GPGGA GPS定位信息 72
2 $GPGSA 当前卫星信息 65
3 $GPGSV 可见卫星信息 210
4 $GPRMC 推荐定位信息 70
5 $GPVTG 地面速度信息 34
6 $GPGLL 大地坐标信息
7 $GPZDA 当前时间(UTC)信息

UTC时间即协调世界时,相当于本初子午线(0度经线)上的时间,北京时间比UTC早8个小时。

7.2指令讲解

1$GPGGAGPS定位信息,Global Positioning System Fix Data

$GPGGA语句的基本格式如下(其中M指单位M,hh指校验和,CR和LF代表回车换行,下同):

$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)*hh(CR)(LF)

(1)UTC时间,格式为hhmmss.ss;

(2)纬度,格式为ddmm.mmmmm(度分格式);

(3)纬度半球,N或S(北纬或南纬);

(4)经度,格式为dddmm.mmmmm(度分格式);

(5)经度半球,E或W(东经或西经);

(6)GPS状态,0=未定位,1=非差分定位,2=差分定位;

(7)正在使用的用于定位的卫星数量(00~12)

(8)HDOP水平精确度因子(0.5~99.9)

(9)海拔高度(-9999.9到9999.9米)

(10)大地水准面高度(-9999.9到9999.9米)

(11)差分时间(从最近一次接收到差分信号开始的秒数,非差分定位,此项为空)

(12)差分参考基站标号(0000到1023,首位0也将传送,非差分定位,此项为空)

举例如下:

$GPGGA,023543.00,2308.28715,N,11322.09875,E,1,06,1.49,41.6,M,-5.3,M,,*7D


2$GPGSA(当前卫星信息)

$GPGSA语句的基本格式如下:

$GPGSA,(1),(2),(3),(3),(3),(3),(3),(3),(3),(3),(3),(3),(3),(3),(4),(5),(6)*hh(CR)(LF)

(1) 模式,M = 手动,A = 自动。

(2) 定位类型,1=未定位,2=2D定位,3=3D定位。

(3) 正在用于定位的卫星号(01~32)

(4)  PDOP综合位置精度因子(0.5-99.9)

(5) HDOP水平精度因子1(0.5-99.9)

(6) VDOP垂直精度因子(0.5-99.9)

举例如下:

$GPGSA,A,3,26,02,05,29,15,21,,,,,,,2.45,1.49,1.94*0E

注1:精度因子值越小,则准确度越高。

3$GPGSV(可见卫星数,GPSSatellites in View

$GPGSV语句的基本格式如下:

$GPGSV, (1),(2),(3),(4),(5),(6),(7),...,(4),(5),(6),(7)*hh(CR)(LF)

(1)  GSV语句总数。

(2)  本句GSV的编号。

(3)  可见卫星的总数(00~12,前面的0也将被传输)。

(4)  卫星编号(01~32,前面的0也将被传输)。

(5)  卫星仰角(00~90度,前面的0也将被传输)。

(6)  卫星方位角(000~359度,前面的0也将被传输)

(7)  信噪比(00~99dB,没有跟踪到卫星时为空)。

注:每条GSV语句最多包括四颗卫星的信息,其他卫星的信息将在下一条$GPGSV语句中输出。

举例如下:

$GPGSV,3,1,12,02,39,117,25,04,02,127,,05,40,036,24,08,10,052,*7E

$GPGSV,3,2,12,09,35,133,,10,01,073,,15,72,240,22,18,05,274,*7B

$GPGSV,3,3,12,21,10,316,31,24,16,176,,26,65,035,42,29,46,277,18*7A


4$GPRMC(推荐定位信息,RecommendedMinimum Specific GPS/Transit Data

$GPRMC语句的基本格式如下:

$GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF)

(1) UTC时间,hhmmss(时分秒)

(2) 定位状态,A=有效定位,V=无效定位

(3) 纬度ddmm.mmmmm(度分)

(4) 纬度半球N(北半球)或S(南半球)

(5) 经度dddmm.mmmmm(度分)

(6) 经度半球E(东经)或W(西经)

(7) 地面速率(000.0~999.9节)

(8) 地面航向(000.0~359.9度,以真北方为参考基准)

(9) UTC日期,ddmmyy(日月年)

(10)磁偏角(000.0~180.0度,前导位数不足则补0)

(11) 磁偏角方向,E(东)或W(西)

(12) 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

举例如下:

$GPRMC,023543.00,A,2308.28715,N,11322.09875,E,0.195,,240213,,,A*78


5$GPVTG(地面速度信息,TrackMade Good and Ground Speed

$GPVTG语句的基本格式如下:

$GPVTG,(1),T,(2),M,(3),N,(4),K,(5)*hh(CR)(LF)

(1) 以真北为参考基准的地面航向(000~359度,前面的0也将被传输)

(2)  以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)

(3)  地面速率(000.0~999.9节,前面的0也将被传输)

(4)  地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)

(5)  模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

举例如下:

$GPVTG,,T,,M,0.195,N,0.361,K,A*2A


6$GPGLL(定位地理信息,GeographicPosition

$GPGLL语句的基本格式如下:

$GPGLL,(1),(2),(3),(4),(5),(6),(7)*hh(CR)(LF)

(1)  纬度ddmm.mmmmm(度分)

(2)  纬度半球N(北半球)或S(南半球)

(3)  经度dddmm.mmmmm(度分)

(4)  经度半球E(东经)或W(西经)

(5)  UTC时间:hhmmss(时分秒)

(6)  定位状态,A=有效定位,V=无效定位

(7)  模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

举例如下:

$GPGLL,2308.28715,N,11322.09875,E,023543.00,A,A*6A


7$GPZDA(当前时间信息)

$GPZDA语句的基本格式如下:

$GPZDA,(1),(2),(3),(4),(5),(6)*hh(CR)(LF)

(1)  UTC时间:hhmmss(时分秒)

(2)  日

(3)  月

(4)  年

(5)  本地区域小时(NEO-6M未用到,为00)

(6)  本地区域分钟(NEO-6M未用到,为00)

举例如下:

$GPZDA,082710.00,16,09,2002,00,00*64


NMEA-0183协议命令帧部分就介绍到这里,接下来我们看看NMEA-0183协议的校验,通过前面的介绍,我们知道每一帧最后都有一个hh的校验和,该校验和是通过计算$与*之间所有字符ASCII码的异或运算得到,将得到的结果以ASCII字符表示就是该校验(hh)。

例如语句:$GPZDA,082710.00,16,09,2002,00,00*64,校验和(红色部分参与计算)计算方法为:

0X47xor 0X50xor 0X5Axor 0X44xor 0X41xor 0X2Cxor 0X30xor 0X38xor0X32xor 0X37xor 0X31xor 0X30xor 0X2Exor 0X30xor 0X30xor 0X2Cxor 0X31xor 0X36xor0X2Cxor 0X30xor 0X39xor 0X2Cxor 0X32xor 0X30xor 0X30xor 0X32xor 0X2Cxor 0X30xor0X30xor 0X2Cxor 0X30xor 0X30

得到的结果就是0X64,用ASCII表示就是64。

NMEA-0183协议我们就介绍到这里,了解了该协议,我们就可以编写单片机代码,解析NMEA-0183数据,从而得到GPS定位的各种信息了。

  • 上一篇文章: 几款非常有用的嵌入式开发工具

  • 下一篇文章: Kingcom-G系列AT指令集详解-V1.8-中文
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • 轨道钢承重计算公式及应用[109]

  • 【选型】如何为变频器选取阻值…[82]

  • AIS2023参展厂商名录[343]

  • AGV综合选型[170]

  • APIE 2023第4届亚太国际智能装…[138]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[305]

  • 中国反伪科学运动背后的CIA黑手…[494]

  • [转载]袁隆平真言:中国最大的…[667]

  • 台专家:当年我们造IDF时 大陆…[572]

  • 旅日华人:中国严重误判日本民…[577]

  •  
     相 关 文 章
    没有相关文章

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:410.16毫秒
    Powered by:MyPower Ver3.5