单片机嵌入式Internet技术的Web应用实现

发布者:DelightfulSmile最新更新时间:2011-11-24 关键字:单片机  嵌入式Internet技术  Web应用 手机看文章 扫描二维码
随时随地手机看文章
    嵌入式Internet是指电子设备通过嵌入式模块而非PC直接接入到Internet,与Internet进行信息交互的过程。目前Internet成为全球最大、信息最丰富的互联网络。用户甚至希望家电设备、仪器仪表以及工业生产中的数据采集与控制等设备也能够连接到Internet上,因为这意味着用户可以方便、快捷、低廉地通过网络进行远程控制、监测和信息传送。美国贝尔实验室的科学家预测,未来将会产生比PC时代多成百上千倍的超级嵌入式Internet服务器。Internet技术和嵌入式技术的相互融合,为嵌入式系统的设计和产品开发带来了前所未有的发展空间和机遇。
1 单片机嵌入式Web应用的硬件系统设计
    在硬件系统的设计中,本文采用了ATMEL公司开发的高性能8位AVR(Advanced RISC)单片机AT90S8515,该单片机内置8 KB可编程Flash,使用精简指令集,支持C语言及汇编语言,与MCS 8051系列单片机相比在性能上有很大的提高,在目前单片机开发中用得较多。因此利用AT90S8515单片机作为嵌入式系统的微处理器,通过网络控制芯片将嵌入式系统与Internet相连接。其硬件系统框图如图1所示。

单片机嵌入式Web应用的硬件系统设计

    在电路的硬件系统组成中,注意以下几点:
    (1)单片机与网卡芯片的接口电路
    AT90S8515单片机所提供的8位数据总线PA0~PA7分别对应连接网卡的SD0~SD7引脚;5根地址线PC0~PC4对应连接网卡的SA0~SA4引脚;读信号线RD、写信号线WR与RTL8019AS的相应信号线连接[1]。复位通过PB0控制,PB1片选地址使能[2]。外接时钟电路单片机为8 MHz,网卡芯片为20 MHz。
    (2)存储器扩展电路
    一般单片机片内数据存储器容量为64 KB,这样的存储空间在进行单片机Web应用系统的开发时显得过小。因此需要扩展数据存储器,扩展容量随系统数据使用量而定。对于Web应用,需要很大的存储空间存放网页等数据,所以本系统采用静态RAM HM62256芯片作为存储器扩展电路。
    (3)RTL8019AS工作方式
    RTL8019AS有3种工作方式:跳线方式、即插即用方式和RT免跳线方式[1]。在嵌入式应用场合,为了降低系统的复杂性,单片机尽量少接不必要的芯片。所以将RTL8019AS选择工作在跳线方式。其IOCS16B引脚接下拉电阻,JP引脚端接高电平。
    (4)MAX232串口电平转换电路
    在现场控制端,由于单片机输出为TTL电平,现场数据采集系统(如传感器)输出为EIA电平,而MAX232芯片可以完成单片机和现场数据采集系统间的双向电平转换[3]。
    (5)网络隔离滤波接口电路
    在网络接入端需要一个网络隔离滤波器HR901170A。HR901170A主要对系统电路起保护作用,减少信号共模干扰,完成信号的传输。HR901170A的内部集成了RJ45接口,可以直接接入到Internet。
2 嵌入式Internet的TCP/IP协议实现
2.1 嵌入式TCP/IP协议

    软件编程是实现嵌入式Web系统的关键。Web通信中的数据封装、解析都是由单片机软件实现的。软件实现主要包括两部分:一是单片机精简TCP/IP协议栈的实现,对数据的逐层打包、封帧、传送等流程[2];二是单片机Web应用服务的实现。
    由单片机组成的嵌入式Web往往应用于特殊的、专用的领域,一般不需要太多的功能,这与PC机上的网络应用有很大的不同。支持PC机进行Internet通信的TCP/IP协议是一个非常庞大的协议簇。而单片机芯片没有足够的空间资源,所以从嵌入式网络应用和单片机空间资源两个方面考虑,都没有必要在单片机上实现完整的TCP/IP协议。目前市场上没有统一的标准的实现嵌入式Internet的TCP/IP协议软件,需要开发人员根据具体应用的需要去开发一套适用于单片机的嵌入式TCP/IP协议,工作量异常庞大,开发周期较长。一种比较简单和易实现的做法是使用由瑞士计算机科学院的Adam Dunkels等开发的免费公开源代码的小型TCP/IP协议,即uIP协议栈,它专门为8位和16位单片机编写。uIP的代码大小为3 304 B,对单片机RAM的需求为360 B,远远小于TCP/IP协议对资源的要求。有关uIP详述和应用例程可见参考文献[4]。[page]

