概述

此次我使用的GSM是基于SIM900A芯片的通信模块,其功能和800A兼容(800系列是900系列的升级款)可以实现打电话,发短信,和服务器发送指令等功能。接下来将从GSM的工作原理及通过USB与电脑连接,通过上位机发送AT指令测试发英文短信来为大家介绍这个模块。
1.GSM的工作原理
GSM系统的组成
GSM系统(Global System for Mobile Communication)又称全球移动通信系统(全球通)。GSM通信系统主要由移动交换子系统(MSS)、基站子系统(BSS)和移动台(MS)三大部分组成,如图所示。其中MSS与BSS之间的接口为A接口,BSS与MS之间的接口为Um接口。GSM规范对系统的A接口和Um接口都有明确的规定,也就是说,A接口和Um接口是开放的接口。
(4)-1.移动交换子系统MSS完成信息交换、用户信息管理、呼叫接续、号码管理等功能。
(4)-2.基站子系统BSS
BSS系统是在一定的无线覆盖区中由MSC控制,与MS进行通信的系统设备,完成信道的分配、用户的接入和寻呼、信息的传送等功能。
(4)-3.移动台MS
MS是GSM系统的移动用户设备,它由两部分组成,移动终端和客户识别卡(SIM卡)。移动终端就是“机”,它可完成话音编码、信道编码、信息加密、信息的调制和解调、信息发射和接收。SIM卡就是“人”,它类似于我们现在所用的IC卡,因此也称作智能卡,存有认证客户身份所需的所有信息,并能执行一些与安全保密有关的重要信息,以防止非法客户进入网路。SIM卡还存储与网路和客户有关的管理数据,只有插入SIM卡后移动终端才能接入进网。
(4)-4.操作维护子系统OMC
GSM子系统还包括操作维护子系统(OMC),对整个GSM网络进行管理和监控。通过它实现对GSM网内各种部件功能的监视、状态报告、故障诊断等功能。

一、GSM直接和电脑上位机进行通信测试

模块需要通过TTL 接口或是 RS232 接口来与电脑上位机进行通信,电脑端通过发送AT指令来控制GSM模块,另外需要注意的是无论是232还是USB转TTL都需要安装串口驱动,实际中所有的 USB 设备都是需要驱动的,不同的系统所需的驱动也是不同。

如果找到对应的 COM 口后就可以用串口助手一类的软件来测试这个 USB 设备与驱动是否 OK。方法是将 USB 设备的转换成的 TTL 接口或是 RS232 接口的收发用线连在一起,例如:将 USB–TTL 设备的 TTL 端的 TXD 与 RXD 用线连在一起,或是将 USB–232 串口线的 RS232 端的 2 3 针(接线端里面有标注 2 3 针对应的位置)连在一起。然后将串口助手页面配置完毕(包括选择对应的 COM 口和打开串口助手),然后发送任何数据,然后看是否能同样接受到您发送的数据。如果发什么数据能接到什么数据就说明 USB 设备+驱动就是 OK 的,这样才可以继续对 SIM900A 模块进行测试;如果发的数据缺收不到或是接受不正确,那么就要重新检查你的 USB 设备和驱动。直到此方法测试通过后,才可以对SIM900A 模块进行以下测试。

假设 USB 设备已经通过测试,那么就可以用 USB 设备对 SIM900A 模块进行测试了。

USB–TTL 模块与 SIM900A 模块的硬件连接为:(很重要)。

USB–TTL 模块 TTL 端的 TXD-----SIM900A 的 TTL 电平接口的 RXD。

USB–TTL 模块 TTL 端的 RXD-----SIM900A 的 TTL 电平接口的 TXD。

USB–TTL 模块的 GND-----SIM900A 的 GND。

附一张图:

android通信 gsm模块 gsm模块简介_串口


USB–232 模块与 SIM900A 模块的硬件连接为:(此接法只适用 V3 系列

SIM900A 模块,因为此系列模块上带有一组 RS232 接口,RS232 端口简化成 3 根

针,即:PCRXD PCTXD GND)

USB–232 模块 232 端的发送-----SIM900A 的 232 电平接口的接收

USB–232 模块 232 端的接受-----SIM900A 的 232 电平接口的发送

USB–232 模块的 GND-----SIM900A 的 GND

此外还需要给 SIM900A 模块供电。

另附一张图:

android通信 gsm模块 gsm模块简介_上位机_02


接下来就可以通过上位机检测模块启动后发送指令了。

这里需要注意的是,电脑USB接口所输出的电源必须在1A及以上,SIM900A所需的电源一般在5V 1A-2A左右,这也要求了USB接口尽量是3.0口及以上才能真正满足,硬件连接OK 了,就可以将电源接入到模块的电源接口。此时模块上的两个指示灯开始工作。此时可以通过观察 D5 和 D6 的工作状态来大致判断模块的工作状态。接下来我们打开串口调试助手,选择好串口号及波特率后就可以发送AT指令了:

二、指令的发送

发送 AT 这条指令,SIM900A 模块返回 OK,说明此条指令执行正确,同时说明:电脑和模块通信正常。发送 AT+CSQ 查询信号强度指令。模块返回如下图所示,其中 19 为信号强度值,此值在 0—31 之间,越大代表信号越强。0 代表无信号,一般此数要达到 10 以上,模块才能正确执行发短信等功能,附图一张:

android通信 gsm模块 gsm模块简介_串口_03


接下来,我们可以通过查询官方的AT指令中文手册,获取相应的指令才测试发英文短信:

android通信 gsm模块 gsm模块简介_串口_04


因为我发送了一条向 10086 查询手机余额的指令。10086 收短信后会向我的手机卡发送一条或几条短信。下图是模块收到一条短信的提示,通过提示我们可以知道此条短信存储位置为 1 。然后我们发送一条读取短信命令 AT+CMGR=1,就可以将短信读取出来。可以看到模块返回的数据中有 REC UNREAD,说明此条短信为未读短信,后面的 10086 是短信发送者的号码,后面跟着日期和时间,最后面的数据是短信的内容。附图一张:

android通信 gsm模块 gsm模块简介_数据_05


接下来我们通过我们可以用汉字和 UNICODE 编 码 工 具 来 查 看 短 信 内 容 。以上便是GSM模块与电脑直接通信测试发送英文短信的内容。