请教如何在嵌入式上实现 http server

请教如何在嵌入式上实现 http server,第1张

首先,这个是一个server 就证明,你的嵌入式上要实现 TCP/IP通讯的功能(硬件和软件),如果有的话,再根据tcp/ip协议部分,实现或者移植已有的http 功能,或者自己实现 http协议即可。

让单片机嵌入HTTP(超级文本传输协议)客户端是一个很好的添加功能,HTTP客户端可以让嵌入式设备从HTTP服务器获取数据。今天给大家介绍的W5200E01-M3评估板是基于WIZnet W5200,可以作为HTTP客户端使用,能够集成到STM32 Cortex M3单片机产品的几乎所有应用中。具体内容如下:

1 简介

嵌入式HTTP(超级文本传输协议)客户端对所有支持网络功能的设备来说是一个很好的添加功能。HTTP客户端可以让嵌入式设备从HTTP服务器获取数据。

该WIZnet W5200 HTTP客户端应用笔记中所介绍的并使用的W5200E01-M3评估板,可以在STM32 Cortex M3系列单片机几乎所有的应用中使用。

IAR 5.41用来编译该HTTP客户端应用程序。W5200E01-M3板子用来运行该HTTP客户端应用。

该文档中提到的所有的代码和文件可以从下面的链接下载 www.wiznet.co.kr/w5200/download。

1.1 假设

假设读者对WIZnet W5200驱动是熟悉的。当然读者也需要熟悉C语言编程和HTTP客户端的概念。上述这些技术的术语将在这篇文章中用到,并且只提供简短的概述。鼓励一些高级用户去阅读相关的规范。

1.2 特点

该HTTP客户端不具有完整的HTTP客户端功能;本文的HTTP客户端是针对嵌入式系统的小型客户端。

这里提供的HTTP客户端具有以下特点:

• 可移植到STM32 Cortex M3系列32位单片机平台

• 支持内容解析

• 支持串口打印信息

首先介绍嵌入式Internet技术的发展和广阔的应用前景以及嵌入式Internet技术的基本概念和原理,然后重点阐述了嵌入式系统接入Internet的几种方式,包括各种接入方式的工作原理,对TCP/IP的处理方法及所需的其他协议、软硬件等,并对它们各自的优缺点进行了比较,指出了新的发展方向。

关键词:嵌入式系统;嵌入式Internet;TCP/IP协议

0 引 言

嵌入式Internet技术是一种将嵌入式设备接入Internet的技术,利用该技术可将Internet从PC机延伸到8位、16位、32位单片机,并实现基于Inter-net的远程数据采集、远程控制、自动报警、上传/下载数据文件、自动发送E-mail等功能,大大扩展In-ternet的应用范围。

嵌入式Internet技术的出现时间并不很长,但是发展速度却非常之快,新思想不断涌现,新概念连续推出,新技术层出不穷,新产品不断产生,从底层硬件技术所提供的解决方案到顶层软件所开拓的想像空间,都在不断地推陈出新。随着PC机时代的到来,21世纪将是嵌入式Internet的时代。美国贝尔实验室总裁Arun Netravali的一批科学家对此做出了预测:嵌入式Internet“将会产生比PC机时代多成百上千倍的瘦服务器和超级嵌入式瘦服务器。这些瘦服务器将与我们所能想到的各种物理信息、生物信息相联接,通过Internet网自动地、实时地、方便地、简单地提供给需要这些信息的对象”更多内容可以在闯客技术论坛查看。

网络专家预测,将来在Internet上传输的信息中,将有70%的信息来自小型嵌入式系统[2]。嵌入式Internet将有很好的发展前景和广阔的市场,未来的Internet技术将是嵌入式Internet占主导地位,因此嵌入式系统与Internet的接入方式已成为人们研究的热点。

1 嵌入式Internet的基础

嵌入式Internet是嵌入式系统与Internet的结合。嵌入式系统中包含嵌入式处理机、嵌入式操作系统和应用电路部分,与Internet的接入则必须有对应的接入协议,如通用的TCP/IP协议。因此,实现嵌入式Internet的基础是嵌入式处理机、嵌入式操作系统和接入Internet的通信协议。

(1)嵌入式处理机

单片机就是典型的嵌入式处理机,如常见的In-tel的8051系列、Atmel的AVR、MicroChip的PIC、Motorola的Dragonball、Cygnal的C8051F等,以及一些高端的单片机如ARM、SH3、MIPS等,嵌入式处理机的种类有几百种。处理机是嵌入式系统的核心,其性能直接影响整个系统的性能高低,影响接入Internet的方式和成本。

(2)嵌入式操作系统

嵌入式系统要完成复杂的功能,已经不可能像普通单片机一样,直接从底层开始编写所有程序,必须采用底层的操作系统,在此基础上来完成复杂的应用软件设计。但由于嵌入式系统自身资源的限制,嵌入式操作不可能像PC机的操作系统一样庞大,Windows98/2000有几百兆字节,而嵌入操作系统一般只有100-200半字节。同时嵌入操作系统还必须是实时多任务操作系统,而Windows98/2000不是实时操作系统。另一方面,嵌入式处理机的种类繁多,嵌入操作系统还必须支持多种不同处理器体系结构的众多处理机。

