基于嵌入式的网站设计【毕业论文】.doc

上传人:文初 文档编号:17431 上传时间:2018-04-26 格式:DOC 页数:43 大小:1.79MB
下载 相关 举报
基于嵌入式的网站设计【毕业论文】.doc_第1页
第1页 / 共43页
基于嵌入式的网站设计【毕业论文】.doc_第2页
第2页 / 共43页
基于嵌入式的网站设计【毕业论文】.doc_第3页
第3页 / 共43页
基于嵌入式的网站设计【毕业论文】.doc_第4页
第4页 / 共43页
基于嵌入式的网站设计【毕业论文】.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、本科毕业设计(20届)基于嵌入式的网站设计所在学院专业班级计算机科学与技术学生姓名学号指导教师职称完成日期年月I摘要【摘要】本论文是基于嵌入式的网站开发,主要重点是实现基于嵌入式的WEB服务器。嵌入式网站是嵌入式WEB服务器结合具体功能的应用。主要目的是构建一个实现软启动检测与控制的嵌入式WEB服务器,它可以对远程设备进行监控,用户可通过局域网网络访问WEB服务器来实现数据的采集和历史数据的查询,也可以通过各种接口对远程设备进行控制。本课题具有一定的现实意义。系统可以用于远程软启动器的电流、电压等物理量的采集,也可以通过特定接口修改相应的参数。【关键词】嵌入式;WEB服务器;软启动;CGIAB

2、STRACT【ABSTRACT】THISTHESISISBASEDONTHEEMBEDDEDWEBSITEDEVELOPMENT,THEMAINFOCUSISEMBEDDEDWEBSERVERBASEDEMBEDDEDWEBSERVERFOREMBEDDEDWEBAPPLICATIONWITHSPECIFICFEATURESTHEMAINPURPOSEISTOBUILDTHEEMBEDDEDWEBSERVEROFASOFTSTARTDETECTIONANDCONTROL,WHICHCANBEMONITOREDONTHEREMOTEDEVICE,USERSCANACCESSTHEWEBSERVE

3、RTHROUGHTHENETWORKTOTHEREMOTEDATACOLLECTIONANDHISTORICALDATAQUERY,BUTALSOTHROUGHVARIOUSINTERFACEREMOTEDEVICECONTROLTHISTOPICISOFPRACTICALSIGNIFICANCESYSTEMCANBEUSEDFORREMOTESOFTSTARTCURRENT,VOLTAGEANDOTHERPHYSICALQUANTITIESOFTHECOLLECTION,YOUCANALSOMODIFYTHEPARAMETERSOFAPARTICULARINTERFACE【KEYWORDS】

4、EMBEDDEDSYSTEMSWEBSERVERBASEDSOFTSTARTERCGIII目录摘要IABSTRACTI目录II1引言111选题背景112课题概述22嵌入式WEB服务器的协议基础321HTTP协议分析和应用322RLTCPNET协议分析和应用43嵌入式WEB服务器软件平台531嵌入式操作系统的选择632UC/OSII嵌入式操作系统概述733UC/OS在ARM嵌入式系统上的移植8331UC/OSII的软硬件体系结构8332UC/OSII移植文件分析1034REALVIEWMDK集成开发环境144嵌入式WEB服务器硬件平台1641ARM嵌入式微处理器16411选用ARM嵌入式微处理器

5、16412ARM嵌入式微处理器结构特性1642芯片选择LPC2000系列175基于嵌入式的WEB服务器的设计1951嵌入式WEB服务器的概述1952设计的总体流程1953设计嵌入式WEB服务器的结构图2054根据实际功能设计WEB服务器功能216基于嵌入式WEB服务器功能实现2361静态页面设计与实现2362CGI接口分析和应用24621POST方式26622GET方式2863动态页面设计与实现297总结与展望3371总结3372展望33参考文献34致谢错误未定义书签。附录3511引言11选题背景近年来,由于结构简单、价格便宜、维护方便,交流异步电动机广泛地被作为电气传动主要的动力来源。我们常

6、用全压直接启动和降压启动两种方式来控制交流异步电机的启动。传统的启动方式,应用非常广泛,但在某些要求特殊的场合,这些传统的启动方式就会出现各种弊端。大功率感应电动机起动电流会很大,一般来说由于额定电流交流电动机在全压直接起动时,起动电流会达到额定电流的4到7倍,同时当电机的容量相对较大时,该起动电流就会引起电网电压的急剧下降,从而影响在同电网中其它设备的正常运行。传统的减压启动方式(如电抗器降压启动或定子回路串电阻等),是不能从根本上解决这些问题的。于是,控制电机平滑启动的软启动器便随之发展,并被广泛采用。随着网络技术,计算机技术和微电子技术的深入发展,尤其是各种高性能SOCSYSTEMONC

