(测试计量技术及仪器专业论文)基于arm的嵌入式tcpip协议栈的研究与实现.pdf_第1页
(测试计量技术及仪器专业论文)基于arm的嵌入式tcpip协议栈的研究与实现.pdf_第2页
(测试计量技术及仪器专业论文)基于arm的嵌入式tcpip协议栈的研究与实现.pdf_第3页
(测试计量技术及仪器专业论文)基于arm的嵌入式tcpip协议栈的研究与实现.pdf_第4页
(测试计量技术及仪器专业论文)基于arm的嵌入式tcpip协议栈的研究与实现.pdf_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

上海大学硕士学位论文 摘要 嵌入式系统的i n t e r n e t 网络化的研究与应用是近几年来嵌入式应用领域的 一个研究热点。全球信息资源的全面共享是今后的发展潮流,与人们的生产、生 活关系最为密切并拥有着无尽的信息资源的嵌入式系统,如果不接入i n t e r n e t 的话,信息的全面共享就无从谈起。嵌入式系统网络化的前提是在嵌入式系统中 实现t c p i p 协议栈。 本文采用了现今比较流行的3 2 位a r m 微处理器,飞利浦公司的a r m 7 t d m i 系列芯片l p c 2 2 9 2 作为硬件丌发平台的核心部件,并在l p c 2 2 9 2 上移植了实时操 作系统c o s i i 。开发环境采用的是集编辑、编译、仿真和调试于一体的a d s1 2 软件。 本文的嵌入式t c p i p 协议栈的设计是在遵循标准的t c p i p 协议的基础下进 行的。而且在本协议栈的设计中充分使用了实时操作系统提供的功熊,如信号量 和消息队列等机制,并通过将各协议分配到不同的任务中进行管理,从而将协议 栈和操作系统进行有机的结合以提高协议栈的性能。本协议栈支持多个连接,并 可同时处理数据的接收和发送。因为考虑到嵌入式系统的实时性、灵活性和简单 性的特点,本协议栈主要实现了a r p 、i p 、i c m p 、u d p 和t c p 协议,并对一些细 节和算法进行了合理的裁剪。至于物理层和数据链路层的m a c 子层是由 r t l 8 0 1 9 a s 网络接口芯片来完成的。 最后,对嵌入式t c p i p 协议栈中的各协议进行了有效的测试,基本达到了 预期的效果。 关键词:a r m 嵌入式系统t c p i p 协议栈实时操作系统g c o s i i 上海大学硕士学位论文 a b s t r a c t i nr e c e n ty e a r s ,i n t e r a c th a sb e c o m er e s e a r c ho r lc o n n e c t i n ge m b e d d e ds y s t e m w i t ho n eo ft h ef o c u s e si na p p l i c a t i o n so fe m b e d d e ds y s t e m t h eo v e r a l ls h a r i n go f t h ee d o b a li n f o r m a t i o nr e s o u r c e si st h ed e v e l o p m e n tt r e n di nt h ef u t u r ea n dt h i s r e s e a r c hh a sm e tt h et r e n d t h ei m p l e m e n t a t i o no ft c p i ps t a c ki ne m b e d d e ds y s t e m i st h eb a s i so f t h er e s e a r c h t h i sp a p e rr e g a r d st h ec h i pl p c 2 2 9 2t h a ti sm a d eb yp h i l i p sc o r p o r a t i o na s t h ek e r n e lc o m p o n e n to fh a r d w a r ed e v e l o p m e n t t h el p c 2 2 9 2b e l o n g st oc u r r e n t p o p u l a r3 2b i tm p ub a s e do na r mc o r ea n di so n eo ft h ea r m 7 t d m is e r i e s m o r e o v e r , t h i sp a p e rc o m p l e t e sp c o s i i st r a n s p l a n ti nl p c 2 2 9 2 a sf o r d e v e l o p m e n te n v i r o n m e n t ,t h i sp a p e ra d o p t sa d s1 2s o f t w a r ew h i c hi si n t e g r a t e d w i t he d i t o r , c o m p i l e r , e m l u a t o ra n dd e b u g g e r t h ed e s i g no fe m b e d d e dt c p i ps t a c ki sb a s e do ns t a n d a r dt c p i p f u r t h e r m o r e , t h ed e s i g no f p r o t o c o ls t a c km a k e sf u l l u s eo ft h ef u n c t i o no fr t o ss u c ha sm s m q , s e m a p h o r ee t c ,a n dw e l lc o m b i n e sp r o t o c o ls t a c kw i t ho st oi m p r o v et h e p e r f o r m a n c eo ft h ep r o t o c o ls t a c k a l lp r o t o c o l sa r ep u tt od i f f e r e n tt a s k st om a n a g e e s p e c i a l l y , t h ep r o t o c o ls t a c ks u p p o r t sm o r ec o n n e c t i o n sa n dc a r lr e c e i v e s e n dd a t aa t t h es a m et i m e s i n c et h ee m b e d d e ds y s t e mi so fr e a l - t i m e ,f l e x i b l ea n ds i m p l e ,t h e t c p i ps t a c km a i n l yi m p l e m e n ta r p i p , i c m p , u d pa n dt c p ,a n dp r o p e r l yc u t d o w ns o m ed e t a i l sa n da r i t h m e t i cr e l a t i v et ot r a d i t i o n a lp m t o c o ls t a c k t h em a c l a y e re x c h a n g e sd a t aw i t hp h y s i c a ll a y e rb yn e t w o r ki n t e r f a c ec h i p r t l 8 0 1 9 a s a tl a s t ,e v e r yp r o t o c o li ne m b e d d e dt c p i ps t a c kh a sp a s ts i m p l et e s t i n ga n d b a s i c a l l ya c h i e v e se x p e c t e dp u r p o s e k e y w o r d s :a r m e m b e d d e ds y s t e mt c p i p r t o s a c o s i i i l 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示了谢意。 签名:墨冬日期 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交 论文复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:巧磐 导师签名:益 目垄蜇。曰期: 上海大学硕士学位论文 1 1 嵌入式系统发展现状 第一章绪论 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具 体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高 度分散、不断创新的知识集成系统。目前嵌入式系统除了部分为3 2 位处理器外, 大量存在的是8 位和1 6 位的嵌入式微控制器( m c u ) ,嵌入式系统是计算机应用的另 一种形态,正如前所述它与通用计算机应用不同:嵌入式计算机是以嵌入式系统 的形式隐藏在各种装置、产品和系统之中的一种软硬件高度专业化的特定计算机 系统。目前根据其发展现状,嵌入式计算机可以分成4 类: ( 1 ) 嵌入式微处理器( e m b e d d e dm i c r o p r o c e s s o ru n i t ,e m p u ) ( 2 ) 嵌入式微控制器( m i c r o c o n t r o l l e ru n i t ,m c u ) ( 3 ) 嵌入式d s p 处理器( e m b e d d e dd i g i t a ls i g n a lp r o c e s s o r ,e d s p ) ( 4 ) 嵌入式片上系统( s y s t e m0 nc h i p ) 1 1 1 嵌入式系统定义 嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁 剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系 统。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素2 1 。 嵌入式系统的特点就是由这三个基本要素衍生出来的,不同的嵌入式系统其 特点会有所差异。 与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的 环境要求,如物理环境( 小型) 、电气气氛环境( 可靠) 、成本( 价廉) 等要 求。 与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬 件配置等。 与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求 的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适 上海大学硕士学位论文 应的接口电路。另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。嵌 入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、 仪器仪表、工控单元、机器人、手机、p d a 等。 1 1 2 嵌入式处理器 嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备4 个特点: ( 1 ) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响 应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度; ( 2 1 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构己模 块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区 保护功能,同时也有利于软件诊断; ( 3 ) 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微 处理器; ( 4 ) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计 算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为m w 甚至u w 级。 目前全世界嵌入式处理器的品种总量已经超过1 0 0 0 种,流行的体系结构有3 0 多个系列。其中8 0 5 1 体系占多半,生产这种单片机的半导体厂家有2 0 多个,共3 5 0 多种衍生产品,仅p h i l i p s 就有近1 0 0 种。现在几乎每个半导体制造商都生产嵌入 式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空问 一般从6 4 k b 到1 6 m b ,处理速度为0 1 2 0 0 0 m i p s ,常用封装8 “1 4 4 个引脚。当前, 嵌入式系统处理器的发展趋势主要采用3 2 位嵌入式c p u ,其主流系列有a r m ( 包括 i n t e l 公司的s t r o n g a r m 和x s c a l e ) 、m i p s 和s h z 大系列。本课题就是选用p h i l i p s 公司的a r m 7 系列芯片l p c 2 2 9 2 来构建嵌入式系统的。 1 1 3 嵌入式实时操作系统 嵌入式操作系统又叫做实时多任务操作系统( r t o s ) ,是嵌入式应用软件的 基础和开发平台。r t o s 是一段嵌入在目标代码中的软件,用户的其它应用程序都 建立在r t o s 之上。不但如此,r t o s 还是一个可靠性和可信性很高的实时内核,将 上海大学硕士学位论文 c p u 时间、中断、i o 、定时器等资源都包装起来,留给用户一个标准的a p i ,并 根据各个任务的优先级,合理地在不同任务之间分日p , 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 接口,这是r t o s 基于设备独立的应用程序开发基础。因此基于r t o s 上的c 语言程 序具有极大的可移植性。在r t o s 基础上可以编写出各种硬件驱动程序、专家库函 数、行业库函数、产品库函数,因此r t o s 又是一个软件开发平台。 r t o s 是嵌入式系统的软件开发平台:r t o s 最关键的部分是实时多任务内核, 它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、 系统管理、消息管理、队列管理、旗语管理等,这些管理功能是通过内核服务函 数形式交给用户调用的,也就是r t o s 的a p i 。当前主流的嵌入式实时操作系统 有: v x w o r k sw i n d r i v e r 公司的高性能可扩展的实时操作系统,具有嵌入实时应用 中最新一代的开发和执行环境,支持多种处理器和开发平台,并有多种开发工具, 是目前世界上应用最广泛的产品。 p s o si s i 公司研发的产品,可以支持多种处理器,曾是国际上应用最广泛的 产品,主要应用领域是远程通信、航天、信息家电和工业控制。 n u c l e a r 其特点是约9 5 的代码用c 语言编写,方便移植,同时,可提供w e b 支持、网络、图形、文件系统等模块。可全部提供源代码,用户只需通过d l l 动态连接便可进行任务级调试。 r tl i n u x 是一种提供源代码、丌放式自由软件,具有嵌入式操作系统的很多 特色,突出的优势是适用多种c p u 和多种硬件平台,性能稳定,裁剪性好,开发 和使用都很容易。它是发展未来嵌入式设备的绝佳资源。 1 2 嵌入式i n t e r n e t 嵌入式i n t e r n e t 是一种将嵌入式设备接x , i n t e r n e t 的技术3 1 。利用该技术可 将i n t e r n e t 从p c 机延伸n 8 位、1 6 位、3 2 位单片机,并实现基于i n t e r n e t 的远程 数据采集、远程控制、自动报警、上传下载数据文件、自动发送e m a i l 等功能, 大大扩展了i n t e r n e t 的应用范围。目前,将嵌入式设备接入i n t e r n e t 的方案有很 上海大学硕士学位论文 多,但从嵌入式设备对t c p i p 通信协议的支持方式和体系结构分析,可以把这些 解决方案归纳为以下二种。 1 、基于网关的体系结构【4 】 嵌入式设备要支持t c p i p 通信协议,所需要的计算资源和存储资源相当可 观。而目前大多数的嵌入式设备其计算资源和存储资源是有限的,不能直接支持 t c p i p 协议栈。于是就出现了一种基于网关的结构。这种结构的核心思想就是, 采用桌面计算机或高性能嵌入式处理器作为网关,支持t c p i p 协议栈并运行 i n t e r n e t 服务程序( 通常是w e bs e r v e r ) 。网关和嵌入式设备之间则通过一些标 准的轻量级总线( r s 4 8 5 ,c a n ,l o n w o r k s 等) 和私有通信协议( 由解决方案提供 商提供) 进行通信。用户通过网络浏览器访问网关上运行的服务器实现对这些嵌 入式设备的远程访问和控制,从而实现嵌入式设备连入i n t e r n e t 。如图1 1 所示: 蹬备甜 图i i 使用网关将嵌入式设备接入网络 2 、直连的体系结构4 让嵌入式设备连入t c p f l i p 的最直接方法就是让嵌入式系统本身支持完整 t c p f l i p 协议栈。如图1 2 所示: 匡燮p 潦 i 理羞舶橙入式秉蟪l一一。谢啤蒂- 图1 2 直接接入结构 要支持t c p i p 通信协议,所需要的计算资源和存储资源相当可观。因此这种让嵌 入式设备本身支持完整的t c p i p 协议栈直接连# k i n t e r n e t 的结构只适用于那些 4 上海大学硕士学位论文 高档的嵌入式处理器如3 2 位的a r m 、s h 3 、m i p s 等。但考虑到目前嵌入式系统的自 身特点,要想实现完整意义的t c p i p 协议栈也是非常困难的。因此根据不同应用 的具体需要对传统的t c p i p 协议栈进行裁减也就成为当前研究的一大技术热点。 1 2 1 嵌入式t c p i p 协议的特点 t c p i p 协议最先在u n i x 系统上实现的,随后在l i n u x 、d o s 、w i n d o w s 上也实 现了t c p i p 。同样t c p i p 协议被移植到其它嵌入式系统上,如8 位的m c s 5 1 单片机、 1 6 3 2 位的a r m 、以及3 2 位的m i p s 等芯片为核心的嵌入式系统上。t c p i p 协议的最 底层i p 层很多数据定义都是1 6 位或3 2 位的,例如,源i p 地址( 3 2 位) 、目的i p 地址 ( 3 2 ) 位、校验值( 1 6 位) 等,特别是校验值是以1 6 位为单位进行计算的,这样 使得能够处理1 6 位、3 2 位运算的c p u ,女h a r m 、m i p s 、d s p 等,就有很大速度上的 优势,而8 位的c p u n 会慢很多。由于微处理器的资源有限,其可直接寻址的程序 空间和数据空间都很小,处理速度较慢,这些都无法与台式机相比,所以嵌入式 t c p i p 与常规t c p i p 的实现有很大不同。其区别如下: 操作系统 无论是w i n d o w s 、u n i x 、l i n u x ,它们都是一个多任务操作系统,这使得协议 代码编写简单化。而许多嵌入式系统,因为成本原因没有采用实时嵌入式操作系 统,这就使得其代码结构变为无限循环+ 硬件查询+ 顺序执行的方式。 内存分配 w i n d o w s 或u n i x 等操作系统的内存分配是动态的,可根据需要随时分配随时 撤消。在l i n u x 、u n i x 操作系统中,它们都是m b u f 的存储结构。m b u f 是一个存储 链,这个链可以动态的增加和减小。例如,在数据包很少的情况下,u n i x 分配一 个2 k 字节的缓冲区可能就够用了,但如果数据包很多,就可能要分配6 4 k 字节甚 至更大的缓冲区,可分配的内存要根据c p u 的可用内存来调整。但是在嵌入式系 统中却不能这么做。一个最大的以太网数据包有1 5 1 4 个字节,分配一包的缓冲区 就要1 5 k 字节,而嵌入式系统的数据存储空间较小,且不仅仅只存放收发的数据 包。因此在嵌入式系统中,是根据实际情况分配一个固定字节缓冲区来存放接收 到的以太网数据包的,收到一包就处理一包。 协议支持 上海大学硕士学位论文 t c p i p 包含应用层、传输层、网络层等一系列协议,且每层可采用的协议有 好几种。在台式机的操作系统中,可以支持比较完整的t c p i p 协议,但在嵌入式 系统中却无法做到,但也无需做到。这是因为嵌入式系统的应用针对性非常强, 因而只需实现与需求相关的部分协议,而不使用的协议则一概不支持。例如,文 件共享s m b 协议、u n i x 、w i n d o w s 操作系统都支持,但在嵌入式系统中却没有必要。 又如,在主要完成数据采集和数据传输功能,而不是完成网页浏览、文件传输功 能的嵌入式系统中,只需实现最精简的t c p i p 协议栈( a r p 、i c m p 、i p 、t c p 、u d p 这5 个协议) 即可,而更高层的协议,女h h t t p 、s m t p 、f t p 等一般就不需实现。嵌 入式应用的t c p i p 协议是针对某一低层网络而言,例虫, a r p 协议,u n i x 系统支持 以太网、令牌环等网络的a r p ,但在嵌入式系统中,则根据需要分别加以支持。 i p 包最大可以为6 5 k ,但在嵌入式系统中无法容纳如此大的数据包,因此一般是 不支持分段的。嵌入式系统一般采用发送小数据包的方式避免分段。因此在嵌入 式系统中实现的一一般仅是t c p i p 协议的一个子集。 1 2 2 嵌入式t c p i p 协议的发展前景 如今,m c u 已经在家庭和工业的各个领域得到了应用,利用m c u + t c p i p 软件 的方法,就可阱使嵌入式系统上i n t e r n e t ,使嵌入式设备之间可以互相通信。这 种技术现今已应用于工业自动化,p o s ( 电子收款机系统) 网络及电子商务,智 能公路等方面 5 】。嵌入式t c p i p 应用目前还只是刚刚开始,已实现的应用只是停 留在传送数据层面。今后的嵌入式t c p i p 设备应具有实时性,可以接收实时的图 像,影音信息。随着单片机处理速度的不断增加,和适合于嵌入式系统的实时操 作系统的推陈出新,完全有可能把嵌入式设备应用于环境工程,家政系统,甚至 可以通过网络收看实时电影,这时才是嵌入式t c p i p 应用的真正到来。 1 3 本课题的主要研究内容及意义 1 3 1 研究内容 本课题的主要研究内容是设计并实现嵌入式系统中的t c p i p 协议栈。包括以 太网卡的驱动程序的编写,a r p 协议的实现,i c m p 协议的实现,t p 协议的实现, 6 上海大学硕士学位论文 t c p 和u d p 协议的实现以及s o c k e ta p i 程序的设计。本系统的c p u 采用飞利浦公司 雕j a r m 系列芯片l p c 2 2 9 2 。使p c o s i i 实时操作系统的信号机制来实现一个多任 务并可重入的协议栈,因为引入了实时操作系统的支持,所以本协议栈可以同时 处理多个请求,这也是本课题的一大亮点。 1 3 2 研究意义 本协议栈完全使用a n s ic 进行编写,因此可以支持多种c p u ,方便移植。 加入了t c p i p 协议栈的嵌入式设备可以方便的接入i n t r a n e t i n t e r n e t 网 络,通过网络人们可以更快的对嵌入式设备进行控制或信息的存取,而且可 靠性和快速性都能大大提高。 通过t c p i p 协议栈接入网络,人们可以对嵌入式系统实施集中管理或分布式 管理方式。 有了嵌入式t c p i p 协议栈,嵌入式设备之间的通信可以更加容易而且不受距 离的限制。 可以将嵌入式系统设计成w e b 服务器,在任何地方通过任何浏览器都可以方 便的访问需要的信息。 总之,嵌入式t c p i p 协议的发展将大大推动嵌入式系统的发展。 第二章系统总体设计方案 2 1 嵌入式t c p i p 技术实现方案的前提 要实现嵌入式t c p i p 协议,首先必须要有硬件平台的支持,硬件平台中最重 要的核心部分就是嵌入式微控制器( m c u ) 。在本课题中选用a r m 处理器的a r m 7 系列 l p c 2 2 9 2 芯片。之所以选择这款芯片是因为a r m 7 系列是低功耗的3 2 位核,最适合 应用于对价位和功耗敏感的产品。而l 。p c 2 2 9 2 芯片又是属于应用于实时环境的 a r m 7 t d m i s 类型,因此能完全满足嵌入式系统对实时性的功能要求。 嵌入式t c p i p 协议是嵌入式系统中的一组软件协议,是对接受的数据帧进行 不同的处理。而要想可靠的从网络上接收到数据帧必须借助于特定的网络控制芯 片。因为在本课题中是以以太网作为网络的传输标准,所以选用以太网控制芯片 上海大学硕士学位论文 r t l 8 0 1 9 a s ,r t l 8 0 1 9 a s 是一种i o m 的以太网控制芯片。其具体的工作原理将在以 后的章节中加以介绍。 硬件部分的核心是a r m ,而软件部分的核心就是实时操作系统( r t o s ) ,本课 题在嵌入式t c p i p 的实现中使用到了实时操作系统提供的多项功能,如任务的创 建,任务的管理,信号量,消息队列,开关中断等。在具备了以上三大部分的 前提下我们才能够设计嵌入式t c p i p 协议栈,并进行相应功能的调试与仿真。 2 1 1 硬件平台的搭建 如附录1 所示,以l p c 2 2 9 2 芯片为核心,进行外围芯片的扩展,以太网接口电 路的数据线是通过图中的接插件直接连到主板的数据总线上。 2 1 2 使用嵌入式操作系统 在本课题中,我们选用了g c o s i i 实时操作系统。因为g c o s i i 是一个公 开源代码的r t o s ,更便于我们进一步理解其微内核的工作原理,从而恰当的运 用到本课题的工作中来。在嵌入式t c p i p 协议的研究中使用到了i * c o s i i 的一 些系统函数 6 1 ,如: i n t 8 u o s t a s k c r e a t e e x t ( v o i d ( * t a s k ) ( v o i d * p d ) ,v o i d * p d a t a ,o s s t k * p r o s ,i n t 8 up r i o ,i n t l 6 ui d ,o s s t k * p b o s ,i n t 3 2 us t k s i z e ,v o i d * p e x t , i n t l 6 uo p t ) 函数,用于创建不同优先级的任务:包括接收任务,t c p 处理任务, u d p 处理任务,以及服务器任务。其中参数t a s k 是指向任务代码的指针,p d a t a 是可以指向任意数据区的指针,它被用于当一个任务第一次开始执行时,接收传 递给这个任务的参数,p t o s 是指向任务栈顶的指针,p r i o 说明了任务的优先级, i d 代表任务的标识,p b o s 是指向任务栈底的指针,s t k s i z e 用于指定堆栈的容 量,p e x t 是一个指针,指向用户提供的被用于t c b 扩展的存储单元,o p t 说明了 任务行为的额外信息。 v o i d o s t i m e d l y ( i n t l 6 ut i c k s ) 函数,用于每个任务内的延时。参数t i c k s 表示需要延迟的时钟滴答数。 o s e v e n t * o s s e m c r e a t e ( i n t l 6 uc n t ) 函数,用于信号量的创建。参数c n t 一般设为0 或1 。 上海大学硕士学位论文 i n t 8 uo s s e m p o s t ( o s e v e n t * p e v e n t ) 函数,用于发送一个信号量。p e v e n t 为要发送的信号量。 v o i do s s e m p e n d ( o s e v e n t * p e v e n t ,i n t l 6 ut i m e o u t ,i n t s u * e r r ) 函数, 用于等待一个信号。其中参数p e v e n t 用于接收信号量,t i m e o u t 为等待超时时 间,e r r 存储错误信息。 o se v e n t * o s o c r e a t e ( v o i d * * s t a r t ,i n t l 6 us i z e ) 函数,用于创建一个 消息队列。参数s t a r t 是指向消息队列存储区基地址的指针,s i z e 为消息队列 的大小。 i n t 8 uo s o p o s t ( o s e v e n t * p e v e n t ,v o i d * m s g ) 函数,用于向一个队列发 送消息。其中参数p e v e n t 为指向与事件控制块相关联的队列,m s g 为指向所要 发送消息的指针。 v o i d * o s o p e n d ( o s e v e n t * p e v e n t ,i n t l 6 ut i m e o u t ,i n t 8 u * e r r ) 函数, 用于等待发送到队列的消息,参数p e v e n t 为指向与事件控制块相关联的队列, t i m e o u t 为等待超时时间,e r r 存储错误信息。 i n t l 6 uo s s e m a c c e p t ( o s e v e n t * p e v e n t ) 函数,用于检查旗语从而判断资源 可用与否。与o s s e m p e n d 0 不同,当资源不可用时不会挂起调用的任务,参数 p e v e n t 是指向事件控制块的指针。 除此之外,还使用t p c o s - - i i 提供的两个宏o se n t e r _ c r i t i c a l 0 和 o se x i tc r i t i c a l ( ) 来关中断和开中断。关中断和开中断是为了保护临界段代 码。这些代码与处理器有关,是需要移植的代码。具体i _ t c o s - - i i 在a r m 上的 移植将在后面的专门一章中详细介绍。 以上系统函数的具体使用方法将在后面章节结合具体t c p i p 协议栈的设计 与实现过程具体讲解。 2 1 3 以太网网卡的工作原理 r t l 8 0 1 9 a s 是低功耗的c m o s 芯片,采用5 v 电源供电,其内部结构包括协议 控制逻辑,d m a 控制器,曼彻斯特代码转换以及各种状态命令寄存器,地址寄存 器等,它支持i e e e 8 0 2 3 的l o b a s e 与l o b a s e 一2 和l o b a s et 等协议,其功能逻 辑框图如图2 1 所示: 上海大学硕士学位论文 内部总线 图2 1r t l 8 0 1 9 a s 逻辑框图 1 、r t l 8 0 1 9 a s 的功能逻辑【7 l ( 1 ) 接收逻辑实现接收过程串行到并行数据转换,在每行接收脉冲之后将 一个字节数据送入1 6 字节f i f o 中,将在检测到帧定界符后的6 个字节送到 地址识别逻辑比较。 ( 2 ) c r c 产生校验逻辑在发送过程中,将数据帧进行c r c 算法,在数据域 后将产生的c r c 码发送出接收过程中,对接收帧进行c r c 校验。 ( 3 ) 发送逻辑实现在发送过程从f i f o 读出来并行数据并转换成串行位流 发送出去,在每个数据帧发送之前,自动加入6 4 位的帧前同步字符序列, 在数据帧之后加入3 2 位c r c 码。 ( 4 ) 地址识别逻辑将接收到的数据帧中目的地址和地址寄存器阵列中的站 地址进行比较,判定是否为发到本站的帧,同时支持多地址和广播地址的连 接方式。 ( 5 ) f i f o 和f i f o 控制逻辑n 1 c 中有6 个字节的f i f o 缓冲区,其控制逻辑 实现在发送和接收过程中从f i f o 取出或存入数据,并防止发生断流或溢流。 ( 6 ) 协议p c a 负责实施以太网规范,包括后退算法及碰撞恢复。 ( 7 ) d m a 和缓冲控制逻辑用来控制两个d m a 通道,一个是本地d m a ,用做缓 冲r a m ,与f i f o 之间的数据交换,具有较高优先级,远程d m a 用作外部存 储器与r t l 8 0 1 9 a s 内部缓冲r a m 之间的数据交换。 2 、r t l 8 0 1 9 a s 寄存器堆8 】 r t l 8 0 1 9 a s 所有的内部寄存器都是8 位的。映象到四个页面,南命令寄存器 1 0 上海大学硕士学位论文 c r 中p s o 和p s l 选择,如p s o = o ,p s i :i ,则指向第0 页。在每页面中的寄 存器由r t l 8 0 1 9 a s 管脚s a o s a 4 寻址。第0 页和第1 页中的寄存器很重要, 用于数据的收发控制以及中断管理等,第2 页和第3 页只用于r t l 8 0 1 9 a s 的诊断和一些配置,在嵌入式系统中较少使用。其寄存器堆如图2 2 所示: 图2 2 寄存器堆 这些寄存器中重要的寄存器有命令寄存器c r 、数据结构寄存器d s r 、发送结 构寄存器t c r 、发送状态寄存器t s r 、接收结构寄存器r c r 、接收状态寄存 器r s r 、和用于本地d m a 的收发寄存器t p s r ,t b c r o ,t b c r l ,p s t a r t ,p s t o p , c u r r ,b n r y 以及远程d m a 的收发寄存器r s a r o ,r s a r l 和字节计数器( r b c r o , r b c r l ) 。 3 、帧的发送过程 外部微处理器通过远程d m a 将一个数据帧放入r t l 8 0 1 9 a s 内部的缓冲区r a m 中后,利用i o 方式将发送起始地址送到t p s r ,帧长度送到t b c r ,然后将 命令寄存器c r 中t x r 置位开始一个数据帧的发送,此时如果没有帧在接收, 那么即开始预发送,高速本地d m a 将缓冲区数据送往f i f o ,若网络上无载 波信号,c r s 不活跃,n i c 发出t x e 信号,发送开始,先发出6 4 位帧同步序 列,再发送f i f o 中的数据,同时进行c r c 校验算法。f i f o 的并行数据被转 化串行n r z 位流,在t x d 上输出,t x c 输出发送时钟,如果碰撞发生,c o l 信号活跃,当前发送停止,发送3 2 位j a m 信号后,按照后退算法推迟发送 上海大学硕士学位论文 数据帧发送完后,加发3 2 位c r c 校验码,并产生中断请求,对中断状态寄 存器i s r 相应置位,以等待外部微处理器处理。 4 、帧的接收过程 r t l 8 0 1 9 a s 将接收缓冲区r a m 划分成多个连续排列的2 5 6 字节长的缓冲 区,最多不超过2 5 6 个这样的缓冲区链成的缓冲环,将环的起始页面地址存 入s t a r t ,结束页面地址存入p s t o p ,另设当前页面指针c u r r 指示下一 接收帧存放的开始位最,边界指针b n r y ,指示可用的接收缓冲区的界线, 下一帧不能超出这一界限,以免覆盖了本应取走的帧。接收一帧时,从c u r r 指针加4 字节偏移值开始存放,若正确接收完毕,则将r s r 中的状态,下 一帧指针写当前帧长度到c u r r 开始4 个字节中,并修改c u r r ,使c u r r 指向该数据帧尾的下一页,为下次接收的数据由外部微处理器通过远程 d m a 方式取走,并修改边界指针b n r y ,以释放该数据帧占用的接收缓冲 区,在接收过程中,如果存放的地址达到b n r y 时,就表明接收缓冲区满, 以后的帧接收夭折,直到修改b n r y 为止。 2 2 嵌入式t c p f l p 协议栈的设计思想 t c p i p 通常被认为是一个四层协议系统,每一层都有相应的协议集合来实 现不同的功能。而嵌入式t c p i p 协议栈也是按照网络体系分层思想设计的,但 是减少了每层所包含的协议,其层次结构和主要网络协议如图2 3 所示: 庶 _ ;i 璎 遥输屡 潮络滋 链路屡 庶f ;| j 稷窿进程 t c p 、u d p l e m p 、1 p a r p 、硬件接f 1 图2 3 层次结构图 其中每一层都被设计成一个功能相对独立的模块,负责处理各自的数据,然后通 过函数调用把控制权交给上层或下层的模块。协议之间的关系以及协议处理的主 要流程如图2 4 所示: 上海大学硕士学位论文 图2 4 协议处理流程图 在本课题所研究的嵌入式t c p i p 协议栈的设计中,因为引入了r t o s ,所以接 收数据报的执行过程和发送数据报的执行过程并不是简单的一系列功能函数的 顺序调用,因为创建了多个任务,所以每个任务在实时操作系统的管理与调度下 能并行运行,同时收发数据,从而大大提高了协议栈工作的实时性和快速性。本 课题所设计的嵌入式t c p i p 协议栈的整体系统框图如图2 5 所示( 见下页) : 其中灰底部分表示一个任务,所以本课题的t c p i p 协议共占用3 个任务( 不 包括应用程序的任务) 。第1 个是接收任务,包括i p 、i c m p 、a r p 处理,第2 个 是u d p 处理任务,第3 个是t c p 处理任务。有些实现通常只用到一个任务,或者 2 个任务( 1 个接收,1 个t c p 处理) ,而这里用到3 个任务是为了方便理解,增 强可读性。接收任务与u d p 和t c p 任务的通信是通过消息队列来进行的。 而u d p 接收任务和t c p 接收任务是通过s o c k e t 接口与应用层的程序进行通信 的。在整个t c p i p 结构的系统设计中,数据接收和数据发送是两大主要的功能模 块。这两个功能模块分别是由一组函数组成,而且它们实现的机制也各不相同。 上海大学硕士学位论文 数据报的接收过程是由3 个任务协同工作完成。 图2 5 系统框图 而数据报的发送过程则是进行了简单的处理,即通过一组函数的调用来完 成。这两种执行过程的区别如图2 6 所示。 图2 6 接收数据报的执行过程发送数据报的执行过程 4 上海大学硕士学位论文 具体每个函数的作用以及程序和数据结构的设计将在嵌入式t c p i p 协议的 设计与实现一章中详细论述。 第三章嵌入式系统硬件开发平台及集成开发环境 3 1a r m 微控制器简介 a r m 是a d v a n c e dr i s em a c h i n e s 的缩写,是微处理器行业的一家知名企业。 该企业设计了大量高性能、廉价、低功耗的r i s c 处理器、相关技术及软件。技 术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入式控制、消 费教育类多媒体、d s p 和移动式应用等。a r m 架构是面向低预算市场设计的第一 款r i s c 微处理器。 3 2a r m 微处理器的应用领域及特点 3 2 1a r m 微处理器的应用领域 到目前为止,a r m 微处理器及技术的应用几乎已经深入到各个领域: ( 1 ) 工业控制领域:作为3 2 位的r i s c 架构,基于a r m 核的微控制器芯片 不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制 器应用领域扩展,a r m 微控制器的低功耗、高性价比,向传统的8 位1 6 位 微控制器提出了挑战。 ( 2 ) 无线通讯领域:目前已有超过8 5 的无线通讯设备采用了a r m 技术, a r m 以其高性能和低成本,在该领域的地位日益巩固。 ( 3 ) 网络应用:随着宽带技术的推广,采用a r m 技术的a d s l 芯片正逐步获 得竞争优势。此外,a r m 在语音及视频处理上进行了优化,并获得广泛支持, 也对d s p 的应用领域提出了挑战。 ( 4 ) 消费类电子产品:a r m 技术在目前流行的数字音频播放器、数字机顶盒 和游戏机中得到广泛采用。 ( 5 ) 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用a r m 技术。手机中的3 2 位s i m 智能卡也采用了a r m 技术。 上海大学硕士学位论文 除此以外,a r m 微处理器及技术还应用到许多不同的领域,并会在将来取得 更加广泛的应用。 3 2 2a r m 微处理器的特点 采用r i s c 架构的a r m 微处理器一般具有如下特点: ( 1 ) 体积小、低功耗、低成本、高性能; ( 2 ) 支持t h u m b ( 1 6 位) a r m ( 3 2 位) 双指令集,能很好的兼容8 位1 6 位 器件; ( 3 ) 大量使用寄存器,指令执行速度更快; ( 4 ) 大多数数据操作都在寄存器中完成; ( 5 ) 寻址方式灵活简单,执行效率高; ( 6 ) 指令长度固定; 3 2 3a r m 微处理器的体系结构 a r m 的设计实现了非常小但高性能的结构。a r m 处理器结构的简单使a r m 的 内核非常小,这样使器件的功耗也非常低。 a r m 是精简指令集计算机( r i s c ) ,因为它集成了非常典型的r i s c 结构特性: 一个大的、统一的寄存器文件; 加载存储结构,数据处理的操作只针对寄存器的内容,而不直接对存储器 进行操作; 简单的寻址模式,所有加载存储的地址都只由寄存器的内容和指令域决定; 统一和固定长度的指令域,简化了指令的译码。 此外,a r m 体系结构还提供: 每一条数据处理指令都对算术逻辑单元( a l u ) 和移位器进行控制,以实现对 a l u 和移位器的最大利用; 地址自动增加和自动减少的寻址模式实现了程序循环的优化; 多寄存器加载和存储指令实现

温馨提示

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

评论

0/150

提交评论