目前国际上嵌入式系统的主流是实时多任务操作系统(RTOS:Real-Time Operating System)。RTOS是嵌入式应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在RTOS之上。不但如此,RTOS还是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时开发基础。这样一来,基于RTOS上的C语言程序具有极大的可移植性。同时,在RTOS基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数和通用性的应用程序一起,可以作为产品销售,促进行业内的知识产权交流。

虽然商品化的嵌入式操作系统在20世纪70年代后期才出现,但到20世纪末,成熟的商品化操作系统已经十分丰富了,如Palm OS,VxWorks,pSOS,Nuclear,VelOSity,QNX,VRTX,WindowsCE(现改名为Windows Powered)以及目前炒得很热的嵌入式Linux等。

(3)接入Internet的通信协议

嵌入式系统接入Internet同PC机接入Internet一样,必须通过相应的通信协议。目前的Internet采用TCP/IP协议,因此嵌入式系统接入Internet最终必须通过TCP/IP接入,嵌入式系统对信息进行TCP/IP协议处理,使其变成可以在Internet上传输的IP数据包。若采用网关方式,在网关前端可以采用适合嵌入处理机和起控制作用的新协议,通过网关转换后变成标准IP包接入Internet。

由于嵌入式系统自身资源的限制,处理能力不如台式机强,以及从PC机上来的TCP/IP的复杂性,使得处理通信协议成为嵌入式系统接入Internet的关键,也是嵌入式系统接入Internet的难点之一。因此下面着重分析当前的几种接入方式以及对协议的不同处理方法。

2 嵌入Internet的几种接入方式

2.1 处理机加TCP/IP协议方式

采用处理机加TCP/IP协议方式,MCU处理机像PC机一样直接处理TCP/IP协议,一般需要高档的处理机,如32位的ARM,SH3,MIPS等MCU和一些单周期指令速度较高的8位MCU,如AVR、SX等,其结构见图1。

对TCP/IP协议的具体处理又有2种方法。一种方法是采用实时操作系统RTOS,用软件方式直接处理TCP/IP协议。实时操作系统的功能越来越强大,许多都具有对图像界面和TCP/IP的支持能力。采用这种方式最灵活,能按用户需求实现很多复杂的功能,当然灵活的同时带来的是开发复杂度的增加,对开发人员的要求高,对操作系统和TCP/IP协议都要有一定的熟悉程度,因此开发周期也较长,高档MCU和RTOS的价格也很高。

另一种是采用固化了TCP/IP协议的硬件芯片,如Seiko Instruments公司的S7600A等,它支持HTTP、SMTP、POP3、MIME等多种协议,通过外部硬件电路处理TCP/IP协议。也可用UBICOM公司(原Scenix公司)的SX单片机加虚拟外设的方式。SX单片机采用CPU并行流水线和单时钟周期指令,其极限运行速度系数等于1,达到最大值,支持的晶振最大到100 MHz,因此执行速度可达100MIPS。SX单片机的最大特点是支持虚拟外设,将许多功能模块(如DTMF接收与发送、TCP/IP协议等)设计成软件功能模块,需要使用某功能时直接调用相应模块,其效果等同于安装对应硬件外设电路,但虚拟外设方式更灵活更方便,且硬件电路简单。该方式与前一种相比更方便,开发难度有所降低,但还是需要熟悉TCP/IP协议和相关接口。

这两种方式类似于在MCU上实现PC机加网卡的功能,MCU直接处理TCP/IP协议,复杂度较高,且每个MCU也需要一个IP地址,而IP地址需要付费使用。它需要高档的MCU处理机和较高的开发成本,因此一般只会在一些高档产品(如汽车)中使用。它有一个好处是不需要PC机做网关。

2.2 Webit方式

Webit是沈阳东大新业信息技术股份有限公司研制开发的嵌入式系统接入Internet的一个实用产品,它将MCU和以太网控制器集成到一块小板卡上,将它装入到嵌入系统中就可以完成嵌入系统与Internet网的联接。Webit有自己的IP地址,与前面提到的第一种方式相似,但它有更高的集成度,将协议处理部分独立出来,开发人员省去了网络部分的设计,可将主要精力放在应用系统本身。

Webit总体上是一个基于AVR单片机的系统,在单片机内有用来存储系统服务程序的8千字节的FLASH空间、512字节的RAM空间以及用来存放

系统参数(IP地址、MAC地址、串口波特率等)的EEPROM。在单片机的外围,有用来存放Web页面的EEPROM。系统中包含一个10 M以太网控制器,用来提供网络的联接。系统提供的应用系统接口为TTL电平的UART口及14位I/O口,通过它与应用系统相连,其应用方式见图2。

Webit方式实际上与第一种方式类似,只是将协议处理部分分离出来由Webit单独完成,开发人员可以不必考虑网络协议和相关接口,但也需要独立的IP地址。该方式也不需要网关,无需PC机,软、硬件结构可以独立设计,其开发成本相对较低。

2.3 采用专用嵌入式网络协议

利用emWare公司开发的嵌入式微Internet网络技术(EMIT:Embedded Micro InternetworkingTechnology)。EMIT由emNet和emGateway两部分组成,emNet协议运行在MCU内部,是为嵌入式系统和其他网络(如RS485、IR、RF和电力线等)进行联接的网络协议。同时,emNet使得集成emMicro的嵌入式系统能够和嵌入式微控制器网关emGate-way进行有效的通信。嵌入式微控制器网关(即em-Gateway)运行在计算机、TV机顶盒或专用的家用电器服务器中,它是设备网络和Internet之间联接的桥梁。应用系统运行MCU内的emNet,通过em-Gateway与Internet联接,见图3。

具体来讲,EMIT采用桌面计算机或高性能嵌入式处理器作为网关emGateway,支持TCP/IP协议并运行Internet服务程序,形成一个用户可通过网络浏览器进行远程访问的服务器,emGateway通过RS232、RS485、CAN、红外、射频等总线将多个嵌入式设备联系起来,每个嵌入式设备的应用程序中包含一个独立的通信任务,称为emMicro,监测嵌入式设备中预先定义的各个变量,并将结果反馈到emGateway中;同时emMicro还可以解释emGate-way的命令,修改设备中的变量,或进行某种控制。

这种方式要求设计工程师必须熟悉emNet协议和相关的接口,并且软硬件设计的工作量仍然较大。应用系统的MCU处理emNet协议要占用一定的系统资源,对MCU的要求也较高,同时需要微机做网关。优点是网关中的一个IP地址可以联接多个嵌入式应用系统。

2.4 使用专用芯片Webchip

Webchip是武汉力源公司于2000年4月开发出使嵌入式电子设备和家用电器与网络方便联接的实用解决方案。Webchip是独立于各种微控制器的专用网络接口芯片,它通过标准的输入、输出口与各种MCU相连。MCU通过Webchip与网关联接即可接收并执行经由Internet远程传来的命令或将数据交给Webchip发送出去。MCU应用系统通过Webchip网络芯片与Gateway联接,再进入Internet网,如图4所示。

Webchip内部固化了MCUNet协议,它与em-Gateway和OSGi协议兼容,是MCU电子设备与计算机平台上的Gateway建立联系的一种软件协议,可以处理MCU与Gateway之间的通信。MCUNet协议结构简单,但功能很强。Webchip作用就是解释通信协议,控制数据传输,使MCU应用系统不用去管理协议的具体内容,只需要解释和执行Webchip送来的命令(Webchip与MCU之间共有17条命令)。Webchip将来自MCU的数据编译成符合协议规定的格式,然后传给Gateway,而由Gateway下传的命令和数据由Webchip负责解释,然后通过命令方式送给MCU。图4中的网关服务器用于协议的解释、转换、执行等,通常由一台普通PC机来实现。

Webchip的简要工作过程是:Webchip通过SPI三线串行接口与MCU应用系统联接。它与MCU应用系统交换信息是由17条简单的指令进行控制。Webchip的另一端以RS-232、RS-485或Modem等接口电路与基于PC机平台的网关接口。Webchip在MCU应用系统接入Internet的过程中实际上是起

了底层协议的编译、解释和转换作用,将MCU应用系统与网关再与Internet联接起来。这是由于PC机网关能提供HTTP服务,又可与网络浏览器接口。

这种方案相对更简单,对MCU要求较低,无论是运行速度、硬件配置和存储器容量等方面均无特殊要求;软件设计也只需在原应用系统的基础上增加一小段接口程序,其它无需作大的改动。对设计工程师,不需要熟悉复杂的网络协议和相关接口,完全不必考虑任何网络协议,只需要解释并执行We-bchip传送过来的指令和数据就可以实现与Internet网络联接。其开发周期更短,也较灵活。同采用专用嵌入式网络协议方案一样,需要微机做网关,网关中的一个IP地址可以联接多个嵌入式应用系统。

目前还买不到PS2000的芯片,只是最近在力源网站上有了PS2000的详细芯片资料。其开发套件也较便宜,包含带有通信接口的PSM2000模块板和PSE2000 EVKIT演示套件等。

3 结束语

随着芯片技术的发展,嵌入Internet还会有更多更新的接入方式出现。针对目前的情况,最主要的问题是需要解决成本问题,以上几种接入方式虽然有成本较低的方案,但与众多嵌入系统中便宜的MCU系统相比,其接入成本在整个系统中还是占有相当大的比重。只有接入成本进一步降低才能使嵌入式Internet真正进入寻常百姓家庭,真正在嵌入系统和智能家庭的大市场中发挥重要作用,因此还需要进一步开发单芯片的最低成本的解决方案,以适应市场的需要。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/127290.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存