0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

牵手一起梦 来源:网络整理 作者:佚名 2020-01-16 10:14 次阅读

通过以太网进行传输已经成为一种经济、有效的数据传输方式。越来越多的工业测控设备需要配置网络接入功能,不仅需要通过以太网来实现各类设备间数据的传输,而且需要通过浏览器来实现人与设备的交互,从而对设备进行远程监测、远程控制、远程维护和管理。内嵌于设备的Web服务器可以提供统一的基于浏览器方式的操作和控制界面,界面直观易操作,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用,提高了现场监测和控制设备的管理水平。

1、关键器件的选择

要实现Web服务器功能,需要一个可实现的TCP/IP协议栈,同时还需要一款与以太网的速度相匹配的高性能处理器。

W3150A+芯片是一款TCP/IP硬协议栈芯片,为高速的Internet连接提供了一种简易、低成本的解决方案。W3150A+芯片包含TCP、UDP、ICMP、IPv4、ARP和PPPoE等协议,内部有用来收发数据的内存空间16 KB;它提供了3种接口——直接的、间接的和SPI,同时可支持4个独立的SOCKET,每个SOCKET具有2 KB的缓冲区。

LPC2292微控制器是一款由PHILIPS公司设计的基于ARM7TTDMI-S核的16/32位RISC处理器,可实现最大为60 MHz的CPU操作频率,内部具有16 KB的RAM,128/256 KB片内FLASH程序存储器,具有可配置的外部8/16/32位总线,可进行外部RAM扩展。

2、嵌入式Web服务器硬件设计

系统硬件结构框图如图1所示。图中仅给出了与Web服务器相关的部分,电源、键盘等电路省略。

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

系统选择频率为12 MHz的晶振,设定LPC2292内部PLL为4倍频的工作频率,设定数据总线为16位与RAM进行接口,RAM选用2片IS61LV51216,为512K×16位的RAM。LPC2292通过8位数据总线对芯片W3150A+进行读写,芯片W3150A+通过MII(Media Independent Interface)接口连接到RTL8201。

当网络上数据到达芯片RTL8201时,通过MII接口到达芯片W3150A+。芯片W3150A+自动完成TCP/IP协议转换,把数据接收到它的硬件缓冲区,并产生中断通知LPC2292来读取硬件缓冲区数据,至此便完成1包网络数据的接收。

当通过网络发出1包数据时,LPC2292将RAM中准备好的数据写入W3150A+硬件发送缓冲区,通过发送指令,W3150A+通过MII接口发送到RTL201上,完成数据的发送。发送完成后产生中断,通知LPC2292发送完毕。

3、嵌入式Web服务器软件设计

实现原理:首先要实现W3150+芯片TCP/IP驱动接口,在建立TCP连接时装置作为TCPServer端,端口使用80,然后,在此基础上采用HTTP协议,在HTTP协议基础上采用HTML语言实现所要描述的网页功能。应用时通过浏览器与Web服务器建立的TCP连接进行信息解析、交互,以实现从网页上进行参数的配置、修改、程序在线升级与重新启动等。

由于系统应用中关于Web的应用不是很复杂,故在本设计中未采用文件系统,所有网页的数据都保存在RAM中。大约分配20 KB的RAM,通过重复利用此空间即可完成网页的浏览与配置等操作。

具体实现内容:TCP/IP的驱动接口实现;HTTP协议的实现;HTML语言的网页设计;Web服务器的应用层实现;权限管理。

3.1TCP/IP的驱动接口的实现

驱动接口主要有:

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

其函数原型及代码实现可参考芯片W3150A+的数据手册。

3.2 HTTP协议的简介与实现

(1) HTTP协议简介

①HTTP请求:

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

其中,GET/HTTP信息最为关键,此即为HTTP请求信息。

②HTTP应答:

当装置收到请求报文后就进行应答,一般都处理为正确应答。类似报文如下:

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

此报文表示:应答正确,内容类型为html语言,报文长度为23 056,正文就是网页内容。

③浏览器POST:

用于浏览器客户端与Web服务器的信息交互。类似报文如下:

其中,IPladdr=192.100.20.50&IP2addr=192.100.1.200&…为POST提交的表单正文。解析时,“IPladdr”为变量名,“=192.100.20.50”为变量值,“&”为变量分割符。据此可以得到从浏览器上输入的参数值。

(2)HTTP协议的实现

根据HTTP报文的特点,即HTTP请求、POST提交表单参数、HTTP应答等,提供解析函数:

bool HttpStringParse(uchaI*recvBuff);

对接收到的数据缓冲区recvBuff进行解析,以得知是HTTP请求还是POST提交参数,然后根据情况进行HTTP应答。

提交的表单参数解析则根据分隔符&对变量及变量值进行处理。

Web服务器在响应某浏览器的请求后应及时关闭其TCP连接,以便其他浏览器能够访问此Web服务器。

为了编程方便,提供以下宏定义供参考:

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

其中:

HTTP_ACK_HEAD为Web服务器收到HTTP请求时进行响应的正确应答头。

HTTP_ACK_CONT_TYPE为通知浏览器Web服务器的应答报文格式为HTML格式。

HTTP_ACK_CONT_LEN为Web服务器的报文长度。此长度必须与正文长度保持一致。

HTTP_ACK_CONNECT用于Web服务器在响应某浏览器的请求后关闭其TCP连接。

3.3 HTML语言编写网页

由于未采用文件系统,系统的网页内容也不多,因此可以开辟1片RAM区,根据应用需要适当分配Web缓冲区。本应用中分配了20K WebBuf[]。

网页的内容以字符串的形式保存在WebBuf[]中,在需要响应时,按HTTP协议输出RAM内容。

HTML语言教程,可参考Internet网上资料

由于没有文件系统,所有网页都是以数据(字符数组)的形式存放在RAM中的。当有超链接请求时,再重新生成响应数据同时刷新WebBuf[]。

这里提供一个简单的函数以实现html语言的编辑功能,供参考。

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

此函数实际上是利用sprintf()把html语言写的字符串存入RAM缓冲区WebBuf[],并得到数据正文的长度。以同样方法,将html语言网页中的其他内容全部利用sprintf()函数写入WebBuf[]缓冲区。

3.4 Web服务器的应用层实现

本应用中使用μC/OS-II操作系统,建立一个任务taskWebServer()来实现相关Web的应用,负责管理Web相关处理事务,如浏览器的访问请求、浏览器的参数提交等。

流程如图2所示,任务taskWebServer()等待接收到报文事件的触发,未接收到浏览器请求时处于挂起状态。当taskWebServer()收到HTTP请求后进行报文解析,成功解析后根据报文类型进行相应的处理。输出网页时,先进行应答头的处理,然后紧跟着的是Web正文数据,此正文数据由HTML语言构成。在处理完成后对Flag标志复位,使任务taskWebServer()重新处于挂起状态,等待下一次浏览器请求或提交参数处。

利用W3150A+芯片和LPC2292微控制器实现嵌入式Web服务器的设计

3.5权限管理

在应用中往往需要对访问或参数的设置进行权限管理。提供密码机制是最简单有效的手段。可以在代码中加入JavaScript脚本。

用一些较简单的JavaScript脚本实现一些控制功能。此方面可参考一些相关资料。

4系统的扩展设计及延伸

当使用软协议栈实现TCP/IP方式时,对嵌入式处理器提出了更高的要求。对于8/16位单片机,由于其所具有的资源和处理能力有限,不能保证最基本功能的TCP/IP协议栈和嵌入式操作系统的有效运行。

选用W3150A+芯片来实现TCP/IP协议栈,可以大大降低主控微处理器在处理TCP/IP软协议栈时的CPU消耗,以充分发挥微处理器对其他相关应用的处理能力。即使采用普通的单片机,也可满足一般的应用需求。

当整个系统应用不复杂时也可不采用嵌入式操作系统,以简化软件架构和缩短软件的开发周期。

4、结语

基于芯片W3150A+实现的Web服务器功能,缩短了软件的开发周期并降低了TCP/IP的实现难度。嵌入式操作系统和高性能的ARM处理器相配合,充分发挥了系统的各方面性能。

