(信号与信息处理专业论文)基于μcosⅡ的lwip协议栈的裁减与移植.pdf_第1页
(信号与信息处理专业论文)基于μcosⅡ的lwip协议栈的裁减与移植.pdf_第2页
(信号与信息处理专业论文)基于μcosⅡ的lwip协议栈的裁减与移植.pdf_第3页
(信号与信息处理专业论文)基于μcosⅡ的lwip协议栈的裁减与移植.pdf_第4页
(信号与信息处理专业论文)基于μcosⅡ的lwip协议栈的裁减与移植.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 嵌入式i n t e m e t 是近几年随着嵌入式系统的广泛应用和计算机网络技术的发 展而发展起来的一项新技术,它是嵌入式系统与i n t e m e t 的结合。实现嵌入式 i n t e m e t 的基础是嵌入式处理机、嵌入式操作系统和接入i n t e m e t 的通信协议。 a r m 是一种高性能、廉价、低功耗的r i s c 处理器,适用于多种领域,是 目前应用最为广泛的嵌入式处理器之一。“c o s i i 是一个开放源代码的嵌入式 实时操作系统,它最大的优点就是用户可以根据自己的需要对其进行修改,但目 前它只是一个微核,缺乏网络模块。l w i p ( al i g i 帆r e i g h tt c p i pp r o t o c 0 1 ) 是一套 用于嵌入式系统的开放源代码t c p i p 协议栈。它的目的是减少内存使用率和代 码大小,使其适用于资源受限系统比如嵌入式系统。 本文以p c o s _ i i 为操作系统内核,利用开源t c p i p 协议栈l w i p ,在a r m 硬件平台上进行程序开发。主要工作如下: 1 、简要介绍了嵌入式实时操作系统“c o s i i ,并讨论了其具体移植方法, 文中移植的主要工作是修改三个与特定处理器相关的文件( o sc p u h 文件、 o sc p uc c 文件和o sc p ua s 文件) ;, 2 、详细阐述嵌入式t c m p 协议栈l w i p 的工作机制,包括进程模型,缓冲 及内存管理和口、u d p 和t c p 处理等; 3 、完成了l w i p 在p d o s i i 上的裁剪和移植,包括操作系统模拟层的设计 和网络驱动程序的编写; 4 、在硬件平台上设计实现了一个简单的嵌入式、e b 服务器,通过测试证明 其可以正常运行。 基于“c o s i i 的嵌入式w e b 服务器的实现,为资源受限系统实现嵌入式 i n t e m e t 提供了有效的依据,并为今后实现嵌入式设备的远程监控提供了技术支 持。 关键词:嵌入式i n t e m e t 移植“c o s i il w i p 嵌入式w e b 服务器 e m b e d d e di n t e m e ti san e wt e c h n o l o g yw 1 1 i c hi sa l o n gw i t hm ew i d ea p p l i c a t i o n o fe m b e d d e ds y s t e ma 1 1 dt h ed e v e l o p m e n to fc o m p u t e rn e 觚o r kt e c l u l o l o g ) ,i nr e c e n t y e a r s i ti s t l l ec o m b i n a t i o no ft h ee m b e d d e ds y s t e ma 1 1 di n t e m e t t h er e a l i z a t i o n f o u l l d a t i o no fe m b e d d e di n t e m e ti st h ee m b e d d e dp r o c e s s o r ,t l l ee m b e d d e do p e r a t i n g s y s t e ma i l dt h ei n t e m e tc o m m u m c a t i o np r o t o c o l a i t mp r o c e s s o ri sai u s cp r o c e s s o rw i t hm a l l ym e r i t ss u c h 嬲h i g hp e r f o m l a n c e , e c o n o m y ,l o wp o w e ra n di tc a nb eu s e di nm a l l yr e a l m s ni so n eo ft l l em o s tw i d e l y l l s e de m b e d d e dp r o c e s s o ra tp r e s e n t 以:o s - i ii sa no p e ns o u r c ee m b e d d e dr e a l t i m e o p e r a t i o ns y s t e m n sm o s ta d v a n t a g ei st 1 1 a tu s e rc a l lc o l l f i g u r ei t sk e m e l h o w e v e r , 肛c o s - i i i sj u s tam i c r o k e m e l1 1 0 w ,a n di th a sn on e t w o r km o d u l e l w i pi sa l i g h t - w e i 啦i m p l e m e n t a t i o no ft h et c p i pp r o t o c o ls u i t e w i t ht 1 1 ep p o s eo f r e d u c i n gm e m o 巧d e m a n da n dt h e c o d es i z e ,t l l el w i pi ss u i t a b l ef o re m b e d d e d s y s t e m s w i t h “c o s i i 器o p e r a t i n gs y s t e m ,l 、i p 嬲t c p i p 北l c k ,t h ed e v e l o p m e n ti s u i l d e r 删h 莉w a r ep l a t f o n l li i lt h i sp 印e r ,n l em a i nw o r k sa r ea sf o l l o w s 1n l ee m b e d d e dr e a l - t i m e o p e r a t i n gs y s t e mp c o s i i a i l dt h ed e t a j l e d 仃a n s p l a i 】【t a t i o n m e m o da r ci n t r o d u c e d i t st r a n s p l 砌a t i o ni s m a i n l y a b o u tt l l e m o d i f i c a t i o no ft h r e ef i l e s ( o s _ c p u h ,o s _ c p 邺c ,o s _ c p u s ) ,砌c ha r e r e la t i 斑t ot l l ep 枷c u l a rp r o c e s s o r 2t h ew o r km e c h a i l i s mo f 【 v i p ( t h ee m b e d d e dt c p i pp r o t o c o ls t a c k ) i s d e s c 曲e di i ld “l ,i n c l u d i n gp r o c e s sm o d e l ,b u 虢ra n dm e m o 巧m a j l a g e m e n t ,圯 u d pa n dt c p p r o c e s s i n g ,e t c 3t h ec o n f i g u r a t i o n 锄at r a i l s p l a n t a t i o no fl w i po n 肛c o s - i ia r ec o m p l e t e d , i n c l u d i n gt l l ed e s i g i lo fo p e r a t i o ns y s t e me m u l a t i o nl a y e ra i l d t h ec o m p i l a t i o no f n e t 、o r k 蹦v ep r o 掣锄 4a s i m p l ee m b e d d e dw e bs e n r e ri sd e s i g n e da n dr e a l i z e db a s e do nh a r d w a r e p l a t f o n l l t h ev e r i f i c a t i o nr e s u l ti n d i c a t e st h a tm es y s t e m c a l lw o r kn o m a l l y t h ei i i l p l e m e n t a t i o no ft h ee m b e d d e dw e bs e r v e r b a s e do np c o s - i is h o w sa n e ww a yt oa c h i e v ee m b e d d e di n t e m e tt e c l u l o l o g yo ne m b e d d e ds y s t e ma n dp r o v i d e s at e c l l i c a ls u p p o r to nr e m o t em o n i t o ra n dc o n t r o lo fe m b e d d e dd e v i c e s 酗e y w o r d s :e m b e d d e di n t e m e t ;t r a l l s p l a l l t a t i o n ;p c o s - i i ;l w i p ;e m b e d d e d 、e bs e r v e r i 硕士学位论文 第l 章绪论 嵌入式i r l t e m e t 是近几年随着嵌入式系统的广泛应用和计算机网络技术的发 展而发展起来一项新兴概念和技术。随着i n t e m e t 的发展,各种设备都产生了连 接性的需求,从冰箱到电表,似乎所有电器都需要连入互联网。通过为现有嵌入 式系统增加因特网接入能力来扩展其功能,以i n t e m e t 为介质实现信息交互的过 程,这就产生了嵌入式i n t e m e t 技术。嵌入式i n t e m e t 技术是一种将嵌入式设备 , 接入i n t e m e t 的技术,利用该技术可将1 1 1 t e m e t 从p c 机延伸到8 位、1 6 位、3 2 位单片机,并实现基于i n t e m e t 的远程数据采集、远程控制、自动报警、上传 下载数据文件、自动发送e m a i l 等功能,为i s t ( i n t e m e ts e l l s o rt e c l l i l o l o g ) ,:网络 传感器技术) 、h v a c ( 家庭环境自动控制) 、局部环境自动监测、智能小区管理、 网络自动抄表、高速公路出入口管理等技术的应用与发展提供了技术保证,大大 扩展了i n t e m e t 的应用范卧1 1 。 嵌入式i n t e m e t 技术的出现时间并不很长,但是发展速度却非常之快,新思 想不断涌现,新概念连续推出,新技术层出不穷,新产品不断产生,从底层硬件 技术所提供的解决方案到顶层软件所开拓的想象空间,都在不断地推陈出新。随 着p c 机时代的到来,2 1 世纪将是嵌入式i n t e m e t 的时代。美国贝尔实验室总裁 对此做出了预测:“嵌入式i n t e m e t 将会产生比p c 机时代多成百上千倍的瘦服务 器和超级嵌入式瘦服务器。这些瘦服务器将与我们所能想到的各种物理信息、生 物信息相联接,通过i n t e m e t 网自动地、实时地、方便地、简单地提供给需要这 些信息的对象 【2 】。 网络专家预测,将来在i n t e n l e t 上传输的信息中,将有7 0 的信息来自小型 嵌入式系统【3 1 。嵌入式i n t e m e t 将有很好的发展前景和广阔的市场,未来的i n t e m e t 技术将是嵌入式i m e m e t 占主导地位,因此嵌入式系统与i n t e m e t 的接入方式已 成为人们研究的热点。 嵌入式i n t e m e t 的基础 嵌入式i n t e m e t 是嵌入式系统与i n t e m e t 的结合。嵌入式系统中包含嵌入式 处理机、嵌入式操作系统和应用电路部分,与i n t e m e t 的接入则必须有对应的接 l 第l 章绪论 入协议,如通用的t c p i p 协议。因此,实现嵌入式i n t e m e t 的基础是嵌入式处理 机、嵌入式操作系统和接入i n t e m e t 的通信协议。 l 、嵌入式处理机 单片机就是典型的嵌入式处理机,如常见的i m e l 的8 0 5 1 系列、a t m e l 的a v r 、 m i c r o c h i p 的p i c 、m o t o r o l a 的d r a g o n b a l l 、c y g n a l 的c 8 0 5 1 f 等,以及一些高端 的单片机如a r m 、s h 3 、m i p s 等。处理机是嵌入式系统的核心,其性能直接影 响整个系统的性能高低,影响接入i n t e m e t 的方式和成本。 2 、嵌入式操作系统 嵌入式系统要完成复杂的功能,已经不可能像普通单片机一样,直接从底层 开始编写所有程序,必须采用底层的操作系统,在此基础上来完成复杂的应用软 件设计。但由于嵌入式系统自身资源的限制,嵌入式操作系统又不可能像p c 机 的操作系统一样庞大,w i n d o w s 9 8 2 0 0 0 有几百兆字节,而嵌入操作系统一般只 有1 0 0 2 0 0 千字节。同时嵌入操作系统还必须是实时操作系统( i 盯o s :r - e a l t i m e o p e r a t i n gs y s t e m ) ,而w i n d o w s 9 8 2 0 0 0 不是实时操作系统。另一方面,嵌入式处 理机的种类繁多,嵌入式操作系统还必须支持多种不同处理器体系结构的处理 机。 目前国际上嵌入式操作系统的主流是实时多任务操作系统。r 1 的s 是嵌入式 应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,用户的其它应用 程序都建立在i 淝s 之上。不仅如此,r 1 旧s 还是一个标准的内核,将c p u 时 间、中断、i o 、定时器等资源都包装起来,留给用户一个标准的a p i ,并根据 各个任务的优先级,合理地在不同任务之间分配c p u 的时间。r t o s 是针对不 同处理器优化设计的高效率实时多任务内核,优秀商品化的r t o s 可以面对几十 个系列的嵌入式处理器m p u 、m c u 、d s p 、s o c 等提供类同的a p i 接口,这是 i 淝s 基于设备独立的应用程序开发基础。因此基于r t o s 上的c 语言程序具有 极大的可移植性。同时,在r t o s 基础上可以编写出各种硬件驱动程序、专家库 函数、行业库函数、产品库函数和通用性的应用程序一起,可以作为产品销售, 促进行业内的知识产权交流。 虽然商品化的嵌入式操作系统在2 0 世纪7 0 年代后期才出现,但到2 0 世纪 末,成熟的商品化操作系统已经十分丰富了,如p a l mo s ,v x w ,o r k s ,i l c o s i i , p s o s ,n u c l e a r ,v e l o s i 够,q n x ,v i u x ,w i n d o w s c e ( 现改名为w i n d o w sp o 、e r e d ) 2 硕士学位论文 以及目前较为流行的嵌入式l i n u 】( 等。,j 3 、接入i n t e m e t 的通信协议 嵌入式系统接入i i l t e m e t 同p c 机接入i n t e m e t 一样,必须通过相应的通信协 议。目前的i n t e m e t 采用t c p i p 协议,因此嵌入式系统接入i n t e m e t 最终必须通 过t c p i p 接入,嵌入式系统对信息进行t c p i p 协议处理,使其变成可以在 i n t e n l e t 上传输的i p 数据包。若采用网关方式,在网关前端可以采用适合嵌入式 处理机和起控制作用的新协议,通过网关转换后变成标准i p 包接入i n t e m e t 。 由于嵌入式系统自身资源的限制,处理能力不如台式机强,而台式机上的 t c p i p 的复杂性,使得处理通信协议成为嵌入式系统接入i n t e m e t 的关键,也是 嵌入式系统接入i n t e m e t 的难点之一。因此下面着重分析当前的几种接入方式以 及对协议的不同处理方法。 嵌入式i n t e m e t 接入技术 嵌入式i n t e m e t 技术,也就是将嵌入式系统与i n t e m e t 结合起来,实现系统 网络化,涉及的两个关键问题即传送信息的媒介和采用的协议。与i i l t e m e t 相连 接的途径可以是以太网或者电话线等媒介。而在大多数工业场地都配有以太网, 电子装置通过集线器可以随时插接。在家庭中,也有电力线和电话线等载体可以 使用。如果是与局域网连接,只需要为该装置设置硬的或者软的i p 地址即可。 如果是利用电话线路,可以使用电话用户的i d 。现在实现嵌入式电子装置的访 问连接,几乎不成问题。所以嵌入式i n t e m e t 技术的关键问题在于如何在微处理 器中实现n e m e t 上被广泛使用的t c p i p 通信协议。 由于h n e m e t 上面的t c p i p 通信协议对于计算机存储器、运算速度等的要求 比较高,普通单片机无法达到要求,对嵌入式系统产生了很大的挑战【4 】。针对嵌 入式i m e m e t 的问题国际国内很多厂商都进行了开发,推出的方案大致可分为如 下几类【5 j : 1 、通过专用的、e b 服务器实现。在现有的嵌入式系统中大量使用的是8 位 和1 6 位的微控制器。并不要求每个设备都直接连接到i n t e m e t 上,用户可以通过 i n t e m e t 接近设备,然后再用轻量级网络扩展到多个设备上。如电力线、r s 2 3 2 、 r s 4 8 5 、1 2 c 等。专用的w e b 服务器作为子网设备路由器来转换和实现嵌入式系 统与外部网的通信。e m w a r e 公司专门为嵌入式微控制器设备设计网络服务器。 3 第l 章绪论 2 、通过专用的嵌入式网关( e m g a t e 、v a y ) 连接。嵌入式系统使用轻网络通信技 术( 如电力线、r s 一2 3 2 、r s 4 8 5 、1 2 c 等) 与专用嵌入式网关连接,运行t c p i p 协 议,并提供t c p i p 到用户的轻型网络的连接和路由功能。 3 、把标准网络技术t c p i p 一直扩展到嵌入式设备中,由嵌入式系统自身实 现联网功能,每个设备都可与i n t e n l e t 相连。这是解决问题的最佳方案和未来电 器、设备的发展方向。 实现第三类方案时,在嵌入式系统中m c u 运算速度和存储器容量的限制 下,占用大量系统资源的标准t c p i p 协议的实现较为困难。假如嵌入专用芯片 ( 如n e t s c i l l o n 公司的a 1 w + n e t 系列芯片) 实现上网,这无疑增加了硬件成本, 对一些功能单一的嵌入式设备,这是一个极大的浪费,而且所增加的成本费用是 难以接受的。考虑到系统速度和内存等的限制,所以最理想的方法是在嵌入式设 备中用软件实现t c p i p 通信协议,当然这种协议是根据实际要求裁减的,可以 实现基本的功能,但是其要求的速度、占用的内存空间等却大大降低。 l w i p 是一套用于嵌入式系统的开放源码的轻型t c p i p 协议栈【6 1 ,它实现了 较为完备的i p 、i c m p 、u d p 、t c p 协议,具有超时时间估计、快速恢复和重 发、窗口调整等功能。l w i p 在保持协议主要功能的基础上减少对r a m 和r o m 的占用,一般它只需要几十k 的洲和4 0 k 左右的r o m 就可以运行,很适合 同“c o s i i 相配合用在嵌入式系统中。l ,w i p 在设计时就考虑到了将来的移植问 题,它把所有与硬件、操作系统、编译器相关的部分独立出来,放在s 妇h 目 录下,因此l w i p 在肛c o s i i 上的实现就是修改这个目录下的文件,其它的文件 一般不需要修改。本文就是以l w i p 为原型,设计基于心o s 的嵌入式t c p i p 通信协议,完成基于“c o s i i 的嵌入式系统的网络通信功能。 1 3 论文的研究意义及工作 , 本课题在删处理器组成的嵌入式系统的基础上,实现了具有网络协议的 实时操作系统软件环境,它可以广泛的应用在工业控制、通信设备、家用电器的 等诸多领域。将众多的设备接入i n t e m e t 后,可以实现设备的远程控制、管理和 升级等功能,改变以往单独、独立的存在方式,进入一种开放、互联的方式。可 以说嵌入式系统连接到i n t e m e t 不仅可以产生经济效益,对社会效益也有极其深 远的意义。 4 硕士学位论文 本课题的研究工作主要包括以下几个内容: 第2 章:介绍了嵌入式硬件平台及主要芯片的选择; 第3 章: 简单的介绍嵌入式实时操作系统p c o s i i ,并实现“c o s i i 的具 体移植; 第4 章:主要分析嵌入式t c p i p 协议栈l w i p 的工作机制; 第5 章: 实现l w i p 在肛c o s i i 上的裁剪和移植,包括操作系统模拟层的 设计和网络设备驱动程序的编写; 第6 章:设计实现了一个简单的嵌入式、e b 服务器,并通过测试证明其可 以正常运行; 第7 章:总结与展望。 第2 章嵌入式硬件平台 第2 章嵌入式硬件平台 当今,互联网技术的发展已经给人们带来了许许多多的便利,而基于互联网 技术的嵌入式i n t e m e t 的发展,则将使人们的生产、生活发生更大、更深远的变 革。嵌入式、e b 服务器因其低成本、小体积、低功耗等诸多优点,而在生产生 活的许多领域发挥着越来越重要的作用。在嵌入式、e b 服务器的帮助下,工业 生产的远程控制将使人们远离许多复杂危险的生产环境;带有网络功能的信息家 电将使现在的生活更加丰富多彩;远程医疗将使大家的健康得到更好的保障;远 程数据采集使人们即使远离现场,也能对各种数据进行实时的掌控。嵌入式、e b 服务器为客户端局域网提供网络接口,同时具有现场数据采集的功能,实现现场 采集数据到客户端局域网的数据传输。既可省掉传统方法中必须现场配置p c 机, 还能克服环境条件的限制【8 】。基于此,本文研究设计了一种基于删平台、以 “c o s i i 为嵌入式实时操作系统配合开放源代码t c m p 协议栈l w i p 的嵌入式 w e b 服务器。 2 1 硬件框图 嵌入式、e b 服务器一般用于远程监控系统,由嵌入式系统实施监测,远端 客户机构造人机交互界面实施远程监控,所以嵌入式w e b 服务器至少需要一个 以太网接口。由于以太网接口对处理器的速度和性能的要求比较高,一般要求 1 6 位或3 2 位。在系统结构设计上,考虑了现有的各种嵌入式网络实现的方案, 设计的嵌入式w e b 服务器的硬件平台主要框图如图2 1 所示。 该方案中,微处理器s 3 c 2 4 1 0 1 9 j 为核心芯片,由其采集本地检测和通过c a n 现场总线传输过来的数据参数并存储;以太网控制芯片c s 8 9 0 0 【1 0 】完成接入网络 功能,允许、e b 浏览器通过i n t e m e t 或者l a n 总线来访问嵌入式w e b 服务器。 该技术方案最大的特点在于用简洁的硬件构建应用平台,使原本硬件成本所需的 支出可用于相对复杂的软件开发上,且该方案的i o 接口可以自由扩展和支配。 6 硕士学位论文 图2 1 嵌入式w e b 服务器的硬件框图 f i g 2 一lh a r d w a r eb l o c kd i a g r 锄o f e m b e d d e dw e b s e r v e r 2 2 主要芯片的选择 2 2 1 微处理器 要想实现一个功能全面结构复杂的系统,对微处理器的要求至少是3 2 位, 对于广泛使用而又价格低廉的8 位和1 6 位微处理器来说则不能满足要求。综合 考虑各个方面以及将来系统的扩展,此处选择s 3 c 2 4 l o 。它是三星公司推出的 1 6 3 2 位r i s c 处理器,为手持设备和一般类型应用提供了低价格、低功耗、高 性能小型微控制器的解决方案。为了降低整个系统的成本,s 3 c 2 4 l o 提供了以下 丰富的内部设备:独立的1 6 k b 指令c a c h e 和1 6 k b 数据c a c h e ,m m u 虚拟内 存管理,l c d 控制器( 支持s 1 n 和t f t ) ,支持n a n df 1 a s h 系统引导,系统管 理单元( 片选逻辑和s d r a m 控制器) ,3 通道u a r t ,4 通道d m a ,4 通道具备 p w m 功能的定时器,优) 口,r t c ( 实时时钟) ,8 通道1 0 b i t 精度a d c 和触摸屏 控制器,1 2 c 总线接口,1 2 s 数字音频总线接口,u s b 主机,u s b 设备,s d 主卡 m m c 卡控制器,2 通道s p i 和p l l 数字锁相环组成。s 3 c 2 4 1 0 的内核结构如图 2 2 所示。 s 3 c 2 4 1 0 采用了a r m 9 2 0 t 内核,0 1 8 岬工艺的c m o s 标准宏单元和存储 器单元。它的低功耗、精简和出色的全静态设计,特别适用于对成本和功耗敏感 的应用。同样,它采用了一种叫做a d v a 工l c e dm i c r o c o n t r o l l e rb u sm c h i t e c t u r e ( a m b a ) 新型总线结构。 7 第2 章嵌入式硬件平台 s 3 c 2 4 1 0 的显著特性是它的c p u 核心,是一个由a r m 公司设计的1 6 3 2 位 删9 2 0 t 对s c 处理器。a r m 9 2 0 t 实现m m u ,a m b ab u s 和h a r v a r d 高速缓 冲体系结构。这一结构具有独立的1 6 k b 指令c a c h e 和1 6 k b 数据c a c h e ,每个 都是由8 字长的行构成。 图2 - 2s 3 c 2 4 1 0 体系结构 f i g 2 - 2s 3 c 2 4 10b l o c kd i a g r a m 通过提供了一套比较完整的系统外围设备,s 3 c 2 4 1 0 大大减少了整个系统的 成本,消除了为系统配置额外器件的需要。片上集成的功能主要包括以下几个方 面: ( 1 ) 1 8 v 内核供电,3 3 v 存储器供电,3 3 v 外部i o ; 8 硕士学位论文 ( 2 ) 具有1 6 k b 指令缓存和1 6 k b 数据缓存和m m u 的微处理器; ( 3 ) 外部存储控制器( s d r a m 控制和片选逻辑) ; ( 4 ) l c d 控制器( 最大支持4 k 色s t n 和2 5 6 k 色t f t ) ,提供1 通道l c d 专 用d m a ; ( 5 ) 4 通道d m a 并有外部请求引脚; ( 6 ) 3 通道u a r t 和2 通道s p i ; ( 7 ) l 通道1 2 c 总线控制器和1 通道1 2 s 总线控制器; ( 8 ) 兼容s d 主机接口协议1 0 版本和m m c 接口协议2 1 1 兼容版; ( 9 ) 2 个u s b 主机和1 个u s b 设备( u s b l 1 ) ; ( 1 0 ) 4 通道p w m 计时器和1 通道内部计时器; ( 1 1 ) 看门狗电路; ( 1 2 ) 1 1 7 个通用i o 口和2 4 通道外部中断源; ( 1 3 ) 功耗控制模式:具有普通、慢速、空闲和掉电模式; ( 1 4 ) 8 通道1 0 位a d c 和触摸屏接口; ( 1 5 ) 具有日历功能的实时时钟i 玎c ; ( 1 6 ) 具有锁相环的片上时钟发生器。 2 2 2 网络接口芯片 网络芯片的选择没有微处理器的要求严格,只要能满足基本要求即可。考虑 到目前的应用范围和实际情况,选择了c s 8 9 0 0 网络控制芯片。它是c i r r u sl o g i c 公司的一种低价位、高集成度、低功耗、全双工的1 6 b i t 以太网控制器,是一款 专门为嵌入式系统设计优化的以太网控制器,它集成了i s a 总线接口、曼彻斯特 编码解码器、片上r a m 、1 0 b a s e t 收发器、数据链路控制器m a c 、片上存储 管理器等,并且提供8 位和1 6 位两种接口。c s 8 9 0 0 内核结构如图2 3 所示。 该芯片的突出特点就是使用灵活,其物理层接口、数据传输模式、工作模式 都能根据需要而进行动态配置,可通过内部寄存器的配置来适应不同的应用环 境,是嵌入式平台实现1 0 m 以太网连接的很好的选择方案。 c s 8 9 0 0 有两种工作模式:i o 模式和存储器模式。其中存储器模式在编程操 作上较为简单,对任何寄存器都是直接操作,不过这需要硬件上多根地址线和网 卡连接,占用较多的i 0 资源。i o 模式则较为麻烦,因为这种模式下对任何寄 9 第2 章嵌入式硬件平台 存器操作均要通过i o 端口o ) 【3 0 0 写入或读出,但这种模式在硬件上实现比较方 便,而且这也是芯片的默认模式,它的传输效率是存储器模式的9 6 左右,两 者几乎是一样的。本文将采用i o 模式。 图2 3c s 8 9 0 0 体系结构 f i g 2 - 3c s 8 9 0 0l a y e r e da r c h i t e c t u 】r e c s 8 9 0 0 特点如下: ( 1 ) 具有直接i s a 总线接口的单片i e e e 8 0 2 3 的以太网控制器: ( 2 ) 最大的工作电流5 5 m a ; ( 3 ) 3 v 操作电压; ( 4 ) 工业温度等级; ( 5 ) 高效的p a c k e t p a g e 结构; ( 6 ) 全双工通信; ( 7 ) 片上收发帧r a m 缓存; ( 8 ) 带模拟滤波器的1 0 b a s e t 口,包括自动极性检测和校正; ( 9 ) 适合1 0 b a s e 2 、1 0 b a s e 5 和1 0 b a s e f 的a u i 口; ( 1 0 ) 可编程发送控制; ( 1 1 ) 冲突自动重传; ( 1 2 ) 自动填充和c r c 生成。 2 3 系统软件设计 为了满足系统实时性以及多任务性的需求,在本系统中选择嵌入式实时操作 l o 硕士学位论文 系统“c o s i i 【l l 】作为系统的软件平台,它具有较高的可靠性和稳定性,且易于移 植。目前为止,心o s i i 是一个内核,仅提供任务调度和内存管理等基本功能。 为满足系统要求,还需要扩展其网络协议栈模块和文件系统模块。整个系统的基 本思想是:首先在硬件平台上实现一个嵌入式实时操作系统p c o s i i ;然后在其 基础上且不影响网络基本功能的情况下,实现一个经过裁剪的t c p i p 协议栈 l w i p 【1 2 】;最后通过建立应用程序,由以太网控制芯片c s 8 9 0 0 来实现数据的传输, 最终在对原有系统影响最小的基础上实现对数据传输和控制等功能的实际联网 系统。数据的流向为:用户通过w e b 浏览器发出请求信息,通过i n t 锄e t 或者局 域网传送到c s 8 9 0 0 ,由其把处理后的数据包送入微处理器系统的协议栈中,由 协议栈对数据包进行解析,得到原始请求信息。请求信息再经过微处理器系统的 处理,产生回复信息。回复信息到用户的数据传输过程与上面正好相反,最终显 示在、e b 浏览器上。 基于a r m 的芯片多数为复杂的片上系统集成,这种复杂的系统里多数的硬 件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用 程序启动之前,需要有专门的一段启动代码来完成对系统的初始化。由于已经由 现成的启动代码,故本文不做讨论。根据系统各部分的功能,可以将系统的软件 工作分为三部分:嵌入式实时操作系统“c o s i i 的移植、网络协议栈l w i p 的移 植( 包括以太网芯片驱动程序) 和嵌入式、e b 服务器设计。本文的以下内容将分别 详细的论述各部分。 第3 章心o s i i 及其移植 第3 章l j l c o s i i 及其移植 3 1 i l c ,o s 简介 p c o s i i 是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操 作系统【刀。 l c o s i i 的前身是p c o s ,最早出自于1 9 9 2 年美国嵌入式系统专家 j e a i lj l a b r o s s e 在嵌入式系统编程杂志的5 月和6 月刊上刊登的文章连载, 并把p c o s 的源码发布在该杂志的b b s 上。斗c 0 s 和“c o s i i 是专门为计算机 的嵌入式应用设计的,绝大部分代码是用c 语言编写的。与c p u 硬件相关部分 是用汇编语言编写的,总量约2 0 0 行的汇编语言部分被压缩到最低限度,为的是 便于移植到任何一种其它的c p u 上。用户只要有标准的a n s i 的c 交叉编译器, 有汇编器、连接器等软件工具,就可以将“c o s i i 嵌入到开发的产品中。c o s i i 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可 编译至2 k b 。“c o s i i 已经可以移植到几乎所有知名的c p u 上【1 1 1 。 严格地说,肛c o s 1 1 只是一个实时操作系统内核,它仅仅包含了任务调度, 任务管理、时间管理、内存管理和任务间的通信和同步等基本功能,没有提供输 入输出管理、文件系统、网络等额外的服务。但由于“c o s i i 良好的可扩展性 和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。 “c o s i i 目标是实现一个基于优先级调度的抢占式的实时内核,并在这个 内核之上提供最基本的系统服务,如信号量、邮箱、消息队列、内存管理、中断 管理等。下面分别介绍。 1 、任务管理 肛c o s i i 中最多可以支持6 4 个任务,分别对应优先级0 6 3 ,其中o 为最 高优先级,6 3 为最低级。系统保留了4 个最高优先级的任务和4 个最低优先级 的任务,所以用户可以使用的任务数有5 6 个。 “c o s i i 提供了任务管理的各种函数调用,包括创建任务、删除任务、改 变任务的优先级、任务挂起和恢复等。 系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该 任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,该 1 2 硕士学位论文 任务负责统计当前c p u 的利用率。 2 、时间管理 p c o s i i 的时间管理是通过定时中断来实现的,该定时中断一般为1 0 毫秒 或1 0 0 毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中 断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。 p c o s i i 要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍 相关的系统函数,例如中断级的任务切换函数、系统时间函数等。 3 、内存管理 在a n s ic 中是使用m a l l o c 和舶e 两个函数来动态分配和释放内存。但在嵌 入式实时系统中,多次这样的操作会导致内存碎片,且由于内存管理算法的原因, m a l l o c 和舶e 的执行时间也是不确定。 “c o s i i 中把连续的大块内存按分区管理。每个分区中包含整数个大小相 同的内存块,但不同分区之间的内存块大小可以不同。用户需要动态分配内存时, 系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属 的分区,这样能有效解决内存碎片问题,同时执行时间也是固定的。 4 、任务间通信与同步 对一个多任务操作系统,任务问的通信和同步是必不可少的。“c o s i i 中提 供了4 种同步对象,分别是信号量、邮箱、消息队列和事件标志组。所有这些同 步对象都有创建、等待、发送、查询的接口用于实现进程间的通信和同步。 5 、任务调度 肛c o s 采用的是可剥夺型实时多任务内核。可剥夺型的实时内核是在任何 时候都运行就绪了的最高优先级的任务。 “c o s i i 的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先 级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资 源。为了简化系统设计,肛c o s i i 规定所有任务的优先级不同,因为任务的优 先级也同时唯一标志了该任务本身。 3 2 - i c o s i i 移植思路 所谓移植就是使一个实时内核能在某个微处理器或微控制器上运行。实际上 “c o s i i 可以简单地看作是一个多任务调度器,在这个多任务调度器上完善地添 1 3 第3 章心o s - 1 i 及其移植 加了与多任务操作系统相关的一些系统服务,如信号量、邮箱等。其9 0 的代码 是用c 语言写的,可以直接移植到有c 语言编译器的处理器上。移植工作主要 都集中在多任务切换的实现上,因为这部分代码用来保存和恢复c p u 现场( 即写 读相关寄存器) ,不能用c 语言,只能使用汇编语言完成【1 3 】。 本文是把“c o s i i 移植到删硬件平台上,但删处理器可以工作在7 种模式下,u s r 模式、f i q 模式、i r q 模式、s v c 模式、a b t 模式、u n d 模式 和s y s 模式,其中u s r 模式和s y s 模式外的其他5 种模式叫做异常模式。异 常模式通常都和硬件相关,例如中断或执行未定义指令等。但c p u 怎么知道其 当前运行在什么状态呢? 删中还有一种寄存器程序状态寄存器。在任何 一种处理器模式中,都使用同一个寄存器来标识当前处理器的工作模式,这个寄 存器就是c p s r ,它的0 至4 位用来表示c p u 的模式。另外,处理器的每一种 异常模式,都有一个对应的s p s r 寄存器,用来保存进入异常模式前的c p s r 。 s p s r 的作用就是当c p u 从异常模式退出时,通过一条简单的汇编指令就能够恢 复进入异常模式前的c p s r ,该值保存在当前异常模式的s p s r 中【1 4 】。例如:当 从u s r 模式进入中断i r q 模式时,原先的c p s r 将被保存在当前的s p s r 姻 中,类似的异常模式下的s p s r 还有s p s rf i q 、s p s rs v c 、s p s ra _ b t 、s p s ru i l d 。 非异常模式的u s r 和s y s 模式下没有s p s r ,只有c p s r 。 在多任务切换时,不可以避免的就要涉及c p u 模式之间的转换。与移植相 关的处理器模式有两种:s v c 模式和瓜q 模式,分别指操作系统的保护模式和 通用中断处理模式。这两种模式既可以通过硬件模式也可以通过软件模式来进行 转换。肛c o s i i 内核在执行过程中,大部分时间工作在s v c 模式,当有硬件中 断,例如时钟中断到来时,c p u 硬件自动完成从s v c 模式到i r q 模式的转换, 在中断程序结束处,则需要通过编程的方法使得c p u 从m q 模式恢复到s v c 模式。所以在任务切换时,c p u 现场的寄存器将保存在当前模式的运行任务的 堆栈中。处理器模式也可以通过软件来切换。在u s r 模式下,对系统资源的访 问是受限制的,也无法主动地改变处理器模式。当需要访问受限的系统资源的时 候,可以申请中断,由处于s v c 模式的中断处理程序来响应并做出处理。 所以在移植“c o s i i 的时候,操作系统切换任务时,关于处理器模式的切 换就涉及到两种方法。一种方法是s v c 模式下,当处理器需要模式切换的时候, 直接修改c p s r 寄存器的低五位,即处理器模式编码位,来修改处理器的模式, 1 4 硕士学位论文 然后处理器就可以进入相应的模式进行操作。操作完成后,通过编程的方法回到 原来的s v c 模式。但是这种方法对关于任务切换的函数就提出了一个新的要求 在任何地方都可以被调用,这就要求关于任务切换的函数必需是全局函数。 另外一种方法就是软中断的方法【l 引。使用软中断指令s w i 作为底层接口,使用 不同的功能号区分不同的函数,这样就可以使底层接口函数与处理器模式无关, 同时使任务切换函数被调用的时候,不需要知道其具体位置。同时还可以预留挂 接“c o s i i 系统服务函数的接口。软中断号包含在s m 指令中,程序通过读取 该条指令的相应位段获得,然后根据中断号,分别跳转到不同的处理函数,完成 相应的功能。此时就不一定要求这些函数为全局函数。但是,用软中断作为操作 系统的底层接口就需要在c 语言中使用s 指令,不同的编译器使用不同的关 键字。另外,删处理器核有两个指令集,两个指令集的指令的长度不同,s w i 指令的功能号的位段也不同。而如果使用全局变量的方法就不需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论