问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求网络监控系统设计数据流图的资料(好则追30分)

发布网友 发布时间:2022-04-29 15:35

我来回答

1个回答

热心网友 时间:2023-10-15 23:39

摘要:介绍了一种嵌入式于单片机的Web服务器的设计过程,给出了单片机控制下的网络控制器RTL8019AS硬件平台的设计、精简的TCP/IP协议栈通过LAN访问Internet的应用方案。同时简明介绍了实时内核uC/OS-II对整个系统的管理方案,完成了对连接在系统I/O总线上的现有设备的监控。

关键词:Web服务器 单片机 uC/OS-II TCP/IP协议栈 动态IP配置

随着信息时代的到来,特别是互联网的迅速普及,人们开始越来越多地接触到一个新概念--嵌入式产品。将嵌入式系统接入Internet。不仅实现了设备的远程控制、维护和升级,而且可实现资源共享。通过网络对设备进行监控,一个外部界面是必不可少的,利用Web浏览器可使用户通过网络对远程系统实现管理和更新,大大简化了人机界面的设计。若在系统中嵌入实时操作系统,将使系统具有极强的可移植性,另外,硬件设备的添加与裁剪也具有极庞大的灵活性。采用DHCP协议动态获得IP相关信息,使TCP/IP软件不再依赖于存储在芯片中的固定IP地址,这将为大型系统的安装提供方便条件。

本设计的关键是如何在内存资源有限的单片机系统上,利用实时内核uC/OS-II把信息变成可以在互联网上传输的IP数据包,以便通过IE浏览器监控远程设备的状态。

1 网络监控系统概述

本设计采用Internet监控远程设备,整个系统相当于一个网络服务器。客户端通过IE浏览器对该服务器进行访问,实时地获得设备的状态信息,以便对设备进行控制和维护。这样,就要求服务器提供WWW服务,即实现HTTP协议。它应被所有浏览器支持,以保证任何地方的用户都可通过浏览器下达命令。在网络接口上,本系统选择以太网为其运行的网络环境。图1所示为HTTP设计模型。首先,客户端的浏览器与Web服务器使用一个或多个TCP连接,通过80号端口进行通信,浏览器通过HTTP协议浏览事先存储在EEROM中的控制网页,通过该网页传递控制命令到网络服务器,然后服务器对命令进行解析,调用相应的函数控制外部I/O设备。

整个设备监控系统包括硬件和软件两部分。在硬件部分嵌入了TCP/IP协议栈。因系统资源有限,在保持协议分层体系结构的前提下,应尽量精简协议内容。根据网络监控系统的原理,本系统实现了以下协议:DHCP、HTTP、TCP、IP、ICMP、ARP。

2 硬件平台设计

本设计采用以太网作为网络的运行环境,在硬件上需要有网络控制芯片。目前市场上有许多以太网络控制芯片,但其大多数都耗电量高、功能复杂,不适合用于价格低廉的嵌入式系统中。在这里选用RTL8019AS,其好处是NE2000兼容、软件移植性好、接口简单、不需转换芯片如PCI-ISA桥等。而单片机选择89C55,它有20K的ROM,内部结构简单,只要代码能够移植于它,就能较轻松地移植于其它架构的CPU,比如ARM等。图2为硬件原理框图。24C64用来存储物理地址及设备的相关信息等;外部RAM为数据处理提供缓存。系统提供了RS232接口用来进行测试,提供了RJ45接口以便连接到以太网。
3 操作系统的选择

根据监控系统的特点,系统必须满足实时性和并发性的要求,以便更好地支持TCP/IP运行时的调度,所以应用软应该基于嵌入式实时操作系统。适合于片上的实时操作系统比较多,但是代码公开且适合移植51系列单片机的却很少,主要有uC/OS-II、RTX51、Small RTOS51等。实时内核uC/OS-II是专门为单片机嵌入式应用而设计的,图3为嵌入式实时操作系统的内部结构图。它主要采用标准的ANSI C语言写成,与硬件有关的部分使用汇编语言编写,以使操作系统能很方便地移植到其它的处理器。可见,使用嵌入式操作系统时,应用软件只与上层的代码有关与处理器无关,在进行软件移植时仅需对与硬件相关的底层函数进行修改,因此这样的应用软件具有良好的可移植性和稳定的可靠性。在uC/OS-II下编写TCP/IP协议,比传统的前后台系统要方便很多;用它分析内存缓存区,使用前申请,使用后释放,可有效地利用系统资源。在程序设计时将TCP/IP协议栈做成任务,而用户程序在另外的任务中运行。这样,单片机可在完成原来控制系统功能的前提下,实现网络通信。从代码长度上看,实现基本功能的TCP/IP协议栈比Linux等其它操作系统优势更大。

4 软件设计

软件设计是网络监控系统设计的重要部分,主要完成RTL8019AS的驱动、uC/OS-II对应系统的管理及TCP/IP协议栈的实现。

4.1 uC/OS-II操作系统的应用

uC/OS-II可以根据需要进行相应裁剪后移植到51单片机上。用它对系统进行管理,使得程序易读,且便于移植。藽/OS-II主要负责管理网卡初始化、创建系统资源、创建任务等三部分工作。在系统资源的创建上,使用TxSem、RxSem信号量及TxQFIFO队列。当需要发送或接收数据时,触发RTL8019AS中断,CPU将中断向量进入中断服务子程序,进行事件处理。中断服务子程序根据RTL8019AS内部中断状态寄存器IMR的值确定系统所处状态,通过两个信号量TxSemPost和RxSemPost切换系统任务,使系统相应信号量的一个任务进入就绪态。发送数据帧的过程是通过检查信号量TxSemPost而进行的相应处理,为了保证数据正确到达客户端,这里采用了多次发送机制。当信号量RxSemPost到来时,开始接收数据。如果数据帧正确,就根据数据包的大小申请合适的内存空间存放该数据,然后根据接收帧的目的地址的正确与否决定是否将该帧提交给上层应用程序。若无误则解析数据报头,进行相应处理。

4.2 RTL8019驱动

RTL8019AS完成数据包和电信号之间的相互转换。驱动程序主要包括芯片初始化、收包、发包三部分。物理信道上的收发操作采用以太网协议802.3帧格式。系统收发数据包的原理是单片机先将待发送的数据包存入RTL8019芯片RAM,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0,1)后,启动发送命令(CR=0x3E),即可实现RTL8019的发送功能。RTL8019会自动按以太网协议完成发送并将结果写入状态寄存器。RTL8019芯片接收缓冲区构成一个循环FIFO队列,PSTART、PSTOP两个寄存器限定了循环队列的开始和结束页,CURR为写入指针,受芯片控制,BNRY为读出指针,由主机程序控制。根据CURR==BNRY+1?可以判断出是否收到新的数据包,新收到的数据包存于以CURR指出的地址为首址的RAM中。当CURR==BNRY时,芯片停止接收数据包。
4.3 网络协议栈的实现

基于TCP/IP协议可以实现多种功能,本文主要讨论HTTP协议,也就是Web服务在应用层的主要构成协议。由于TCP/IP协议栈本身是一种层式结构,所以在协议栈的设计上采用模块化思想,逐层实现,然后通过对各层接口函数的调用实现完整的协议栈。实现TCP/IP协议栈的大致流程如图4所示。

要想将嵌入式系统作为一个终端并用TCP/IP连接起来,就必须设定IP地址、网关和子网掩码等信息。为了增强系统的灵活性,需要一种自动配置能力,即系统自动从中心服务器获得IP地址等信息。实现这一功能的标准方法是通过主机动态配置协议(DHCP)。DHCP是基于UDP层之上的应用,采用端口68和67以广播的形式进行通讯,它的工作主要包括探查、赋予、请求、确认等操作。