7、HIP的设计开发和嵌入式操作系统的出现。嵌入式系统日益广泛地被用于工业控制、航空航天、家用电器、移动通讯以及消费电子等设备中。这就要求建立嵌入式的WEB服务器,以便在软启动中通过智能终端设备实现对软启动器的远程控制,从而可以根据需要自动将设备运行的状态信息发送给设定的目标对象。嵌人式WEB服务器有着低成本、小体积、低功耗等诸多优点,从而在生产、生活的许多领域发挥着越来越重要的作用。嵌人式系统的CPU已经从过去的8位发展到限制的32位,32位处理器的应用正在兴起,相比较于8位处理器,使用32位处理器从技术上占有优势,而成本上相差不大,尤其有利于智能产品的设计。1目前嵌入式系统如何接入网络是嵌入式

8、系统和INTERNET结合的难点。一般来说,嵌入式设备增加TCP/IP协议就可以接入INTERNET,但具体实现的技术是多种多样的。嵌入式系统的INTENRET接入技术有3种技术模型直接接入、嵌入式网关、嵌入式系统TCP/IP协议。(1)直接接入技术。通过在嵌入式系统本身添加网络接口硬件和相应的软件来实现嵌入式系统与INTENRET的直接互联。目前,大部分32/64位微处理器采用的是这种直接接入技术。这种接入方式的优点是具有很大的灵活性,但占用的系统资源较多,对微处理器的要求也很高。(2)嵌人式网关技术实现。对于具有大量嵌人式设备的嵌人式系统来说,间接接入方式更值得考虑。在这种方式中,嵌入式系

9、统和嵌入式网关连接通信,连接方式采用传统的RS232、RS485、SPI、USB、CAN总线等轻型网络协议,然后再由嵌入式网关负责实现TCP/IP协议,并与INTERNET连接,完成嵌入式系统和INTERNET之间的信息交互。2(3)嵌人式系统TCP/IP协议芯片实现方式。在这种方式中,TCP/IP协议通过硬件固化到网络芯片上,通过标准的输人输出接口,可与绝大多数单片机相连。这类芯片的优点是具有速度快、使用方便,但增加了硬件成本。7目前国内外嵌入式系统软件、支撑软件及应用软件发展较迅速,嵌入式操作系统方面国外有VXWORKS、WINCE、UC/OS、CLINUX等。我国也开发出桑夏2000、D

10、ELTAOS、中软LINUX20、红旗LINUX及东方LINUX等嵌入式操作系统。但是在嵌入式WEB服务器研究方面国内的现状不容乐观,目前国外有很多相关的研究项目,发展比较迅速。12嵌入式WEB服务器的软件设计主要包括以下几项内容首先是嵌入式操作系统和TCP/IP协议的裁剪与移植;其次是服务器的编译和移植以及进行相应的配置;最后是CGI程序的编写。12课题概述本课题是基于嵌入式的网站开发,主要重点是实现基于嵌入式的WEB服务器。嵌入式网站是嵌入式WEB服务器结合具体功能的应用。本课题是结合实际的工业软启动器的局域网控制功能,实现嵌入式WEB服务器,以及应用于软启动器局域网监控的嵌入式网站。32

11、嵌入式WEB服务器的协议基础21HTTP协议分析和应用HTTP协议的版本经历了三个版本,分别是HTTP09,HTTP10和HTTP1L。HTTP09是HTTP第一次出现时制定的原始协议。目前使用的HTTP11的包含了它。该协议描述了客户端和服务器间请求和响应的过程客户端在特定的地址向服务器发送请求连接,然后调用GET请求,来访问服务器端对象,服务器在终止连接前将该对象或一个错误消息返回给客户端,结束响应过程。HTTP10以HTTP09为基础。在HTTP09中,客户端和服务器的相互作用只能直接进行,HTTP10对此进行了扩充,允许通过中间实体,如代理进行连接。HTTP10用MIME描述对象的数据

12、类型,既可以处理简单的纯文本HTML,也可以处理更复杂的多媒体信息,如声音、图像和视频等。随着科技的发展,HTTP也在不断地改进。HTTP11的诞生是HTTP10的一次飞跃,它主要强调解决HTTP10的性能、安全、数据类型处理和缓冲等方面的缺陷。HTTP11提出在服务器方缓冲对象,通过一种客户端/服务器协议操作缓冲对象进一步提高性能的思想,目的是减少请求、往返次数,并且是在确实需要时才返回完整的响应。HTTP11还突破了HTTP10中服务器和IP一对一的限制,实现了允许使用HOST标题字段服务器的名字来决定由哪个服务器对请求进行服务,而不用IP地址来决定。HTTP协议设计简单灵活、无状态、无连