2.2 uIP驱动底层网络设备RTL8019AS
    uIP是一个仅包含3层网络层核心协议的协议栈,uIP自身不包含任何类型的底层网络驱动和上层应用程序,它只提供接口函数供用户开发使用。因此为了完成与底层网络设备的交互,用户必须根据网络设备的类型,在uIP中自行实现对底层网络设备的驱动。本文采用的网络设备是RTL8019AS网卡,因此需要在uIP中实现对RTL8019AS网卡的驱动[4]。
    RTL8019AS驱动程序包括:RTL8019AS芯片初始化、芯片复位以及数据的发送和接收。RTL8019AS芯片初始化可以通过初始化函数void init_8019(void)完成。芯片复位通过芯片上的RSTDRV引脚执行复位操作,该引脚高电平有效。
3 单片机上嵌入式Web服务器的软件实现
3.1 Web服务器的建立

    在进行以上的工作之后,用户就可以建立Web服务器,通过uIP协议实现不同的微控制器或工作站之间的通信。Web服务器和客户端浏览器间的通信采用HTTP协议。嵌入式系统经常需要根据用户的指令,采集系统的当前数据信息传送给客户端浏览器,为实现这种客户端浏览器和Web服务器的动态交互,需要在服务器端采用通用网关接口CGI(Common Gateway Interface)技术。CGI是一个在服务器上运行的程序,它分析处理用户发送到服务器上的数据信息,完成动态文件资源的创建和处理,再将用户信息返回给客户端。
    Web服务器初始化完成后,服务器等待客户端的连接请求,客户端浏览器输入服务器的IP地址后发一个物理地址解析协议(ARP)请求包,服务器收到后进行应答。客户端收到应答包后发送超文本传输协议(HTTP)包,服务器收到HTTP包后开始建立与客户端的TCP连接并作出对此包的响应。客户端收到响应包后即断开连接,服务器侦测到客户端断开了连接也同时断开连接。
3.2 Web服务器数据处理流程
    当系统的网卡接收到从网络传送来的数据包后,首先分析目的地址是否与自己的物理地址一致,如果不一致,则丢弃此包;如果一致,则读取网络数据并分析。如果是ARP请求包,则转入ARP处理程序,并发送一个ARP应答包给客户端。如果是IP包,则交由IP层处理,同时去掉以太网首部[4-5]。IP层根据IP首部的协议字段分析该IP包属于什么数据包,如果是UDP包则,丢弃;如果是ICMP请求包,则发送一个ICMP应答包给客户端;如果是TCP包且IP地址和端口号正确,则接收数据包,数据解包后,将数据部分通过串口输出,控制MAX232现场设备。反之,如果现场通过串口发送数据到单片机,单片机将数据按照TCP协议格式打包,送入RTL8019AS,由RTL8019AS将数据发送到局域网中。根据需要还可以在收到串口数据时,先完成数据预处理,再将处理好的数据送到局域网。具体的处理过程如图2所示。

3.3 单片机上的Web服务器编程
    uIP协议栈提供了一个称为宏的UIP_APPCALL的应用程序接口供用户设计应用程序时使用[4]。要在单片机上实现Web Server服务,首先将该宏定义为一个应用程序函数名,然后在此函数中实现HTTP协议。完成后,用户可以从局域网内的任何客户机访问该单片机Web服务器。如果分配一个公网IP地址,则也可以从Internet上访问此Web服务器。实现的程序如下:

[page]

    #define UIP_APPCALL uip_http /*定义宏UIP_APPCALL为uip_http的应用程序函数*/
    void uip_http(void)           /*开始实现http协议建立Web服务器*/
    {struct uip http_state*s;
    s=(struct uip app_state*)uip_conn->appstate;
    if(uip_connected())
      {…                       /*打开连接接口函数,开始一个新的应用程序连接*/
          }
     if(uip_newdat()||uip_rexmit())  /*接收数据接口或重发数据接口函数,应用程序发送数据*/
      {if(uip_datalen()>0)     /*判定数据的大小接口函数
        {if(uip_conn->lport==80)  /*收到新连接端口号为80的请求,此即http应用*/
           {update_table_data();
              s->dataptr=newpage;
              s->dataleft=1957;
              uip_send(s->dataptrs->dataleft); /*发送上述http应用数据*/
            }
         }
     }
    if(uip_acked())      /*返回ACK数据确认接口函数*/
     {if(s->dataleft>uip_mss()&&uip_conn->lport==80)
       {s->dataptr+=uip_conn->len;
        s->dataleft-=uip-conn->len;
        uip_send(s->dataptrs->dataleft);
        }
      return;
     }
    if(uip_poll())
     {…                /*轮询接口函数用于轮询各个客户端发起的连接*/
        return;
        }
      if(uip_timedout()||      /*判断连接是否超时*/
      uip_closed()||          /*关闭当前的连接*/
      uip_aborted())         /*中断连接接口*/
      {return;}
    }
    本文设计的系统成功应用在宁波市某商业广场的地下停车场监测系统中。由于该商业广场停车场业务量较大,常常导致车位饱和而客户不知道的情形下进入停车场寻找车位,而该停车场规定进入停车场超过15 min的车辆即开始收费。导致客户常常寻找超过规定的时间而仍未找到停车位但需付费,从而发生客户和管理方之间的纠纷,影响商业广场的整体形象。使用了该系统后,各个车位上的数据采集系统实时采集停车信息并反馈给系统。系统在停车场入口处显示停车场当前有无可停车位以及哪些区域有空闲车位等信息。如果车位已满,将会显示无可停车位。除此之外,管理人员还可通过客户端进行查询、计时计费等工作。本系统最大的优点是开发费用低廉且操作简单。在本文设计的系统中,客户端使用普通的Web浏览器,通过Internet即可与单片机嵌入式Web应用服务器进行通信。客户端浏览器不需要开发额外的软件,也不需要浏览器支持特别的功能。客户端可通过访问嵌入式Web服务器的网页内容与之进行交互。嵌入式Web与现场控制接口互连,可实现对被控设备的远程监测、控制、诊断、管理及维护等。嵌入式技术和Internet技术的相互融合,加速了电子设备的网络化应用趋势。应用单片机作为嵌入式Internet技术的硬件设备可以降低系统的成本。本文设计的嵌入式Web系统根据不同的应用需求,稍加修改即可应用在智能家电、智能建筑、仪器仪表、通讯产品、工业控制等众多领域。
参考文献
[1] 李正军.现场总线与工业以太网及其应用系统设计[M].北京:人民邮电出版社,2008.
[2] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2008.
[3] 华清远见嵌入式培训中心.嵌入式Linux C编程入门[M].北京:人民邮电出版社,2007.
[4] uIP协议栈网络站点.http://dunkels.com/adam/uip/.2010.
[5] 罗钰.深入浅出Linux TCP/IP协议栈[M].北京:人民邮电出版社,2008.

 

 

 

关键字:单片机  嵌入式Internet技术  Web应用 引用地址:单片机嵌入式Internet技术的Web应用实现

上一篇:基于以16位单片机实现信息家电连接internet的解决方案
下一篇:嵌入式TCP/IP协议栈在单片机上的实现

推荐阅读最新更新时间:2024-03-16 12:47

电容触摸感应MCU的工作原理与基本特征
  现在的电子产品中,触摸感应技术日益受到更多关注和应用,并不断有新的技术和IC面世。与此同时,高灵敏度的电容触摸技术也在快速地发展起来,其主要应用在电容触摸屏和电容触摸按键,但由于电容会受温度、湿度或接地情况的不同而变化,故稳定性较差,因而要求IC的抗噪性能要好,这样才能保证稳定正确的触摸感应。   针对市场的需求,来自美国的高效能模拟与混合信号IC创新厂商Silicon Laboratories(简称:Silicon Labs)公司特别推出了C8051F7XX和 C8051F8XX系列的MCU(单片机),专门针对电容触摸感应而设计,在抗噪性能和运算速度上表现的非常突出。 一、Silicon Labs公司的电容触摸系列MCU
