GPRS 数据传输应用
设置 PPP 场景:AT+CIPCSMP=1,”CMNET”
连接服务器:AT+CIPSTART="TCP",218.246.31.188,2020
OK
CONNECT OK
查询 PPP 状态:AT+CIPSTATUS
8
OK
发送信息到网络服务器:AT+CIPSEND
> hello(^Z)
SEND OK
收到网络服务器的数据:Hello
关闭 TCP 连接:AT+CLOSE
OK
关闭 PPP 连接:AT+CIPSHUT
OK
四、电脑通过内置Modem上网
M55支持电脑或者笔记本用手机的内置Modem连接上网,因为没有红外线,所以电脑和手机的连接只有通过数据线,可以是COM口或者USB口。
1.使用SDS中的Siemens GPRS助手上网,安装很简单,按提示一步一步走即可。
2.另一种简单的通用方法
以windows 98为例,2000和XP的操作类似。
1)、首先到控制面板里安装调制解调器,选择“不检测调制解调器,直接从列表中选择”,下一步,在窗口左边选择标准调制解调器,右边选择标准19200调制解调器,下一步,选择COM口,然后下一步点击完成。
2)、添加拨号连接。到我的电脑中的拨号网络里(如果没有安装拨号网络,请到控制面板—添加删除程序—WINDOWS组件里安装拨号网络),然后选择添加新连接,选择刚才新建的标准19200调制解调器,点击设置设置最快速度为57600,下一步,电话号码中输入*99***1#,下一步完成。
3)、APN的设置,到调制解调器里选高级属性,再附加设置里填入AT+CGDCONT=1,"IP","cmnet";^sgauth=1 然后确定即可。
4)、双击刚才新建的连接就可以通过手机上网了。
PS:有关彩信和电子邮件的配置使用和技巧在下一篇文章详细阐述。
数据中心的IP地址问题有哪几种方式呢?
A:
1、固定IP地址
从系统运行的可靠角度而言,数据中心具有固定IP地址是最好的选择,而且,这对于将来系统增加新的、更强大的功能(比如:无线视频监控)也非常方便,但是,申请固定IP地址需要支付较大的一笔月租费,而且,如果数据采集系统本身规模就不大,这就更不经济了。
2、动态域名解析
也可以通过域名解析解决数据中心的IP地址问题。
用户向ISP(Internet Service Provider)申请一个域名服务,并将此域名配置到GPRS/CDMA DTU中,则每次拨号时,DTU就可以通过域名解析连接到服务器,无须服务器具有固定IP地址了。用户需要向ISP支付域名服务的费用,通常这个费用比申请固定IP地址低得多。但是,采用域名解析,系统的稳定性在很大程度上取决于域名解析服务器的工作状况,而域名服务器通常是由ISP提供的。
3、ADSL拨号,短消息通知IP
客户可以采用价格低廉的ADSL拨号连接Internet,每次拨号连接所获得的IP地址都是动态的,这个IP地址以短消息的方式通知GPRS/CDMA数据采集系统中的每个DTU,DTU接受到短消息后,就以此IP地址进行连接。
采用这种方式就无须支付任何月租费用了。缺点是每次ADSL拨号后,如果要进行数据传输,都需要用短消息通知每个DTU数据中心的IP地址。这种方式特别适用于数据传输不是很频繁、也无须DTU永远在线的情况。
我公司的GPRS/CDMA DTU支持上述的所有方式,客户可以根据实际组网的需要,灵活选择。特别是第三种方式,我公司深入分析了客户的需求,在短消息控制连接上,提供了使用灵活、功能强大的工作方式。比如:短消息启动tcp连接、短消息断开tcp连接、短消息修改密码、短消息修改DTU的ID等等。
3 图像传输系统的软件设计
3.1 设计目的
软件设计目的:通过向GPRS模块发送AT指令,控制移动终端的通信过程,使移动台能借助GPRS提供的网关和路由接入Intemet,并通过TCP/IP网络协议完成与Internet上监控中心传输图像数据的任务。
基于以上要求,设计了通信软件,即GPRS客户端软件和服务器端软件。
3.2 GPRS无线模块通信指令
WISMO 2D模块的软件部分对外提供了控制系统操作的AT指令集,通过接收来自UART的AT指令,解释并执行相应操作,实现无线Modem相应功能。
由于编写的程序过长,只列出进行TCP传输用到的主要AT指令:
AT+CGREG=1;//设置GPRS注册状态
AT+CGATT=l;//GPRS网络附着
AT#APNSERV=“CMNET”;//设置GPRS接入点
AT#APNUN=″″;//身份验证用户名设为空
AT#APNPW=″″;//身份验证密码设为空
AT# ConnectionStart;//连接CPRS网登录Internet,成功返回动态分配的IP地址
AT#TCPSERV=″202.112.135.203″://设置服务器IP地址,即监控中心的IP地址
AT#TCPPORT=″6000″://设置服务器与客户端通信的Socket端口:
AT#otcp;//打开与远程服务器的TCP连接
TCP连接成功后,GPRS模块进入数据传送状态,这时就可通过串口向GPRS模块发送图像数据,模块通过Socket发送到监控中心,监控中心也能向模块发送回应数据。数据传完后控制机向GPRS模块发送终止字符<ETX>,移动终端又回到AT指令接收状态。
3.3 GPRS客户端软件
运行于控制机上的客户端软件具有以下功能:
(1)串口通信,包括AT指令通信和数据文件通信。
(2)显示传输过程计时,用于测试系统的传输速率。
(3)中止GPRS模块TCP协议栈通信。系统传输出错时中止协议栈工作。
Q2406B内嵌TCP协议栈的缓存区有限,若串口写入速率远高于GPRS传输速率,协议栈将会丢失数据。为保证数据传输的可靠性,必须进行流控制。设计中采用了两种流控制方法:数据分包法和硬件握手法。
采用数据分包法的GPRS客户端传输图像文件流程图如图4所示。该方法将图像文件先打成若干个小数据包,逐个写入串口,由GPRS模块发送。监控中心的服务器端接收完一个数据包后返回应答帧,GPRS模块再发下一个数据包。若超时还未返回应答帧,则重发上一个数据包。此法牺牲了一定时间,但很好地保证了图像传输的可靠性。
硬件握手法采用9线串口中的硬件握手信号:RTS/CTS做流控制。系统工作时。控制机使用RTS启动GPRS模块的数据流,GPRS模块用CTS启动和暂停来自控制机的数据流。当缓存区内数据量达到高位时,模块将CTS线置低电平,控制机程序检测到CTS为低后,就停止发送数据,直到协议栈缓存区的数据量低于低位而将CTS置高电平。
此法也可保证写入数据不丢失,而且传输图像文件的耗时低于前种方法。但它不能用于简化的三线串口协议,也不能如前种方法那样检测到GPRS数据传输过程中的丢包现象,通过重发来保证传输过程的可靠性。
3.4 GPRS服务器端软件
GPRS图像传输系统采用多个移动终端都与监控中心服务器连接的方法。服务器采用普通Internet上的主机方式,作为TCP服务器端,具有静态公网IP,开放了侦听端口,可从外部访问,其上运行TCP端口监听程序,接收来自移动台的TCP数据包,并向移动台发送回应数据。采用数据分包法的GPRS服务器端接收图像文件流程如图5所示。该服务器端软件具有以下功能:(1)监听TCP端口;(2)接收数据包,发送接收应答帧;(3)显示接收数据和大小,保存图像文件。
本系统的发送端设计了两种流控制方法,一种从硬件上实现,另一种从软件上实现。前者在网络状况稳定的情况下,传输速度较快。后者可有效保证整个GPRS传输过程的稳定可靠,并能直接用于简化的三线串口协议,当控制机采用嵌入式微处理器时,能方便地与微处理器串口相连,无需串口转换芯片。
使用中国移动提供的普通GPRS业务进行测试,本系统的传输速率可达10kbps,大量测试中未出现丢失数据的情况,整套系统工作稳定可靠。同时也可胜任传输任何形式的文件数据,应用于需要远程传送数据的系统中。
3 建立SOCKET连接的命令
下面对SOCKET通信中要用到的一些AT命令[2]进行说明。
3.1 基本设置
① GPRS ISP 码。
AT+IISP1=*99***1# //全国通用
② 登录用户名。
AT+IUSRN=WAP//GPRS网络登录名
③ 登录密码。
AT+IPWD=WAP// GPRS网络登录密码
④ MODEM 类型。
AT+IMTYP=2 //定义GPRS MODEM
⑤ 初始化命令。
AT+IMIS=“AT+CGDCONT=1,ip,CMNET”
⑥ 域名服务器。
AT+IDNS1=211.136.18.171
//DNS服务器地址,全国通用
⑦ 扩展码(XRC)。
AT+IXRC=0
3.2 SOCKET设置
① 建立一个TCP通信。
AT+ISTCP:218.66.16.173,1024<CR>
建立SOCKET连接,218.66.16.173为应用服务中心计算机端IP地址(实际地址由实际情况决定),1024 为端口号(端口号由中心SOCKET端口监听程序设置决定)。 如果连接成功,LT8030返回I/xxx。xxx为LT8030中本次SOCKET连接的句柄号。中心监听程序会显示连接的终端IP地址。如果连接失败,LT8030返回I/ERROR(xxx)。xxx为错误代码。
② 发送数据。
AT+ISSND%:xxx,<string Length>:<string>
发送数据,xxx为句柄,<string Length>为要发送的字符长度,<string>为要发送的数据。发送成功后,在中心端可看到终端发送的数据。最多一次能够发送5K以下的数据。
③ 查询SOCKET状态。
AT+ISST:xxx<CR>
查询SOCKET状态,xxx为句柄。 LT8030返回I/<SOCKETstat>。如果<SOCKETstat>= 000,表示该端口连接正常;如果<SOCKETstat>≥1,LT8030通过该端口从中心接收存在Buffer 里的字节数;如果<SOCKETstat><0,则SOCKET错误。
④ 接收数据。
AT+ISRCV:xxx<CR>
xxx为句柄。该指令会读取LT8030通过该句柄从中心接收到的,存在Buffer 里的数据;Buffer最大可存储30K的数据。
⑤ 关闭SOCKET通道。
AT+ISCLS:xxx
关闭SOCKET通道,xxx为句柄。
4 程序的设计
根据单片机与GPRS模块通信协议的约定,单片机串行口设为方式1,波特率为9 600 bps,8位UART,1位起始位,1位停止位,无奇偶校验。上电后,首先向GPRS模块发送基本设置命令,即ISP码、用户名及用户密码帧等,其中ISP码必须为“*99***1#”,用户名和用户密码可以任意设置,但不能为空。在使用LT8030 GPRS 上网功能之前,必须正确设置这些参数。参数一旦设置后,即永久保存,以后无需重新再设( 以上设定为LT8030C出厂时的默认参数)。然后向GPRS模块发送SOCKET设置帧,如成功,则点和点通信环境已建立,接着就调用发送数据帧。
开机上电后,程序在主函数中运行,单片机进行初始化。初始化包括设置串口工作方式、波特率,并初始化变量参数和标志位。