13、接、基于CLIENT/SERVER模式并支持元信息,其特点主要如下(1)以CLIENT/SERVER模型为基础HTTP支持客户与服务器之间通信和相互数据的传送,从而实现一个服务器可以为分布在各个地区的许多客户服务。(2)简单快速HTTP是一个非常简单的协议,使得WEB服务器能高效地处理大量请求,客户机如果要连接到服务器,只需发送请求方式和URL路径等少量信息。HTTP规范定义了七种请求方式,最常用的有三种HEAD、GET和POST。由于HTTP协议简单,HTTP的通信与FTP、TELNET等协议的通信相比,就凸显了速度快而且开销小的优点。(3)灵活任意类型的数据对象都被HTTP允许传输。(4)

14、无连接HTTP是无连接的协议。这里的“无连接”与建立在UDP协议之上的无连接不同,是建立在TCP/IP协议基础之上的。客户要建立连接需先发出请求,收到响应,然后断开连接。使用这种“无连接”协议,在没有请求提出时,服务器就不会空闲等待。完成一个请求之后,服务4器不会继续为这个请求负责,从而不用为保留历史请求而耗费宝贵的资源。(5)无状态HTTP是无状态的协议,这既是优点同时也是缺点。一方面,由于缺少状态使得HTTP累赘少,系统运行效率相对较高,所以服务器应答快;但另一方面,由于没有状态,协议对事务处理没有记忆能力,若后续事务处理需要有关前面处理的信息时,那么这些信息就必须被保存在协议外面;另外,

15、缺少状态意味着所需的之前信息必须重现,导致每次连接需要传送较多的信息。(6)元信息元信息被定义为“关于信息的信息”,元信息允许服务器提供所发送数据的信息,例如,HTTP可以提供所发送的对象的语言和类型。HTTP的传输过程分为四个步骤,包括建立连接、发送请求、发送响应、关闭连接。(1)建立连接连接的建立是通过申请套接字实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上进行读写。(2)发送请求打开一个连接后,客户机将把请求消息发送到服务器的连接端口上,完成提出请求动作。(3)发送响应服务器在处理完客户的请求之后,就会向客户机发送响应消息

16、。(4)关闭连接客户和服务器双方都可以通过关闭套接字来结束对话,一般情况下服务器发送完客户端请求的文件后会主动关闭套接字。HTTP协议的核心是请求和响应,客户端和服务器之间的信息传递是通过消息来进行的,请求服务器提供服务,客户端需要向服务器发送请求消息。响应消息是服务器接到客户端请求后返回给客户端的消息。522RLTCPNET协议分析和应用对于基于嵌入式的WEB服务器的传输,我们需要一个精简的TCP/IP协议,以适应嵌入式系统体积小、存储小的特点。因此本课题采用的是RLTCPNET协议,该协议是专门为适用于小型的、基于嵌入式微控制器编写的。RLTCPNET协议是高度优化的,拥有非常小的代码,并

17、给出了优良的性能。TCP/IP是一个旨在支持局域网和广域的协议。为了建立一个TCP/IP的应用程序,我们不需要充分了解所有的协议在TCP/IP协议栈。然而,需要了解的基本概念来配置您的系统是否正确。RLTCPNET支持一个标准的互联网应用程序。这些措施包括简单文件传输(TFTP),WEB服务器(HTTP),电子邮件客户端(SMTP),远程登录和域名服务器(DNS)客户端。在RLTCP,这5些应用的每一个都快速,且易于配置。RLTCPNET含有代码来实现一个TFTP服务器。正如其名称所示,TFTP是一个简单的协议,开发了原本转让方案将图像传输至远程设备,如网络路由器和无盘终端。相比之下,FTP是

18、为了在互联网上传输大型文件。在TFTP协议是一个更小,适合于嵌入式系统。与FTP相比,它也使用了极少量的资源。一个由RLTCP支持的关键的TCP/IP应用是一个HTTPWEB服务器。该WEB服务器可以被用于运载任何复杂的HTML页面的网络浏览器上运行任何平台,无论是个人电脑,苹果机,智能手机,或其他互联网启用的设备。HTTP服务器都有一个共同网关接口(CGI),使我们能够输入和输出数据到嵌入式C应用程序。在WEB服务器上保存的内容可以是任何文件类型,可以通过显示网页浏览器。这将是超文本标记语言(HTML),这也可能包含任何常见的声图像音格式,例如PNG,GIF和JPEG格式,WAV或MP3格式

