基于Cortex-M3内核处理器的嵌入式Web服务器设计

 

基于Cortex-M3内核处理器的嵌入式Web服务器设计

时间: 2009-03-18 13:43:10 来源:电子产品世界 作者:王铁流 高嵩 袁海英 李宗方 秦璐璐

引言

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

      实现方案

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

图1 系统框图

   本系统采用了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的其它引脚可以选择置空。

图2 嵌入式Web服务器的简化电路图

  软件设计

  主程序

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

图3 主程序流程图

  当程序开始启动时,程序首先初始化STM32和W5100,配置STM32工作在SPI主模式,而W5100工作在从模式,启动STM32的A/D和片上的温度传感器,配置W5100工作于TCP服务器模式,在TCP服务器模式下,端口的状态转换如图4所示。

图4 W5100处于TCP服务器模式的端口状态转换图

 

在使用内部温度传感器时要注意:温度传感器在从调电模式唤醒后到它能以正常水平输出采样电压前有一段建立时间;ADC唤醒后同样需要一段建立时间,为使延 迟最小,ADON位(用于启动A/D转换)和TSVREFE位(用于将温度传感器从调电模式中唤醒)应该同时置位。另外,对温度传感器的采样时间要大于 2.2μs。接下来是一个无限循环体,程序开始不断检查外部中断状态标志(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为起始行的响应消息。

图5 数据处理程序流程图

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

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

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

图6 控制网页

  结语

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于ARM Cortex-M3的STM32嵌入系统是一种高性能、低功耗的嵌入系统,可广泛应用于各种领域。它的工作原理是基于ARM Cortex-M3内核的芯片,该内核具有较强的计算能力和多重存储器接口。STM32系列芯片结合了低功耗、高性能和丰富的外设功能,能够满足不同的应用需求。 STM32嵌入系统的应用十分广泛。首先,它可以应用于工业自动化控制领域。通过与各种传感器和执行器的连接,STM32可以实现对温度、湿度、压力等各种参数的实时监测和控制。其低功耗特性也使其适合在长时间运行的智能仪表和机械设备中使用。 其次,STM32嵌入系统可应用于物联网设备。通过内置的无线通信模块,如Wi-Fi、蓝牙和LoRa等,STM32可以与其他设备进行无线通信,并实现数据的传输和远程控制,适用于智能家居、智能城市等场景。 此外,STM32还可以应用于消费电子产品领域。其丰富的外设接口可以与LCD显示屏、摄像头、音频设备等进行连接,从而实现手机、平板电脑和音频播放器等产品的功能。 总体来说,基于ARM Cortex-M3的STM32嵌入系统具有高性能、低功耗、丰富的外设接口等特点,可以广泛应用于工业自动化、物联网设备和消费电子等众多领域,为各类产品提供强大的计算和控制能力。 ### 回答2: 基于ARM Cortex-M3的STM32嵌入系统是一种高性能、低功耗的解决方案。STM32系列微控制器基于ARM Cortex-M3内核,具有丰富的外设和功能,适用于各种嵌入应用。 STM32的嵌入系统原理是基于ARM Cortex-M3内核的运行机制。ARM Cortex-M3是一种32位的低功耗处理器,具有较高的性能和灵活性。STM32通过在芯片上集成了丰富的外设模块(例如通用输入输出、串行通信接口、模数转换器等)以及存储器和时钟管理模块,实现了完整的嵌入系统功能。 嵌入系统应用方面,STM32可广泛应用于工控、家电、汽车电子、医疗设备等领域。在工控领域,STM32可用于控制和监测生产过程,实现智能化管理。在家电领域,STM32可用于控制空调、洗衣机等家电设备,提高其性能和用户体验。在汽车电子领域,STM32可用于车载娱乐、导航和车身控制等系统。在医疗设备领域,STM32可用于监测和控制医疗设备,提高诊断和治疗效果。 STM32的优点包括低功耗、高性能、丰富的外设、易于开发和灵活的应用性。低功耗使得STM32在电池供电或移动设备应用中非常适用。高性能和丰富的外设让STM32能够处理复杂的任务和连接多种外部设备。易于开发的特性使得开发者能够快速上手并进行系统开发。灵活的应用性使得STM32能够应对不同的应用需求和系统架构。 总之,基于ARM Cortex-M3的STM32嵌入系统以其优异的性能和丰富的外设被广泛应用于各种嵌入系统领域,为各种应用提供了高效、低功耗的解决方案。 ### 回答3: STM32是意法半导体公司推出的一种基于ARM Cortex-M3内核嵌入系统。它采用了先进的芯片设计和先进的嵌入开发技术,具有高性能、低功耗和丰富的外设接口等特点。 基于ARM Cortex-M3的STM32嵌入系统原理主要包括以下几个方面: 1. ARM Cortex-M3内核:ARM Cortex-M3是一种高性能、低功耗的32位处理器内核。它具有高性能的运算能力和丰富的指令集,能够处理复杂的计算任务。 2. 外设接口:STM32嵌入系统提供了丰富的外设接口,包括多个GPIO引脚、UART、SPI、I2C、ADC等。这些外设接口可与外部设备进行通信,实现数据的输入和输出。 3. 存储器:STM32嵌入系统具有不同类型的存储器,包括闪存、RAM和EEPROM。闪存用于存储程序代码和数据,RAM用于临时数据存储,EEPROM用于非易失性数据存储。 4. 中断系统:STM32嵌入系统具有强大的中断系统,可实现多任务并发执行。通过中断系统,可以及时响应外部事件,并执行相应的任务。 基于ARM Cortex-M3的STM32嵌入系统应用广泛,主要包括以下几个方面: 1. 工业控制:STM32可以广泛应用于工业自动化领域,用于控制和调节各种设备和系统,如PLC、人机界面等。 2. 智能家居:STM32可以用于智能家居控制系统,实现对家居设备的远程控制和管理,如智能灯光、安防系统等。 3. 汽车电子:STM32可以应用于汽车电子领域,用于发动机控制、车载娱乐系统、导航系统等。 4. 医疗设备:STM32可以应用于医疗设备,如医疗监护仪、心电图仪等,实现对患者的监测和治疗。 总之,基于ARM Cortex-M3的STM32嵌入系统具有高性能、低功耗和丰富的外设接口等特点,广泛应用于各个行业的嵌入系统开发。它为开发者提供了强大的功能和丰富的接口选项,可以满足不同领域的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值