基于MSP430单片机的嵌入式Web服务器设计

2020-09-26 00:58
计算机测量与控制 2020年9期
关键词:以太网嵌入式浏览器

李 倩

(天津师范大学 学前教育学院,天津 300073)

0 引言

嵌入式Web服务器为嵌入式设备提供网络接口,实现远程管理和控制,是实现嵌入式设备网络化的重要技术[1-2]。随着以太网的广泛应用和嵌入式技术的不断发展,将嵌入式应用系统与以太网结合是当前嵌入式领域发展的热点之一[3-5]。将嵌入式应用系统接入以太网后可突破传统串口通信的时空限制,使嵌入式产品的应用更加便利[6-7]。

本文介绍了一种基于MSP430单片机和以太网控制器CS8900A的嵌入式Web服务器的设计方法,用户经服务器平台可通过Internet随时访问单片机系统,得到由DS18B20测得的外部温度,在此基础上可简便的进行其他功能的扩展。以期寻找连接简单、扩展性好、成本低等特点的硬件设备, 为远程数据采集、远程监测控制、智能家居等领域提供借鉴。

1 嵌入式Web 服务器的硬件设计

1.1 MSP430单片机

TI公司的MSP430系列单片机是一个超低功耗类型的16位单片机,它有5种模式可供选择,低功耗和唤醒时间非常短,仅需6 μs,同时还具有处理能力强、片内外设模块丰富、时钟系统灵活、工作条件稳定、开发方式方便快捷等特点,使其成为单片机的首选[8-9]。MSP430F149作为核心控制器,其接口电路图如图1所示。

图1 MSP430单片机接口电路图

超低功耗单片机作为系统的核心,在许多领域都有广泛的应用,例如在医疗保健领域,使用小型便携式设备进行必要的测量。具有集成RF模块的MSP430单片机具有良好的性能和较小的尺寸,可用于远程传感器监控。MSP430由于其具有高性能的外围设备,可以通过直流或步进电机驱动器控制其他设备。因此,MSP430微控制器系列具有更多不同功能,可以根据具体应用要求进行选择拓展。

无线传感器网络应用需求的快速增长,增加了对网络节能操作和协议的需求。在无线传感器中,传感器网络在大多数情况下保持睡眠状态,只有当事件到达节点的输入时才会激活。因此,低功耗的MSP430适合作为无线传感器网络的微控制器。

系统采用12位ADC转换精度模块的MSP430F149单片机,利用ADC模块使系统的硬件电路更加集成化、小型化[10-11]。系统将外部模拟信号接入AO通道,然后通过基本定时器设置A/D转换器中断,当接收定时器中断请求时,系统开始对信号采样,转换后的数字信号存储在寄存器中。

系统内部组件均基于MSP430超低功耗微控制器,使用无线通信来交换系统内的数据,该系统是根据智能传感器的概念构建的,来自网络的用户应用程序可以使用HTTP协议访问系统接口,其中Web服务器可以运行在计算机上,也可以运行在基于微控制器的嵌入式设备上。使用Web服务器可以实现将数据分发到外部网络,通过网络的访问将导致换能器软件与其他应用程序之间的互操作性更强。在具有嵌入式Web服务器的系统的变体中,可以建立Web服务并为客户端应用程序提供一种与STWS连接的方式,这与整个智能传感器概念有关。

1.2 以太网控制器CS8900A

局域网处理芯片CS8900A在嵌入式领域里使用较为广泛[12-14]。采用TQFP封装,共100个引脚,内部集成了10Base-T收发滤波器以及在片RAM,接口有8位和16位两种,一般单片机多使用8位接口模式;电源有5 V和3.3 V两种,本设计方案中使用3 V供电。

1.3 嵌入式Web服务器

系统硬件设计如图2所示,MSP430F149为系统核心,CS8900A为以太网控制器,以DS18B20为温度检测芯片。

图2 Web服务器系统硬件结构

MSP430F149是系统的控制核心,选用8MHz的高频晶振,MSP430F149通过图中所示的相应引脚来控制CS8900A和DS18B20,通过JTAG仿真器下载程序与在线调试。以太网控制器利用带扼流线圈的隔离变压器将待发送的数据传输至网络上,或者接收来自不同网络端口的数据。隔离变压器的作用是隔离以太网控制器及外部线路,从而达到防治元器件损坏的效果,同时可以实现抗干扰及带点插拔。

2 嵌入式Web 服务器的软件设计

嵌入式Web服务器软件设计中的主要模块有HTTP应用模块、以太网模块、TCP/IP模块和温度采集模块,各模块的概况如表1所示。

表1 软件设计中各模块概况

HTTP应用模块通过以太网和TCP/IP模块传送数据,通过调用以太网控制模块、TCP/IP模块和温度采集模块提供的API来实现整个系统的功能。下面重点以太网控制模块、TCP/IP实现过程进行介绍。

2.1 以太网控制模块