19、,如JAVA脚本库的活动内容。你只受微控制器提供给您存储空间的限制。相比较全面的WEB服务器,这将是相当小的。但是应该仔细选择使用哪一种工具来生成HTML脚本。工具,如DREAMWEAVER或FRONTPAGE中可能产生复杂的脚本,将过大存储到在一个小的微控制器。最好需要一简单的HTML编辑器,可以使设计出最小的HTML页面。3嵌入式WEB服务器软件平台631嵌入式操作系统的选择嵌入式操作系统包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分。嵌入式内核是基础和核心,其他部分要根据嵌入式系统的需要来确定。目前现有的嵌入式操作系统有几十种,可以将这些操作

20、系统分为两类一种是从运行在个人电脑以上的系统平台上的操作系统向下移植到嵌入式系统中形成的嵌入式操作系统,如微软公司的WINDOWSCE,开源的嵌入式LINUX,SUN公司的JAVAOS等。这类系统经过个人电脑或高性能计算机等产品的长期运行考虑,技术日已经趋成熟,由于应用广泛,相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。另一种是专门针对嵌入式系统而开发的,典型的如WINDRIVER公司VXWORKS,ISI的PSOS,QNX系统软件公司的QNX,ATI的NUCLEUS等,这类产品在操作系统的结构和功能实现上,都是针对所面向的应用领域的不同要求,如系统的事实性

21、要求、高可靠性要求等,而进行了精巧的设计,同时提供了独立而完备的系统开发和测试工具。嵌入式操作系统EOS(EMBEDDEDOPERATINGSYSTEM)在软件体系结构中属于系统软件的层次,它负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动。嵌入式操作系统的出现大大提高了嵌入式系统开发的效率。使用嵌入式操作系统开发嵌入式系统,不仅极大地减少了系统开发的总工作量,同时也提高了嵌入式应用软件的可移植性。相对于一般操作系统而言,嵌入式操作系统具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等。但仅仅具有这些通用操作系统的功能还不够,它还应用具备一些适应嵌入式系统

22、运行环境的特点(1)良好的硬件适应性。由于嵌入式设备硬件平台具有的多样性,CPU芯片更新快速,嵌入式操作系统要求具有更好的硬件适应性来适应不断发展的硬件平台,也就是良好的移植性。(2)占用较少的硬件资源。由于嵌入式系统所能提高的资源有限,因此嵌入式操作系统必须实现足够小巧以满足嵌入式系统硬件的限制。(3)可裁减性。由于嵌入式系统的需求因不同的应用而不同,因此嵌入式操作系统也应该能适应嵌入式系统的需求进行裁减,能对嵌入式操作系统的各个功能模块进行优化和删除。(4)具有很高的可靠性。(5)提供强大的网络功能,支持TCP/IP协议及其它协议,提供TCP/UDP/IP/PPP协议支持和统一的MAC访问

23、层接口,为各种移动计算设备预留接口。(5)强稳定性,弱交互性。嵌入式系统一旦开始运行就不在需要用户过多的干预,这就要求负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它将通过系统相应的调用命令向用户程序提供服务。(6)固化代码。在嵌入式系统中,嵌入式操作系统和应用软件是被固化在嵌入式系统计算机的7ROM中的。由于辅助存储器在嵌入式系统中很少使用,所以嵌入式操作系统的文件管理功能应该实现能够很容易地拆卸,而用各种内存文件系统。对于本课题要设计的基于嵌入式的网站,主要功能是针对软启动起的局域网监控,对于嵌入式系统的实时性要求较高,需要有抢占式的特点来处理软启动的运

24、行。UC/OSII嵌入式操作系统具有多任务、可抢占调度等特点,比非抢占式的UCLINUX嵌入式系统更具有优势,因此,针对本课题的具体要求,我将选用UC/OSII嵌入式操作系统。32UC/OSII嵌入式操作系统概述UC/OSII是指MICROCOS2,MICROCONTROLLEROPERATINGSYSTEMVERSION2,微控制器操作系统。UC/OSII的应用非常广,全世界有数百种产品在应用,如医疗器械、移动电话、路由器、工业控制、GPS导航系统、智能仪器等等。UC/OSII嵌入式操作系统具有以下几个特点源码公开。可移植性。绝大部分UC/OSII的源码是用移植性很强的ANSIC写的。与微处