HTTP协议选择定义请求-应答机制获得Web服务器上的文件。当用户访问Web服务器中的网页时,一个HTTP请求就会以多行字符串的形式从浏览器发送到Web服务器,第一行指定一个方法GET,后面跟着一串参数。服务器对客户端的应答需包含HTTP报文头,如果请求成功,还包括文档本身,这些信息沿TCP连接发送,直至传送完成断开连接。含量少量信息的报文头包含成功或失败状态及传输文档的内容类型(文本、HTML、GIF图形等)。所有连接的相关信息如IP地址、客启端口号、序列号、应答号及TCP状态等被放入一个结构体,结构体的每个元素均可看作一个连接状态。服务器进程关闭连接表示本次响应结束。网页信息以HTML文本格式存储于EEROM中,Web服务器创建局部变理以匹配文档中的特殊字符,这些信息通过HTTP协议沿TCP连接发送到浏览器,服务器在应答文档中碰到合适的字符,就替换一个变量值,实现动态网页。

为了在服务器和客房端之间传递HTTP请求和应答信息,需要一个可靠的通信信道,这由传输控制协议TCP提供。TCP提供一种面向连接的可靠的数据流服务,它的主要任务是创建进程到进程的通信。数据传输分三个阶段进行:建立连接、传输数据、断开连接,实现起来相对复杂。由于嵌入式系统是服务器端,总是对客户的连接请求给予响应,从不主动发起连接请求,因此只要在保证嵌入式系统能够对TCP分组进行正确响应的前提下,就可以对TCP协议进行大幅度简化。嵌入式系统总是响应客户连接,始终是被动地打开连接,所以只需为建立连接过程中的嵌入式系统提供LISTEN、SYN_RCVD两种状态即可。虽然比标准状态变迁图中缺少了CLOSED、SYN_SENT状态,但LISTEN、SYN_RCVD足以描述系统建立连接时的状态。当系统在传最后一个数据包时,设置FIN,要求终止当前连接。连接主动关闭和同时关闭两种情况都是可能发生的,因此只需为系统提供主动关闭和同时关闭涉及到的状态即可。

为了在主机之间传递TCP段,需要实现IP协议。IP协议的实现比较复杂,但是从实现Web服务器这一特定的要求出发,主要需要把握如下两点设计思想:第一,对接收到的IP数据报进行处理,向上层协议进行提交;第二;负责对TCP报文、ICMP报文进行封装,交给数据链路层进行装帧。实际上这是IP协议最基本的功能,也是Web服务器在网络层必需的功能。ICMP协议负责传递差错报文及其它需要注意的信息,Ping利用ICMP协议的回响功能实现主机/服务器是否有应答的测试。Ping的实现主要由ping请求、ping应答和回显操作三个函数完成。

实时内核uC/OS-II下的网络监控系统的设计

慧聪网 2005年12月22日10时35分 信息来源:电子技术应用

由于采用以太网的接入方式,因此系统必须实现IEEE802.3标准,主要由RTL8019AS完成,为了保证系统在以太网的通信,还需要实现ARP协议。ARP协议的本质就是完成网络地址到物理地址的映射,从而保证网络的正确传输。整个ARP处理过程由ARP请求、ARP应答、ARP处理三个函数实现,ARP处理函数建立了ARP缓存表。

本文介绍的嵌入式网络监控系统采用IE浏览器作为客户端界面,支持RS232和以太网的连接,可以通过以太网接入Internet,进而实现从Internet上监控嵌入式设备。在实际应用中,如果I/O口连接了其它硬件设备,只需对变量的处理函数做相应改动,就可实现远程监控。系统内部嵌入uC/OS-II操作系统,使用灵活,可通过编程增加需要的功能。采用DHCP动态获得IP地址等信息,增强了系统的灵活性。本方案所实现的网络监控系统具有成本低、可视化、与平台无关等特点,可以广泛应用在工业控制领域,有很高的实用价值。

参考资料:http://www.ic37.com/Document/View.asp?id=6616

热心网友 时间:2023-10-15 23:39

摘要:介绍了一种嵌入式于单片机的Web服务器的设计过程,给出了单片机控制下的网络控制器RTL8019AS硬件平台的设计、精简的TCP/IP协议栈通过LAN访问Internet的应用方案。同时简明介绍了实时内核uC/OS-II对整个系统的管理方案,完成了对连接在系统I/O总线上的现有设备的监控。

关键词:Web服务器 单片机 uC/OS-II TCP/IP协议栈 动态IP配置

随着信息时代的到来,特别是互联网的迅速普及,人们开始越来越多地接触到一个新概念--嵌入式产品。将嵌入式系统接入Internet。不仅实现了设备的远程控制、维护和升级,而且可实现资源共享。通过网络对设备进行监控,一个外部界面是必不可少的,利用Web浏览器可使用户通过网络对远程系统实现管理和更新,大大简化了人机界面的设计。若在系统中嵌入实时操作系统,将使系统具有极强的可移植性,另外,硬件设备的添加与裁剪也具有极庞大的灵活性。采用DHCP协议动态获得IP相关信息,使TCP/IP软件不再依赖于存储在芯片中的固定IP地址,这将为大型系统的安装提供方便条件。

本设计的关键是如何在内存资源有限的单片机系统上,利用实时内核uC/OS-II把信息变成可以在互联网上传输的IP数据包,以便通过IE浏览器监控远程设备的状态。

1 网络监控系统概述

本设计采用Internet监控远程设备,整个系统相当于一个网络服务器。客户端通过IE浏览器对该服务器进行访问,实时地获得设备的状态信息,以便对设备进行控制和维护。这样,就要求服务器提供WWW服务,即实现HTTP协议。它应被所有浏览器支持,以保证任何地方的用户都可通过浏览器下达命令。在网络接口上,本系统选择以太网为其运行的网络环境。图1所示为HTTP设计模型。首先,客户端的浏览器与Web服务器使用一个或多个TCP连接,通过80号端口进行通信,浏览器通过HTTP协议浏览事先存储在EEROM中的控制网页,通过该网页传递控制命令到网络服务器,然后服务器对命令进行解析,调用相应的函数控制外部I/O设备。

整个设备监控系统包括硬件和软件两部分。在硬件部分嵌入了TCP/IP协议栈。因系统资源有限,在保持协议分层体系结构的前提下,应尽量精简协议内容。根据网络监控系统的原理,本系统实现了以下协议:DHCP、HTTP、TCP、IP、ICMP、ARP。

2 硬件平台设计

本设计采用以太网作为网络的运行环境,在硬件上需要有网络控制芯片。目前市场上有许多以太网络控制芯片,但其大多数都耗电量高、功能复杂,不适合用于价格低廉的嵌入式系统中。在这里选用RTL8019AS,其好处是NE2000兼容、软件移植性好、接口简单、不需转换芯片如PCI-ISA桥等。而单片机选择89C55,它有20K的ROM,内部结构简单,只要代码能够移植于它,就能较轻松地移植于其它架构的CPU,比如ARM等。图2为硬件原理框图。24C64用来存储物理地址及设备的相关信息等;外部RAM为数据处理提供缓存。系统提供了RS232接口用来进行测试,提供了RJ45接口以便连接到以太网。
3 操作系统的选择

