基于STM32F103RB微处理器和W5100芯片实现嵌入式Web服务器的设计

发布者:SereneSoul55最新更新时间:2024-06-17 来源: elecfans关键字:STM32F103RB  微处理器  嵌入式Web服务器 手机看文章 扫描二维码
随时随地手机看文章

目前,网络化控制己成为远程控制的主要研究方向,利用网络实现对局域乃至全球范围内设备的监控是工业控制系统的发展趋势。嵌入式 Internet远程监控技术作为网络化控制的代表,它解决了工业控制领域中异构网络互联问题,提高了传统装备的智能化水平,促进了传统产业结构的调整。嵌入式Web服务器尤其适用于嵌入式Internet应用,它通过Ethernet或Modem的连接可以轻松连接到任何网络,真正实现对设备的远程管理和控制。


实现方案

嵌入式Web服务器必须具备的基本功能包括:可控制与其连接的设备并获取设备的状态和数据;现场信息可以网页形式发布;可及时响应远程用户的控制命令。此外,嵌入式设备应具有功能简单、功耗低和便携等特点。为此,设计的系统如图1所示。

o4YBAGB9RduAHDF_AABRqsZdEhw057.png

本系统采用了ST公司的Cortex-M3内核的STM32微处理器STM32F103RB。该芯片属于STM32系列的增强型,提供多达 128KB的片内Flah、20KB的RAM和丰富的外设接口。Cortex-M3内核在设计上专门考虑了满足集功耗低、实时性强的工业级嵌入式产品领域的特点。在性能相同的条件下,STM32产品功耗比同级别产品要低75%,工作环境温度达105℃。因为集成度很高,除一个电源外,LQFP100封装芯片的最小系统只需要外接7个电容即可。

TCP/IP协议栈由W5100来支持,它集TCP/IP协议栈、以太网MAC和PHY为一体,其内部16KB的发送/接收缓冲区可快速进行数据交换,最大通信速率达到25Mbps;内嵌10BaseT/100BaseTX以太网物理层,支持自动应答;提供多种总线接口方式,可以很方便地与各种 MCU连接,简化了硬件电路设计,使嵌入式系统在没有操作系统的支持下,真正实现单芯片接入因特网的理想。

为减少PCB板面积和布线复杂性,考虑到系统的数据传输率要求不高,选择SPI接口作为STM32F103RB和W5100的连接方式。STM32F103RB、W5100和RJ45接口构成一个典型的嵌入式Web服务器。

作为一个应用实例,本设计利用STM32F103RB的片上ADC和GPIO,将服务器与LED和压力传感器相连,一旦服务器接收到来自浏览器端的连接请求,服务器将及时响应,将当前的压力参数、LED状态和温度等信息嵌入到Web页面并发布到网上,这样现场的各种信息就呈现在浏览器。此外,用户通过网页上的控制按钮可以远程控制LED状态,操作结果能及时反馈在网页上。

硬件设计

图2为嵌入式Web服务器的简化电路图,主要显示了构成服务器的三个核心器件的连接方式。RJ45接口是带有网络变压器的物理层接口。在W5100中,通过将SEN引脚经10KΩ电阻上拉到高电平以使能其处于SPI从模式。CS为片选,MISO和MOSI为两条数据传输线。W5100的SPI工作时钟由处于主模式的 STM32F103RB提供。为方便STM32F103RB判断W5100的工作状态,必须将W5100的中断引脚INT与STM32F103RB的外部中断线相连接。W5100的第5、6、8和9引脚是PHY信号线,用于与RJ45接口相连接。除电源相关引脚外,W5100的其它引脚可以选择置空。

pIYBAGB9ReWABLMMAACuwEdUN2Q091.png

软件设计

主程序

主程序流程图如图3所示。

pIYBAGB9RfGAFgyOAABeLQPztYU739.png

当程序开始启动时,程序首先初始化STM32和W5100,配置STM32工作在SPI主模式,而W5100工作在从模式,启动STM32的A/D和片上的温度传感器,配置W5100工作于TCP服务器模式,在TCP服务器模式下,端口的状态转换如图4所示。在使用内部温度传感器时要注意:温度传感器在从调电模式唤醒后到它能以正常水平输出采样电压前有一段建立时间;ADC唤醒后同样需要一段建立时间,为使延迟最小,ADON位(用于启动A/D转换)和TSVREFE位(用于将温度传感器从调电模式中唤醒)应该同时置位。另外,对温度传感器的采样时间要大于2.2μs。