25、理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得UC/OSII便于移植到其他微处理器上。UC/OSII可以在绝大多数8位、16位、32位以至64位微处理器、微控制器和数字信号处理器(DSP)上运行。可固化。UC/OSII是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译器、链接器、下载和固化工具),UC/OSII便可以嵌入到生产的产品中,成为产品的一部分。可裁剪。通过条件编译的方式,可以对UC/OSII中的系统服务进行裁剪,不同的应用程序可以根据需要,选择不同的系统调用,从而减少UC/OSII所需的存储器空间。可抢占调度。UC/OSII是可抢占的实时内核

26、,根据优先级来选择就绪任务。多任务。UC/OSII可以管理64个任务,然而,当前版本保留了其中的8个给系统,应用程序最多可以有56个任务。确定性。UC/OSII所有函数和系统调用的执行时间是确定的。任务栈。每个任务有自己单独的栈,但UC/OSII允许每个任务指定不同的栈空间,以减少应用程序对RAM的需求。系统服务。UC/OSII提供很多系统服务,例如邮箱、消息队列、信号量、固定内存分区、时间相关函数等。中断管理。UC/OSII允许中断嵌套,嵌套层数最多可达255层。稳定性与可靠性。UC/OSII已经成功地应用在数以百计的商业产品中,如图31。8图31UC/OSII的应用33UC/OS在ARM嵌

27、入式系统上的移植所谓移植,就是使一个实时操作系统能够在某个微处理器或微控制器平台上运行。为了方便移植,UCOSII的大部分代码是用标准的C语言编写的,无须改动。但仍需要用C和汇编语言写一些与处理器相关的代码,这是因为UC/OS在读写处理器的寄存器时只能通过汇编语言来实现。移植UC/OSII时必须满足一定的条件处理器的C编译器能产生可重入代码;在程序中可以打开或者关闭中断;处理器支持中断,并且能产生定时中断(通常在101000HZ之间);处理器支持能容纳一定量数据的硬件堆栈处理器有将栈指针和其他CPU寄存器内容保存到栈(或者内存)的指令,以及相应的出栈指令。331UC/OSII的软硬件体系结构U

28、C/OSII的软硬件体系结构如图32所示,分为软件和硬件部分。硬件是底层的CPU和时钟。软件部分分为三个层次首先,最高层的是用户的应用程序软件;其次是UC/OSII的两部分代码,即与处理器无关的代码和与应用相关的代码COSIIC全局变量;9COSIIH全局变量与数据结构OS_COREC内核内部函数;OS_MBOXC邮箱系统服务;OS_MEMC内存管理服务;OS_QC消息队列服务;OS_SEMC信号量管理服务;OS_TASKC任务管理服务;OS_TIMEC时间管理服务;INCLUDESH主头文件;OS_CFGH配置文件。最底层的是与处理器相关的移植代码OS_CPUH编译器相关的数据类型;OS_C

29、PU_CC处理器有关的C代码;OS_CPU_AASM处理器有关的汇编代码。应用程序软件UC/OS与处理器无关的代码0S_CORECUCOS_COS_MBOXCUCOS_HOS_MEMCOS_QCOS_SEMCOS_TASKCOS_TIMECUC/OS配置(与应用相关的代码)OS_CFGHINCLUDESHUC/OS移植(与处理器相关的代码)OS_CPUHOS_CPUASMOS_CPU_CCCPU时钟软件硬件图32UC/OSII的软硬件体系结构10移植工作的主要内容包括,设置OS_CPUH中与处理器和编译器相关的代码;用汇编语言编写四个与处理器相关的函数(OS_CPUASM);用C语言编写十个操

30、作系统相关的函数(OS_CPU_CC)。332UC/OSII移植文件分析(1)OS_CPUH的修改包括三部分内容一些符号常量、3个宏定义和10个数据类型的定义。符号常量OS_STK_GROWTH栈的增长方向(从上往下或从下往上),绝大多数微处理器的栈是从上往下长的。宏定义OS_ENTER_CRITICAL进入临界区(禁止中断);OS_EXIT_CRITICAL退出临界区(允许中断)OS_TASK_SW当需要任务切换时这个宏被调用。其功能是产生一个软中断,并跳转到中断处理程序OSCTXSW,去完成此次任务切换。与编译器有关的数据类型BOOLEAN无符号8位整数;INT8U无符号8位整数INT8S

31、有符号8位整数;INT16U无符号16位整数;INT16S有符号16位整数;INT32U无符号32位整数;INT32S有符号32位整数;FP32单精度浮点数;FP64双精度浮点数;OS_STK栈单元的数据类型。(2)OS_CPU_AASM的移植需要编写四个汇编语言函数为OSSTARTHIGHRDY;OSCTXSW;OSINTCTXSW;OSTICKISR。各个函数的功能分析如下OSSTARTHIGHRDYOSSTARTHIGHRDY的功能是在系统启动时(即OSSTART函数当中),通过调用本函数运行当前最高优先级的任务。VOIDOSSTARTHIGHRDYVOID11调用用户自定义的OSTAS

