这两天写了个arm wince6下的小程序,实现了用arm通过串口控制GPRS模块,使GPRS模块能发短信、打电话、与公网服务器间收发数据。
东西很简单,一些逻辑控制,简单的时序,几个消息传递。网上搜了搜,草草翻阅了电子书,一点点收集得到的信息:
1. GPRS结构:
MS:移动台
BSS:无线基站子系统
SGSN ( Service GPRS Surporting Node ) 服务GPRS节点:记录移动台的当前位置信息,移动分组数据的发送和接收,为服务区内用户提供双向分组路由。和MSC ( 移动业务交换中心 ) 在同一水平。
GGSN (Gataway GPRS Supporting Node) 网关GPRS节点:GPRS和公用数据网间的关口站,协议转换。
GGSN经由IP的GPRS骨干网和SGSN连通。
Gi:GGSN从外网得到IP包,该IP包的目的地址为本地分组数据协议的内容( PDP Context )所标示的某一手机地址,将此数据包送到Gn接口的软件模块。
Gn:首先对数据包做处理的是GTP协议,实现了从GGSN到SGSN的虚拟传输通路,即隧道。隧道的好处在于当MS从一个SGSN移动到另一个SGSN后,只需改变隧道的末端,而不影响IP数据包,即改变对IP数据包是透明的。另外,外网和运营商网络之间不存在路由,只有封装关系,安全。TCPIP网络,承载GTP( GPRS Tunneling Protocol )协议数据包。Gn网络中的IP数据包传送靠一系列路由器和交换机完成,传送的是运营商内网IP;封装在GTP协议内的IP为外网IP。
2. PDP Context
位于SGSN之后( 靠近网络一侧 ),负责数据的传输,IP地址的动态分配。要先建立PDP功能,必备的参数包括手机的IP地址,访问点名称( Access Point Name ),才能发起SGSN到GGSN的数据传输通路。
3. sim300 命令相关
命令是个很直观很明白的东西,无需多说,有几个命令或返回值的含义有疑问,搜集如下。
(1) 返回PDP DEACT:detach from GPRS network。无法激活,应该看看天线是否接牢固或者是否有短线的地方。
(2) CIPCLOSE和CIPSHUT的区别。
关闭TCP连接:AT+CIPCLOSE在关闭IP层连接,移动场景还在,下次连接时本地IP不变。
关闭移动场景:AT+CIPSHUT关闭移动场景,但下次连接时本地IP不同。
断线检测:
当SERVER端关闭TCP连接,或网络异常的时候,模块会返回CLOSED信息,提示连接已经关闭。
TCP连接传输数据只是一个基本的功能,在此基础之上的无线上网功能,涉及到PPP的一些东西,先记录如下。
http://blog.csdn.net/CodeJoker/archive/2009/06/25/4296734.aspx
-----------------------
每做完一块小东西,都有类似的感慨:我像站在广袤的荒原之上,极目远眺,苍茫夕阳之下尽是从未踏足的蛮荒之地。何时才能淌下所有的汗水,把它变成水草丰美足以闲庭信步的人间天堂。