微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于PIC32的嵌入式Web服务器的物联网实现

基于PIC32的嵌入式Web服务器的物联网实现

时间:10-27 来源:3721RD 点击:

1前言

计算机和网络技术的迅速发展,引发了控制领域深刻的技术革命。控制系统结构向网络化、开放性方向发展将是控制系统技术发展的主要潮流。过去大量的浩如烟海的8/16位单片机的嵌入式设备,如仪器仪表、数据采集和显示、过程控制、工业自动化、家庭自动化等的实时应用,已经到了享受网络方便的时候了。它们将成为Internet 的发展沃土,顺应"网络服务"向"网络应用"扩展的大潮。

目前大多数嵌入式系统还处于单独应用的阶段,以单片机为核心,与一些控制设备配合实现一定的功能。如果嵌入式系统能够连接到Internet 这个信息流通渠道,则可以方便、低廉地将信息送到世界上任何一个地方,这将形成集管理与控制于一体的分布式网络系统。要做到这一点并不难,在电子技术、传感技术已经高度发达的今天,现场数据的取得,已经不是难事,温度、压力、湿度、速度、加速度、电流、电压这些数据只需要一个小小的嵌入式系统就可解决。另外,以太网(Ethernet)协议已经广泛地应用于各种计算机网络,基于以太网的嵌入式系统也正在不断向前发展。

另一方面,随着网络的发展和用户对各种应用需求,现在各种各样的消费产品,例如,智能手机,数码相机等,都提供无线或是有线的国际互联网络的接入功能。各种应用都需要网络的接入来提供各种娱乐功能。同时随着物联网技术发展,对于各种设备的网络接入和访问将变得越来越普遍。而且现在流行的智能家居系统的实现也需要网络的接入来提供远程控制,,因此开发基于MCU的嵌入式Web服务器是非常有意义和挑战性的。

2需求与功能分析

系统目标

最终目的是实现一个基于PIC32位单片机的可移植并且高度可配置嵌入式Web服务器。嵌入式Web服务器可用于现在流行的物联网的各个方面,例如,传感器网络监控,工业机器监控,小型Web服务器,远程信息交互等应用领域。

主要功能

实现一个嵌入式Web服务器,并且能够提供用户通过Internet 访问并控制相关外设。基本要求如下所示:

1. 当上电或用户复位后所有PIC32 位单片机配置能够自动设置好,并正常工作;

2. 网络连接通过板卡上的Ethernet 接口实现,并且相关的IP地址,子网掩码(Subnet mask),网关(Gateway)等网络配置能够通过DHCP(Dynamic Host Configuration Protocol)自动实现。

3. HTML源文件存放在外部SD存储卡上,方便用户修改。而且通过USB接口来实现读写。

4. 为了演示物联网技术的基本结构及其优势,提供相关外设(温湿度传感器及LED)供用户远程控制或操作。

5. 为方便使用,相关的网络信息(如IP地址,网关(Gateway)等)及外设信息(如温度,湿度等)显示在LCD上。

相关技术和原理

TCP/IP 协议

USB 协议

3.系统设计与实现

系统总体结构框图如图1所示:

图1 系统总体结构框图

嵌入式Web服务器

从上面的框图中我们可以清晰地了解整个硬件系统的结构以及各部分的连接。首先最重要的部分是调用Microchip公司的TCP/IP库来实现PIC32位单片机与Internet的通信,接受用户的请求并根据Http Request()的返回值通过Http Response()来与用户进行交互,例如显示时间、温度、湿度,或者控制LED灯的亮或灭。更进一步可以用按键来模仿嵌入式服务器侧的各种外设的参数变化,使其实时的显示到用户的Web浏览器上。

下图是简化了的Web服务器原理图,服务器的事物逻辑部分是嵌入式服务器的核心部分,它根据不同的Http Socket来读取SD存取卡上的HTML源文件或其他外设的输入值,来响应用户的请求,这是物联网的基础。

SD存取卡及文件系统

SD存取卡及文件系统是整个系统中仅次于嵌入式Web服务器的重要模块,它主要用来存放Web服务器管理员编写的HTML源文件,提供给Web服务器来响应用户的请求。SD卡的读写可以利用PIC32位单片机上的USB Host来方便的实现。并且Microchip 公司提供的文件系统的库函数的支持,更加方便了SD存取卡及文件系统模块的实现。

其示意性原理框图如下所示:

LCD显示部分

同时与PIC32 位单片机相连的LCD用来显示嵌入式Web服务器的网络连接信息以及传感器的输入值。嵌入式Web服务器的网络连接信息不仅包括当前IP地址,网关等基本网络信息,还包含了当前用户连接数,用户的Web请求等。管理者可以根据这些基本的信息来判断当前Web服务器的工作状态,以及系统错误的检查。

LCD显示内容的总体布局如下图所示:

4.传感器模块及LED控制模块

传感器主要用于测量当前系统所处环境的各种参数,比如温度,湿度等。测量的数据一方面送到LCD显示;另一方面

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top