pIYBAGB9RfyAUBgxAACfOQYvoYw635.png

接下来是一个无限循环体,程序开始不断检查外部中断状态标志(WInterFlag)和Socket接收数据状态标志(SockRecvFlag)是否改变,同时开始处理A/D转换的数据,以保证服务器在产生网页时能得到当前的各种数据。

一旦W5100的Socket端口有中断事件产生时,W5100将通过其中断引脚INT触发STM32的外部中断,使STM32进入外部中断处理函数改变WInterFlag,程序接着进入处理W5100中断事件函数,在此函数中,STM32通过访问W5100的中断寄存器(IR)和端口0中断寄存器(S0_IR)判断出W5100的端口0产生何种中断事件,若Socket接收到数据,则改变SockRecvFlag。

程序检测到SockRecvFlag发生改变,立即进入处理接收数据函数。处理接收数据函数是整个程序的核心,它主要负责收发数据、解析HTTP协议和响应用户的不同请求。图5为该过程的程序流程图。

数据处理程序

HTTP协议是一种请求/响应协议。在基于HTTP的客户/服务器数据交换时,当HTTP请求产生时,就开始一次HTTP通信。过程如下:浏览器提取出URL中的主机后,向DNS发出请求,解析主机名的IP地址;DNS解析地址并将结果返回给浏览器;浏览器向该地址请求建立TCP连接;浏览器发出请求报文;服务器向浏览器发送响应报文,并将指定数据发送给浏览器;断开连接。

根据HTTP协议规定,如果客户端没有发出请求,则服务器不会自动发送页面。因此通过在网页程序中加入标记,使浏览器在无用户干预下周期性地刷新页面,从而保证用户及时地获得远程现场的信息。

HTTP消息包括一个起始行、零个或多个消息头域、一个标示头域结束的实体行和一个可能存在的消息体。本程序主要解析消息的起始行,而忽略其它内容,这种处理思路也符合嵌入式系统硬件对软件实现的复杂度要求。请求方法决定了对请求URI所指定的资源进行操作的方式,GET方法读取URL指定的资源,一般用来向服务器传输少量且透明的数据,数据总量被限制在255个字符以内,而POST方法可传输大量数据,与HTML的表单特性相配合以实现远程动态交互控制。

当连接开始时,客户端发送GET方法请求给服务器,以访问服务器网页,为限定特定用户访问,增加数据安全性,在网页中加入基本认证机制。当客户端请求受基本认证机制保护的网页时,服务器即要求用户认证,服务器端对用户的登陆信息按Base64码解码,只有认证成功,浏览器才能获得正确的网页数据。正确的控制网页如图6所示,若用户信息有误,服务器返回以状态码401为起始行的响应消息。

o4YBAGB9RgOAekRcAAC_O-FCZGQ406.png

由于服务器端检测的数据处在不停的变化之中,为使网页的数据也能及时地更新,网页程序初始化时,要显示的数据都使用字符串标记暂时表示,在每次发送响应消息到端口前,再将网页中定义字符串标记用当前设备的实际值替换。

对LED的控制,网页程序采用HTML语言的表单,HTTP协议请求方法采用POST。POST作为请求方法时,首先和Web服务器建立连接,成功后浏览器将HTML表单中的值发送给Web服务器。这种方式没有字符长度的限制,表单数据是作为附加的文档发送而不是作为URL的一部分发送。服务器程序通过判断客户的不同控制命令即时做出LED灯的开关响应。

在每次连接成功后,服务器端程序会返回以状态码200开头的响应消息,消息的起始行为:HTTP/1.1 200 OK。当用户请求一个服务器端不存在的文件时,服务器返回以状态码404开头的响应消息。

pIYBAGB9RguAZHcqAAC82gbSQBQ852.png

结语