以太网控制模块针对MSP430F149对CS8900A的驱动和通信,主要任务是在CPU与以太网之间传输数据。本系统以太网接口选用UDP通信协议,软件设计框架如图3,该协议包括物理层的协议,TX以及RX分别按照UDP的通信协议进行数据的发送以及接收,用户层数据写入TXFIFO,同时从RXFIFO中读取数据即可实现数据的发送以及接收。

图3 以太网控制模块流程图

在接收或发送数据前,首先要看 CS8900A 的发送缓存或接收缓存是否准备好,如果未准备好,则等待,直到缓存中有足够的存储空间,再对数据进行发送或接收。MSP430F149利用Web总线服务器实现对系统数据的存储、校验、分析、对比、可视化显示及远端数据的共享,并保存和上传到文件共享中心。CS8900A模块增加对用户管理权限控制功能,只有经过系统管理员授权,并经过身份验证的用户才能进行相应文件管理与控制操作,提高系统安全性。使用Verilog HDL语言,编写了以太网通信接口,软件接口如图4,数据通过一定的协议进行打包,然后按照UDP的协议进行封装,通过图4提供的数据接口将AD采集的数据送入CS8900A以太网控制器进行处理。

图4 UDP通信接口

2.2 TCP/IP实现

Web服务器通过Internet将所需的HTML页面和图片带到Web浏览器,同时,发生TCP /IP通信。TCP /IP是Internet中使用的标准协议,对于大多数嵌入式应用程序而言,TCP/IP太大且成本较高[15]。为了使每台设备上都有一个Web服务器,必须设计用于嵌入式应用程序的设备中使用的TCP / IP堆栈,并减小其代码大小。将TCP/IP精简化,称为精简TCP/IP。设计精简TCP/IP时,简单性和多功能性是主要关注点。使用TCP/IP连接,Web浏览器可通过Internet访问Web服务器,以提供嵌入式设备的图形窗口,Web服务器生成以图形方式显示在Web浏览器中的网页。服务器和浏览器通过HTTP协议进行通信。

最底层的是网络类型的物理网络媒体,如以太网、帧中继、ATM和令牌环。在Internet层有IP、ARP、IGMP和ICMP几种协议[16-17]。因为假设路由过程是在本地服务器的路由表中进行的,因此在嵌入式Web服务器中,只实现IP、ARP和ICMP,不需要实现IGMP。在传输层有两个协议,TCP和UDP,只实现TCP即可,因为Web服务器只需要TCP。

TCP传输控制协议提供了一种可靠的面向字节流的服务。基本的TCP任务分为6个功能块,包括tcpinput、tcpprocess、tcpreceive、tcpwrite、tcpenqueue和tcpoutput。当应用程序希望发送TCP包时,将调用tcpwrite函数。tcpwrite接收数据调用tcpenqueue函数,该函数用于将数据放入TCP / IP的应用程序地址检查工具,该工具负责在网络就绪时发送任意的TCP数据消息。

TCP的输出功能就是用来发送这些数据的。如果引用映射到物理地址的最高地址,则地址解析协议(ARP)负责地址转换。ARP协议的工作流程如下:当主机生成一个IP数据报时,将该数据报发送给目标主机。32位的IP地址应该转换成48位的以太网地址,从一个逻辑的Internet地址到相应的物理硬件。ARP包的结构如下:

struct arp{

unsigned int hardw;//硬件类型

unsigend int ARPopcode://ARP操作

unsigned int prot;//协议类型

unsigned char hardwlen;//硬件长度

unsigned char protlen;//协议长度

unsigned char targetha [5];//目标地址

unsigned char targetpa [3];//目标协议地址

unsigned char sendha[5];//发送方地址

unsigned char sendpa[3];//发送方协议地址

}

在网络层,IP协议是TCP/IP的基础和核心,负责按操作顺序发送数据。对于主机之间的不同网络,如TCP、UDP、ICMP和IGMP,使用IP数据报格式进行传输。IP提供不可靠的无连接数据报传输服务。IP协议的功能是将要传输的数据与IP报头处理相结合,然后将打包的IP数据报发送到MAC层。同时,IP层从较低层(如以太网设备驱动程序)接收数据报,在报头校验和消息处理之后,接收到的数据报被发送到更高的层次——TCP或UDP层。

IP报头的结构如下:

struct ipheadr{

unsigned char ipversionlen;// IP版本和标头长度

unsigned char ippacketlen; //服务类型

unsigned int ipdatagramid;// 总包长度

unsigned Int ipdatagramid; / /数据报ID

unsigned Int ipfragmentoffset;//片段偏移

unsigned char ipprotocol;//IP协议

unsigned Int ipchecksum;//头校验和

unsigned char ipsource[3];// 源IP地址

unsigned char ipdest[3];// 目标IP地址

}

TCP/IP的应用层是HTTP,用于发送HTML文件。HTTP是通过TCP / IP在机器之间传输文档的标准协议,用于在全球范围内处理相互连接的文档,可以从某些具有嵌入式Web访问权限的Web服务器中检索文档,文档可以引用任何类型的数据,可以是文本、图形、声音或视频。图5显示了HTTP流程的模型。最常见的HTTP客户端是我们熟悉的Web浏览器,Web浏览器向Web服务器发出URL请求以访问文档,服务器必须在浏览器启动其请求的HTML页面之前运行。服务器是Web页面的存储库,它处理请求并将数据传回浏览器。浏览器在显示文本、图形和运行java 小程序方面做了更繁琐的工作。

