【vfp开源代码栏目提醒】:网学会员为广大网友收集整理了,基于ARM的μCOSⅡ内核网络化的实现 - 毕业设计,希望对大家有所帮助!
基于ARM的u C/OS.II内核网络化的实现作者简介:张幼麟,女,生于1975年6月,2004年9月师从于成都理工大学祝忠明副教授,2007年6月获得工学硕士学位。
摘要 随着计算机技术的发展,嵌入式系统己成为计算机领域的一个重要组成部分。
而采用ARM微处理器作为硬件基础和n c/os-II作为嵌入式操作系统被广泛的应在各种嵌入式应用系统中。
而随着网络化、信息化时代的来临,嵌入式设备的网络互联己经成为必然趋势。
它通过现有嵌入式系统,增加网络接入能力,使嵌入式设备直接接入Internet。
本课题采用SkyEye模拟的AT91EV40开发板作为硬件开发平台,采用嵌入式实时操作系统11 C/OS-II为软件开发平台,研究嵌入式TCP/IP协议栈。
本文首先对ARM微处理器和“c/os—II进行了介绍;研究和探讨了u c/os-II在ARM架构上的移植方案,并就其关键技术部分,结合实现
代码进行了阐述并提出了移植过程中要注意的问题。
接着本文分层介绍TcP/IP协议栈,主要讲述各个分层及其所属的协议,报文格式等;并针对嵌入式系统的特点,对TCP/IP协议进行合理的简化,使之实现了TCP/IP协议簇的一些协议如:ARP,IP,ICMP,UDP,TCP和HTTP。
同时研究了嵌入式TCP/IP协议栈LwlP的特性,分析了它的进程模型、数据包结构、工作流程、目录结构、应用程序接口。
研究了将LwlP移植到u c/os—II系统上,实现嵌入式系统的网络联接,并用ping命令和一个简单静态网页的访问验证了网络功能的实现。
关键词:ARM微处理器;u c/os—II;TCP/IP协议栈;LwlP:SkyEye The Implementation of Networking|l c/os-II kernel Based on ARM With the development of computer technology,The Embedded system hasbcc:ome all Lmportant constituent in computer domain.The ARM microprocessor usedas hardware foundation and 1.t C/OS·Il used as Embedded operating system is been widespread in a lot kinds of Embedded application system.Now,to make Embedded system伽connect with interact has already become inevitable trend,with the coming of network and information era.Based on the current embedded system, added the function of connecting with network,the embedded equipment Call link with intemet instead of pc.We use SkyEye simulating AT91EV40 board as hardware platform,It C/OS—II as software platform and research on embedded TCP/IP protocol stack. At fist,this paper introduces the ARM microprocessor and It C/OS—II.Secondly, we dis∞搿;es and researches the project of the transplanting it C/OS·II to ARM microprocessor,which essential technology is elaborated by realization code.After the transplant of operating system has been done,we introduce TCP/IP protocol stack, stressing on the protocols of every layer,we simplify the protocol stack,make it be fitof the Embedded system,but we make it be sure that the stack possesses theseprotocol at least:ARP,IP,ICMP,UDP,TCP and HrIE T1len we research the featuresof open souroe TCP/IP stack·LwrP,such as its memory management mechanism,API,work flow,and interface;and analyze the method of transplanting it to u C/OS·II.Atlast we use tWO examples:ping and a web page to validate that our Embedded systemrealizes network connection.key words:ARM;u C/OS-II;TCP/IP protocol stack;LwlP;SkyEye II 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。
据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得盛都理王盍堂或其他教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
弛嘶 学学 文文 作作 者者 导签 师名 獬谚 纠年卜月趵日 学位论文
版权使用授权书 本学位论文作者完全了解盛壑堡王太堂有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。
本人授权盛壑堡王太堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
(保密的学位论文在解密后适用本授权书) 学位论文作者签名: 爿幼觞4 沙7年 岁月加日 第1章引言 第1章引言 随着信息技术和网络技术的高速发展,嵌入式产品广泛地渗透到日常生活、科学研究和军事技术的领域。
目前嵌入式系统技术已经成为了最热门的技术之一,而基于ARM的嵌入式技术已经成为当前嵌入式领域研究的一个亮点。
采用ARM微处理器作为硬件基础和n C/OS.II作为嵌入式操作系统被广泛的应在各种嵌入式应用系统中。
而随着21世纪网络化、信息化时代的来临,嵌入式设备的
网络互联己经成为必然趋势。
如何通过互联网共享小型嵌入式设备的信息,成为当今电子界的热门话题。
嵌入式系统与Intemet技术相结合,形成的嵌入式Interact技术是近几年随着计算机网络技术的普及而发展起来的一项新兴技术。
它通过现有嵌入式系统,增加因特网接入能力来扩展其功能,使嵌入式设备而非PC系统直接接入Interact。
为了适应嵌入式分布处理和应用上网的需求,嵌入式设备就必须要有TCP/IP协议软件支持。
1.1课题背景及现状 嵌入式系统将先进的半导体技术、计算机技术和电子技术,以及各个行业的具体应用相结合,是一个技术密集、资金密集、学科交叉和不断创新的知识集成系统。
嵌入式系统才具有很强的专用性,它必须根据应用需要对硬件和软件进行裁剪,以满足应用系统对功能、可靠性、成本、体积和功耗的要求。
伴随着科技和应用的发展,以往单纯只满足特定需要的嵌入式系统己经不能满足要求,实际应用对嵌入式系统提出了一些新的要求: (1)高可靠性 大多数嵌入式系统需要在无人监护或者几乎不需要人为的维护的情况下,长期稳定的正常运行。
在系统运行过程中,系统遇到的异常错误能够自动纠正,使系统恢复到正常状态下,并且,在可能的情况下
报告错误。
这就要求在使用可靠稳定处理器设计系统的同时,必须在系统中引入合适的操作系统,以保证整个系统的自适应性,能够修正系统在运行中可能遇到的错误。
(2)友好人机交互成为一种必然 嵌入式系统的人机交互需要有自己的显示界面,以便平台的使用者能够对平台进行合理的操作。
不同与其它的系统,由于实际要求的需要,尤其是在对系统调试和任务的处理过程中,可能要求工作人员和采集平台进行大量的数据交换,而这种信息的交换非常必要。
在开发或者安装调试过程中,工作人员必须取得各 1 成都理下大学硕+学位论文种信息,而由于系统的复杂性,单靠传统的简单信息交换己经远远不能满足实际应用的需要。
因此创建一种友好信息交互,方便整个系统
工作人员的调试、开发和应用需要是十分必要的。
(3)低功耗 嵌入式系统可能需要工作在没有电源供电的情况下,这就要求系统的整体功耗要相对较低,以保证整个系统在不更换电池的情况下能够长时间的稳定的工作。
在系统设计的过程中,在可能的情况下尽量减少外部设备,并且选择功耗较低的处理器。
“)网络传输功能 伴随着实际应用的提高和嵌入式信息交互的需要,嵌入式系统之间的互联成为一种趋势,通过GPRS提供嵌入式系统的信息交换是目前嵌入式系统中比较流行的选择,然而GPRS的数据传输量有限,不适合较大数据流的传送。
采用无线局域网等方式把嵌入式平台连接到远程主机也是一种可能的选择,然而采用这种方案实现数据传述必须依托PC,代价昂贵,尤其不适合分布式系统的使用。
目前,互联网己经渗透到世界的每个角落,利用现有强大的Interact网络把把分布在各地的嵌入式和主控主机连接起来是一种最佳的解决方案。
通过互联网,系统可以把数据发送到连接在Intemet上的世界上的任何设备。
然而嵌入式系统不同于PC,把嵌入式系统接入Intemet必须做一些必要的工作。
1.2研究的主要问题 本文主要通过在以ARM7为核心的嵌入式设备上移植嵌入式操作系统uC/OS.II,并在此基础上添加嵌入式TCP/m协议使其实现网络连接功能。
嵌入式系统是计算机软件与硬件的综合体,整个综合体的设计目的在于满足某种特殊功能,并应用于各类具体的应用系统中。
软件部分包括操作系统和应用程序。
|l C/os.II是一种专门为嵌入式应用而设计的免费的源
代码公开的实时嵌入式操作系统。
它提供了实时系统所需的基本功能,主要应用面向中小型嵌入式系统。
其包含全部功能的核心部分
代码只占用8.3K字节,而且由于n c,0s.II是可裁剪的,所以用户系统中实际的
代码最少可达2.7K字节。
由于u C/oS.II实际上是一个实时操作系统内核,只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能,没有提供输入输出管理、文件系统、网络之类的额外服务。
但是由于Il C/os.II的可移植性和
开源性,用户可以修改使之符合自己选用的硬件并添加所需的各种服务。
TCP/IP(Transmission Comrol Protocol/Intemet Protoc01)作为IIItemet的基础协议,最先是在UNIX系统里实现的,后来的LINU)(’DOS,WINDOWS也实现 2 第1章引言了TCP/IP,随后TCP/IP协议也被移植到其它嵌入式的处理器上。
由于指令资源的原因,在UNIX上实现的TCP/IP协议的原
代码并不能够直接移植到大部分嵌入式系统上,嵌入式系统上的T‘:P/口协议栈需要进行合理的简化和适当的选择。
对各种不同的可用协议和应用进行仔细评估,以决定哪些需要、哪些可以省略。
通过选择合适的协议,可以大大降低硬件资源的需求,而不会对系统的功能造成影响。
对已选择的协议,在实现时也可以进行简化,去掉在应用系统中不需要的选项,保留协议必须具备的部分。
在TCP/IP协议中,大多数协议都可以进行一定程度的简化。
目前有些
开源的TCP/IP协议栈如Il C/IP、耻IP、TinyTcp以及本文所采用的LwlP都属于针对嵌入式系统简化选择后的TCP,lP协议栈。
本文采用II C/OS.II+TCP/口的解决
方案,以AT91Ev40开发板为硬件平台,u C/OS.Ⅱ为操作系统,SkyEye为硬件模拟平台,开发出一个支持TCP/IP协议栈的网络化的嵌入式系统。
这是本系统的框架图: 图1—1本系统的结构 本章小结: 本章阐述了本课题的背景、研究现状及本文所要研究的主要
问题。
3 成都理:T=大学硕士学位论文 第2章嵌入式系统概述2.1嵌入式系统的定义 根据英国电机工程师协会所做的定义:“嵌入式系统是控制、监视或辅助某个设备、机器甚至工厂运行的设备”,嵌入式系统应该具备以下4个特性:执行特定的功能、以微处理器与外围设备构成核心、需要严格的时序与稳定性、全自动操作。
广义地讲,凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式
计算机系统;最典型的嵌入式
系统如手机、可视电话等。
狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,适于应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
嵌入式系统主要是由硬件核心和软件核心两部分组成。
嵌入式硬件包括处理器、存储器、输入输出设备等外设。
其中,嵌入式微处理器是系统的运算核心;存储器(ROM、RAM)用来保存可执行
代码,以及中间结果;输入输出设备完成与系统外部的信息交换;其他部分辅助系统完成功能。
嵌入式软件部分主要包括嵌入式操作系统和应用软件,是整个嵌入式系统的应用核心。
有时设计人员把这两种
软件组合在一起。
应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
2.2嵌入式硬件系统 嵌入式系统的核心部件是各种类型的嵌入式处理器,按嵌入式处理器的寄存器位数来分,有4位、8位、16位、32位、64位。
嵌入式处理器的寻址空间一般为64KB~16MB,处理速度为0.I一2000MIPS。
从功能上看,用于嵌入式系统的嵌入式处理器主要分为3类:嵌入式微处理器、嵌入式微控制器、嵌入式DSP。
2.2.1嵌入式系统分类 1、嵌入式微处理器 嵌入式微处理器(Embedded Microprocessor Unit,简称EMPU)的基础是通用计算机中的CPU,与之不同的是微处理器具有体积小、质量轻、成本低、可靠性高的特点。
嵌入式微处理器又可分为CISC(Complex Instruction SetComputer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)两类。
大家熟悉的大多数台式PC都是使用CISC微处理器,如Intei的x86。
RISC结构体系有两大主流:Silicon Graphics公司(硅谷图形公 4 第2章嵌入式系统概述司)的MIPS技术;ARM公司的Advanced RISC Machines技术。
2、嵌入式微控制器 嵌入式微控制器(Microcontroller Unit,简称MCU)又称单片机,即将整个计算机系统集成到一块芯片上。
和嵌入式微处理器相比,微控制器的最大特点是单片化、体积小、功耗成本低、可靠性高,适合比较简单的控制过程。
嵌入式微控制器目前的品种和数量众多,比较有代表性的通用系列包括8051、P51XA、MCS.251、MCS.96/196/296、C166/167、MC68HC05/ll/12/16,683300和ARM芯片等。
3、嵌入式DSP处理器 嵌入式DSP处理器(Embedded Digtal Signal Processor,简称EDSP)对系统结构和指令进行了特殊设计,使其适合DSP算法,编译效率较高,指令执行速度也较高。
DSP应用正从在通用单片机中以普通指令实现DSP功能过渡到采用嵌入式DSP处理器的阶段。
嵌入式DSP处理器比较有代表性的产品是TexasInstruments的1Ms320系列和Motorola的DSP56000系列。
4、嵌入式片上系统 嵌入式片上系统(System On Chip,简称SOC)是在一个硅片上集成CPU、各种外设控制器等多个功能单元,构成一个完整的复杂硬件系统。
这样,各种嵌入式处理器内核将作为SOC的一种标准库,用户只需定义出其整个应用系统,仿真后就可以将设计图交给半导体工厂制作。
2.2.2典型嵌入式处理器介绍 ARM和MIPS是目前典型的嵌入式处理器。
1、MIPS MIPS是另一种流行的RISC处理器。
MIPS(Microprocessor withoutInterlocked Piped Stages)即:无内部互锁流水级的微处理器。
其机制是尽量利用软件方法避免流水线中的数据相关问题。
它于20世纪80年代初由美国斯坦福大学Hennessy教授领导的研究小组研制出。
它的系统结构及
设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I、M口S II、MmSⅢ,MIPSⅣ到MIPSV,嵌入式指令体系MmSl6、MIPS32到MIPS64的发展已经十分成熟。
在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。
目前,MIPS是仅次于ARM的用的最多嵌入式微处理器。
2、ARM ARM(Advanced RISC Machines)微处理器及技术的应用几乎已经深入到各个领域:工业控制领域、无线通信领域、网络应用、消费类电子产品、成像设备 5 成都理T大学硕十学位论文和安全产品。
ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
ARM设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件,其技术具有性能高、成本低和能耗省的特点,适用于多种领域,目前使用ARM芯片构造32位的嵌入式系统已经成为嵌入式系统的一个重要分支。
ARM处理器具有小体积、低功耗、低成本、高性能等特点,并且具有16/32位双指令集。
ARM微处理器有以下几个系列:ARM7、ARM9、ARM9E、ARMIO、SecurCore、StrongARM和Intel XScale。
1.ARM7系列 ARM7系列包括ARM71DMI、ARM7TDMI.S带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ.S。
该系列处理器提供Thumbl6位压缩指令集和EmbeddedlCE JTAG软件调试方式,适合于更大规模的SoC设计中。
其中ARM720T高速缓存处理宏单元还提供8KB缓存、读缓冲和具有内存管理功能的高性能处理器,支持Linux、Symbian OS和Windows CE等操作系统。
2.ARM9系列 ARM系列有ARM9TDMI、MI ARM920T和带有高速缓存处理器宏单元的ARM940T。
所有的ARM9系列处理器都具有Thumb
压缩指令集和基于EmbeddedlCE J1’AG的软件调试方式。
ARM9系列兼容ARM7系列,而且能够比ARM7进行更加灵活的设计。
3.ARM9E系统 ARM9E系列为综合处理器,包括ARM946日.S、ARM946E.S和带有高速缓存处理器宏单元的ARM966E.S。
该系列强化了数字信号处理(DSP)功能,将Thumb技术和DSP都扩展到ARM指令集中,并具有EmbeddcdICE.RT逻辑(ARM的基于EmbeddedlCE JTAG软件调试的增强版本),更好的适应了实时系统的开发需要。
同时其内核在ARM9处理器内核的基础上使用了Jazelle增强技术,支持Java。
4.ARMl0系列 ARMl0系列包括ARMl020E和ARMl022E。
其核心在于使用向量浮点(VFP)单元VFPl0提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用打下了基础,如视频游戏机和高性能打印机等。
5.SecurCore系列 SecurCore系列包括SCl00、SCll0、SC200、SC21处理器核。
该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其他安全Ic开发提供独特的32系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版。
6 第2章嵌入式系统概述 6.StrongARM和Xscale系列 StrongARM处理器将Intel处理器技术和ARM体系结构融为一体,致力于为手提式
通信和电子类设备提供理想的解决方案。
Xscale微处理器结构则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令和DSP指令。
2.3嵌入式软件系统 如果嵌入式系统的功能比较简单,可以不用嵌入式操作系统的支持。
但如果嵌入式系统的功能比较复杂,需要网络功能、存储器管理、进程管理等,则需要加上嵌入式操作系统的帮助。
. 操作系统(Operating System,OS)的基本思想是隐藏底层不同硬件的差异,向在其上运行的应用
程序提供一个统一的调用接口。
应用程序通过这一接口实现对硬件的使用和控制,不必考虑不同硬件操作方式的差异。
操作系统主要完成三项任务:内存管理、多任务管理和外围设备管理。
嵌入式操作系统(EmbeddedOperating System,EOS)在本质上与通用操作系统没有太大的区别,它一般用于比较复杂的嵌入式系统中。
嵌入式操作系统除具备一般操作系统最基本的功能外,还有以下特点:1.强稳定性,弱交互性:嵌入式系统一旦开始运行就不需要用户过多的干预,这就要求负责系统管理的EOS具有很强的稳定性。
2.较强的实时性:EOS实时性一般较强,可用于各种设备的控制当中。
3.可伸缩性:开放、可伸缩性的体系结构。
4.外设接口的统_性:提供各种设备驱动接口。
不同的应用场合会产生不同特点的嵌入式操作系统,但都会有一个核心 (Kernel)和一些系统服务(System Service)。
操作系统必须提供一些系统服务供应用程序调用,包括文件系统、内存分配、I/0存取服务、中断服务、任务(Task)服务、时间(Timer)服务等,设备驱动程序(Device Driver)则是要建立在I/O存取和中断服务上的。
有些嵌入式操作系统也会提供多种通信协议,以及用户接口函数库等。
嵌入式操作系统一般分为2种:实时操作系统和通用型操作系统。
实时操作系统(Real-Tune Operating System,RTOS),是指操作系统本身要能在一个固定时限内对程序调用(或外部事件)做出正确的反应,亦即对时序与稳定性的要求十分严格。
具体而言,即指在这种系统中,一个优先等级高的任务能够获得立即的、没有延时的服务,不需要等候任何其他优先低的任务,而且在它得到CPU的使用权后,它可以一直执行到工作结束或是有更高等级的进程出现为止。
主要应用于航天、国防、医疗、工业控制等领域,这些领域的设备需要高度精确的实时操作系统,以确保系统任务的执行不会发生难以弥补的意外。
目前,实时操作系统也开始向信息家电等消费类电子产品领域扩展。
7 成都理‘I=大学硕十学位论文 通用型操作系统的执行性能与反应速度比起实时操作系统,相对没有那么严主要应用于手持式设备、各式联网家电、网络设备等领域。
目前嵌入式操作系统的种类繁多,市场上比较流行的主要可以分成两类:商用型和
免费型。
前者以VxWorks、Windows CE、PSOS、Palm OS等为代表,这些操作系统已经十分成熟,功能稳定可靠,有完善的技术支持和售后服务,但往往价格昂贵,并不适用于一些小型系统的开发;后者以1.t Clinux和II C/oS.II为代表,用户可以免费获得它们的源
代码,在价格上占据很大优势。
本章小结: 本章介绍了嵌入式系统的定义,组成。
并按类别简介了嵌入式硬件系统中的处理器、说明了当前的典型嵌入式处理器;对于嵌入式软件系统,则讲述了嵌入式操作系统的定义、分类及功用,并介绍了
常用嵌入式操作系统。
8 第3章硬件平台及开发工具 第3章硬件平台及开发工具3.1硬件开发平台3.1.1 ARM?TDMI内核 ARMTTDMI是ARM7系列CPU的基本核心部分,是目前使用非常广泛的32位嵌入式RISC处理器,并具有高密度的16位指令集和极低的功耗。
ARMTTDMI的名字含义如下:T代表16位压缩指令集;D代表片上调试支持,允许处理器响应调试请求暂停;M表示增强型乘法器,可进行两个32位数相乘而直接产生64位结果;I表示嵌入式ICE硬件提供片上断点和调试点支持。
3.1.1.1数据类型 ARMTTDMI处理器支持下列数据类型: Byte字节,8位 Halfword半字,16位(半字必须和2字节边界对准) Word字,32位(字必须与4字节边界对准) ARM指令的长度正好是一个字,Thumb指令长度是一个半字。
3.1.1.2处理器状态.