找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于GR47和MCU的无线嵌入式Web Server

[复制链接]
admin 发表于 2013-3-20 18:26:16 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
引言
   嵌入式Web Server具有灵活性、前沿性和解决问题的有效性等优点,在网络智能设备中发挥着越来越重要的作用。本文依托GPRS(通用分组无线电业务)网络来实现嵌入式Web Server的方法,实现了远程无线接人嵌入式Web Server。
   嵌入式Web Server是一个简单易用的网络服务器,用户可通过IE访问服务器的IP看到Web页面。嵌入式Web Server的原理是把Web Server作为一个数据载体,Web Server监听用户端的服务请求,根据用户请求类型提供相应的服务,用户端使用Web浏览器和Web服务器进行通信。Web服务器在接收到用户端请求后,处理用户请求并返回需要的数据,一个完整的HTYP服务一般由以下几个阶段组成:客户和服务器建立TCP连接;客户向服务器发送请求;如果请求被接收,则服务器发送应答,在应答中包含状态码和所要的文件;客户和服务器关闭连接。嵌入式Web Serv-er可将本地的信息和数据通过网络传递给远端发出请求的客户,这对远程监控的实现很有意义。
   GPRS是在现有的GSM(全球移动通信系统)网络的基础上增加一些硬件设备和进行软件升级而形成的一个新的网络逻辑实体,它是GSM Phase2+规范实现的内容之一,是基于GSM的移动分组数据业务,支持IP协议和X.25协议。具有永远在线、快速登录、按量计费、切换自如、高速传送、安全可靠等优点。每一个移动台登录GPRS网络后均会被GPRS服务器分配一个IP地址。通过此IP地址和对应端口即可访问位于GPRS网络上的嵌入式Web Server。
   无线嵌入式Web Server在不需布线的情况下可以实现无线互联,并兼有Web的友好界面,实现GPRS在HTTP应用层上通信,方便二次开发和平台移植。
   1无线嵌人式Web Server
   目前中国移动GPRS网络路由分配给移动台的是内部IP,所以只能实现路由内部局域网的访问,即由一台通过GPRS Modem上网的MCU来访问嵌入式Web Server,系统的网络结构图如图1。
    20121107053618350293970.jpg
   1.1 GR47 GPRS模块
   Sony Ericsson公司提供的具有内置YCP/IP协议栈的GR47模块,其功能强大,使用方便,性能稳定,具有良好的技术服务支持,性价比高,向用户提供了标准的AT命令接口和丰富的AT指令集,用户可以很方便地将其集成到各种数据终端之中。它的优势是始终保持在线连接、数据传输快速稳定,具备快速GPRS技术,根据实际测试,掉线概率非常小。
   使用AT命令操作GR47建立和断开一个TCP/IP会话的步骤如下:
   a)定义一个PDP上下文:
   AT+CGDCONT=1,"IP","CMNET"=>OK
   b)激活已定义的PDP上下文:
   AT*E2IPA=1.1=>OK
   c)查询模块和移动GPRS服务器的IP地址:
   AT*E2IPI=0=>*E2IPI:10.165.192.25
   AT*E2IPI=1=>*E2IPI:211.137.64.163
   d)监听80端口,模块处于在线数据状态AT*E2IPL1=80,1,50,1
   e)设置DTR低电平(TTL)并延迟一段时间。置高=>OK,此时模块将返回在线命令状态。
   f)返回在线数据状态:
   ATO=>OK
   g)将DTR线置低,延迟再置高,重新返回到在线命令状态。
   h)返回在线命令状态后断开IP连接:
   AT*E2IPA=0.1=>OK
   AT*E2IPC=>OK
   GR47登录GPRS网络后,使用AT*E2IPL命令设置监听80端口,等待客户端HTTP连接。
   
   1.2嵌入式Web Server的实现
   GPRS模块GR47集成了TCP/IP协议,并且可以通过监听指令得到80端口数据,所以只需在MCU中软件实现HTTP协议,解析HTTP数据后,即可实现HTTP连接。MCU采用TI公司的MSP430F149单片机,它是16位超低功耗、高性能的混合信号处理器,具有处理能力强、运行速度快、资源丰富、开发方便等优点,具有很高的性价比。
   硬件结构框图见图2,Flash存储器用来存储页面和图片等固化资源,MCU与GR47通过串口通信。
    20121107053618397173971.jpg
   1.3客户端访问Web Server的实现
   目前,中国移动GPRS对移动终端分配的是动态局域网IP,以武汉市为例,GR47通过AT指令查询模块和移动GPRS服务器的IP地址为:
   AT*E2IPI=0=>*E2IPI:10.165.192.25
   AT*E2IPI=1=>*E2IPI:211.137.64.163
   模块获得IP后,需通过其他方式来通知客户端(PC或可以连接GPRS的移动设备),以短信或向一台固定IP的PC机通知客户端模块获得的IP,客户端可以通过此IP连接远端的Web Server。
   
   2 HTTP协议解析和软件设计
   2.1 HTTP协议
   HTTP(超文本传输协议)是WWW上的协议。HTTP协议使Web服务器和浏览器可以通过Web交换数据。它是一种请求、响应协议,即服务器等待并响应客户方请求。当用户通过其浏览器访问一个页面时,浏览器发送一个HTTP请求给HTTP服务器,服务器会响应这个请求,将指定的网页传送回去,用户就可以浏览网页。
   HTTP协议不维护与客户方的连接,它使用可靠的TCP连接,通常采用TCP80端口。HTTP非常简单,请求和应答是1行或多行文本,它的结束标志是一个换行符。如果请求成功,信息就沿该连接发送,直至传送完成断开连接。
   客户/服务器传输过程可分为4个基本步骤:浏览器与服务器建立连接;浏览器向服务器请求文档;服务器响应浏览器请求;断开连接。
   
   2.1.1 HTTP报文结构
   HTTP报文包括请求报文和响应报文两种报文类型,其中,请求报文由客户端如浏览器向Web服务器发送,用于请求服务器提供某个类型的服务;而响应报文则是在服务器接到请求报文之后,返回给客户端的消息,表明服务器所作出的响应。
   1)请求报文格式
   请求报文一般包括请求行、首部和实体(有时包含)3部分。其中,请求行包括请求方法、URL(统一资源定位地址)和HTTP协议版本号3部分,其报文格式如图3所示。在请求行中,请求方法是客户端向服务器端发出的命令,URL是所请求网页资源的地址,HTTP版本是指报文所使用的HTTP协议版本号。常用的请求方法有Get和Post两种:Get方法通常只是用于请求服务器上的URL所指定的资源;Post方法用于客户端向服务器端提供信息,所提供的信息位于请求报文的实体部分。
    20121107053618444043972.jpg
   2)响应报文的格式
   响应报文一般包括状态行、首部和实体(有时包含)3部分,其报文格式如图4所示。在响应报文中,状态行定义了响应报文的状态,并由响应状态码和响应状态码说明字段反应。其中,200系列的代码用于指示成功的请求。
    20121107053618490913973.jpg
   HTTP报文中的首部由多个首部行组成,用以在客户端与服务器之间交换一些附加的信息。每个首部行由首部名、冒号、空格和首部值组成,并以回车换行符(\r\n)结尾。首部与实体之间有一空行进行间隔。
   2.1.2 HTTP协议解析
   HTTP协议解析过程分为接收和发送两部分。HTTP协议解析流程图如图5所示。
    20121107053618522163974.jpg
   MCU接收HTTP方法并设定方法标志位,计算URL,然后判断HTTP方法。若HTTP方法为Get,则判断是否存在对应的网页,如果存在,则确定接收HTTP方法并设定方法标志,然后返回;如果不存在对应的网页,直接返回。若HTTP方法为Post,则接收并处理控制数据,然后返回。
   2.2总体软件
   软件采用C430编写,其工作过程为:上电开始;MCU初始化;判断GR47是否在线,若不在线继续等待,若在线就发送模块IP,GR47处于监听80端口状态;判断HTTP是否接入,若未接人GR47,继续处于监听80端口状态,若接入,MCU对HTTP协议解析;GR47发送数据,数据发送完毕,HTTP连接断开。软件总体流程图如图6所示。
    20121107053618584663975.jpg
   3结束语
   随着IPV6的实施,Internet上每个移动台和PC将分配到一个唯一的IP,对通过GPRS、CDMA(码分多址)或其他无线网络技术登录的嵌入式Web Server,Internet上任一移动台或PC都能对其进行访问。无线嵌入式Web Server具有广阔的应用和发展空间。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-22 23:41 , Processed in 0.058672 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表