单片机控制GPS/GSM原理(虚拟串口)
1 硬件电路及工作原理
GSM模块采用WAVECOM公司推出的wism02c,支持AT指令。单片机采用AT89C51。
GSM模块数据线是专为连接PC机9针串口而设计的,①信号电平为标准的RS232电平, 只要单片机的串口也转换为RS232电平,就可直接连接。②9针串口的引脚定义是固定的, 即2脚为TXD(GSM模块发送)、3脚为RXD(GSM模块接收)、5脚为GND。这样直接连接这几个线也 可以。单片机输出的是TTL电平,即0~+5v的电压,而RS232输出的是-20V~20V的电压。所 以不能直接连接,需要一个电压转换芯片MAX232。如图1所示。
单片机利用AT指令控制GSM模块,将数据传送出去。AT指令按照GSM模块支持的AT指令 格式书写,通过单片机的串口发送出去。
740)this.width=740" border=undefined zoom_img(event,this)">
2 SMS
短消息(Short Message ,SM)是GSM网络系统的主要增值业务之一,短消息接收和发送的 业务代码分别为T21和T22。申请了短消息服务的用户,在手机上设置短消息中心号码后即可 发送短消息,接收短消息无需任何设置。一条短消息的最大长度可为160个英文字符(7位编 码)或70个汉字(16位编码)。短消息是通过控制信道传输的,不占业务信道,在通话的同时 也可以接收短消息。
按短消息发送的方式可分为:块模式(Block Mode)、文本模式(Text Mode)和pdu 模式。
2.1 块模式(BLOCK Mode)
块模式是一个二进制协议,用于移动台和SMSC之间的 短消息传输的PDU(Protocol Description Unit)封装。
2.2 文本模式(TEXT Mode)
文本模式是在为GSM修改的AT指令集的基础上定义的基于字符的 协议。适合非智能终端或终端仿真器。应用软件把纯文本消息传给GSM模块,由GSM模块来构 造TPDU(Transfer Protocol Data Unit ,传输协议数据单元)。文本模式提供的功能比块 模式和PDU模式提供的功能少。在文本模式下,短消息对扩展字符的能力是有限的。
2.3 PDU模式(PDU Mode)
PDU模式和文本模式很相似,主要的区别是它将组装短消息的任务 留给应用系统完成。该模式使AT指令集能方便地组构更多复杂的PDU,例如既可以传递二进 制数据又可以传送字符数据。这种模式给AT指令集带来了方便。
本系统可发送文本模式和pdu模式的短消息。
3 AT指令
AT命令集是从TE(Terminal Equipment,终端设备)或DTE(Data Terminal .Equipmen t,数据终端设备)向TA(Terminal Adapter,终端适配器 )或DCE(Data Circuit Termin ating Equipment)发送的。通过TA、TE发送AT 命令来控制MS(Mobile Station,移动基 站)的功能与GSM网络业务进行交互[5]。短消息相关的主要AT指令有[6]:
* AT+CMGF:选择短消息信息格式:0-PDU;1-文本
* AT+CMGS:发送短消息
* AT+CMGD:删除SIM卡内存的短消息
* AT+CMGR:读短消息
以下是发送AT指令的步骤(发送的数据都应该采用ASCII码):
3.1 选择短消息格式
AT+CMGF=1
1为选择text mode;0为选择PDU mode;
3.2 以文本模式发送短消息
AT+CMGS=<手机号码>
例如:对方号码是13947178096,消息内容是:123
则AT指令串是:A,T,+,C,M,G,S,=,0X22,0X31,0X33,0X39,0X34,0X37 ,0X31,0X37,0X38,
0X30,0X39,0X36,0X22,0X0D,0X0A,0x31,0x32,0x33,0x1a
3.3 以pdu模式发送短消息
SMSC(短信中心)号码是+8613800471500,对方号码是13947178096,消息内容是:“ 水位”。则手机发送的PDU串是08 91 68 31 08 40 17 05 F0 11 00 0D 91 68 31 49 17 87 90 F6 00 08 00 06 6C344F4D。
4 软件仿真
4.1 keil c 与proteus的连接[4]
①检测TCP/IP(该协议一般没有问题,只要网络连接正确即可)。
②复制Proteus安装目录下MODELS文件夹里的vdm51.dll到keil c/c51/BIN目录下。
③修改Keil/c51/TOOLS中[c51]的内容,添加:TDRV4=BIN\ VDM51.DLL(“PROTEUS VSM MO NITOR 51 DRIVER”)。
④在keil c中选择proteus仿真器。
⑤在proteus中选择Debug下的Use Remote Debug Monitor。
4.2 单片机串口通信
单片机晶振频率为11.0592MHz,选择串行模式1,所以波特率为9600Kbit/s[7]。单片机 采用查询的方式发送数据,如果AT指令格式正确,GSM模块返回应答信息给单片机。将程序 绕录到单片机之前,可以利用超级终端和GSM模块的通信确定AT指令的格式。
4.3 发送短信仿真图
图3为用文本模式发送内容“123”到手机号码13947178096的仿真图。
图4为用pdu模式发送短信“水位”到手机号码13947178096的仿真图。
740)this.width=740" border=undefined zoom_img(event,this)">
单片机控制GPSGSM虚拟串 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