根据监控系统的特点,系统必须满足实时性和并发性的要求,以便更好地支持TCP/IP运行时的调度,所以应用软应该基于嵌入式实时操作系统。适合于片上的实时操作系统比较多,但是代码公开且适合移植51系列单片机的却很少,主要有uC/OS-II、RTX51、Small RTOS51等。实时内核uC/OS-II是专门为单片机嵌入式应用而设计的,图3为嵌入式实时操作系统的内部结构图。它主要采用标准的ANSI C语言写成,与硬件有关的部分使用汇编语言编写,以使操作系统能很方便地移植到其它的处理器。可见,使用嵌入式操作系统时,应用软件只与上层的代码有关与处理器无关,在进行软件移植时仅需对与硬件相关的底层函数进行修改,因此这样的应用软件具有良好的可移植性和稳定的可靠性。在uC/OS-II下编写TCP/IP协议,比传统的前后台系统要方便很多;用它分析内存缓存区,使用前申请,使用后释放,可有效地利用系统资源。在程序设计时将TCP/IP协议栈做成任务,而用户程序在另外的任务中运行。这样,单片机可在完成原来控制系统功能的前提下,实现网络通信。从代码长度上看,实现基本功能的TCP/IP协议栈比Linux等其它操作系统优势更大。

4 软件设计

软件设计是网络监控系统设计的重要部分,主要完成RTL8019AS的驱动、uC/OS-II对应系统的管理及TCP/IP协议栈的实现。

4.1 uC/OS-II操作系统的应用

uC/OS-II可以根据需要进行相应裁剪后移植到51单片机上。用它对系统进行管理,使得程序易读,且便于移植。藽/OS-II主要负责管理网卡初始化、创建系统资源、创建任务等三部分工作。在系统资源的创建上,使用TxSem、RxSem信号量及TxQFIFO队列。当需要发送或接收数据时,触发RTL8019AS中断,CPU将中断向量进入中断服务子程序,进行事件处理。中断服务子程序根据RTL8019AS内部中断状态寄存器IMR的值确定系统所处状态,通过两个信号量TxSemPost和RxSemPost切换系统任务,使系统相应信号量的一个任务进入就绪态。发送数据帧的过程是通过检查信号量TxSemPost而进行的相应处理,为了保证数据正确到达客户端,这里采用了多次发送机制。当信号量RxSemPost到来时,开始接收数据。如果数据帧正确,就根据数据包的大小申请合适的内存空间存放该数据,然后根据接收帧的目的地址的正确与否决定是否将该帧提交给上层应用程序。若无误则解析数据报头,进行相应处理。

4.2 RTL8019驱动

RTL8019AS完成数据包和电信号之间的相互转换。驱动程序主要包括芯片初始化、收包、发包三部分。物理信道上的收发操作采用以太网协议802.3帧格式。系统收发数据包的原理是单片机先将待发送的数据包存入RTL8019芯片RAM,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0,1)后,启动发送命令(CR=0x3E),即可实现RTL8019的发送功能。RTL8019会自动按以太网协议完成发送并将结果写入状态寄存器。RTL8019芯片接收缓冲区构成一个循环FIFO队列,PSTART、PSTOP两个寄存器限定了循环队列的开始和结束页,CURR为写入指针,受芯片控制,BNRY为读出指针,由主机程序控制。根据CURR==BNRY+1?可以判断出是否收到新的数据包,新收到的数据包存于以CURR指出的地址为首址的RAM中。当CURR==BNRY时,芯片停止接收数据包。
4.3 网络协议栈的实现

基于TCP/IP协议可以实现多种功能,本文主要讨论HTTP协议,也就是Web服务在应用层的主要构成协议。由于TCP/IP协议栈本身是一种层式结构,所以在协议栈的设计上采用模块化思想,逐层实现,然后通过对各层接口函数的调用实现完整的协议栈。实现TCP/IP协议栈的大致流程如图4所示。

要想将嵌入式系统作为一个终端并用TCP/IP连接起来,就必须设定IP地址、网关和子网掩码等信息。为了增强系统的灵活性,需要一种自动配置能力,即系统自动从中心服务器获得IP地址等信息。实现这一功能的标准方法是通过主机动态配置协议(DHCP)。DHCP是基于UDP层之上的应用,采用端口68和67以广播的形式进行通讯,它的工作主要包括探查、赋予、请求、确认等操作。

HTTP协议选择定义请求-应答机制获得Web服务器上的文件。当用户访问Web服务器中的网页时,一个HTTP请求就会以多行字符串的形式从浏览器发送到Web服务器,第一行指定一个方法GET,后面跟着一串参数。服务器对客户端的应答需包含HTTP报文头,如果请求成功,还包括文档本身,这些信息沿TCP连接发送,直至传送完成断开连接。含量少量信息的报文头包含成功或失败状态及传输文档的内容类型(文本、HTML、GIF图形等)。所有连接的相关信息如IP地址、客启端口号、序列号、应答号及TCP状态等被放入一个结构体,结构体的每个元素均可看作一个连接状态。服务器进程关闭连接表示本次响应结束。网页信息以HTML文本格式存储于EEROM中,Web服务器创建局部变理以匹配文档中的特殊字符,这些信息通过HTTP协议沿TCP连接发送到浏览器,服务器在应答文档中碰到合适的字符,就替换一个变量值,实现动态网页。

为了在服务器和客房端之间传递HTTP请求和应答信息,需要一个可靠的通信信道,这由传输控制协议TCP提供。TCP提供一种面向连接的可靠的数据流服务,它的主要任务是创建进程到进程的通信。数据传输分三个阶段进行:建立连接、传输数据、断开连接,实现起来相对复杂。由于嵌入式系统是服务器端,总是对客户的连接请求给予响应,从不主动发起连接请求,因此只要在保证嵌入式系统能够对TCP分组进行正确响应的前提下,就可以对TCP协议进行大幅度简化。嵌入式系统总是响应客户连接,始终是被动地打开连接,所以只需为建立连接过程中的嵌入式系统提供LISTEN、SYN_RCVD两种状态即可。虽然比标准状态变迁图中缺少了CLOSED、SYN_SENT状态,但LISTEN、SYN_RCVD足以描述系统建立连接时的状态。当系统在传最后一个数据包时,设置FIN,要求终止当前连接。连接主动关闭和同时关闭两种情况都是可能发生的,因此只需为系统提供主动关闭和同时关闭涉及到的状态即可。

为了在主机之间传递TCP段,需要实现IP协议。IP协议的实现比较复杂,但是从实现Web服务器这一特定的要求出发,主要需要把握如下两点设计思想:第一,对接收到的IP数据报进行处理,向上层协议进行提交;第二;负责对TCP报文、ICMP报文进行封装,交给数据链路层进行装帧。实际上这是IP协议最基本的功能,也是Web服务器在网络层必需的功能。ICMP协议负责传递差错报文及其它需要注意的信息,Ping利用ICMP协议的回响功能实现主机/服务器是否有应答的测试。Ping的实现主要由ping请求、ping应答和回显操作三个函数完成。

实时内核uC/OS-II下的网络监控系统的设计

慧聪网 2005年12月22日10时35分 信息来源:电子技术应用

由于采用以太网的接入方式,因此系统必须实现IEEE802.3标准,主要由RTL8019AS完成,为了保证系统在以太网的通信,还需要实现ARP协议。ARP协议的本质就是完成网络地址到物理地址的映射,从而保证网络的正确传输。整个ARP处理过程由ARP请求、ARP应答、ARP处理三个函数实现,ARP处理函数建立了ARP缓存表。

