您当前的位置:五五电子网电子知识通信技术数字通信基于单片机控制GPRS数据传输系统的设计 正文
基于单片机控制GPRS数据传输系统的设计

基于单片机控制GPRS数据传输系统的设计

点击数:7726 次   录入时间:03-04 11:37:43   整理:http://www.55dianzi.com   数字通信

  GPRS(GeneralPACketRadioServICe,通用分组无线业务)是一种基于GSM系统的无线分组交换技术,能提供端到端的、广域的无线IP连接,允许用户在点对点分组转移模式下发送和接收数据,而不需要电路交换模式的网络资源等,从而提供了一种高效、低成本的无线分组数据业务。利用GPRS业务,可以实现用户数据便捷地发送和接收,具有实时性强、建设成本低、数据传输速率高、通信费用低、可实现远程控制等特点。目前,GPRS已经在电力、石油、化工、门禁和自动化领域等使用。本节重点介绍单片机和GPRS模块的接口,其他部分不做介绍。
  
  当前市场上有多种GPRS模块可选用,主要有SIMCOM公司的SIM系列,SIEMENS公司的TC35,BENQ公司的M22等。选择模块时参考因素主要有模块简单易用,稳定性好,最好内嵌TCP/IP协议栈等。
  
  SIM300C是SIMCOM公司推出的一款三频/四频GSM/GPRS模块解决方案,模块内部集成有TCP/IP协议栈,可以方便地利用AT指令控制使用,主要为语音传输、短消息和数据业务提供无线接口。SIM300C模块内部集成了完整的射频电路和GSM的基带处理器,适合于开发一些GSM/GPRS的无线应用产品。
  
  SIM300C模块支持外部SIM卡,模块自动检测和适应SIM卡类型,可直接与3.0V或者1.8VSIM卡相连。

  单片机控制GPRS数据传输的系统结构框图如下图所示,系统以C8051F340单片机为核心,分别与GPRS模块、人机交互接口和其他接口等相连接,下面重点介绍单片机和GPRS模块的接口。


单片机控制GPRS数据传输的系统结构框图

  SIM卡与SIM300C连接的电路如下图所示。

SIM卡与SIM300C连接的电路


  
  为了防止静电损坏SIM卡和SIM300C模块,在SIM卡的引脚上加瞬变电压抑制二极管。  
  
  SIM300C的异步串行通信接口特点如下:
  
  当模块上电后,推荐等待3s—5s的时间然后再发送AT指令,否则未定义的字符会返回。
  
  模块开启自动波特率侦测功能后,原来系统自动产生的字符如:“RDY”,“+CFUN:1”和“+CPIN:READY”不会出现。自动波特率侦测的要求串行口发送的数据为8位,无奇偶校验,1位停止位。

  在本系统中选用的单片机为C8051F340,电源采用3.3V供电,C8051F340的I/O口可直接与SIM300C的串行通信接口相连。其中GPRS模块与单片机间是通过串行口进行通信的,除了串口发送(TXD)、串口接收(RXD)之外,微控制器与GPRS模块之间还有一些硬件握手信号,如DTR、CTS、DCD等。为了简化微控制器的控制,硬件设计时不使用全部的硬件握手信号。参考电路如下图所示。

C8051F340与SIM300C的返信口连接

 



www.55dianzi.com

  SIM300C具有标准的AT指令接口,单片机使用AT指令与模块进行通信,单片机通过串行口发送AT指令,SIM300C接收到指令后,进行相应的操作,然后将操作结果通过串行口返回,模块接收到的数据和单片机要发送的数据等也是通过串行口来完成的。这样单片机的编程主要体现在使用串行口发送和接收数据上。

  1.AT指令简介
  
  GSM模块通信主要是通过AT指令来完成。AT指令集是从终端设备(TerminalEQUIPment,TE)或数据终端设备(DataTernunalEquipment,DTE)向终端适配器(TerminalAdapter,TA)或数据电路终端设备(DataCircuitTerminalEquipment,DCE)发送的。通过TA、TE发送AT指令来控制移动台(MobileStation,MS)的功能,与GSM网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。
  
  AT指令的特点如下。
  
  (1)所有AT指令都以“AT”开始,以“回车”“换行”结束。
  
  (2)命令及参数均为ASCII码。
  
  (3)所有命令不区分大小写。
  
  (4)模块应答格式为<回车><换行><响应><回车><换行>。
  
  所有AT指令可大概分为基本格式,带参数的格式和其他格式的指令。在介绍系统程序设计之前,我们先将主要的AT指令介绍如下,
  
  (1)ATE0:关模块回显输入指令,返回OK表示设置成功。
  
  (2)AT+CMGF=1:设置消息内容为文本模式,返回OK表示设置成功。
  
  (3)AT+CNMI=2,1,0,0,0:设置接收格式,返回OK表示设置成功。
  
  (4)AT+CMGL=“ALL”:读取所有短信,通过这条指令可获取短信号。
  
  (5)AT+CMGD=(短信号):删除某条短信,返回OK表示删除成功。
  
  (6)AT+CMGS=“手机号码”:发送短消息,等模块返回“>”后,可写发送短信内容,用组合键“CTRl+Z”(十六进制为1A)发送。
  
  (7)AT+CMGR=短信号:读取短信内容,该短信号为SIM卡中预读取短信的号码,短信号可从接收短信指令中获取,即“+CMTI:(空格)“SM”,(空格)短信号”指令中的“短信号”。
  
  (8)AT+CIPCSGP=1,“cmnet”:设置GPRS方式,返回OK表示设置成功。
  
  (9)AT+CLPORT=“UDP”,“0000”:设置UDP端口号,返回OK表示设置成功。
  
  (10)AT+CSTT:启动TCP任务,返回OK表示设置成功。
  
  (11)AT+CIICR:激活场景,返回OK表示设置成功。
  
  (12)AT+CIPFSR:获得SERVER的IP地址,通过这条指令可获取设置UDP之后的IP地址。
  
  (13)AT+CIPSTART=“UDP”,“REMOTEIPADDR”,“REMOTEPORT”:注册UDP连接,其中“REMOTEIPADDR”和“REMOTEPORT”可以随便设置一个,成功设置后返回“CONNECTOK”。
  
  (14)AT+CIPCLOSE:注销当前UDP连接。
  
  (15)AT+CIPSEND:向SERVER发送数据,等返回“>”后,可写发送短信内容,用“Ctrl+Z”组合键(十六进制为1A)发送。
  
  从上述指令不难看到,其中第一条用于关闭系统的回显,是初始化的一部分;第二条到的七条(共六条)起到短信的设置、读写、发送等作用;第8条到第14条是GPRS及UDP/IP的设置、连接等方面的指令;而第15条则是通过GPRS的SERVER功能来发送用户数据。

  2.建立GPRS连接的方法
  
  通过GPRS传送数据的双方进行数据传输之前,要先建立连接,建立连接过程如下。
  
  (1)首先,初始化GPRS模块,使其进入正常工作状态,具体步骤如下。
  
  ·关模块回显,关掉模块的回显后,方便单片机串行口对指令和字符的判断。关模块回显的AT指令为:ATE0(回车),成功返回:(回车换行)OK(回车换行)。
  
  ·设置消息内容为文本模式。AT指令为:AT+CMGF=1(回车),成功后返回:(回车换行)OK(回车换行)。
  
  ·设置接收格式。AT指令为:AT+CNMI=2,1,0,0,0(回车),成功后返回:(回车换行)OK(回车换行)。
  
  ·对手机卡中短信进行删除,首先读取内部所有短信,获取短信号;然后删除短信。读取短信AT命令为:AT+CMGR=“ALL”(回车),返回:(回车换行)+CMGL:(空格)短信号,“短信读取状态”,“手机号码”,“时间”,“短信内容”;……。删除短信指令为AT+CMGD=(短信号),成功返回:(回车换行)OK(回车换行)。
  
  (2)然后,再发送相关AT指令,设置SIM300C模块的SERVER功能,具体步骤如下。
  
  ·设置GPRS方式。AT指令为:AT+CIPCSGP=1,“CMNET”(回车),成功返回:(回车换行)OK(回车换行)。
  
  ·  设置TCP端口号。AT指令为:AT+CLPORT=“TCP”,“0000”(回车),设置成功后返回:(回车换行)OK(回车换行)。
  
  ·启动GPRS任务。AT指令为:AT+CSTT(回车),设置成功后返回:(回车换行)OK(回车换行)。
  
  ·激活场景。Al指令为:AT+CIICR(回车),设置成功后返回:(回车换行)OK(回车换行)。
  
  ·获得SERVER的IP地址。AT指令为:AT+CIPFSR(回车),成功返回:(回车换行)OK(回车换行)。
  
  ·注册TCP连接。指令为:AT+CIPSTART=“TCP”,“要连接的IP地址”,“端口号”
  
  (回车),成功后返回“CONNECT OK”。
  
  (3)接着,通过短信服务获得对方IP地址和端口号,具体步骤如下。
  
  ·发送短消息,内容为本地IP地址和端口号,具体格式用户可自定。指令为:AT+CMGS=“手机号码”(回车),等返回“>”(注:这是两个符号,即“>”和“空格”)开始写发送内容(本方IP和端口号),用“Ctrl+Z”组合键(十六进制码为1A)发送,成功返回:(回车换行)+CMGS:短信号(回车换行)(回车换行)OK(回车换行)。注:短信号为本手机发送的短信号,对于本程序没有实际意义。

[1] [2]  下一页


本文关键字:单片机  数字通信通信技术 - 数字通信