图5 HTTP进程模型

2.3 Web服务器的软件实现流程

有以上各模块提供的API服务作为基础,建立一个HTTP服务器就可以实现Web 服务器的功能了,可以通过浏览器访问它来得到CPU的内部和外部温度。使用HTML语言制作动态网页,并将CPU内部温度传递给变量AD7%,DS18B20测得的外部温度传递给变量ADA%。

Web服务器的软件实现流程如图6所示。通过函数Init Osc()和Init Ports()初始化系统时钟和微处理器I/O端口的配置。调用函数 TCP Low Leve1 Init()对TCP/IP模块进行初始化,主要是配置时钟及计时器,对相关标志位清零以及初始化 CS8900A。然后调用HTTP Status =O初始化服务器的标志寄存器并设定要监听的端口。

图6 Web服务器的软件实现流程图

前期准备工作完成后,无限循环实现Web Server。循环中的主体为:监听连接是否打开,如果有主机想访问该服务器并且还没有打开连接,则建立被动连接;调用函数 DoNetworkstuff()来实现对接收帧的接收和处理、重传机制的启动以及 CPU缓存中数据的发送等,最后通过函数 HTTPServer ()来实现将服务器的数据以动态网页的形式展现给访问主机。

3 实验结果与分析

实验以某变电站的远程测温智能预警系统为研究对象,将嵌入式Web服务器作为变电站防控系统的终端检测装置,通过测定变电站内的控制设备、调试设备以及烟雾传感器等得温度,将测试数据发送至监控室,分析系统的各项功能和性能,以达到预警目的。

3.1 实验环境与参数

实验以位于我国中部地区Z市的智能电网系统为研究对象,该市从2019年初陆开始对本区域范围内的智能变电站推广基于Web总线服务器的SCD文件管控系统。以辖区内的智能变电站SCD文件的管控系统为例,分析系统的各项功能和性能。本次实验选取的样本文件大小为100~1 700 M。

3.2 实验步骤

1)统一配置系统文件,将外部模拟信号接入AO通道;

2)连接基本定时器,以此设置A/D转换器的中断;

3)当接收定时器中断请求时,系统开始对信号采样,转换后的数字信号存储在寄存器中;

4)扩充数据对象,并根据对象信息生成报文。

5)观测和提取循环冗余校验(Cyclic Redundancy Check, CRC)变化警告记录。

6)对比可视化功能的各种类别信息,验证系统的有效性。

3.3 实验结果分析

系统性能测试主要从不同规模文件的传输共享耗时、文件上传错误率指标进行综合分析,同时将同等条件下基于以太网建设的嵌入式Web系统的同类指标参与对比,以更清晰地展示出本文系统的优势。

3.3.1 不同规模SCD文件共享传输耗时分析

为了验证本文方法的可行性,实验分析了基于嵌入式Web系统和传统系统的传输耗时,实验结果如图7所示。

图7 不同数据规模的传输耗时对比

分析图7可知,当检测时间较短,数据规模较小时,两种系统数据传输的性能相近,当传输数据规模超过1 200 M 时,受到网络带宽的影响,传统系统的数据传输耗时增加,为基于嵌入式Web服务器系统在大数据传输方面的优势较为明显,当数据规模超过较大时,所提出系统能够节省近一半的传输时间。

3.3.2 不同系统文件上传错误率分析

在不同规模数据下,实验分析了文件上传错误率,实验结果如表2所示。

表2 上传错误率

当数据规模逐渐扩大时,传统系统文件上传错误率明显增加,这主要是由于传统网络系统存在延迟,传输大规模数据时出现个别数丢失,由此可知基于Web服务器的系统稳定性更好。

4 结束语

嵌入式Web服务器是嵌入式系统网络化应用的重要方面。本文基于MSP430单片机和以太网控制器CS8900A设计的嵌入式Web服务器平台,用户可以此为平台简便的进行其他功能的扩展。本设计的硬件连接简单、扩展性好、成本低,此设计可广泛应用于远程数据采集、远程监测、远程控制、智能家居等领域,具有广阔的应用前景。通过将本设计应用于变电站温控系统,实验结果表明,与传统的系统相比,基于单片机的嵌入式Web服务器在数据规模较大时,如在数据量达到1 700 M时,耗时仅为传统系统的一半。此外,随着数据规模的增加(1 600 M),基于Web服务器的错误率仅为传统系统的4.5%。

猜你喜欢
以太网嵌入式浏览器
基于IMX6ULL的嵌入式根文件系统构建
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
基于ARM嵌入式的关于图像处理的交通信号灯识别
微软发布新Edge浏览器预览版下载换装Chrome内核
TS系列红外传感器在嵌入式控制系统中的应用
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
基于ENC28J60的嵌入式以太网/CAN网关设计
浏览器