本文介绍的嵌入式网络监控系统采用IE浏览器作为客户端界面,支持RS232和以太网的连接,可以通过以太网接入Internet,进而实现从Internet上监控嵌入式设备。在实际应用中,如果I/O口连接了其它硬件设备,只需对变量的处理函数做相应改动,就可实现远程监控。系统内部嵌入uC/OS-II操作系统,使用灵活,可通过编程增加需要的功能。采用DHCP动态获得IP地址等信息,增强了系统的灵活性。本方案所实现的网络监控系统具有成本低、可视化、与平台无关等特点,可以广泛应用在工业控制领域,有很高的实用价值。

参考资料:http://www.ic37.com/Document/View.asp?id=6616

热心网友 时间:2023-10-15 23:39

摘要:介绍了一种嵌入式于单片机的Web服务器的设计过程,给出了单片机控制下的网络控制器RTL8019AS硬件平台的设计、精简的TCP/IP协议栈通过LAN访问Internet的应用方案。同时简明介绍了实时内核uC/OS-II对整个系统的管理方案,完成了对连接在系统I/O总线上的现有设备的监控。

关键词:Web服务器 单片机 uC/OS-II TCP/IP协议栈 动态IP配置

随着信息时代的到来,特别是互联网的迅速普及,人们开始越来越多地接触到一个新概念--嵌入式产品。将嵌入式系统接入Internet。不仅实现了设备的远程控制、维护和升级,而且可实现资源共享。通过网络对设备进行监控,一个外部界面是必不可少的,利用Web浏览器可使用户通过网络对远程系统实现管理和更新,大大简化了人机界面的设计。若在系统中嵌入实时操作系统,将使系统具有极强的可移植性,另外,硬件设备的添加与裁剪也具有极庞大的灵活性。采用DHCP协议动态获得IP相关信息,使TCP/IP软件不再依赖于存储在芯片中的固定IP地址,这将为大型系统的安装提供方便条件。

本设计的关键是如何在内存资源有限的单片机系统上,利用实时内核uC/OS-II把信息变成可以在互联网上传输的IP数据包,以便通过IE浏览器监控远程设备的状态。

1 网络监控系统概述

本设计采用Internet监控远程设备,整个系统相当于一个网络服务器。客户端通过IE浏览器对该服务器进行访问,实时地获得设备的状态信息,以便对设备进行控制和维护。这样,就要求服务器提供WWW服务,即实现HTTP协议。它应被所有浏览器支持,以保证任何地方的用户都可通过浏览器下达命令。在网络接口上,本系统选择以太网为其运行的网络环境。图1所示为HTTP设计模型。首先,客户端的浏览器与Web服务器使用一个或多个TCP连接,通过80号端口进行通信,浏览器通过HTTP协议浏览事先存储在EEROM中的控制网页,通过该网页传递控制命令到网络服务器,然后服务器对命令进行解析,调用相应的函数控制外部I/O设备。

整个设备监控系统包括硬件和软件两部分。在硬件部分嵌入了TCP/IP协议栈。因系统资源有限,在保持协议分层体系结构的前提下,应尽量精简协议内容。根据网络监控系统的原理,本系统实现了以下协议:DHCP、HTTP、TCP、IP、ICMP、ARP。

2 硬件平台设计

本设计采用以太网作为网络的运行环境,在硬件上需要有网络控制芯片。目前市场上有许多以太网络控制芯片,但其大多数都耗电量高、功能复杂,不适合用于价格低廉的嵌入式系统中。在这里选用RTL8019AS,其好处是NE2000兼容、软件移植性好、接口简单、不需转换芯片如PCI-ISA桥等。而单片机选择89C55,它有20K的ROM,内部结构简单,只要代码能够移植于它,就能较轻松地移植于其它架构的CPU,比如ARM等。图2为硬件原理框图。24C64用来存储物理地址及设备的相关信息等;外部RAM为数据处理提供缓存。系统提供了RS232接口用来进行测试,提供了RJ45接口以便连接到以太网。
3 操作系统的选择

根据监控系统的特点,系统必须满足实时性和并发性的要求,以便更好地支持TCP/IP运行时的调度,所以应用软应该基于嵌入式实时操作系统。适合于片上的实时操作系统比较多,但是代码公开且适合移植51系列单片机的却很少,主要有uC/OS-II、RTX51、Small RTOS51等。实时内核uC/OS-II是专门为单片机嵌入式应用而设计的,图3为嵌入式实时操作系统的内部结构图。它主要采用标准的ANSI C语言写成,与硬件有关的部分使用汇编语言编写,以使操作系统能很方便地移植到其它的处理器。可见,使用嵌入式操作系统时,应用软件只与上层的代码有关与处理器无关,在进行软件移植时仅需对与硬件相关的底层函数进行修改,因此这样的应用软件具有良好的可移植性和稳定的可靠性。在uC/OS-II下编写TCP/IP协议,比传统的前后台系统要方便很多;用它分析内存缓存区,使用前申请,使用后释放,可有效地利用系统资源。在程序设计时将TCP/IP协议栈做成任务,而用户程序在另外的任务中运行。这样,单片机可在完成原来控制系统功能的前提下,实现网络通信。从代码长度上看,实现基本功能的TCP/IP协议栈比Linux等其它操作系统优势更大。

4 软件设计

软件设计是网络监控系统设计的重要部分,主要完成RTL8019AS的驱动、uC/OS-II对应系统的管理及TCP/IP协议栈的实现。

4.1 uC/OS-II操作系统的应用

uC/OS-II可以根据需要进行相应裁剪后移植到51单片机上。用它对系统进行管理,使得程序易读,且便于移植。藽/OS-II主要负责管理网卡初始化、创建系统资源、创建任务等三部分工作。在系统资源的创建上,使用TxSem、RxSem信号量及TxQFIFO队列。当需要发送或接收数据时,触发RTL8019AS中断,CPU将中断向量进入中断服务子程序,进行事件处理。中断服务子程序根据RTL8019AS内部中断状态寄存器IMR的值确定系统所处状态,通过两个信号量TxSemPost和RxSemPost切换系统任务,使系统相应信号量的一个任务进入就绪态。发送数据帧的过程是通过检查信号量TxSemPost而进行的相应处理,为了保证数据正确到达客户端,这里采用了多次发送机制。当信号量RxSemPost到来时,开始接收数据。如果数据帧正确,就根据数据包的大小申请合适的内存空间存放该数据,然后根据接收帧的目的地址的正确与否决定是否将该帧提交给上层应用程序。若无误则解析数据报头,进行相应处理。

4.2 RTL8019驱动

RTL8019AS完成数据包和电信号之间的相互转换。驱动程序主要包括芯片初始化、收包、发包三部分。物理信道上的收发操作采用以太网协议802.3帧格式。系统收发数据包的原理是单片机先将待发送的数据包存入RTL8019芯片RAM,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0,1)后,启动发送命令(CR=0x3E),即可实现RTL8019的发送功能。RTL8019会自动按以太网协议完成发送并将结果写入状态寄存器。RTL8019芯片接收缓冲区构成一个循环FIFO队列,PSTART、PSTOP两个寄存器限定了循环队列的开始和结束页,CURR为写入指针,受芯片控制,BNRY为读出指针,由主机程序控制。根据CURR==BNRY+1?可以判断出是否收到新的数据包,新收到的数据包存于以CURR指出的地址为首址的RAM中。当CURR==BNRY时,芯片停止接收数据包。
4.3 网络协议栈的实现