对于一些不复杂的Web应用,不采用文件系统而采用RAM缓冲区的方法可以很好地实现Web服务器功能。在PC电脑上,通过在IE浏览器的地址栏中输入装置的IP地址,可以访问该装置,显示其运行参数、软件版本,并进行参数的配置或一些必要的说明,等等。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147668
  • 芯片
    +关注

    关注

    447

    文章

    47821

    浏览量

    409207
  • 嵌入式
    +关注

    关注

    4983

    文章

    18295

    浏览量

    288609
收藏 人收藏

    评论

    相关推荐

    基于LPC2292 和DS18B20 的测温节点设计The Des ign of Temperature measure node B

    基于LPC2292 和DS18B20 的测温节点设计 摘要:本文介绍了一种基于LPC2292 和数字温度传感DS18B20 的测温节点的软硬件
    发表于 10-19 14:52

    怎么利用LPC2292嵌入式微处理器设计监护系统?

    如何利用LPC2292嵌入式微处理器设计监护系统?
    发表于 07-31 06:10

    基于Android的嵌入式Web服务器该怎么设计?

    只要在嵌入式设备中集成了Web服务器,就能实现用户与嵌入式设备低成本、高通用性的信息交流,即客户端利用
    发表于 09-04 06:46

    微控制器LPC2292资料推荐

    微控制器LPC2292资料下载内容主要介绍了:LPC2292功能和特性LPC2292引脚功能LPC2292内部方框图
    发表于 03-31 07:40

    怎样去设计嵌入式WEB服务器

    怎样去设计嵌入式WEB服务器?怎样去设计嵌入式WEB服务器的软件?
    发表于 04-27 07:10

    请问怎样去设计一种嵌入式Web服务器

    本文介绍一种基于W3150A+嵌入式Web服务器设计。
    发表于 06-03 06:18

    如何去构筑可现场控制嵌入式Web服务器

    什么是SX52控制器?如何利用现有软件虚拟模拟高效构筑可现场控制嵌入式Web服务器
    发表于 06-04 06:55

    怎么实现基于嵌入式WEB的视频服务器的设计?

    嵌入式WEB的网络视频监控系统的主要原理是什么?怎么实现基于嵌入式WEB的视频服务器的设计?
    发表于 06-07 06:21

    嵌入式Web服务器为什么不使用jetty

    嵌入式Web服务器不使用jetty,太麻烦了。配置也不熟悉。代码嵌入式Tomcat示例参考资料嵌入式Tomcat示例
    发表于 10-28 09:05

    基于ARM和Linux的嵌入式Web服务器的构建及应用

    摘要:本文主要研究了基于ARM和Linux的嵌入式Web服务器的构建及应用.随着互联网的飞速发展,越来越多的信息化产品需要接入互联网并通过Web页面进行远程访问和
    发表于 11-05 06:07

    如何实现嵌入式Web服务器的设计?

    和交互性成为嵌入式系统网络化过程的必然选择.带有Web接入能力的嵌入式设备将会得到飞速的发展,应用在信息家电,通信设备,仪器仪表,远程管理等各个领域中.嵌入式
    发表于 11-09 06:44

    如何实现嵌入式WEB服务器系统的控制设计

    简单设计。本设计利用ARM 自带的WEB服务器技术,来实现嵌入式WEB
    发表于 11-09 08:47

    嵌入式Web服务器的设计与实现

    摘要:嵌入式Web服务器嵌入式系统应用的一个重要组成部分.以其简单,廉价,功能完善和通用性强等特点,在远程监控,智能家电和资源共享等多种场合得到广泛应用.本文以
    发表于 11-09 08:41

    基于LPC2292的汽车智能组合仪表

    介绍了一种汽车智能组合仪表的设计, 讨论了汽车智能仪表的结构和功能, 分析了系统的软件设计。该仪表以基于ARM7 的微控制器LPC2292 微控制器控制核心, 采用源代码开放的
    发表于 06-02 15:04 65次下载
    基于<b class='flag-5'>LPC2292</b>的汽车智能组合仪表

    LPC2292微控制器的PCB原理图免费下载

    本文档的主要内容详细介绍的是LPC2292微控制器的PCB原理图免费下载。
    发表于 10-21 11:19 15次下载
    <b class='flag-5'>LPC2292</b><b class='flag-5'>微控制器</b>的PCB原理图免费下载