32、KSWHOOKOSRUNNINGTRUE/恢复即将执行的新任务的栈指针/STACKPOINTEROSTCBHIGHRDYOSTCBSTKPTR从新任务的栈中恢复所有的处理器寄存器;执行一条中断返回指令,跳转到新任务;OSCTXSWOSCTXSW的功能是实现两个任务之间的切换。对于原任务,中断已经发生,中断返回地址已经在栈中。OSCTXSW与OSSTARTHIGHRDY相比,增加了一个步骤,即先要把原任务的寄存器入栈。调用方式OSSCHED,OS_TASK_SW,产生中断,中断处理程序OSCTXSW。VOIDOSCTXSWVOID保存CPU寄存器的内容/将当前任务的栈指针保存到它的OS_TCB中

33、/OSTCBCUROSTCBSTKPTRSTACKPOINTER调用用户自定义的OSTASKSWHOOKOSTCBCUROSTCBHIGHRDYOSPRIOCUROSPRIOHIGHRDY/恢复即将执行的新任务的栈指针/STACKPOINTEROSTCBHIGHRDYOSTCBSTKPTR从新任务的栈中恢复所有的处理器寄存器;执行一条中断返回指令,跳转到新任务;OSINTCTXSW的功能是在ISR中执行任务切换功能。与OSCTXSW相比,由于是在ISR中被调用,不仅中断返回地址已经在栈中,而且CPU寄存器的内容也已入栈;由于ISR中进行了OSINTEXIT、OSINTCTXSW等函数调用,栈中

34、增加了额外的内容,因此需要清理。VOIDOSINTCTXSWVOID12调整栈指针来去掉在调用OSINTEXIT和OSINTCTXSW过程中压入栈的多余内容/将当前任务的栈指针保存到它的OS_TCB中/OSTCBCUROSTCBSTKPTRSTACKPOINTER调用用户自定义的OSTASKSWHOOKOSTCBCUROSTCBHIGHRDYOSPRIOCUROSPRIOHIGHRDY/恢复即将执行的新任务的栈指针/STACKPOINTEROSTCBHIGHRDYOSTCBSTKPTR从新任务的栈中恢复所有的处理器寄存器;执行一条中断返回指令,跳转到新任务;调用方式(如图33)低优先级任务A执

35、行,发生中断,中断处理程序,高优先级任务B就绪。低优先级任务ISR高优先级任务ISR使高优先级任务准备就绪时间图33OSINTCTXSW调用方式13ISR的执行过程保存全部CPU寄存器的值;调用OSINTENTER,或直接把全局变量OSINTNESTING(中断嵌套层次)加1;执行用户代码做中断服务;调用OSINTEXIT;恢复所有CPU寄存器;执行中断返回指令。OSTICKISRVOIDOSTICKISRVOID保存全部CPU寄存器的值调用OSINTENTER,或直接把全局变量OSINTNESTING加1;调用OSTIMETICK调用OSINTEXIT;恢复所有CPU寄存器;执行中断返回指令

36、。(3)OS_CPU_CCOS_CPU_CC的移植需要编写十个C语言函数OSTASKSTKINIT;OSTASKCREATEHOOK;OSTASKDELHOOK;OSTASKSWHOOK;OSTASKIDLEHOOK;OSTASKSTATHOOK;OSTIMETICKHOOK;OSINITHOOKBEGIN,OSINITHOOKEND;OSTCBINITHOOK。只有第一个OSTASKSTKINIT函数需要实现,其他的只需要声明即可,无须包含任何代码。OSTASKSTKINT14OSTASKSTKINT功能是在创建一个新任务时,需要调用本函数来初始化该任务的栈结构,使之看起来就像刚发生过中断并

37、将所有的寄存器保存到栈中的情形一样(或者说任务被切换出去时的情形)。OS_STKOSTASKSTKINITVOIDTASKVOIDPD,VOIDPDATA,OS_STKPTOS,INT16UOPT设置任务的栈帧,使之包含各个寄存器的初始值返回新的栈顶指针;34REALVIEWMDK集成开发环境REALVIEWMDK开发套件是德国KEIL公司研发的,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具(图33)。REALVIEWMDK集成了目前业内最领先的技术,包括UVISION3集成开发环境与REALVIEW编译器,同时支持ARM7、ARM9和最新的CORTEXM3和处理器。REALV