[安防电子]
电容触摸感应<font color='red'>MCU</font>的工作原理与基本特征
单片机——ds1302代码
#include #include ./lcd/lcd.h #define ds1302_sec_add 0x80 #define ds1302_min_add 0x82 #define ds1302_hr_add 0x84 #define ds1302_date_add 0x86 #define ds1302_month_add 0x88 #define ds1302_day_add 0x8a #define ds1302_year_add 0x8c #define ds1302_control_add 0x8e #d
[单片机]
基于STC89C52单片机的温度检测系统设计
0 引言 在某些检测领域将被测温度数字化显示还不足以完全反应其变化过程和变化规律,而绘制出趋势曲线是有效方法之一。其中一种解决方案是将单片机作为下位机采样现场温度,将其上传给PC机绘制曲线。有鉴于点阵型图形液晶显示器成本逐年降低、显示容量越来越大、工耗越来越小、而且可以方便地与单片机接口,本文设计了一种温度检测系统。利用DS18B20采集温度,LCD12864(ST7920)液晶显示器直接与STC8 9C52单片机接口,在LCD12864(ST7920)上显示被测温度和温度曲线。 1 系统组成 系统主要由单片机STC89C52,温度传感器DS18B20,点阵型液晶显示器LCD12864(ST7920),键盘电路和报警电路
[单片机]
基于STC89C52<font color='red'>单片机</font>的温度检测系统设计
MSP430学习笔记(一)--从点灯说起
在我自学使用德州仪器所生产的MSP430系列微控制器时,遇到了新手都可能会遇到的一些问题,现总结记录如下,作为笔记保留,同时也希望能帮到其他有需要的人。新手建议从MSP430G2553学起。 这个范例是来自Ti官网的MSP340G2553_LED闪烁实验,下面我们会在该例的基础上记录和修改。(笔记展示代码均使用Ti的Code Composer Studio 9.1.0作为开发工具) #include msp430.h int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= 0x01;
[单片机]
MSP430学习笔记(一)--从点灯说起
单片机怎么用回调函数在不同文件之间传递数据
我们先来理解一下回调函数的作用。 函数我一般喜欢分为输出型和输入型(个人理解)。 输出型: 就是我们 主动去调用的控制函数 ,比如说控制LED灯去亮和灭,控制蜂鸣器响和不响,控制LCD显示,控制继电器吸合和断开。 简单来说,就是我们知道什么时候该去调用这些函数,比如说满足某些条件的时候,我们就会主动去调用这些函数。 这种函数,就是输出型函数。 输入型: 输入型函数一般是用在不同.c文件/不同层(硬件层、应用层)之间 传递信号和数据的 ,比如说按键检测、串口数据。 我们不知道什么时候按键会被按下、什么时候串口会有数据过来对吧? 当然,我们可以写一个带返回值的函数,然后定时去检测,比如说定时10ms去扫描一下按键。 unsig
[单片机]
51单片机最小系统原理及编程电路设计
本课以AT89S51单片机最小系统来教你如何实现单片机编程,该程序驱动单片机P1.7端口上的发光二极管不停闪烁,系统程序用keil 汇编语言编写,电路参考下图1所示。 《51单片机最小系统原理及编程电路设计》 首先来认识一下发光二极管(LED),发光二极管实物如下图2所示,发光二极管具有单项导电,体积小、耗电省、寿命长、响应速度快、显示清晰等特点,广泛用于电子电路中当作LED数码管、LED指示灯、LED电子显示屏,既然是51单片机最小系统我们当然只进行了最简单的电路设计与编程 图2: 《发光二极管介绍》 发光二极管导通时,产生一个正向的工作电流IF,工作电流根据发光二
[单片机]
51<font color='red'>单片机</font>最小系统原理及编程电路设计
基于AVR单片机的DDS信号源电路图
电路原理如下图所示,可分为四个部分:以IC1为核心的DDS;以IC2为核心的键盘、显示及控制电路;以IC3为核心的AGC电路;以IC4为核心的检波电路。 图 基于AVR单片机的DDS信号源电路图
[单片机]
基于AVR<font color='red'>单片机</font>的DDS信号源电路图
基于ARM单片机 LPC2214的在线式UPS硬件设计
1 概 述 目前UPS主要发展方向有两个:一是新的功能不断加强,例如增加远程监视、自动诊断、识别、事件记录、故障警告等功能;二是自身效率的提高。采用高效率的IC芯片和新的制造工艺,使空载功耗不断地降低,功率密度进一步提高。紧凑密集的空间设计给小型电子设备的应用带来了新的解决方案。 将功能强大的嵌入式微处理器(本文选用LPC2214)系统引入UPS,可以增强UPS的功能,使其具有网络化、智能化的特性,满足许多无人职守基站的用电要求。用数字控制代替模拟控制,可以消除温漂、老化等模拟器件存在的问题;抗干扰能力强,有利于参数整定和调节;通用性强,便于通过改变程序软件方便地调整方案和实现多种新型控制策略;同时高度集成的数字电路可
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved