【JSP开源代码栏目提醒】:网学会员为需要JSP开源代码的朋友们搜集整理了嵌入式webserver平台 - 计算机教材相关资料,希望对各位网友有所帮助!
分类号UDC密级V上1037】86单位代码!Q151嵌入式webserver平台赵焕灵指导教师赵子祥职称副教授学位授予单位大连海事大学申请学位级别工学硕士学科与专业计算机应用技术
论文完成|i=1期2007年3月
论文答辩日期2007年3月答辩委员会主席能象中文摘要摘要以Interact为标志的嵌入式系统正处于迅速发展的阶段,很多嵌入式设备都在尝试着接入Interact。
随着单片机处理器技术的提高,要求应用程序划分成不同的独立的任务模块,保证对实时性要求比较苛刻的事件的处理,为此要求我们把实时操作系统嵌入进去,实现真正意义上的嵌入式应用。
在嵌入式实时操作系统中引入TCPflP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。
本文的工作致力于将嵌入式实时操作系统(RTOS)p.C/OS-II和应用最广泛的网络协议TCP/IP协议相结合,移植到SPCE06lA单片机上。
陔系统由内胃32K字的程序Flash存储器和DM9000以太网络接口控制芯J{.构成。
本
论文研究实现的是基于RTOS和TCP/IP协议栈的嵌入式WEBSERVER系统平台,主要做了以下几个方面的工作:1DM9000驱动程序的编写,实现了收发数据包的功能。
2实现了底层网络设备驱动程序与uIP协议栈的接口及其uIP与主控函数的接口。
3实现了公丌源码的嵌入式操作系统laC/OS.II在SPCE061A上的移植,以及模块任务的划分实现。
4为验证系统的可行性,用免费抓包工具Ethereal获取系统与Intemet通信的数掘。
另外丌发成本低是本系统的一个显著特点。
关键词:单片机;p.C/OS-II;TCPflP;嵌入式WEBSERVER英文摘要TheDesignandImplementofEmbeddedWebserverplatformAbst.ractTheembeddedsystembasedonIntemetisatarapiddevelopingstageandmoreandmoreembeddeddevicesareattemptingtogettheaccesstoIntemet.witlltheadvancementofMCUprocessor,theapplicationsaleforcedtobedividedintovariousindependenttaskmodulesandeusllretheeventthatisreal-timecharacteristicCanbeprocessedatthesametime.Sowemusthavethereal-timeoperatingsystemembeddedandrealizetherealembeddedapplication.ItbecomestheimportantsearchdirectioninembeddingfieldthatTCPflPprotocolstackisintroducedtotheembeddedreal-timeoperatingsysteminordertosupporttheaccessofembeddeddevicestonetwork.Theintentionofthispaperisthatenableembeddedreal—timeoperatingsystem(RTOS)pC/OS—IIandthemost—frequently-usednetworkprotocolTCP/IPtobecombinedandtransplantedintotheMCUSPCE061Awhichconsistsofabuilt—in32k??wordprogramFlashstorageandthecontrolchipofDM9000ETHERNETintefface.WhatthispaperaccompletesisthedesignandrealizationoftheembeddedWEBSERVERplatformbasedonRTOSandTCP/IPprotocolstack.themaintasksareasfollows:1realizingthereceivingandsendingofdatapackagebyDM9000driver.2realizingtheinterfaceofbottomnetworkdevicedriverandulPprotocolstackandofulPandmaincontrolfunction.3realizingthetransplantofembeddedI_tC/OS-IIoperatingsystemwithopensourceinSPCE061Aandthepartitionoftaskmodules.4obtainingthecommunicationdataofsystemandIntemetviathefree—of-chargeEtherealtoolwiththeintentionofverifyingthefeasibilityInaddition,thelowerdevelopmentcostistheprominentfeatureofthissystem.Keywords:EmbeddedWEBSERVER;lttC/OS-11;ulPTCP/IP;MCU大连海事大学学位
论文原创性声明和使用授权说明
原创性声明本人郑重卢明:本
论文是在导师的指导下,独立进行研究工作所取得的成果,撰写成硕士学位
论文::毖△式塑£§§g型盟垩鱼的超让刍塞强:。
除
论文中已经注明引用的内容外,对
论文的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。
本
论文中不包含任何未加明确注明的其他个人或集体已经公开发表或未公开发表的成果。
本声明的法律责任由本人承担。
论文ff者签名:参灭孔良印年弓月孔阳学位
论文版权使用授权书本学{奇
论文什者及指导教师完全了解“大连海事大学研究生学位
论文提交、版权使用管理办法”t同意大连海事大学保留并向国家有关部门或机构送交学位
论文的复印件和电子版,允许
论文被有阅和借阅。
本人授权大连海事大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位
论文。
不保密a石在以上方框内打“√”、…~麓搦荔锗寻氓日期:”??7年6,侈毕日、嵌入式webserver平台第1章绪论1.1基本概念及研究背景1.1.1基本概念嵌入式系统(EmbededSystem):嵌入式系统是以应用为中心、以计算机技术为基础、软/硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用
计算机系统{”。
简单的说就是系统应用软件与系统的硬件一体化,具有软件代码小,高度自动化,响应速度快等特点,特别适合于要求实时的和多任务的体系中f2】。
嵌入式实时操作系统(RealTimeEmbededOperatingSystem):专指用于嵌入式设备的实时操作系统。
嵌入式Intemet(EmbededIntemet):近几年发展起来的一项新兴概念和技术,不仅通过PC机能上网,通过各种各样的嵌入式设备也能上网。
目前Intcrnct的通信活动主要是由TCP/IP协议来支配,所以嵌入式Intemet实际上可以理解为TCP/IP协议在嵌入式系统中的应用,以实现嵌入式设备的网络化p】。
1.1.2研究背景及意义随着计算机技术的迅猛发展,单片机越来越多的应用于一些嵌入式系统中。
我们知道,通常情况我们在单片机平台上开发的应用大都是单任务,不能同时执行多个任务和一些要求实时性较高的场合。
实时性操作系统在嵌入式中的应用很好的解决了这一
问题,他将应用程序分解成多个任务,同时实时性也得到了保证。
其实在我国广泛地提倡学习和应用实时操作系统还是近几年的事f4】。
这是由于RTOS的商业软件价格昂贵,著名的商业RTOS需几万美元,而且其中大部分是不提供源码的,即是所谓的黑盒子,不便于学习和使用。
另外早年的单片机存储器资源有限,容不下RTOS本身的开销。
随着技术的飞速发展,RTOS的使用也随之越来越普及。
在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。
可见在实时操作系统实现网络协议栈的移植是很必要的,这也是目前嵌入式领域研究的一项重要内容。
二十一世纪无疑就是一个Internet时代,如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。
利用该技第1章绪论术,能够将Intemet延伸到嵌入式系统并实现基于Interact的远程监控、自动报警、1.4f<lr裁数引文件、自动发送EMAIL等功能。
为IST(IntemetSensorTechnology例络{‘堪器技术)、HVAC(家庭环境自动控制)、信息家电、工业自动化(制药J业过W柠;削、电力系统、电网安全、电网设备监测、石油化工系统)、局部环境广|动舱测,智能小区管理、网络自动抄表、高速公路出入口管理、POS网络及电子商务等技术的应用与发展提供了技术保证151。
本文主要工作是以SPCE061AMCU为基础,通过在其上移植实时操作系统I_tC/OS.Ii和嵌入式协议栈ulP,实现一个嵌入式平台的组建。
课题的研究意义在于在单片机上植入嵌入式实时操作系统和协议栈后,其后续的应用系统丌发会变得简单而强大,因为他们有了操作系统和网络功能的支持。
jfl|。
沦义巾采Hj的探作系统及协议栈都是开源的,其成本是很低廉的。
1.2国内外当前研究现状嵌入,℃系}允嫩纠足为了』一qk训算机而设计,在信息产品普及与数字家电兴起后,嵌入式系统已逐渐普及到我们开常生活中,从信息家电、网络产品,到可携式装胃,都看得到它的踪迹f6】。
嵌入式系统的特色之一是不需要很多外接的零配件,能在小面积组件上完成特定功能,具有稳定、小尺寸等特点。
将嵌入式设备接入网络,实际上就是将嵌入式设备转变为Web服务器,并配詈TCP/IP网络协议就可以实现。
目前嵌入式Intemet技术的实现主要有下面三种方式rI:第种方式是EMIT技术,采用支持TCP/IP协议的高性能服务器作为网关(emGateway),嵌入式设备通过RS.232、RS.485或者CAN总线等与网关服务器近拨,问接通过服务器网关连接Intemet。
经过多年的发展EMIT技术已经在工业改箭的川络化中得到了广泛的应用。
但该技术也存在着以下的缺点:由于需要使用高忭能的网关服务器,再加上emGateway网关的使用需要缴纳相应的版税,从而使得成本很高;而且网关和设备之间需要专门布线,在嵌入式设备比较分散的情况下极为不便,通信的距离、速度都受到一定的限制。
第二种方式是采用硬件协议栈芯片进行网络连接,比如Seiko公司的¥7600,嵌入式webservgr平台嵌入式MCU通过接口对其进行控制以达到Intemet通信的目的,这时软件只需要增加一段和协议栈芯片通信的接口程序即可,因此开发难度小、周期短。
其缺点是系统的硬件成本非常高,而且由于使用的是硬件协议栈,扩展不灵活。
第三种方式是在嵌入式MCU上用软件实现TCP佃协议栈,然后通过网络接口芯片连接Intemet。
在这种方式中由于使用了软件协议栈使得嵌入式MCU本身具有了Intemet通信能力,从而省去了高性能网关和硬件协议栈芯片,因此成本非常低,而且扩展起来非常方便灵活,再配上小型嵌入式实时操作系统的支持,就可以实现性价比很高的嵌入式多任务Intemet平台。
但是要在资源有限的16位甚至8位单片机上实现复杂的操作系统和网络协议栈有一定难度,但近年来随着单片机处理速度的不断提高和内部资源的不断扩展,再加上小型的实时操作系统和网络协议栈的相继推出,使得利用单片机来实现低成本
嵌入式多任务网络平台成为可能。
高档MPU片上系统使用一些网络协议:TCP(传输控制协议)、UDP(用户数据报协议)、RARP(反向地址转换协议)、ICMP(网际控制报文协议);还有下列关于Intemet网的高层软件协议:m1’P(超文本传输协议)、SMTP(简单邮件传输协议)、FTP(文件传输协议);再包括RTOS(实时操作系统)等组成的SOCts】。
举例来说,上述SOC嵌入一台打印机就可以上网成为网上打印机,使Intemet网上的任何一个客户机都可以用各自的浏览器在网页上使用、监视和控制这台打印机。
像一些32/64位的高档嵌入式系统有足够的能力和资源按上述SOC一样的思路,在操作系统和函数的支持下毫不费力地实现。
但是费用也是很昂贵的。
8/16位的嵌入式系统实现的原则与上述并无不同,只是应当照顾到8/16位系统速度不够快和内存不够大,要想一些办法实现简化和保持最基本的东西,即嵌入式设备一定要转变为Web服务器,并且要加上TCP/IP
网络协议,以减少开发周期和复杂度,而且开发成本也相对较低。
嵌入式系统无所不在,在现代只常生活中扮演着重要的角色19〕。
嵌入式系统也是多样化的,在消费类电子产品中,如数码相机、DVD播放器和打印机;在工业机器人中;在先进的航空航天器中,如导弹制导系统和飞行控制系统;在医疗设备中,如强心剂无节律监视器和强心剂心律调整器;在汽车设计中,如燃料加注第1章绪论系统和自动刹闸系统,到处可以找到嵌入式系统。
嵌入式系统深深地改变了我们令人的生活方式,也将继续改变我们明天的生活方式。
本文将探讨使用
单片机加上以太网接口芯片组成嵌入式webserver平台系统。
它一拨以t丫L,;机取代PC机,用以太网接口芯片取代以太网卡。
本系统的特点是,处n川个嘲络内部的仟意一台PC机可以通过IE浏览器直接访问嵌入式webserver系统。
系统魁营成功后,成为局域网网中有独立IP地址的一个节点。
局域嘲中的任一台PC在IE浏览器的地址栏输入配置给系统的节点的IP地址,可以访¨到存储住单片机罩面简单的页面,本系统主要进行了实验平台的构建工作,没有增加一些外围模块像作为数据交换接口的通讯程序(MAX-232),从而通过对页面上的控制按钮进行直接操作,达到远程交互控制的目的。
系统的另一特点就是低廉的费用,简捷的方式接入以太网,网络内的PC节点只要能够运行m浏览器。
机能进行对webserver的访问。
1.3基于TCP/IP协议的嵌入式单片机系统平台的概述1.3.I系统硬件结构,i4-方案r|1,尊片机选用的是凌阳的SPCE061A,网络接口控制器使用的是Davicom的DM9000,系统通过RJ45接口接入网络,从而进行系统的远程访问。
臣!—=悝堕p斟!p帆一网络接1:3控制器1.3.2系统软件结构I鳘|1.1系统硬f,|结构Fig.1.ISystemhardwareStructure嵌入式webservcr平台上层服务程序nulP协议栈jC嵌入式实时操作系统l_tC/OS-110硬件驱动程序(DM9000驱动)图1.2系统软件结构Fig.1.2SystemSoftwareStruetrue1.4
论文的主要研究内容与结构安排本
论文研究实现的基于TCP/IP协议的嵌入式webserver
系统平台。
主要做了以下几个方面的
工作:1实现了公开
源码的嵌入式操作系统laC/OS.II在spce061a单片机上的移植修改工作;2实现了以太网控制器DM9000的驱动程序;3采用了uIPTCP/IP协议栈,实现了与底层驱动程序的接口。
并对llIP里http实例程序进行了修改应用,从而使得单片机成为了可以用m浏览器直接访问的节点:4用嵌入式操作系统系统gC/OS.II实现了webserver的多任务,以进行更好的后续开发。
本
论文结构安排如下:第一章,绪论,概述了相关技术的背景及其意义,介绍了基于TCP/IP协议的嵌入式单片机系统的基本情况和本文的主要研究内容及其结构安排;第二章,系统的体系结构,分别从硬件和软件两个方面介绍了系统平台的搭建:第三章,实时操作系统(RTOS)——“C/oS.II在spce061a单片机上的移植,并创建多任务进行了移植的测试;第l章绪论第四章,系统的
软件实现,包括底层驱动程序的编写,uIPTCP/IP协议栈在单片机上的实现和与底层接口的实现,以及RTOS和TCP/IP的结合在嵌入式webserver上的多任务的实现;第h亭,系统的测试,并利用网络抓包工具Ethereal测试了pc对系统的访问:第六章,总结与展望。
总结了系统的难点,展望了新技术在系统上实现的可能。
rI嵌入式webserver平台第2章系统的体系结构这一章从硬件体系和软件体系介绍系统的体系结构,下图是该系统的组成结构图。
应用
程序ulP协议栈IaC/OS-II网络设备驱动SPCE06IADM9000图2.1系统组成结构Fig.2.1SystemStructure在本设计中,嵌入式系统的主控器选用的是台湾凌阳公司的SPCE061A芯片,网络控制器选用的是DM9000网卡,本章将分别对这两种硬件的特性以及软件体系结构做详尽的介绍。
2.1系统的硬件体系结构2.1.1SPCE061AtlOl〔“I1SPCE061A概述SPCE061A是凌阳科技推出的一款16位结构的微控制器。
在存储资源方面,SPCE061A内嵌32K字的闪存(FLASH)。
较高的处理速度使它能够非常容易、快速地处理复杂的数字信号。
SPCE061A既有体积小、集成度高、可靠性好的特点,又具有较强的中断处理能力、高性能的价格比和功能强、效率高的指令系统及低功耗、低电压的特点。
因此,SPCE061A在嵌入式控制芯片领域是一种很
经济的选择。
2SPCE06IA主要性能??SPCE061A的CPU时钟:O.32MHZ一.49.152MHZ。
可以看出在处理速度上有着很大的优势。
第2章系统的体系结构●内旨2KWORDSRAM。
用于发送和接受缓冲●内霄32KWORDFLASH??2个16位可编程定时器/计数器●2个10位DAC输出通道●带宵32位通用可编程输入/输出端口●j£7i14个中断源,可来自定时器A/B、时基、2个外部时钟源输入和键唤醒●带fj32768HZ实时时钟??7逝迈10何f{!”数梭转换器(ADC)和单通道声音模/数转换器●j£爷异步、¨步串仃设备接口●内臂在线仂真电路接口ICE(In—CircuitEmulator)●具有watchdog功能2.1.2DM9000控制器【131114】DM9000是一款Davicom公司出品的以太网控制芯片,支持半双工、全双工和fI适成模式,共有16KByte内存。
在网络中它可自动获得同设定MAC地址一致的数掘报,完成数据报的收发,再用一个单片机来结合完成上层协议,就构成了个j乙瞥的叫络终端。
j受奇行器如F.这鲣寄存器的信息都保存在dm9k_uip.h当中。
表2.IDM9000的土要寄存器Tab.2.1MainRegisterofDM9000寄存器名称寄存器说明位置默认值NCR网络界面控制OOH00HNSR网络界面资讯01h00hTCR封包传送控制02H00HTSRI封包传送资讯一l03H00HTSRlI封包传送资讯—204H00HRCR封包接受控制05H00HR’R封包拨受资in06H00HPARMACT:r管没雀10H11H12H13H14H15HMRCMDX内存l圭舣托制,不移动读取位置FOHXXH嵌入式webserver平台MRCMD内存读取控制.移动内存读取位置F2HXXHMRRL内存读取{上置.LF4H00HMRRH内存读取{市置一HF5H00HMWCMDX内存写入控制,不移动内存写入位置F6HXXHMWCMD内存写入控制,移动内存写入位置F8HXXHMWRL内存写入位置.LFAH00HMWRH内存写入位置-HFBH00HTXPLL传送封包大小设置一LFCHXXHTXPLH传送封包大小设置-HFDHXXH1读取、写入寄存器方式DM9000有数掘和索引端口。
而这二个端口由CMD管脚控制,若CMD接高电位时为控制资料端口,CMD接低电位为控制索引端口。
2内存工作原理DM9000共有16KByte(0000h一3FFFh)内存,而读写内存由MWCMD,MRCMD这二个寄存器来控制。
而MWRL,MWRH寄存器提供现在写入内存的位置,MRRL,MRRH寄存器提供现在读取内存的位置。
而内存每次移动依工作模式,每次移动一个Byte(8biO或二个Byte(16bit)或四个Byte(32bit)。
3封包传送原理(1)将要传送封包的长度填入到TXPLL,TXPLH寄存器(2)将要传送封包的资料由MWCMD寄存器填入内存中(3)由TCR寄存器使DM9000送出封包资料(4)若内存的写入位置超过0BFFh时,自动将下一个位置回复到0000h第2章系统的体系结构0000h0BFFh0C00h3flf11幽2.2封包传送原理Fig,2.2Principleofpacketsend4封包接受原理(1)检查MRCMDX寄存器值是否为01,若有则有封包进入需读取(2)读取MRCMD将前四个Byte封包讯息读入(3)由前四个Byte封包讯息取待得封包长度(以Byte为单位),连续读取MRCMD将J.『包资料移到系统内存之中(4)若读取位胃超过3FFFh时,自动会移到OC00h01}《“)l0BFFh0cOOh3FFFh封包资料第lByte剜包资料第2Byte封包资料第3ByteI玺I2.3封包接收原理Fig.2.3Principleofpacketreceive嵌入式wcbserver平台2.2系统的软件体系结构系统的软件
设计主要包括pC/OS.II的移植、网卡驱动设计和网络
通信设计三个部分。
利用unsp集成环境开发,用C和汇编语言编写。
pC/OS.II的移植和协议栈将在后面章节详细介绍。
这节介绍软件设计中的嵌入式实时操作系统和嵌入式TCP/IP协议栈两个部分。
2.2.1源码公开的嵌入式实时操作系统pC/OS.npC/OS.II是可剥夺型实时内核,它的性能并不亚于商业级的RTOS,不过商业级软件通常都提供了包括编程、调试和下载等功能的完整的开发包,pC/OS-11只是一个提供源代码的操作系统。
它的开发环境目前在PC机上可采用BORLANDC/C++编译器国际版v4.51。
虽然pC/OS.II是在PC机上开发和测试的,但pC/OS-II的实际对象是嵌入式系统,并且能很容易的移植到不同结构的微处理器上。
pC/OS.II主要针对嵌入式应用,对于大多ROM、RAM有限而实时性要求较高的系统都是一个比较理想的选择。
pC/OS.II具有公
开源代码、可移植性、可裁减型、占先式、多任务,具有中断管理功能等特点〔tsl。
●公
开源代码与商业软件不同他是免费的,而且结构清晰易懂,降低了系统的开发成本;用户可以根据自己需要进行修改及取舍,提高系统的性能。
但是它没有功能强大的软件包,用户通常需要自己编写驱动程序。
●可移植性绝大部分pC/OS.II的源码是用移植性很强的ANSIC写的,和微处理器硬件相关的那部分是用汇编语言写的。
汇编语言写的部分已经压到最低限度,使得pC/OS.II便于移植到其他微处理器上。
如同pC/OS一样,pc/os.II可以移植到许多微处理器上。
条件是,只要该微处理器有堆栈指针,由CPU内部寄存器入栈、出栈指令。
另外,使用的C编译器必须支持内嵌汇编(Mineassembly)或者该C语言可扩展、可连接汇编模块,使得关中断、开中断能在c语言程序中实现。
pc/os-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。
第2章系统的体系结构●-,Ⅲf|化tⅡCIOS.11址为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编详、近接、下载和固化),心/OS.II可以嵌入到读者的产品中成为产品的一部分。
●可裁剪(Scalable)可以只使用gC/OS.1I中应用程序需要的那些系统服务。
也就是说某产品可以只使用很少几个IjtC/OS—II调用,而另一个产品则使用了几乎所有I.tC/OS—II的功能。
这样可以减少产品中的¨,C/OS.II所需的存储空间(RAM和ROM),这种可裁剪竹是靠条件编译实现的。
●f11允』弋(Preemptive)gC/OS.11完令是占先式的实时内核。
这意味着pC/OS.II总是运行就绪条件下仇九绒般t:‰的仃务。
大多数商业内核也是占先式的,pC/OS.1I在性能上和它们类似。
●多任务1.tC/OS.II可以管理64个任务,然而,目前这一版本保留8个给系统。
应用程序最多可以有56个任务。
赋予每个任务的优先级必须是不同的,这意味着ttC/OS.II不支持时间片轮转调度法(Round—robinScheduling),该调度法适用于调度优先级平等的仃务。
●可确定性个部gC/OS.11的函数调用与服务的执行时问具有其可确定性。
也就是说,全部pC/OS.1I的蛹数凋用与服务的执行时间是可知的。
进而言之,pc/os系统服务的执iJII,ff.J小依赖r应用程序任务的多少。
●任务栈每个任务有自己单独的栈,gC/OS.II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。
使用gc/os.II的栈空间校验函数,可以确定每个任务到底需要多少栈空间。
●系统服务I.tC/OS.1I提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时f.日J相关函数等。
嵌入式webserver平台●中断管理中断可以使正在执行的任务暂时挂起。
如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。
2.2.2系统网络通信协议(uIPTCWIP)嵌入式网络系统就是在嵌入式设备上实现了网络互联功能的系统。
嵌入式系统接入Intemet同PC接入Internet一样,必须通过相应的通信协议【阍。
目前的rNTERNET主要是采用TCP/IP协议,因此嵌入式系统接入INTERNET最终需要通过TCP/IP接入,嵌入式系统对信息进行TCP/IP协议处理,使其变成可以在INTERNET上传输的IP数据包。
有些操作系统中有完整的TCPfIP协议的实现,目前pC/OS.II中还没有集成的TCP/IP,所以需要把一合适的TCP/IP协议栈移植到它上面。
对于单片机其有限的存储空l’BJ。
要将TCP/IP协议最大幅度精简,以提高程序的运行速度。
ulPTCP/IP栈是使用于低至8位或16位微处理器的嵌入式系统的一个可实现的极小的TCP/〕P协议栈。
现时,uIP代码的大小和RAM的需求比其它一般的TCP/IP栈都要,j、,:应用层传输层网际层数据链路层应用程序TCPUDPIP网络设备驱动程序图2.4协议层次Fig.2,4Protocollevels嵌入式TCP/IP协议同样也分为四层,分别是应用层、传输层、网络层和数据链路层fm。
其协议层次为上图。
目前使用广泛的TCP/IP协议栈有LWIP(LightWeight)、uIP、LinuxIP等,这些协议栈具有一定的通用性,包含的协议内容比较全。
目前,市场上几乎所有的嵌入式TCP/IP协议栈都是根据BSD版的TCP/IP协议栈改写的。
在商业嵌入第2章系统的体系结构式TCP/IP协议栈大都相当昂贵盼隋况下,很多人转而使用一些源代码公开的
免费胁议栈,并加以改造应用。
目前较为著名的免费协议栈有f墙】:1wlP(LightweightTCP/IPStack『卜支持的协议比较完整,一般需要多任务蚪境支特,代码占用ROM>40KB,不适合8位机系统,没有完整的应用文档;uC/IP(TCP/IPstackforuC/OS卜一基于uC/OS的任务管理,接口较复杂,没有说明
文档。
本系统采用的协议栈是瑞典计算机科学研究所AdamDunkels开发的ulP。
其功能特性总结如下I‘91:??完整的说明
文档和公丌的源代码(全部用c语占编写,并附有详细注释);??极少的代码占用量和RAM资源要求,尤其适用于8/16位单片机;????白度.fflC管十牛,以适应不同资源条件和应用场合:+支持ARP、IP、ICMP、TCP、UDP(可选)等必要的功能特性;??支持多个主动连接和被动连接并发,支持连接的动态分配和释放;+简易的应用层接口和设备驱动层接口;??完善的示例程序和应用协议实现范例。
+提供了丰富的函数,下表包含了所有的uIP函数:表2.2ulP函数说明Tab.2.2ulPfunction糸,fL{tIIJ力能uip—inl〔()钥始化uIPuIPmputfl处刖把受数据LJIPperiodIcIJ址删川期;iⅡj矗什”川川fr}klJJ几能ulp—listen()川始煽町,端几t/tpcnnflcct(J近接到远秤土机ulpSelld(J存““h】±接段送数捌uip—datalen()输入数媚的人小uip—close(}父Ⅲ与刚连接ulpstop()停止当曲吐接mp_stoppedO☆拽连接是俞停lLuip—restarKJ查找在接是螽停Jt删1武胡数功能ulp~newdataO远稃r机已锌发jlj数据tup—acked()确应发出数据嵌入式webscrvcr平台l!!坠!!!!!堡!12I当煎垄壁型垄占luIP是一个适用于8/16位机上的小型嵌入式TCP/IP协议栈,简单易用,资源占用少是它的设计特点【20l。
它去掉了许多全功能协议栈中不
常用的功能,而保留网络通信所必要的协议机制。
其设计重点放在IP、ICMP和TCP协议的实现上,将这三个模块合为一个有机的整体,而将UDP和ARP协议实现作为可选模块。
ulP处于网络通信的中间层,其上层协议在这里被称之为应用程序,而下层硬件或固件被称为网络设备驱动。
显然,uIP并不是仅仅针对以太网设计的,以具有媒体无关性。
2.3本章小结本章分别从系统的硬件和软件两个方面介绍了平台系统的基本结构,并着重介绍了软件体系中的gC/OS.II操作系统和uIP协议栈,讲述了有关的重要知识点,为后面的工作奠定了基础。
第3章嵌入式实时操作系统I_tC/OS-II在SPCE061A上的移植第3章嵌入式实时操作系统pc/os.II在SPCE061A上的移植L“d0九综述,在嵌入式系统中应用实时操作系统RTOS已经成为当前嵌入式的人媳点。
引入嵌入式操作系统可以提高系统的可靠性、系统的开发效率,缩ll』JJ发删期。
p.C/OS.11是一种针对微控制器的实时操作系统,对于大多ROM、RAM自限而实时性要求较高的系统都是一个比较理想的选择。
/zC/OS.II是一个实时操作系统内核,包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等独立的部分川。
3.1gC/OS.II的内核结构I_tC/OS.II采用微内核设计,使用C语言编写,追求灵活性,可配置、可裁剪、可扩充、移植性强。
需要强调的是pC/OS.1I严格采用优先级抢占式调度
方案。
在创建仃务时,根掘任务的重要性给每个任务分配不同的优先级。
任务调度时,先执iJ.高优先级的仔务,然后按照优先级由高到低执行任务。
如果在某个任务执行??I,。
磁发了个优允绂更商的仃务,那么在玖任务执行结束后,将由任务调度器渊度去执行所激发的高优先级任务,而不是顺序执行。
多任务系统中.内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的
通讯。
内核提供的基本服务是任务切换。
之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。
内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。
但更主要的是,每个仔务耍肓自己的栈空|’日J,一般来说内核本身对CPU的占用时间一般在2到5个h分点之fnj。
通过提供必不可缺少的系统服务,诸如信号量管理,邮箱、消息队列、延时等.实时内核使得CPU的利用更为有效。
gC/OS.II的内核结构如下圈f2引。
嵌入式webserver平台图3.I内核结构Fig.3.1Kernelstructtlrc’pC/OS.II作为嵌入式实时操作系统包括以下基本模块【2习:1初始化管理:完成实时内核的初始化工作。
并启动实时调度;2任务管理:完成应用任务的管理,是操作系统内核.