38、IEWMDK还集成了FLASH烧写模块,强大的SIMULATION设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,REALVIEW编译器的最新版本的性能可能改善超过20。图33MDK操作界面REALVIEWMDK开发工具具有良好的特性(1)启动代码生成向导,自动引导启动代码和系统硬件结合紧密,必须用汇编语言编写。REALVIEWMDK开发工具可以自动生成完善的启动代码,并提供图形化的窗口,修改轻松。对于开发工程师,可以节省时间,提高开发效15率。(2)软件模拟器REALVIEWMDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程仿真、片内所有外

39、围设备仿真等。使开发工程师更方便地开始软件开发和调试,软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。3性能分析器REALVIEWMDK的性能分析器可以辅助查看代码覆盖情况,函数调用次数,程序运行时间等高端控制功能。4CORTEXM3支持REALVIEWMDK支持的CORTEXM3核是ARM公司针对微控制器应用最新推出的内核,它提供了专业领先的高性能和低成本的解决方案,在未来几年可能将成为MCU应用的热点和主流。5REALVIEW编译器,代码更小,性能更高REALVIEWMDK的REALVIEW编译器与ADS12比较代码密度比ADS1

40、2编译的代码尺寸小10;代码性能比ADS12编译的代码性能高20。6结合JLINK仿真器FLASH编程模块,可现FLASH烧写REALVIEWMDK通过结合JLINK仿真器与FLASH编程工具,可以实现CPU片内FLASH、外扩FLASH的烧写工作,并支持用户自行添加FLASH编程算法;而且能支持FLASH整片删除、扇区删除、编程前自动删除以及编程后自动校验等功能。164嵌入式WEB服务器硬件平台41ARM嵌入式微处理器411选用ARM嵌入式微处理器嵌入式微处理器是嵌入式系统的核心部件,据不完全统计,全球嵌入式处理器的品种总量已经超过了1000多种,流行体系结构也有30几个系列,其中8051体

41、系的占有多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅PHILIPS就有近100种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。就我国大部分高校目前的嵌入式系统教学而言,整体仍然停留在20世纪80年代初发展起来的以8位51单片机为核心的单片机教学水平上。目前教学内容设置、教学方法、教学手段、教材编写体系与这门课程以实际应用为主的基本特征严重脱节。教学要立足于现在,但也要适当的超前。目前8位机越来越走向低端应用,而32位机的应用即将到来,这主要是由两方面的因素引起,一个因素是需求推动,另一个因素是技术进步拉动。随着人们的生活水平的提

42、高,人民对生活质量的追求也逐步提高。因此,人们对智能产品的需求增加了,且对智能产品要求提高了。并随着网络的发展,越来越多的产品需要具有联网功能。这一切需要智能产品具有一个更强劲的“芯”,这是8位机很难做到的。在个人电脑行业有著名的“摩尔定律”,它已经主宰个人电脑行业很多年了。在嵌入系统领域虽然“摩尔定律”没有那么明显,但技术的进步已经使32位系统不再高高在上,32位微控制器的价格已经不比8位机高多少,有些系统使用32位机其整体成本甚至比用8位机还要低。这样,使用32位系统就没有技术和成本的障碍了。412ARM嵌入式微处理器结构特性ARM的设计实现了非常小但高性能的结构。ARM处理器结构的简单使

43、ARM的内核非常小,这样使器件的功耗非常低。ARM是精简指令计算机(RISC),因为它集成了非常典型的结构特性一个大的、统一的寄存器文件;加载/存储结构,数据处理的操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式,所有加载/存储的地址都只由寄存器的内容和指令域决定;统一和固定长度的指令域,简化了指令的译码。此外,ARM体系结构还提供每一条数据处理指令都对算术逻辑单元(ALU)和移位器进行控制,以实现对ALU和移17位器的最大利用;地址自动增加和自动减少的寻址模式实现了程序循环的优化;多寄存器加载和存储指令实现了最大数据吞吐量;所有指令的条件执行实现了最快速的代码执行。这些在基本

44、RISC结构上增强的特性使ARM处理器在高性能、低代码规模、低功耗和小的硅片尺寸方面取得了良好的平衡。42芯片选择LPC2000系列LPC2000系列包含LPC2364/6/8/78,是一款基于ARM的微控制器,适用于需要进行串行通信的应用。这些微控制器包含了10/100ETHERNETMAC、3个I2C接口、1个I2S接口、SB20全速接口、2路CAN通道、4个UART、1个SPI接口、2个同步串行端口(SSP)和MINIBUS(MINIBUS仅用于LPC2378,它是8位数据/16位地址并行的总线)。LPC2300系列包含了一个支持仿真并与大多数片内存储器紧密耦合的ARM7TDMISCPU

45、,能对其进行高速访问的ARM7局部总线,与高速片内外设和外部存储器连接的AMBA先进的高性能总线(AHB),以及与其它片内外设功能相连的AMBA先进的外设总线(APB)。微控制器对ARM7TDMIS处理器进行配置始终都是按照小端字节的顺序。为了使以太网模块不受其它系统活动的干涉而正常操作,微控制器实现了两个AHB总线。第一个AHB(称为AHB1)包括向量中断控制器、外部存储器控制器、通用DMA控制器、USB接口和一个主要用于USB的8KBSRAM。第二个AHB(称为AHB2)仅包括以太网模块和一个相关的16KBSRAM。另外,微处理器还提供了一个总线桥接器,该桥接器允许把第二个AHB作为AHB

46、1的总线主机,还允许把以太网缓冲区的扩展空间放置到片外存储器、或者是在AHB1所处的未使用的存储器空间中。总的来说,访问AHB1的总线主机包括ARM7本身、通用DMA功能、USB模块和以太网模块(通过来自AHB2的总线桥)。访问AHB2的总线主机包括ARM7和以太网模块。AHB外设分配了2MB的地址范围,它位于4GBARM存储器空间的最顶端。每个AHB外设在AHB地址空间内都分配了16KB的地址空间。低速外设功能与APB总线连接。APB总线通过“AHB到APB桥”与AHB总线连接。从35GB地址点开始,APB外设也分配了2MB的地址范围。每个APB外设在APB地址空间内都分配了16KB的地址空

47、间。对于本课题嵌入式WEB服务器的实现,由于实时性要求较高,所以选用LPC2000系列中版本较新的芯片,因为他们具有更好的性能,如更大的存储空间。考虑到经济性能和性价比,所以选用LPC2378。18图41LPC2378实验板195基于嵌入式的WEB服务器的设计51嵌入式WEB服务器的概述嵌入式WEB服务器顾名思义是运行在嵌入式系统中的,因此,嵌入式WEB服务器和通用WEB服务器不管是在代码规模、提供的服务还是在应用领域都有很大的差别。通用WEB服务器是运行在个人计算机上和工作站上的,同时,这些机器一般运行的是通用型的操作系统。而嵌入式WEB服务器则是运行在实现特定功能的嵌入式系统中的,嵌入式系

48、统大都运行实时操作系统,有些甚至没有采用操作系统以节省资源。通用WEB服务器的程序规模要比嵌入式WEB服务器大很多,与嵌入式WEB服务器相比,它的功能更加复杂、占用的内存空间也更大。嵌入式WEB服务器一般代码量基本上不会超过1万行,可执行文件的大小也控制在100K以内。而通用WEB服务器的代码量则都是几万行的,如APACHE130版本为73381行,而ROXEN1229版本的则高达247789行。由于嵌入式WEB服务器的规模较小,实际的功能也要求其占有较小的资源,所以嵌入式WEB服务器在单位时间内需要处理的连接数目相比较通用的WEB服务器会少的多。52设计的总体流程如设计的流程图(图61)所示

49、,网站设计首先需要针对网站的用户群软启动器的运程控制端用户的需求,进行需求分析。其次进行网站策划,对网站的整体界面布局以及功能开发,经过测试,如果成功就连接硬件,完成嵌入式WEB服务器的应用实现;如果没有通过,针对不足进行修改,再进行不断地测试直至成功20需求分析网站策划功能开发界面设计网站布局测试连接硬件修改实现NY图51设计流程图53设计嵌入式WEB服务器的结构图嵌人式WEB服务器采用BROWSER/SERVER的工作方式,在这种工作方式下,客户端要有一个浏览器程序,而服务器端则需要有一个WEB服务器。客户端需要使用浏览器通过IP地址来访问WEB服务器,并可通过网页上相应的功能来进行设置和操作。嵌人式WEB服务会器监听客户端的服务请求,并根据客户请求的类型来提供相应的服务,然后返回相应的处理结果。本嵌入式WEB服务器从下至上分为五层,第一层是以太网链路,实现WEB服务器和客户端的硬件联通电路;第二层是RLTCPNET协议,提供WEB服务器的通信协议基础;第三层是网络配置,针对RLTCPNET配置相应的IP和网关等;第四层是HTML文本,用来编写客户端访问的页面;最上面是应用层,就是针对具体的软启动器功能实现应用,即嵌入式网站。21应用层网络配置WEBCHTML文本RLTCPN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。