摘要:设计了基于S3C2410的GPRS无线图像传输系统,系统分为服务器端、客户端及传输通道三部分。其中服务器端完成用AT指令对Modem的控制、INTERNET的接入、数据的发送。客户端软件通过有线或无线接入互联网的方式进行图像数据的接收。传输通道是由GPRS网络和Modem组成的透明通道,负责IP数据报的传送。经实验测试,系统运行稳定。
关键词:ARM;S3C2410;GPRS,无线,图像传输
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)17-4162-03
GPRS(General Packet Radio Service)即通用分组无线业务,是在现有GSM网络上开通的一种新型的数据传输技术,GPRS采用分组交换方式,仅在实际传送和接收数据时才占用无线资源。GPRS的传输速率理论上可高达171.2 kb/s,可以满足图片等较大数据量的业务传输。除此之外,GPRS还具网络覆盖率高、永远在线等优势,为数据传输系统提供一种便捷的无线传输方式。本文将介绍一种利用GPRS传输技术,基于嵌入式系统的图像监控系统[1]。
1 系统硬件设计
1.1 系统总体设计方案
系统的总体设计思想是:实现基于S3C2410的GPRS无线拨号上网功能以及图像的发送和接收功能。首先采用AT指令进行GPRS拨号,拨号成功后,利用Linux的Socket来实现基于UDP协议的网络发送程序。上位机端采用VC开发网络数据的接收端程序。所有功能在PC机上调试成功后采用arm-linux-gcc进行交叉编译,以便移植到S3C2410开发板上进行调试。
1.2 系统硬件电路
该设计主要硬件电路包括S3C2440处理器、外围接口电路、电源及复位电路、GPRS模块等几个部分。系统总体结构如图1所示。
系统硬件平台采用Samsung公司的处理器S3C2410。该处理器内部集成了ARM公司 ARM920T处理器核的32位微控制器,资源丰富,带独立的16KB的指令Cache和16KB数据Cache。在处理器丰富资源的基础上,还进行了相关的配置和扩展,平台配置了16MB 16位的Flash和64MB 32位的SDRAM。交叉编译环境采用的是arm-linux-gcc 3.4.1。
GPRS模块采用WAVECOM公司的Q2406A模块。Q2406A与外部电路的接口由一个60引脚的通用连接器提供。由于嵌入了可选TCP/IP协议栈,直接通过AT指令就能接入Internet,省去了常用的TCP/IP处理模块及编程时调用各种API函数的繁琐。Q2406A模块的功能接口如图2所示。
2 系统软件设计
整个系统的软件部分需要实现AT指令的拨号上网以及图像数据的无线传输。通信过程描述如下:
1)GPRS终端首先初始化GPRS模块,拨号建立物理链路。
2)PPP协商后建立数据链路。
3)此时进入IP数据报通信阶段。给客户端指定服务器的IP地址及端口号,并向服务器端发起UDP连接,连接建立后即可实现GPRS终端登入服务器。
4)数据传输。
5)链路终止和MODEM分离。
发送端流程图如图3所示。
2.1 GPRS无线拨号上网的实现
在Red Hat Linux下拨号可用的方法主要有三种:GNOME下的wvdial、KDE下的kppp、纯脚本的ppp-on。本系统采用脚本的拨号方法实现。脚本拨号的过程可适用于Linux下的所有拨号过程:由pppd程序调用chat会话程序;chat会话程序负责拨号,启动服务器端的pppd程序,验证身份,然后pppd会话程序结束;由pppd程序继续chat会话程序的工作,与服务器端的pppd程序进行握手,建立PPP连接。
Linux下拨号上网具体的实现步骤为:
1)在/etc/ppp/目录下面,新建一个gprs