一、文档简介:
本文档用于介绍1B开发板+GSM模块发送彩信的实现过程,以及彩信MMS协议封装过程。
开发环境参数:
操作系统:Ubuntu 11.04
本机平台:X86
目标平台:Loongson 1B 开发板+华为GSM模块MG323
交叉编译工具链:gcc-3.4.6-2f(1B交叉编译工具链)
所需软件及工具包:
1b-linux-3.0内核git版本号:115a0a040ffdaaba5f3afa58cb08625020d3fde8
PPP工具源码包:ppp-2.4.5.tar.gz
二、实现过程
1.实现步骤:
A. 开发板上PPP连接GPRS上网
B. 与移动网关建立TCP-Socket连接
C. 封装MMS-PDU数据包
D. 封装HTTP-POST数据包
E. 发送HTTP报文至移动网关
F. 接收网关回复信息
2.开发板上PPP连接GPRS上网
首先配置kernel使它支持如下PPP选项:
Make menuconfig--->Device Drivers--->Network device support---> |
PPP(point-to-point) support |
接下来编译交叉编译ppp-2.4.5。
编译完成后将./pppd/pppd, ,/chat/chat, ./pppdump/pppdump, ./pppstats/pppstats四个文件拷贝到1B开发板文件系统的/usr/sbin目录下,并将他们的文件属性改为755。
检查/etc/host.conf脚本,确保这一行:order hosts,bind
在1B开发板文件系统/etc/ppp目录下建立如下四个PPP配置文件:
File1:/etc/ppp/peers/gprs |
#/etc/ppp/peers/gprs # Usage: root>pppd call gprs /dev/ttyS0 #改成自己的GSM模块设备号 115200 #改成自己串口波特率 nocrtscts #可能你的串口是需要crtscts,硬件流控的,这是由你的串口决定的,一般嵌入式系统的串口没有带硬件流控,也不需要就加nocrtscts modem #这个参数使得pppd进程将等待模块发回的CD (Carrier Detect)信号,与local真好相反 #noauth debug #把调试信息输出到/var/log/messages,在调试成功后去掉它,以减少垃圾的产生。 nodetach #hide-password usepeerdns #以下的3个参数一般不可少 noipdefault defaultroute user "cmnet" #设置接入的用户名,在chap-secrets或者pap-secets中使用 0.0.0.0:0.0.0.0 #本地和远端的ip都设为0使得接入的isp分配本地的ip地址 ipcp-accept-local #要求peer< |