学海荡舟手机网

主页 > 实用文摘 > 教育文摘_12 > > 详细内容

一种用VHDL设计嵌入式Web Server的方案_嵌入式系统论文

摘要:近几年嵌入式internet开始迅猛发展,但绝大多数嵌入式internet都使用微控制器和相应的软件来实现。本文介绍一种基于硬件来实现嵌入式web server的方案。该方案的核心思想是用vhdl语言来设计实现,并且用fpga进行验证。

    关键词:vhdl internet协议 控制协议 数据报

最近几年随着internet应用的迅猛发展,internet的通信协议,特别是tcp/ip协议,已成为嵌入式internet的主体构架;然而,仅仅使用嵌入tcp/ip协议对许我应用来说远远不够,它们要求更高层次的传输和交换方式。在原有嵌入tcp/ip协议基于上加入http/1.1将构成一个功能较为简单的嵌入式web server,它可以接收和发送一些简单的数据和命令。如果再将这些嵌入通信协议和web功能用vhdl来实现的话,将大大降低嵌入成本,满足嵌入式产品对web功能的要求。

1 嵌入式web server中的协议裁减

嵌入式web server中用到的通信协议较多,若全部采用,将导致整个嵌入式web server异常复杂,而且费用显著增加。因此,为保证嵌入式web server最简化,必须对一些主要的通信协议进行相关的裁减,减小整个硬件设计的复杂性。

1.1 ip协议

ip在网络中主要实现2个基本功能:寻址和分段。ip可以根据数据报头中包括的目的地址将数据报传送到目的地。在此过程中,ip负责选择传送的通道。如果有些网络内只能传送小的数据报,ip可以将数据报重新组装并在报头域内说明。

    在嵌入式web server中,由于只需传送一些简单的数据和命令,数据报的长度很小,足以适合在任何网络中传送,因此对于分段的功能可以裁减不要。

ip数据包头如图1所示。

在ip数据包头中,服务类型是指一些服务质量的参数,这些参数用于在特定网络指示所需要的服务。而选项包括时间戳,安全和特殊路由,在数据包中可以没有。因此,为简化嵌入web server的复杂程度,这2个字段都可以忽略,而且不用作任何处理。标识是发送时用于帮助重组分段包的,段偏移量是指示这个段在数据报中什么位置。由于不采用分段功能,因此这些字段都无须考虑也不用作任何处理,而且标记字段第2位必须为1,表示是不可分段的。

1.2 icmp协议裁减

icmp协议用于报告在数据报过程中的错误,它在以下几种情况下发送icmp消息:未达目的地、超时、参数总是、源拥塞、重定向、回送或回送响应、时间戳和时间戳响应、信息请求或响应。

由于嵌入式web server只是一个具有简单web功能的模块,并且它对外部传感器和网络之间只是简单的数据传输和命令的发布;因此跟成本相比较而言,许多可靠性措施可以忽略不计,只考虑一些必要。在icmp消息报告中,回送或回送响应消息、信息请求或信息响应消息在网络处理中至关重要,因此予以采用;其它消息报告可以忽略,保证嵌入式web server最简化。

1.3 tcp协议裁减

tcp,即传输控制协议,是一种面向连接的传输层协议。通过使用序列号和确认信息,tcp协议能够向发送方提供到达接收方的数据包的传送信息。当传送过程中出现数据包丢失情况时,tcp协议可以重新发送丢失的数据包,直到数据成功到达接收方或者出现网络超时为止。tcp协议还可以识别重复信息,丢弃不需要的多余信息。使网络环境得到优化。如果发送方传送数据的速度大大快于接收方接收数据的速度,tcp协议可以发送和接收的数据响应。tcp协议能够把数据传送传递给所支持的更高层次的协议或应用使用。

但在嵌入式web server中,考虑到实现的情况和复杂性,对于tcp协议,除了采用数据包传送机外,重新发送和数据流控制机制都可以忽略不计。因此在嵌入式web server中,只传送一些简单的数据和命令,而且数据量很少,因此,在系统中不会产生网络拥塞,只需在其它客户端或访问端上用流量控制机制就可以了。同时由于嵌入式web server功能简单,重新发送的可靠性不大;如果真的要求重发的话,可以与嵌入式web server重新进行连接,来完成传送任务。

2 硬件结构

由于tcp协议、ip协议和icmp协议被简化,整个协议的处理只需由协议状态机来完成。它须负责接收ip数据报、做相应的检验和消息处理、协议解释、根据接收到的进行tcp状态的转换、构造ip发送数据报。

整个嵌入式web server的硬件结构如图2所示。嵌入式web server由本地网络协议处理器、tcp处理器、ip数据包接收和发送处理及存储器、嵌入式web server ip的地址寄存器、传感器数据采集接口组成。在嵌入式web server的传感器数据采集接口的数据直接传送到主页存储器中。

ip数据报处理检查数据报是否发送给嵌入式web server以及是否有效。

tcp状态机是一个简化的tcp连接过程,只有6个状态,不包括错误情况和错误处理。

http的存储器包含了接收到的http的报头。如果接收到的ip包体有一个有效http载荷,那么http/1.0协议解释器会搜索存储器寻找相应的回答。ip数据报构造器根据http/1.0协议解释器搜索结果构造发送的包体。其中地址、端口号、确认号、序列号是根据接收到的数据包体产生的,而校验码是根据发送的数据产生。其它则是从数据接口和主页内存中形成的。

整个硬件设计采用了vhdl语言,采用xilinx的fpga进行仿真。

3 vhdl设计

整个嵌入式web server的具体的vhdl设计在这里不多说明,只介绍其核心的tcp状态机的状态转移顺序和转移条件的设计。整个协议状态机有6种状态,还可以分离出6种事件,这些事件的发生可以引起状态间相互转换,如图3所示。

syn表示连接请求;ack(syn)表示连接确认;rst表示拒绝建立连接;fin(close)主动关闭连接请求;ack(fin)关闭连接确认;time out计时等待结束。

tcp状态机的vhdl的设计代码省略。

4 结论

嵌入式web server的网络连接既可以采用以太网方式,也可以采用蓝牙技术,这可以根据需要来选定。采用硬件来解决嵌入式web server,关键在于它的复杂度很低,而且可以根据需要嵌入到相应的运用系统的芯片中去,减少了开发时间,降低了成本。采用vhdl使设计移植更加方便。