基于TCP/IP协议可以实现多种功能,本文主要讨论HTTP协议,也就是Web服务在应用层的主要构成协议。由于TCP/IP协议栈本身是一种层式结构,所以在协议栈的设计上采用模块化思想,逐层实现,然后通过对各层接口函数的调用实现完整的协议栈。实现TCP/IP协议栈的大致流程如图4所示。

要想将嵌入式系统作为一个终端并用TCP/IP连接起来,就必须设定IP地址、网关和子网掩码等信息。为了增强系统的灵活性,需要一种自动配置能力,即系统自动从中心服务器获得IP地址等信息。实现这一功能的标准方法是通过主机动态配置协议(DHCP)。DHCP是基于UDP层之上的应用,采用端口68和67以广播的形式进行通讯,它的工作主要包括探查、赋予、请求、确认等操作。

HTTP协议选择定义请求-应答机制获得Web服务器上的文件。当用户访问Web服务器中的网页时,一个HTTP请求就会以多行字符串的形式从浏览器发送到Web服务器,第一行指定一个方法GET,后面跟着一串参数。服务器对客户端的应答需包含HTTP报文头,如果请求成功,还包括文档本身,这些信息沿TCP连接发送,直至传送完成断开连接。含量少量信息的报文头包含成功或失败状态及传输文档的内容类型(文本、HTML、GIF图形等)。所有连接的相关信息如IP地址、客启端口号、序列号、应答号及TCP状态等被放入一个结构体,结构体的每个元素均可看作一个连接状态。服务器进程关闭连接表示本次响应结束。网页信息以HTML文本格式存储于EEROM中,Web服务器创建局部变理以匹配文档中的特殊字符,这些信息通过HTTP协议沿TCP连接发送到浏览器,服务器在应答文档中碰到合适的字符,就替换一个变量值,实现动态网页。

为了在服务器和客房端之间传递HTTP请求和应答信息,需要一个可靠的通信信道,这由传输控制协议TCP提供。TCP提供一种面向连接的可靠的数据流服务,它的主要任务是创建进程到进程的通信。数据传输分三个阶段进行:建立连接、传输数据、断开连接,实现起来相对复杂。由于嵌入式系统是服务器端,总是对客户的连接请求给予响应,从不主动发起连接请求,因此只要在保证嵌入式系统能够对TCP分组进行正确响应的前提下,就可以对TCP协议进行大幅度简化。嵌入式系统总是响应客户连接,始终是被动地打开连接,所以只需为建立连接过程中的嵌入式系统提供LISTEN、SYN_RCVD两种状态即可。虽然比标准状态变迁图中缺少了CLOSED、SYN_SENT状态,但LISTEN、SYN_RCVD足以描述系统建立连接时的状态。当系统在传最后一个数据包时,设置FIN,要求终止当前连接。连接主动关闭和同时关闭两种情况都是可能发生的,因此只需为系统提供主动关闭和同时关闭涉及到的状态即可。

为了在主机之间传递TCP段,需要实现IP协议。IP协议的实现比较复杂,但是从实现Web服务器这一特定的要求出发,主要需要把握如下两点设计思想:第一,对接收到的IP数据报进行处理,向上层协议进行提交;第二;负责对TCP报文、ICMP报文进行封装,交给数据链路层进行装帧。实际上这是IP协议最基本的功能,也是Web服务器在网络层必需的功能。ICMP协议负责传递差错报文及其它需要注意的信息,Ping利用ICMP协议的回响功能实现主机/服务器是否有应答的测试。Ping的实现主要由ping请求、ping应答和回显操作三个函数完成。

实时内核uC/OS-II下的网络监控系统的设计

慧聪网 2005年12月22日10时35分 信息来源:电子技术应用

由于采用以太网的接入方式,因此系统必须实现IEEE802.3标准,主要由RTL8019AS完成,为了保证系统在以太网的通信,还需要实现ARP协议。ARP协议的本质就是完成网络地址到物理地址的映射,从而保证网络的正确传输。整个ARP处理过程由ARP请求、ARP应答、ARP处理三个函数实现,ARP处理函数建立了ARP缓存表。

本文介绍的嵌入式网络监控系统采用IE浏览器作为客户端界面,支持RS232和以太网的连接,可以通过以太网接入Internet,进而实现从Internet上监控嵌入式设备。在实际应用中,如果I/O口连接了其它硬件设备,只需对变量的处理函数做相应改动,就可实现远程监控。系统内部嵌入uC/OS-II操作系统,使用灵活,可通过编程增加需要的功能。采用DHCP动态获得IP地址等信息,增强了系统的灵活性。本方案所实现的网络监控系统具有成本低、可视化、与平台无关等特点,可以广泛应用在工业控制领域,有很高的实用价值。

参考资料:http://www.ic37.com/Document/View.asp?id=6616

热心网友 时间:2023-10-15 23:40

摘要:介绍了一种嵌入式于单片机的Web服务器的设计过程,给出了单片机控制下的网络控制器RTL8019AS硬件平台的设计、精简的TCP/IP协议栈通过LAN访问Internet的应用方案。同时简明介绍了实时内核uC/OS-II对整个系统的管理方案,完成了对连接在系统I/O总线上的现有设备的监控。

关键词:Web服务器 单片机 uC/OS-II TCP/IP协议栈 动态IP配置

随着信息时代的到来,特别是互联网的迅速普及,人们开始越来越多地接触到一个新概念--嵌入式产品。将嵌入式系统接入Internet。不仅实现了设备的远程控制、维护和升级,而且可实现资源共享。通过网络对设备进行监控,一个外部界面是必不可少的,利用Web浏览器可使用户通过网络对远程系统实现管理和更新,大大简化了人机界面的设计。若在系统中嵌入实时操作系统,将使系统具有极强的可移植性,另外,硬件设备的添加与裁剪也具有极庞大的灵活性。采用DHCP协议动态获得IP相关信息,使TCP/IP软件不再依赖于存储在芯片中的固定IP地址,这将为大型系统的安装提供方便条件。

本设计的关键是如何在内存资源有限的单片机系统上,利用实时内核uC/OS-II把信息变成可以在互联网上传输的IP数据包,以便通过IE浏览器监控远程设备的状态。

1 网络监控系统概述

本设计采用Internet监控远程设备,整个系统相当于一个网络服务器。客户端通过IE浏览器对该服务器进行访问,实时地获得设备的状态信息,以便对设备进行控制和维护。这样,就要求服务器提供WWW服务,即实现HTTP协议。它应被所有浏览器支持,以保证任何地方的用户都可通过浏览器下达命令。在网络接口上,本系统选择以太网为其运行的网络环境。图1所示为HTTP设计模型。首先,客户端的浏览器与Web服务器使用一个或多个TCP连接,通过80号端口进行通信,浏览器通过HTTP协议浏览事先存储在EEROM中的控制网页,通过该网页传递控制命令到网络服务器,然后服务器对命令进行解析,调用相应的函数控制外部I/O设备。

整个设备监控系统包括硬件和软件两部分。在硬件部分嵌入了TCP/IP协议栈。因系统资源有限,在保持协议分层体系结构的前提下,应尽量精简协议内容。根据网络监控系统的原理,本系统实现了以下协议:DHCP、HTTP、TCP、IP、ICMP、ARP。

2 硬件平台设计

本设计采用以太网作为网络的运行环境,在硬件上需要有网络控制芯片。目前市场上有许多以太网络控制芯片,但其大多数都耗电量高、功能复杂,不适合用于价格低廉的嵌入式系统中。在这里选用RTL8019AS,其好处是NE2000兼容、软件移植性好、接口简单、不需转换芯片如PCI-ISA桥等。而单片机选择89C55,它有20K的ROM,内部结构简单,只要代码能够移植于它,就能较轻松地移植于其它架构的CPU,比如ARM等。图2为硬件原理框图。24C64用来存储物理地址及设备的相关信息等;外部RAM为数据处理提供缓存。系统提供了RS232接口用来进行测试,提供了RJ45接口以便连接到以太网。
3 操作系统的选择

根据监控系统的特点,系统必须满足实时性和并发性的要求,以便更好地支持TCP/IP运行时的调度,所以应用软应该基于嵌入式实时操作系统。适合于片上的实时操作系统比较多,但是代码公开且适合移植51系列单片机的却很少,主要有uC/OS-II、RTX51、Small RTOS51等。实时内核uC/OS-II是专门为单片机嵌入式应用而设计的,图3为嵌入式实时操作系统的内部结构图。它主要采用标准的ANSI C语言写成,与硬件有关的部分使用汇编语言编写,以使操作系统能很方便地移植到其它的处理器。可见,使用嵌入式操作系统时,应用软件只与上层的代码有关与处理器无关,在进行软件移植时仅需对与硬件相关的底层函数进行修改,因此这样的应用软件具有良好的可移植性和稳定的可靠性。在uC/OS-II下编写TCP/IP协议,比传统的前后台系统要方便很多;用它分析内存缓存区,使用前申请,使用后释放,可有效地利用系统资源。在程序设计时将TCP/IP协议栈做成任务,而用户程序在另外的任务中运行。这样,单片机可在完成原来控制系统功能的前提下,实现网络通信。从代码长度上看,实现基本功能的TCP/IP协议栈比Linux等其它操作系统优势更大。

4 软件设计

软件设计是网络监控系统设计的重要部分,主要完成RTL8019AS的驱动、uC/OS-II对应系统的管理及TCP/IP协议栈的实现。

4.1 uC/OS-II操作系统的应用

uC/OS-II可以根据需要进行相应裁剪后移植到51单片机上。用它对系统进行管理,使得程序易读,且便于移植。藽/OS-II主要负责管理网卡初始化、创建系统资源、创建任务等三部分工作。在系统资源的创建上,使用TxSem、RxSem信号量及TxQFIFO队列。当需要发送或接收数据时,触发RTL8019AS中断,CPU将中断向量进入中断服务子程序,进行事件处理。中断服务子程序根据RTL8019AS内部中断状态寄存器IMR的值确定系统所处状态,通过两个信号量TxSemPost和RxSemPost切换系统任务,使系统相应信号量的一个任务进入就绪态。发送数据帧的过程是通过检查信号量TxSemPost而进行的相应处理,为了保证数据正确到达客户端,这里采用了多次发送机制。当信号量RxSemPost到来时,开始接收数据。如果数据帧正确,就根据数据包的大小申请合适的内存空间存放该数据,然后根据接收帧的目的地址的正确与否决定是否将该帧提交给上层应用程序。若无误则解析数据报头,进行相应处理。

4.2 RTL8019驱动

RTL8019AS完成数据包和电信号之间的相互转换。驱动程序主要包括芯片初始化、收包、发包三部分。物理信道上的收发操作采用以太网协议802.3帧格式。系统收发数据包的原理是单片机先将待发送的数据包存入RTL8019芯片RAM,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0,1)后,启动发送命令(CR=0x3E),即可实现RTL8019的发送功能。RTL8019会自动按以太网协议完成发送并将结果写入状态寄存器。RTL8019芯片接收缓冲区构成一个循环FIFO队列,PSTART、PSTOP两个寄存器限定了循环队列的开始和结束页,CURR为写入指针,受芯片控制,BNRY为读出指针,由主机程序控制。根据CURR==BNRY+1?可以判断出是否收到新的数据包,新收到的数据包存于以CURR指出的地址为首址的RAM中。当CURR==BNRY时,芯片停止接收数据包。
4.3 网络协议栈的实现

基于TCP/IP协议可以实现多种功能,本文主要讨论HTTP协议,也就是Web服务在应用层的主要构成协议。由于TCP/IP协议栈本身是一种层式结构,所以在协议栈的设计上采用模块化思想,逐层实现,然后通过对各层接口函数的调用实现完整的协议栈。实现TCP/IP协议栈的大致流程如图4所示。

要想将嵌入式系统作为一个终端并用TCP/IP连接起来,就必须设定IP地址、网关和子网掩码等信息。为了增强系统的灵活性,需要一种自动配置能力,即系统自动从中心服务器获得IP地址等信息。实现这一功能的标准方法是通过主机动态配置协议(DHCP)。DHCP是基于UDP层之上的应用,采用端口68和67以广播的形式进行通讯,它的工作主要包括探查、赋予、请求、确认等操作。

HTTP协议选择定义请求-应答机制获得Web服务器上的文件。当用户访问Web服务器中的网页时,一个HTTP请求就会以多行字符串的形式从浏览器发送到Web服务器,第一行指定一个方法GET,后面跟着一串参数。服务器对客户端的应答需包含HTTP报文头,如果请求成功,还包括文档本身,这些信息沿TCP连接发送,直至传送完成断开连接。含量少量信息的报文头包含成功或失败状态及传输文档的内容类型(文本、HTML、GIF图形等)。所有连接的相关信息如IP地址、客启端口号、序列号、应答号及TCP状态等被放入一个结构体,结构体的每个元素均可看作一个连接状态。服务器进程关闭连接表示本次响应结束。网页信息以HTML文本格式存储于EEROM中,Web服务器创建局部变理以匹配文档中的特殊字符,这些信息通过HTTP协议沿TCP连接发送到浏览器,服务器在应答文档中碰到合适的字符,就替换一个变量值,实现动态网页。

为了在服务器和客房端之间传递HTTP请求和应答信息,需要一个可靠的通信信道,这由传输控制协议TCP提供。TCP提供一种面向连接的可靠的数据流服务,它的主要任务是创建进程到进程的通信。数据传输分三个阶段进行:建立连接、传输数据、断开连接,实现起来相对复杂。由于嵌入式系统是服务器端,总是对客户的连接请求给予响应,从不主动发起连接请求,因此只要在保证嵌入式系统能够对TCP分组进行正确响应的前提下,就可以对TCP协议进行大幅度简化。嵌入式系统总是响应客户连接,始终是被动地打开连接,所以只需为建立连接过程中的嵌入式系统提供LISTEN、SYN_RCVD两种状态即可。虽然比标准状态变迁图中缺少了CLOSED、SYN_SENT状态,但LISTEN、SYN_RCVD足以描述系统建立连接时的状态。当系统在传最后一个数据包时,设置FIN,要求终止当前连接。连接主动关闭和同时关闭两种情况都是可能发生的,因此只需为系统提供主动关闭和同时关闭涉及到的状态即可。

为了在主机之间传递TCP段,需要实现IP协议。IP协议的实现比较复杂,但是从实现Web服务器这一特定的要求出发,主要需要把握如下两点设计思想:第一,对接收到的IP数据报进行处理,向上层协议进行提交;第二;负责对TCP报文、ICMP报文进行封装,交给数据链路层进行装帧。实际上这是IP协议最基本的功能,也是Web服务器在网络层必需的功能。ICMP协议负责传递差错报文及其它需要注意的信息,Ping利用ICMP协议的回响功能实现主机/服务器是否有应答的测试。Ping的实现主要由ping请求、ping应答和回显操作三个函数完成。

实时内核uC/OS-II下的网络监控系统的设计

慧聪网 2005年12月22日10时35分 信息来源:电子技术应用

由于采用以太网的接入方式,因此系统必须实现IEEE802.3标准,主要由RTL8019AS完成,为了保证系统在以太网的通信,还需要实现ARP协议。ARP协议的本质就是完成网络地址到物理地址的映射,从而保证网络的正确传输。整个ARP处理过程由ARP请求、ARP应答、ARP处理三个函数实现,ARP处理函数建立了ARP缓存表。

本文介绍的嵌入式网络监控系统采用IE浏览器作为客户端界面,支持RS232和以太网的连接,可以通过以太网接入Internet,进而实现从Internet上监控嵌入式设备。在实际应用中,如果I/O口连接了其它硬件设备,只需对变量的处理函数做相应改动,就可实现远程监控。系统内部嵌入uC/OS-II操作系统,使用灵活,可通过编程增加需要的功能。采用DHCP动态获得IP地址等信息,增强了系统的灵活性。本方案所实现的网络监控系统具有成本低、可视化、与平台无关等特点,可以广泛应用在工业控制领域,有很高的实用价值。

参考资料:http://www.ic37.com/Document/View.asp?id=6616

热心网友 时间:2023-10-15 23:40

摘要:介绍了一种嵌入式于单片机的Web服务器的设计过程,给出了单片机控制下的网络控制器RTL8019AS硬件平台的设计、精简的TCP/IP协议栈通过LAN访问Internet的应用方案。同时简明介绍了实时内核uC/OS-II对整个系统的管理方案,完成了对连接在系统I/O总线上的现有设备的监控。

关键词:Web服务器 单片机 uC/OS-II TCP/IP协议栈 动态IP配置

随着信息时代的到来,特别是互联网的迅速普及,人们开始越来越多地接触到一个新概念--嵌入式产品。将嵌入式系统接入Internet。不仅实现了设备的远程控制、维护和升级,而且可实现资源共享。通过网络对设备进行监控,一个外部界面是必不可少的,利用Web浏览器可使用户通过网络对远程系统实现管理和更新,大大简化了人机界面的设计。若在系统中嵌入实时操作系统,将使系统具有极强的可移植性,另外,硬件设备的添加与裁剪也具有极庞大的灵活性。采用DHCP协议动态获得IP相关信息,使TCP/IP软件不再依赖于存储在芯片中的固定IP地址,这将为大型系统的安装提供方便条件。

本设计的关键是如何在内存资源有限的单片机系统上,利用实时内核uC/OS-II把信息变成可以在互联网上传输的IP数据包,以便通过IE浏览器监控远程设备的状态。

1 网络监控系统概述

本设计采用Internet监控远程设备,整个系统相当于一个网络服务器。客户端通过IE浏览器对该服务器进行访问,实时地获得设备的状态信息,以便对设备进行控制和维护。这样,就要求服务器提供WWW服务,即实现HTTP协议。它应被所有浏览器支持,以保证任何地方的用户都可通过浏览器下达命令。在网络接口上,本系统选择以太网为其运行的网络环境。图1所示为HTTP设计模型。首先,客户端的浏览器与Web服务器使用一个或多个TCP连接,通过80号端口进行通信,浏览器通过HTTP协议浏览事先存储在EEROM中的控制网页,通过该网页传递控制命令到网络服务器,然后服务器对命令进行解析,调用相应的函数控制外部I/O设备。

整个设备监控系统包括硬件和软件两部分。在硬件部分嵌入了TCP/IP协议栈。因系统资源有限,在保持协议分层体系结构的前提下,应尽量精简协议内容。根据网络监控系统的原理,本系统实现了以下协议:DHCP、HTTP、TCP、IP、ICMP、ARP。

2 硬件平台设计

本设计采用以太网作为网络的运行环境,在硬件上需要有网络控制芯片。目前市场上有许多以太网络控制芯片,但其大多数都耗电量高、功能复杂,不适合用于价格低廉的嵌入式系统中。在这里选用RTL8019AS,其好处是NE2000兼容、软件移植性好、接口简单、不需转换芯片如PCI-ISA桥等。而单片机选择89C55,它有20K的ROM,内部结构简单,只要代码能够移植于它,就能较轻松地移植于其它架构的CPU,比如ARM等。图2为硬件原理框图。24C64用来存储物理地址及设备的相关信息等;外部RAM为数据处理提供缓存。系统提供了RS232接口用来进行测试,提供了RJ45接口以便连接到以太网。
3 操作系统的选择

根据监控系统的特点,系统必须满足实时性和并发性的要求,以便更好地支持TCP/IP运行时的调度,所以应用软应该基于嵌入式实时操作系统。适合于片上的实时操作系统比较多,但是代码公开且适合移植51系列单片机的却很少,主要有uC/OS-II、RTX51、Small RTOS51等。实时内核uC/OS-II是专门为单片机嵌入式应用而设计的,图3为嵌入式实时操作系统的内部结构图。它主要采用标准的ANSI C语言写成,与硬件有关的部分使用汇编语言编写,以使操作系统能很方便地移植到其它的处理器。可见,使用嵌入式操作系统时,应用软件只与上层的代码有关与处理器无关,在进行软件移植时仅需对与硬件相关的底层函数进行修改,因此这样的应用软件具有良好的可移植性和稳定的可靠性。在uC/OS-II下编写TCP/IP协议,比传统的前后台系统要方便很多;用它分析内存缓存区,使用前申请,使用后释放,可有效地利用系统资源。在程序设计时将TCP/IP协议栈做成任务,而用户程序在另外的任务中运行。这样,单片机可在完成原来控制系统功能的前提下,实现网络通信。从代码长度上看,实现基本功能的TCP/IP协议栈比Linux等其它操作系统优势更大。

4 软件设计

软件设计是网络监控系统设计的重要部分,主要完成RTL8019AS的驱动、uC/OS-II对应系统的管理及TCP/IP协议栈的实现。

4.1 uC/OS-II操作系统的应用

uC/OS-II可以根据需要进行相应裁剪后移植到51单片机上。用它对系统进行管理,使得程序易读,且便于移植。藽/OS-II主要负责管理网卡初始化、创建系统资源、创建任务等三部分工作。在系统资源的创建上,使用TxSem、RxSem信号量及TxQFIFO队列。当需要发送或接收数据时,触发RTL8019AS中断,CPU将中断向量进入中断服务子程序,进行事件处理。中断服务子程序根据RTL8019AS内部中断状态寄存器IMR的值确定系统所处状态,通过两个信号量TxSemPost和RxSemPost切换系统任务,使系统相应信号量的一个任务进入就绪态。发送数据帧的过程是通过检查信号量TxSemPost而进行的相应处理,为了保证数据正确到达客户端,这里采用了多次发送机制。当信号量RxSemPost到来时,开始接收数据。如果数据帧正确,就根据数据包的大小申请合适的内存空间存放该数据,然后根据接收帧的目的地址的正确与否决定是否将该帧提交给上层应用程序。若无误则解析数据报头,进行相应处理。

4.2 RTL8019驱动

RTL8019AS完成数据包和电信号之间的相互转换。驱动程序主要包括芯片初始化、收包、发包三部分。物理信道上的收发操作采用以太网协议802.3帧格式。系统收发数据包的原理是单片机先将待发送的数据包存入RTL8019芯片RAM,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0,1)后,启动发送命令(CR=0x3E),即可实现RTL8019的发送功能。RTL8019会自动按以太网协议完成发送并将结果写入状态寄存器。RTL8019芯片接收缓冲区构成一个循环FIFO队列,PSTART、PSTOP两个寄存器限定了循环队列的开始和结束页,CURR为写入指针,受芯片控制,BNRY为读出指针,由主机程序控制。根据CURR==BNRY+1?可以判断出是否收到新的数据包,新收到的数据包存于以CURR指出的地址为首址的RAM中。当CURR==BNRY时,芯片停止接收数据包。
4.3 网络协议栈的实现

基于TCP/IP协议可以实现多种功能,本文主要讨论HTTP协议,也就是Web服务在应用层的主要构成协议。由于TCP/IP协议栈本身是一种层式结构,所以在协议栈的设计上采用模块化思想,逐层实现,然后通过对各层接口函数的调用实现完整的协议栈。实现TCP/IP协议栈的大致流程如图4所示。

要想将嵌入式系统作为一个终端并用TCP/IP连接起来,就必须设定IP地址、网关和子网掩码等信息。为了增强系统的灵活性,需要一种自动配置能力,即系统自动从中心服务器获得IP地址等信息。实现这一功能的标准方法是通过主机动态配置协议(DHCP)。DHCP是基于UDP层之上的应用,采用端口68和67以广播的形式进行通讯,它的工作主要包括探查、赋予、请求、确认等操作。

HTTP协议选择定义请求-应答机制获得Web服务器上的文件。当用户访问Web服务器中的网页时,一个HTTP请求就会以多行字符串的形式从浏览器发送到Web服务器,第一行指定一个方法GET,后面跟着一串参数。服务器对客户端的应答需包含HTTP报文头,如果请求成功,还包括文档本身,这些信息沿TCP连接发送,直至传送完成断开连接。含量少量信息的报文头包含成功或失败状态及传输文档的内容类型(文本、HTML、GIF图形等)。所有连接的相关信息如IP地址、客启端口号、序列号、应答号及TCP状态等被放入一个结构体,结构体的每个元素均可看作一个连接状态。服务器进程关闭连接表示本次响应结束。网页信息以HTML文本格式存储于EEROM中,Web服务器创建局部变理以匹配文档中的特殊字符,这些信息通过HTTP协议沿TCP连接发送到浏览器,服务器在应答文档中碰到合适的字符,就替换一个变量值,实现动态网页。

为了在服务器和客房端之间传递HTTP请求和应答信息,需要一个可靠的通信信道,这由传输控制协议TCP提供。TCP提供一种面向连接的可靠的数据流服务,它的主要任务是创建进程到进程的通信。数据传输分三个阶段进行:建立连接、传输数据、断开连接,实现起来相对复杂。由于嵌入式系统是服务器端,总是对客户的连接请求给予响应,从不主动发起连接请求,因此只要在保证嵌入式系统能够对TCP分组进行正确响应的前提下,就可以对TCP协议进行大幅度简化。嵌入式系统总是响应客户连接,始终是被动地打开连接,所以只需为建立连接过程中的嵌入式系统提供LISTEN、SYN_RCVD两种状态即可。虽然比标准状态变迁图中缺少了CLOSED、SYN_SENT状态,但LISTEN、SYN_RCVD足以描述系统建立连接时的状态。当系统在传最后一个数据包时,设置FIN,要求终止当前连接。连接主动关闭和同时关闭两种情况都是可能发生的,因此只需为系统提供主动关闭和同时关闭涉及到的状态即可。

为了在主机之间传递TCP段,需要实现IP协议。IP协议的实现比较复杂,但是从实现Web服务器这一特定的要求出发,主要需要把握如下两点设计思想:第一,对接收到的IP数据报进行处理,向上层协议进行提交;第二;负责对TCP报文、ICMP报文进行封装,交给数据链路层进行装帧。实际上这是IP协议最基本的功能,也是Web服务器在网络层必需的功能。ICMP协议负责传递差错报文及其它需要注意的信息,Ping利用ICMP协议的回响功能实现主机/服务器是否有应答的测试。Ping的实现主要由ping请求、ping应答和回显操作三个函数完成。

实时内核uC/OS-II下的网络监控系统的设计

慧聪网 2005年12月22日10时35分 信息来源:电子技术应用

由于采用以太网的接入方式,因此系统必须实现IEEE802.3标准,主要由RTL8019AS完成,为了保证系统在以太网的通信,还需要实现ARP协议。ARP协议的本质就是完成网络地址到物理地址的映射,从而保证网络的正确传输。整个ARP处理过程由ARP请求、ARP应答、ARP处理三个函数实现,ARP处理函数建立了ARP缓存表。

本文介绍的嵌入式网络监控系统采用IE浏览器作为客户端界面,支持RS232和以太网的连接,可以通过以太网接入Internet,进而实现从Internet上监控嵌入式设备。在实际应用中,如果I/O口连接了其它硬件设备,只需对变量的处理函数做相应改动,就可实现远程监控。系统内部嵌入uC/OS-II操作系统,使用灵活,可通过编程增加需要的功能。采用DHCP动态获得IP地址等信息,增强了系统的灵活性。本方案所实现的网络监控系统具有成本低、可视化、与平台无关等特点,可以广泛应用在工业控制领域,有很高的实用价值。

参考资料:http://www.ic37.com/Document/View.asp?id=6616

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米平板6Max没有网络怎么办 ...wifi和4G网络我都试过都现实吗没有网络。刚买的是正品没有刷机_百度... 2023年淘宝双11招商规则 淘宝国庆狂欢季招商规则及玩法 淘宝年货买不停招商规则 淘宝超来电活动招商规则 ZIP转换成RAR怎么转换? 衢州醉根艺品有限公司怎么样? 徐谷青主要业绩 徐谷青人物介绍 在心悦俱乐部里冲cf点可以加cfvip成长值吗 模拟监控系统和数字监控系统哪个好 有哪位大神知道CF游戏里的心悦会员是怎么点亮的 路灯监控系统工作原理和电路图 监控系统的工作原理是什么 安防监控系统原理图 监控系统原理图 祢正平裸衣骂贼中误杀了谁 祢正平裸衣骂贼这一情节的赏析 一出京剧老生传统戏,取材于三国演义“弥正平裸衣骂贼” 称正平裸衣骂贼十二生肖解哪肖 签了卖房合同,现在我不想卖了怎么办 房东在卖房时被中介骗了签了合同,发现后不想卖了,应该怎么办? 卖房合同签了房主却不想卖了怎么办? 签了卖房合同,现在我不想卖了怎么办? 如何写仲裁申请? 签了合同不想卖房了,怎么办 签订房屋买卖合同不想卖房了要怎么办 民法典签订房屋买卖合同不想卖房了怎么办 签订房屋买卖合同不想卖房了怎么处理 安防中所提到的CCTV系统原理是什么意思? 请问cf心悦俱乐部 冲cf点返利活动需要什么条件?需要会员吗?还是说所有人都可以。下面这个活动 wps除以号 在心悦俱乐部冲cf点,cf会员加不加成长值 心悦cf会员积分怎么弄 在ipad平板电脑中wps office 如何插入乘号 cf心悦会员成长值怎么升高啊 WPS的每列相乘怎么算?求解 怎么在心悦俱乐部低价充值CF点卷? 心悦俱乐部 1000积分换10000cf点 什么时候开始 cf心悦会员成长值如何查询 穿越火线特权专区心悦俱乐部那个活动抽奖有什么技巧吗 穿越火线那些抽奖活动砸钱算在心悦俱乐部积分里面吗? 高考改革之我见作文怎么写 对于高考改革的看法 英语作文120字 以我对高考助考的看法的作文800 高考改革的利弊+作文600字 谈谈你对高考的看法 求一篇英语作文:关于北京高考改革的看法 高考改革的利与弊?