这种利用硬件实现TCP/IP协议的网络芯片W5100及具有Cotex-M3内核的STM32处理器构成嵌入式Web服务器的方案性价比高。通过网络,用户在浏览器端可及时收到远程现场传感器采集的数据,远程现场的开关状态指示灯可实时地响应用户的开关信号操作请求。测试表明该系统传输大块数据文件的速率可达到100KBPS。为提高网络资源的安全性,可采用AES(Advanced Encryption Standard,先进加密标准)等编码机制来加密必须保护的私有数据。


关键字:STM32F103RB  微处理器  嵌入式Web服务器 引用地址:基于STM32F103RB微处理器和W5100芯片实现嵌入式Web服务器的设计

上一篇:基于TMS320F28335和STM32F103VET6芯片实现北斗定位系统的设计
下一篇:基于Pixart PAH8013ES+STM32F411实现耳机血氧与心率的检测方案

推荐阅读最新更新时间:2024-11-12 08:39

基于AVR微处理器ATmega16L的LED旋转屏显示系统的设计
引言 科技快速发展的今天,LED显示屏已成为一种新型的电子屏幕广告媒体,相比传统的喷绘、写真的广告画面死板、不活泼的广告牌、广告灯箱等,LED显示屏给人们带来了清晰明了、新鲜活泼的广告宣传效果,同时LED显示屏可以全程由电脑操控,屏幕资源也可以重复利用,提高了诸多企业的经济效益。 目前市场上LED显示屏较多的利用发光二极管所构成的点阵模块或像素单元而组成的大面积平板显示屏幕,该屏幕利用快速行扫描或列扫描而形成文字或图案,扫描显示时有一个突出特点就是任何时刻只有一列LED发光,从左起,控制每一列的位选端,依次从首列逐列显示到末列基于这一点,可以只采用一列LED,通过旋转形成一个等效点阵,并借软件程序改变LED的位置来模拟点阵
[单片机]
基于AVR<font color='red'>微处理器</font>ATmega16L的LED旋转屏显示系统的设计
以超低功耗微处理器MSP430为核心的热计量表设计
引言 我国地域广阔,人口众多。房屋建筑规模巨大,住宅建设量大而且面广,至今仍呈上升趋势,而且这个上升趋势还将持续20~30年。 在这种情况下,把 大锅饭 式的采暖包费制,改为按实际使用热量向用户收费,无疑是缓解煤电能源紧缺矛盾的有效手段。为此,本文介绍了一种新型热量表的设计方法。该热量表是一种分户热量计量装置,它由无磁热水流量计、温度传感器和微功耗单片机组成的积算仪等三部分组成。仪表安装在系统的供水管上,并将温度传感器分别装在供、回水管路上。一段时间内用户所消耗的热量为所供热水的流量和供回水的焓差乘积对时间的积分。热量表利用该原理并通过热水流量计测量逐时流量并用温度传感器测量逐时供回水温度,再将这些数据输入积算仪进行积分计
[单片机]
以超低功耗<font color='red'>微处理器</font>MSP430为核心的热计量表设计
基于ARM7微处理器LPC2138实现OLED显示器的应用系统设计
ARM处理器凭借其强大的功能、极低的功耗、较小的封装广泛应用于门禁、无线抄表、智能温控等小型系统中,在这些系统中人机交互界面一般由LCD完成,但是通常LCD在显示亮度、环境适应等方面存在缺陷,所以越来越多新技术新产品逐渐出现,OLED就是一种。本文介绍了一种基于OLED的显示器VGS12864E的结构原理,给出了其在ARM7微处理器LPC2138系统应用中的硬件连接和具体程序设计。 系统简述 LPC2138简介 LPC2138是基于支持实时仿真和嵌入式跟踪的32/16 位ARM7TDMI-S CPU 的微控制器,带有512 KB高速Flash和32KB的SRAM。128位宽度的存储器接口和独特的加速结构使32 位代码能够在最大
[单片机]
基于ARM7<font color='red'>微处理器</font>LPC2138实现OLED显示器的应用系统设计
基于ARM9的嵌入式Web服务器Boa的软/硬件设计
1.ARM简介 广义地讲,凡是带有 微处理器 的专用软硬件系统都可以称为嵌入式系统。它是嵌入到对象体系中的专用计算机系统,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。目前非常流行的ARM内核有ARM7TDM1、S t r o n g A R M 、A R M 7 2 0 T 、A R M 9 T D M 1 、ARM920T、ARM940T、ARM946T、ARM966T、ARM10TDM1等。本文所讨论的目标板的CPU为ARM920T内核的三星S3C2410芯片。 ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机
[单片机]
基于ARM9的<font color='red'>嵌入式</font><font color='red'>Web服务器</font>Boa的软/硬件设计
单片机微处理器的接口形式
  一个完整的计算机系统,除了微处理器、存贮器之外,还必须具备各种输入输出设备及接口。各种指令、原始数据和信息通过输入设备送入计算机,而计算机则将计算的结果及各种控制信号通过输出设备输出。常用的输入设备有键盘、扫描仪、模数转换器等。输出设备有显示器、打印机、数模转换器等。计算机的另一类外围设备为外部存贮器,包括存储器电路、各种磁盘及磁带机。   外围设备的种类繁多,其信息有数字量(如扫描仪获得的信息)、模拟量(如通过传感器由非电量转换成电压、电流)、开关量(如开关的闭合状态信息、输出控制)。为使外围设备的各类信息与计算机交换,必须通过接口电路。   接口电路将微处理器送出的外围设备地址信息进行译码,以判断选择的是那一个外围设备,并根
[单片机]
基于LPC2119微处理器的配电控制模块设计
火箭炮配电箱在火箭炮作战任务完成过程中起着极其重要的作用,它主要对火箭炮的高低和方向调炮及左右千斤顶放列、撤收进行配电控制。目前,火箭炮配电箱使用的控制器件仍是传统的接触器,这类器件触点在切换过程中极容易出现触点发热、粘接、卡死,造成配电动作失败,存在故障隐患时难以发现;同时,配电箱为减小大功率电机启动时的冲击 电流 ,采用串联启动 电阻 限流的方法,当电机过载时,极易烧坏启动电阻,造成配电箱无法工作,这些问题严重影响了配电箱的可靠使用,直接影响火箭炮作战任务的完成。基于此,亟需改进火箭炮现有配电箱,设计新型智能配电箱来解决现有配电箱存在的问题,使火箭炮配电朝着自动化和智能化方向转变。配电控制模块是智能配电箱的控制单元,本文基
[单片机]
日本研制出超导微处理器,电阻居然为零
现如今,计算机消耗的能量惊人。根据最近的一项估计,仅数据中心就消耗了全球2%的电力,预计到本世纪末,这一数字将攀升至8%。不过,为了扭转这一趋势,也许位于计算机世界中心的微处理器可以以全新的方式进行精简。 日本的一个研究小组已经将这个想法发挥到了极限,创造了一个超导微处理器,一个电阻为零的微处理器。近日,在IEEE固态电路杂志上发表的一项研究报告中描述了这种新器件,这是同类器件中的第一种。 超导体微处理器可以为更节能的计算能力提供一个潜在的解决方案,但目前,这些设计要求超低温低于10开尔文(或-263摄氏度)。日本的研究小组试图制造一种绝热的超导体微处理器,这意味着,原则上,在计算过程中,能量不会从系统中获得或损失。
[嵌入式]
日本研制出超导<font color='red'>微处理器</font>,电阻居然为零
单片机选型,不得不说的几个步骤
单片机选型,老生常谈的问题,虽然本文比较老,但是非常值得借鉴。 选择适合某个产品使用的微处理器是一项艰巨的任务。不仅要考虑许多技术因素,而且要考虑可能影响到项目成败的成本和交货时间等商业问题。 在项目刚启动时,人们经常压抑不住马上动手的欲望,在系统细节出台之前就准备微控制器选型了——这当然不是个好主意。 在微控制器方面做任何决策时,硬件和软件工程师首先应设计出系统的高层结构、框图和流程图,只有到那时才有足够的信息开始对微控制器选型进行合理的决策。此时,遵循以下10个简单步骤,可确保做出正确的选择。 步骤1:制作硬件接口清单 利用大致的硬件框图制作出一份微控制器需要支持的所有外部接口清单。 第一种是通信接口。 系
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved