基于操作系统驱动的嵌入式tcpip协议栈的实现-implementation of embedded tcpip protocol stack based on operating system driver.docxVIP

  • 17
  • 0
  • 约3.11万字
  • 约 54页
  • 2018-05-18 发布于上海
  • 举报

基于操作系统驱动的嵌入式tcpip协议栈的实现-implementation of embedded tcpip protocol stack based on operating system driver.docx

基于操作系统驱动的嵌入式tcpip协议栈的实现-implementation of embedded tcpip protocol stack based on operating system driver

1 绪论1.1选题背景随着以太网各种广播媒体的出现,使广电有线网络业务遭受前所未有的冲击[1]。目前,大部分广电有线网络是单向下行的广播式网络,用户到广电中心的业务点播通道尚未建立,有线电视网络的现状无法满足广大用户开展双向业务的迫切需求,为了扩展业务,提高自身竞争力,广电提出对现有网络进行双向改造。在下一代广播网络改造中,EPON+EOC[2]的网络架构提供了简单的端对端且基于以太网的分组网络,可以为用户提供双向互动服务,并且可以充分利用广电现有的有线电视同轴网络。EPON+EOC是将无源光网络和以太网相结合的技术,由光纤干线、同轴电缆支线组成,在有线电视网络中心将待传输的信号转换成光纤信号,然后利用光纤干线将光纤信号传输到用户区域,在用户区域将光信号转换成电信号,再经过局端EOC 设备将信号分配后通过同轴电缆传输到用户家中[3]。方案中涉及到的局端EOC设备是一种EOC交换机,它不仅可以将信号从有线电视中心传输到用户,还为用户提供了业务点播所需的回路。为了使EOC交换机能够实现双向传输的功能,一款高效精简的TCP/IP协议栈是必不可少的。在嵌入式系统上实现TCP/IP协议栈主要有硬件方法和软件方法。硬件方法是采用FPGA或者CPLD等可编程逻辑器件编程实现,这种方法实现的协议栈运行速度快,但是可扩展性差,另外实现难度较大;软件方法分为基于操作系统任务的实现与基于操作系统驱动的实现,基于操作系统任务的实现是将TCP/IP协议栈注册到操作系统内核中,以任务的方式调度协议栈的每层结构,在层与层之间传输数据需要进行任务之间的切换,这就导致操作系统内核运行效率低,并且占用系统存储资源较大;基于操作系统驱动的实现是将整个协议栈以驱动的方式加载到操作系统中,当接收到数据或者应用程序加载例程时,系统会以使用驱动的形式调用协议栈,整个协议栈工作在一个任务中,大大的节省了系统资源[4]。目前主流的嵌入式操作系统(如Linux)都是采用任务调度的方式实现TCP/IP协议栈,采用这种方式的嵌入式系统运行协议栈效率很低,另外Linux下的TCP/IP协议栈的代码庞大,剪裁的工作量较大。而专门针对嵌入式系统的TCP/IP协议栈都不开放源代码,仅有的几种嵌入式协议栈,如uIP[5]、LwIP[6],都是针对ucOS[7]操作系统而设计的,将其移植到其它嵌入式操作系统上需要更改的设置很多。针对这种情况,在Linux系统下实现一个便于移植、节省内存资源、精简高效的TCP/IP协议栈,将具有很重要的现实意义。1.2嵌入式TCP/IP协议栈研究现状嵌入式TCP/IP协议栈就是在嵌入式设备上实现的以太网通信协议。最早的TCP/IP协议栈是在UNIX操作系统上实现的,之后Windows、Linux、DOS等操作系统也都实现了相应的TCP/IP协议栈[8]。随着嵌入式系统的迅速发展和网络的不断普及,在嵌入式系统上实现网络功能越来越重要。由于嵌入式系统与普通的计算机系统在软硬件资源上都有很大的差别,因此在嵌入式系统上实现TCP/IP协议栈需要考虑很多问题,如内存资源有限,CPU处理速度慢等。目前,已经存在多种可用于嵌入式系统的TCP/IP协议栈,根据其各自的特点及应用领域的不同,主要可以分为以下几类:BSDTCP/IP协议栈[9]BSDTCP/IP协议栈是所有其它协议栈的起点,在其之后实现的嵌入式协议栈都是在它的基础上产生,该协议栈实现的功能几乎概括了RFC文档所规定所有协议,它的源代码公开,并且可用于开发的文档比较全面。2) uIP协议栈[10]uIP是专门为低端微处理器设计的一款精简的嵌入式协议栈,缩减了TCP/IP协议栈的代码量和内存使用量,经过编译后的uIP协议栈可以运行在只有几千字节ROM,几百个字节RAM的嵌入式处理器上。但是uIP协议栈体系结构不够清晰,对协议栈中每层协议放在一起处理,这种跨层实现方式固然可以减小协议栈的整体尺寸和运行空间,但牺牲了协议栈的整体灵活性、可维护性以及可移植性。3) LwIP协议栈[11]LwIP协议栈是一款轻量级嵌入式协议栈,它支持多线程,可以在ucOS操作系统上运行,也可以在无操作系统的嵌入式平台上运行,它提供了丰富的API接口供用户调用。它的主要特点是,在保证所有协议功能的前提下,尽量减小协议栈运行所占用的内存空间,一般处于运行态的协议栈只占用几十K字节的内存。目前,LwIP 是在基于ucOS 操作系统上应用最广泛的协议栈,它支持的协议包括ICMP、UDP、TCP(包括TCP协议中的阻塞控制,快速恢复,快速转发和重传时间的选择)、DHCP 协议等。综上所述,BSD实现的TCP/IP协议比较全面,但是其代码庞大,裁剪移植难度大,uIP代码量少,实现的功能精简,这也限制了uIP在一些高端处理器上的应用,如在可靠性要求高与大容

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档