(通信与信息系统专业论文)嵌入式tcpip技术研究与应用.pdf_第1页
(通信与信息系统专业论文)嵌入式tcpip技术研究与应用.pdf_第2页
(通信与信息系统专业论文)嵌入式tcpip技术研究与应用.pdf_第3页
(通信与信息系统专业论文)嵌入式tcpip技术研究与应用.pdf_第4页
(通信与信息系统专业论文)嵌入式tcpip技术研究与应用.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(通信与信息系统专业论文)嵌入式tcpip技术研究与应用.pdf.pdf 免费下载

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

文档简介

嵌入式t c p i p 技术研究与应用中文提要 嵌入式t c p i p 技术研究与应用 中文提要 嵌入式t c p i p 技术是指在嵌入式系统中集成t c p i p 协议栈,实现嵌入式系统与 基鼍:t e 影l p 协议栈的以太网之阅的互逡。曩前,应用比较广泛的嵌入式t c p i p 协议 栈有u i p 和l w i p 。它们是精简的协议栈,用c 语言编写,因此可移植性好,适用于 8 1 6 位单片枧。本文主要针对这两种携议栈的移植、应用进行分析和研究,另外还 探讨了基于u c l i n u x 的嵌入式t c p i p 技术的应用等问题。 网络的基础是协议,协议描述了网络通信从物理层到应用层的趣范。t c p i p 协 议是局域网的基础,是由i 0 0 多个协议规范组成的集合。这些协议规范从不同角度对 网络通信作了规定,因此只要是满足这些规范的系统就莓以在隧络上抟输数据。嵌入 式系统中集成t c p i p 协议栈使彳寻嵌入式系统也成为网络的一个节点,有效遗利用了 网络资源,实现了嵌入式系统的网络化。 我饲对嵌入式t c p i p 技术的研究主要集中在两个方砸:嵌入式w e bs e r v e r ( 基 于h t t p 协议) 和远程文件传输( 基于t f t p 协议) 。在嵌入式系统中实现w e bs e r v e r , 用户就能在侄意台联网的计算机上,透过测览器访问我们的系统,这就使远程监控、 网络测量成为现实,我们已将其应用在基于双频测导法的电导率测量中。在嵌入式系 统中实现文传传输协议,我们可以通过网络来下载更新系统的程序,这在王控领域有 着广阔的应用前景。 本课题是嵌入式技术的综合应用,我们在给出协议移植方法的阍对也阐述了 t c p i p 协议栈的具体规范与运作流程。为了使系统运行稳定、满足实时响应的要求, 我们需要嵌入式搡作系统来作为系统的软件平台,课题中我销采用u c o s i i 作为嵌 入式实时操作系统( r t o s ) 。此外,本谋题的研究中还引入了p c 机上的网络技术公共 网关接口( c g i ) ,经过精简作为嵌入式系统的应用程序。 关键词:t c p i p ,嵌入式w e bs e r v e r ,嵌入式搡作系统,文件传输协议,电导率测量 作者:安峰 指导老师:陈小平 旦! 圣! ! ! ! 受! ! ! ! 垒塑! ! 兰! ! ! ! ! ! 堡! ! 望鲤! 曼墼! 三暨! 竺! ! g z垒! ! ! 竺! t h er e s e a r c ha n d a p p l i c a t i o no fe m b e d d e d t c p i pt e c h n o l o g y a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e r n e ta n de m b e d d e ds y s t e m ,t h e r ea r em o r ea n dm o r e r e q u i r e m e n t sf o ri n s t r u m e n t st ob ec o n n e c t e dt ot h e i n t e r n e t e m b e d d e dt c p ,翟o r i n t e g r a t i n gt c p 口s t a c k si n t oe m b e d d e ds y s t e mi n s u r e st h ec o n n e c t i o nb e t w e e ne m b e d d e d s y s t e m sa n de t h e m e tb a s e d0 1 i 鼍c p f i p a tp r e s e n t , t h ew i d l yu s e dt c p i ps t a c k sf o r e m b e d d e ds y s t e m sa r eu 礤a n dl w 譬b o t ho fw h i c ha r ew r i t t e ni ncl a n g u a g e , e a s yt o t r a n s p l a n ta n ds u i t a b l ef o r8 1 6b i tm c u s i nt h i sp a p e r , w ef o c u so nt h et r a n s p l a n ta n d a p p l i c a t i o n so f e m b e d d e dt c p i pt e c h n o l o g y 弧ed e s i g no f u c l i n u xi sa l s or e f e r e d p r o t o c o ls t a c k si sas e to fm a n yp r o t o c o l se a c ho f w h i c hd e s c r i b e st h es p e c i a lr u l eo f n e t w r o kc o m m u n i c a t i o nf r o mt h ep h y s i c a ll a y e rt oa p p l i c a t i o nl a y e r t c p ,狰s t a c k si s m a d eu po fm o r et h a nah u n d r e do fp r o t o c o l s 。u i pa n dl w i pm a i n l yi n c l u d et c p 。i pa n d a r p i nt h ea p p l i c a t i o nl a y e r , h r r pa n dt f t pa l en e e d e dt ob ew r i t t e n i n t e g r a t i n g t c p 佃s t a c k si n t oe m b e d d e ds y s y t e r n sm a k e st h ee m b e d d e ds y s t e man o d eo fe t h e m e t a n dg r e a t l ye x t e n d st h ec o m m u n i c a t i o nd i s t a n c eo f t h ee m b e d d e ds y s t e m 。 i nt h i sp a p e r , 搬er e s e a r c ho f e m b e d d e dt c p i p sm a i n l yo nc h i pw e bs e r v e r ( b a s e do n h t t p ) a n dr e m o t ef i l et r a n p o r t ( b a s e do nt f t p ) w i t hc h i pw e bs e r v e r ,e m b e d d e ds y s t e m c a nb em o n i t o r e dv i ae t h e m e t , w h i c hc a l lb eu s e di nr e m o t em e a s u r e m e n t f o re x a m p l e ,i n 0 1 2 1 s y s t e m ,c h i pw e bs e r v e ri su s e di nc o n d u c t i v i t ym e a s u r e m e n t r e m o t ef i l et r a n s p o r ti s v e r yu s f u li ne m b e d d e ds y s t e md e s i g na n dd e b u g ,a n di t sa p p l i c a t i o ni sd e s c r i b e di nd e t a i l i ns e c t i o n4 r t o sp l a y s8 l li m p o r t a n tr o l e i ne m b e d d e ds y s t e m i no u rs y s t e m p c o s i ii s c h o o s e da st h es o f t w a r ep l a t f o r mb e c a u s eo fi t se x c e u e c tp e r f o r m a n c ea n df r e eo fc h a r g e l w i pi si m p l a n t e di n t ot t c o s - i ia st h et c p i ps t a c k s c g i ( c o m m o ng a t e w a yi n t e r f a c e ) u s e di np ci si n t r o d u c e di n t oe m b e d d e dt c p i pt e c h n o l o g y i nt h en e a rf u t u r e ,w ea r e t r y i n gt om o v e 幻a n t h e rf a m o u so p e r a t i o ns y s t e m s :p c l i n u x t c l i n u xi sac o m p l e t e do s , w i t hi t sa p i o u rw o r kw i l lb ee a s i e r k e yw o r d s :t c p i p , e m b e d d e dw e bs e r v e r ,e m b e d d e do s ,t f t p ,w a t e rc o n d u c t i v i t y m e a s u r c n l e n t w r i t t e nb yf e n ga n s u p e r v i s e db yx i a o p i n g c h e r t i i 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明弓 用的鹿容外,本论文不含 箕他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律 责任。 研究生签名:经受 日期: 丝! 生耋:垒 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容榴一致。除在保密期内的保密论文 外,允许论文被套阅和借阅,可以公布( 包括刊登) 论文的全部或部分 内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:丝遗日期: 导师签名: 皇牛目 期: 型:坦 嵌入式t c p i p 技术研究与应用 第一章引言 第一章引言 1 1 课题的研究概况与意义 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用 系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,可以很好地满 足对实时性指标的要求。而引入实时操作系统( r t o s ) 更可以极大地提高系统的灵 活性、规范性和扩展能力,并大大减小程序编写的工作量,减少了出错的可能,保证 最终程序具有高可靠性。 目前,i n t e r n e t 是覆盖率极广、联网设备众多、协议完善、功能强大的一种通信 方式,已经成为社会重要的基础信息设施,是重要的信息流通渠道。具备互联网络的 接入功能,己经成为嵌入式系统的发展方向之一,在嵌入式系统中引入网络技术,可 以将处于不同地域的多个嵌入式系统节点组成一个统一的整体,实现数据共享和统一 管理,大大提高了嵌入式系统的网络功能。 目前,嵌入式t c p i p 技术主要分为以下三种: ( 1 ) 利用具备协议栈结构的m p u 芯片0 1 。在嵌入式系统开发时,利用具有协议栈 结构的微控制器和p h y 0 1 ( p h y c e i v e r 物理层的接收器) 来实现网络接口。这类芯片 提供商还提供相应的软件包,设计者只需要调用软件包中的函数就可以了,如同在台 式机中做网络开发编程一样。这种方法的优点是软件设计简单,缺点是价格比较昂贵。 ( 2 ) 以软件的形式在微处理器内部构建t c p i p 协议栈,通过移植或者编写协议 栈来实现嵌入式t c p i p 技术。本课题就是采用这种方法,它的优点显而易见,就是 灵活性高,价格低廉,然而这需要较高的软件水平,对开发者的要求较高。 ( 3 ) 通过专用的w e b 服务器实现“1 。在现有的嵌入式系统中大量使用的是8 位或 1 6 位m c u ( m i c r oc o n t r o lu n i t 微控制器) ,并不要求每个设备都直接连接到i n t e r n e t 上,用户可以利用i n t e r n e t + 轻量级网络的方式实现嵌入式t c p i p 技术。这里指的 轻量级网络包括:电力线、r s - 4 8 5 和r s 2 3 2 等网络。比如e m w a r e 公司专门为嵌入式 微控制器设计的网络服务器“3 就是一种专用w e b 服务器。 嵌入式t c p i p 协议栈与我们所熟悉的p c 机上的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 协议”1 。同样,t c p i p 协议栈也可以被移植到其它嵌入式系统上,8 位的m c $ 5 1 单片机、1 6 位的a v r 、3 2 位的m i p s 等芯片都可以做为嵌入式t c p i p 协议栈的硬件 平台。由于微处理器的资源有限,其可直接寻址的程序空间与数据空间都很小,处理 速度较慢,这些都无法与台式机相比,所以嵌入式t c p i p 与常规t c p i p 的实现有很 大不同。从操作系统层面来讲,无论是l i n u x 、d o s 、w i n d o w s ,它们都是多任务操作 系统,这使得协议代码编写简单化。而许多嵌入式系统,因为成本原因没有采用实时 嵌入式操作系统,这就使得其代码结构变为无限循环+ 硬件查询+ 顺序执行的方式。从 内存分配方面来讲,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 字节,而嵌入式系统的数据存储空间较小,且不仅仅只存放收发的数据 包。因此在嵌入式系统中,是根据实际情况分配一个固定字节缓冲区来存放接收到的 以太网数据包,收到一包就处理一包。从参数传递层面来讲,在u n i x 上实现的t c p i p 源代码中,一般有很多的参数传递,而在单片机里允许传递的参数是有限的,同时参 数传递的过程要浪费程序代码空间,同时也降低单片机的运行速度。所以在嵌入式系 统的实现里,一般不做太多的参数传递,而更多是使用全局变量来实现参数传递a 现实生产中,存在着许多诸如油田、矿井等具有较大分散性的场合,在生产过程 中要求对其基本信息进行记录和汇总,而由于生产现场大都远离工业区,交通不便, 同时地域分散性较强,其基本生产信息的采集成本很高。因此,随着计算机技术和网 络技术的发展,利用嵌入式计算机系统和网络技术,组成嵌入式网络化测量仪器,可 以使分散的采集点连入网络,极大地提高生产效率。 本课题所阐述的嵌入式t c p i p 技术可以单独在微控制器上运行,也可以在嵌入 式操作的支持下运行。操作系统我们选择u c li n u x 和p c o s i i ,u c l i n u x 在无m m u ( 内存管理单元) 的嵌入式系统中具有较好的技术优势,在应用网络方面它内嵌有完 备的协议栈,我们在其基础上开发各种应用程序。“c o s - i i 虽然只是一个实时的操作 系统内核,但是我们通过给其添加协议栈,使得我们的系统能够在实时性要求苛刻的 壁垒蔓! ! 丝! 茎查竺壅皇壁望 环境可靠运行。 第一章引言 本课题所探讨的嵌入式t c p i p 技术就是将嵌入式系统、i n t e r n e t 技术融合在一 起,并应用在测量仪器需要实时数据采集与远程数据通信的系统。 组建嵌入式网络化仪器,可以采用3 2 位微处理器( 如a r m ) ,外加r t o s ;也可以 由低档的八位机组成嵌入式仪器,采用专用的网络( 如r s 4 8 5 、c a nb u s 等) 把若干个 嵌入式仪器连接在一起,再与p c 机相连;还可以利用八位单片机组成直接接入 i n t e r n e t 的嵌入式网络仪器。在本系统中,以3 2 位a r m 处理器为核心,在此基础上 开发网络功能,使其能够直接接入i n t e r n e t ,实现数据的网络共享。 1 2 课题内容 本文主要分析研究如何在嵌入式系统上实现t c p f l p 协议栈,目前在嵌入式系统 上实现t c p i p 协议栈可以有以下几种方法: ( 1 )移植精简的t c p i p 协议栈,如:u i p ; ( 2 )在微处理器上集成t c p f l p 协议栈+ 实时操作系统,如:l w i p + “c o s i h ( 3 )在3 2 6 4 位处理器上采用完备的操作系统,如:u c l i n u x 。 本课题采用基于a r m 核的s 3 c 4 4 b o x 芯片作为集成t c p i p 协议栈的硬件平台。 s 3 c 4 4 b o x 是s a m s u n g 公司推出的3 2 位处理器,它为手持设备和一般类型应用提供了 高性价比和高性能的微控制器解决方案。它有丰富的内置部件和8 k bc a c h e ,可寻址 范围4 g 。我们给它添加的外围设备包括:8 m bs d r a m ,地址从0 x o c 0 0 0 0 0 0 0 x o c 8 0 0 0 0 0 。 4 m bf l a s h ,内部存放启动代码b o o t l o a d e r 等。 在t c p i p 协议栈的基础上,我们编程实现应用层协议h t t p 以及t f t p 。将嵌入式 系统接入实验室局域网的方法是通过一根直连网线直接连接p c ,或者通过普通9 网线 连接到h u b 上。t c p i p 协议栈移植完毕后,检验移植是否成功的方法有以下3 种: ( 1 ) p c 机发送p i n g 指令给嵌入式系统,观察是否可以p i n g 通; ( 2 )在浏览器地址栏输入嵌入式系统的网址( 服务器的i p 地址) 观察是否可以 访问嵌入式w e bs e r v e r ; ( 3 )在p c 端d o s 下输入t f t p i1 9 2 1 6 8 1 4 8p u tl e d ,观察是否可以将 l e d c 的h e x 文件下载到系统存储器中。 嵌入式t c p i p 技术广泛应用在测量领域,本课题将t c p i p 协议栈应用在电导率 3 -rii 壁垒茎! ! 型! ! 垫查堡壅兰些旦 墨二兰! ! i 测量仪上,仪器所测得的数据通过网络传送到监控端,以网页的形式显示被测物理量, 即电导率和温度。嵌入式t c p i p 技术的另一个应用是文件在线更新,采用t f t p 协议, 通过网口更新嵌入式系统的程序,不打断程序的运行,这给嵌入式系统的调试、开发 带来极大的便利。 1 3 论文结构 本文第一章概述了嵌入式t c p i p 技术的研究概况和意义。给出了嵌入式t c p i p 协议栈的3 种实现方法和2 个应用。 第二章讲述了嵌入式系统与以太网的接口。我们采用r e a l t e k 公司的r t l 8 0 1 9 a s 作为网络接口芯片,在硬件方面我们重点介绍了网卡芯片r t l 8 0 1 9 a s 的内部构造和驱 动程序设计,这也同样适用于其它的n e 2 0 0 0 网络芯片。 第三章重点讲述了嵌入式t c p i p 协议栈的的工作原理和c 语言描述,并针对协 议栈的移植做了细致讨论。其中,u l p 协议栈的移植没有r t o s ( 实时操作系统) 的参 与,即只考虑t c p i p 协议栈本身的特征。l w l p 协议栈的移植是在实时操作系统 uc o s i i 平台上进行的,t c p i p 协议栈作为一个任务,通过内核调用工作。u c l i n u x 本身集成了t c p i p 协议栈,因此,我们更多考虑如何在嵌入式系统上进行l i n u x 的 设计。 第四章介绍了嵌入式t c p i p 协议栈的两个应用:基于嵌入式t c p i p 技术的电导 率测量和文件在线更新。利用第三章中讲到的嵌入式w e bs e r v e r 技术,将测量仪器 所测量到的数据以网页的形式通过以太网发给监控端;利用t f t p 协议,通过网口给 嵌入式系统更新程序,给系统调试及开发带来极大的便利。 在第五章里,我们总结了课题当中的一些难点,并结合自己的实际经验和心得体 会对以后的研究与应用作了展望。 嵌入式t c p i p 技术研究与应用第二章嵌入式系统的以太网接口 第二章嵌入式系统的以太网接口 2 1 以太网构成 在叙述嵌入式t c p i p 协议栈连接以太网之前,有必要先简要介绍一下以太网的 构成和工作原理以及嵌入式系统与以太网的接口问题。 以太网是现有局域网采用的最通用的通信协议标准,组建于七十年代早期。本课 题涉及到的以太网( e t h e r n e t ) 例均是指传输速率为l o m b p s 的常用局域网( l a n ) 标 准,嵌入式系统连接l o o m b p s 及1 0 0 0 m b p s 的以太网是本课题在不久的将来所要达到 的目的。在以太网中,所有计算机被连接到一条双绞线或同轴电缆上,采用具有冲突 检测的载波感应多路访问( c s 】i a c d ) “”方法,采用竞争机制和总线拓朴结构。以太 网由共享传输媒体,如双绞线电缆或同轴电缆和多端口集线器、网桥或交换机构成。 我们使用非屏蔽双绞线( u t p ) + 水晶插座( r j 4 5 ) 将嵌入式系统连入以太网, 如果是直接与p c 机相连就采用直连网线,如果是连接h u b 就采用普通网线。r j 4 5 ( 水晶插座) 的引脚排列如图2 - i 所示: 管脚号信号 lt x + 2t x - 3r x + 6r x 一 图2 1r j 4 5 的引脚排列 在以太网中,数据是以帧的形式在网络中流动的。根据i e e e 8 0 2 3 规定,以太网 数据帧的格式如图2 2 所示。标准的i e e e8 0 2 3 数据包由以下几个部分组成:前导 位( p r e a m b l e ) 、帧起始位( s f d ) 、目的地址( d e s t i n a t i o n ) 、源地址( s o u r c e ) 、数据长 度( 1 e n g t h ) 、数据( d a t a ) 、帧校验字( f c s ) 。数据场的大小可从4 6 b ( b y t e s ) 1 5 0 0 b ( b y t e s ) ,如一组要传送的数据不足4 6 b y t e s ,就用零补足;超过1 5 0 0 b y t e s 时, 需要拆成多个帧传送。前导位、帧起始位和帧校验字仅供控制器本身用,主处理器收 到的数据帧的组成依次包括:接收状态( i b y t e ) 、下一帧的页地址指针( i b y t e ) 、 目的地址( 6 b y t e s ) 、源地址( 6 b y t e s ) 、数据长度帧类型( 2 b y t e s ) 、数据场。数据长 嵌入式t c p ,i p 技术研究与应用第二章嵌入式系统的以太网接口 度帧类型的值小于或等于1 5 0 0 b y t e s 时,表示数据场的长度;反之,表示数据帧的 类型。如值为o x 0 8 ,o x 0 0 ,表示数据场为i p 包:值依次为o x 0 8 ,o x 0 6 ,表示数据场 为a r p 包。 p r e a m b l es f d目的地址源地址l e n g t h数据 f c s 图2 2i e e e 8 0 2 3 帧的组成 2 2 以太网接口芯片r t l 8 0 1 9 a s 2 2 1 网卡芯片r t l 8 0 1 9 a s 主要性能 由台湾r e m t e k 公司生产的r t l 8 0 1 9 a s “”以太网控制器,由于其优良的性能、低 廉的价格,使其在市场上1 0 m b p s 网卡中占有相当大的比例。它由如下主要性能: ( 1 )适应于e t h e r n e ti i 、i e e e 8 0 2 3 、l o b a s e 5 、l o b a s e 2 、l o b a s e t ; ( 2 )支持8 位、1 6 位数据总线; ( 3 )全双工,收发可同时达到l o m b p s 的速率,具有睡眠模式,以降低功耗; ( 4 )内置1 6 k b 的s r a m ,用于收发缓冲,降低对主处理器的速度要求: ( 5 ) 可连接同轴电缆和双绞线,并可自动检测所连接的介质; ( 6 )1 0 0 脚的t q f p 封装,缩小p c b 尺寸。 2 2 2 内部结构 按数据链路的不同,可以将r t l 8 0 1 9 a s 内部划分为远程d m a ( r e m o t ed m a ) 0 2 1 通 道和本地d m a ( 1 0 c a ld m a ) 通道两个部分。本地d m a 完成控制器与网线的数据交换, 主处理器收发数据只需对远程d m a 操作。当主处理器要向网上发送数据时,先将一帧 数据通过远程d m a 通道送到r t l 8 0 1 9 a s 中的发送缓存区,然后发出传送命令a r t l 8 0 1 9 a s 在完成了上一帧的发送后,再完成此帧的发送。r t l 8 0 1 9 a s 接收到的数据 通过m a c 比较、c r c 校验后,由f i f o 存到接收缓冲区,收满一帧后,以中断或寄存 器标志的方式通知主处理器。r t l 8 0 1 9 a s 原理框图如图2 3 所示。 在图2 - 3 中,接收逻辑在接收时钟的控制下,将串行数据拼成字节送到f i f o 和 c r c ;发送逻辑将f i f o 送来的字节在发送时钟的控制下逐步按位移出,并送到c r c ; c r c 逻辑在接收时对输入的数据进行c r c 校验,将结果与帧尾的c r c 比较,如不同, 一l 嵌入式t c p i p 技术研究与应用第二章嵌入式系统的以太网接口 该帧数据将被拒收,在发送时c r c 对帧数据产生c r c ,并附加在数据尾传送:地址识 别逻辑对接收帧的目的地址与预先设置的本地物理地址进行比较,如不同且不满足广 播地址的设置要求,该帧数据将被拒收;f i f o 逻辑对收发的数据作1 6 个字节的缓冲, 以减少对本地d m a 请求的频率。 内部总线 图2 - 3g t l s o l g a s 原理框图 2 2 3r t l 8 0 1 9 a s 的d 姒操作 r t l 8 0 1 9 a s 是针对p c 机的i s a 总线设计的。如运用于嵌入式设备中,则在硬件 和软件的设计上有一些特殊性。嵌入式设备的主处理器可通过其映射到1 6 个i o 地 址上的寄存器来完成对r t l 8 0 1 9 a s 的操作。需要指明的一点是,r t l 8 0 i g a s 的d m a 与 平时所说的d m a 有点不同。r t l 8 0 1 9 a s 的l o c a ld m a 操作是由控制器本身完成的,而 其r e m o t ed m a 并不是在无主处理器的参与下,数据能自动移到主处理器的内存中, 它的操作机制是这样的:主处理器先赋值于r e m o t ed m a 的起始地址寄存器r s a r o 、 r s a r i 和字节计数器r b c r o 及r b c r i ,然后在e r t l 8 0 1 9 a s 的d m ai o 地址上读写指定 地址上的数据。 r t l s o l 9 a s 内置的1 6 k b ( 有的网卡芯片可以内置多达6 4 k b 的r a m ) 的s r a m 可划分 为接收缓冲和发送缓冲两个部分。缓冲以页为单位,每页2 5 6 个字节,1 6 k b 的s 删 的页范围规定在o x 4 0 一o x 8 0 ,由p s t a r t 和p s t o p 寄存器来设定接收缓冲页的范围; 由r s a r o 、l 和r b c r o 、1 寄存器来设定发送缓冲页的范围。c u r r 指向接收到的帧的 起始页,b o u n d a r y 指向还未读的帧的起始页。当c u r r 到达了接收缓冲页的底部,即 与p s t o p 相等时,c u r r 又会自动指向到p s t a r t 处。与d m a 有关的寄存器如图2 4 所 嵌入式t c p i p 技术研究与应用第二章嵌入式系统的以太网接口 不。 图2 - 4 与d 姒有关的寄存器 2 2 4r t l 8 0 1 9 a s 与处理器之间的连接 目前局域网常见的是采用双绞线为通信介质。图2 - 5 是a r m 和8 0 1 9 的连接图, 读数据时,d 0 :1 5 数据经7 4 f 1 6 3 2 4 5 反相后传给单片机;写数据时,d o :1 5 送到 r t l 8 0 1 9 a s 。r t l s o l 9 a s 在复位的上升沿锁定i o c s l 6 脚的电平,其值决定数据总线 的宽度:高电平时为1 6 位总线方式,低电平时为8 位总线方式。如挂接到8 位主设 备上,用电阻下拉置地,de 8 :1 5 空悬。为提高收发速度,我们采用1 6 位数据总 线方式。由于r t l 8 0 1 9 a s 没有外接初始化的e p r o m ,故其复位时命令寄存器( c r ) 的 i o 地址的值为缺省值o x 3 0 0 ,所以,为满足r t l 8 0 1 9 a s 的i s a 时序,a 5 a 1 9 的连接 必须使其地址锁定在o x 3 0 0 。 a l l :5 】 a 0 :4 a 5 浇 f o r a 6 盹1 0 w a 7 v l c s b o a e n a 8 a r m u 2 r t l 8 0 1 9 a sa 9_ j 堕生再丽研里型 l 篮s ! 一: 堕 0 ) (收到数据 判断b u f 里的数据包类型f 是1 吨一) u i p - i n p u t ( ) ; 是矾p 包一) u i p _ a r p _ a r p i n 0 : ) ) 另一个需要驱动程序支持的函数是u l p _ p e r i o d i co 。这个函数用于u i p 内核对各 连接的定时轮询,因此需要一个硬件支持的定时程序周期性地用它轮询各连接,一般 用于检查主机是否有数据要发送,如有,则构造i p 包。使用示例如下。 程序3 2u l p _ p e r i o d i c 函数示例 u i p _ p e r i o d i c ( j ) : 如果“i pl e n 0 ) 【 u i p a r p _ o u t0 : e c h e r n e t d e v i c e d r i y e r _ s e n d o : 1 从本质上来说,u i p i n p u t o 和u i p _ p e r i o d i c o 在内部是一个函数,即 u i 啮r o c e s s ( u 8 一tf l a g ) ,u i p 的设计者将u i p _ p r o c e s s ( u i p d a t a ) 定义成 u i p i n p u t0 ,而将u i p _ p r o c e s s ( u i p _ t i m e r ) 定义成u i pp e r i o d i c0 ,因此从代码实 现上来说是完全复用的。 2 u i p 的应用程序接口( w e bs e r v e r ) 将用户的应用程序挂接到u l p 中时,必须将宏u i p _ a p p c a l l 0 定义成实际的应用 程序函数名,这样每当某个u i p 事件发生时,内核就会调用该应用程序进行处理。如 果要加入应用程序状态的话,必须将宏u i p _ a p p s t a t es i z e 定义成应用程序状态结构 体的长度。在应用程序函数中,依靠u i p 事件检测函数来决定处理的方法,另外可以 通过判断当前连接的端口号来区分处理不同的连接。下面的示例程序是我们实现的一 个服务器应用的框架。 ,r, r p lr: 嵌入式t c p i i p 技术研究与应用第三章嵌入式t c p i p 协议栈的实现 程序3 3u i pa p p c a l l 函数示咧 # d e f i n eu i p _ a p p c a l l h t t p d a p p c a l l :f d e f i n eu i p _ a p p s t a t es i z e ( s i z e o f ( s t r u c th t t p d s t a t e ) ) 如果( u i pc o n n e c t e d 0 ) 如果( u p n e w d a t a o l u i pr e x m l t 0 ) 收到新数据或需要重发 如果( u i pc o n n - i p o r t = = 8 0 ) ( 收到获得h 丌p 请求 u i p _ a p p c a l l 0 : ) ) j u i p _ c l o s e d 01 【客户机关闭了连接 u i p _ a b o r t e d 0 ) f 客户机中断连接) 主程序采用中断加轮询的方式,用中断触发的方式接收网络数据,并设置了一个 接收队列暂存这些数据。在程序中轮询有无网络数据包输入,如有则调用u i p 的相关 处理函数( 如上u i p i n p u t 0 使用示例) :如无则检测定时轮询中断是否发生。这里设 t 2 设为u i p 的定时轮询计数器,在t 2 中断中设置轮询标志,一旦主程序检测到这一 标志就调用u l p _ p e r i o d i c0 轮询各连接( 如上u l p _ p e r i o d i c0 使用示例) 。 如图3 - 4 所示,程序在初始处首先打开8 0 端口的监听,一旦有客户机要求连上, u i p 内部会给它分配一个连接项,接着等收到客户机i e 浏览器发出的“获得 h t t p ”请求后,将数据队列中的数据填入网页模板,生成一幅新的网页发给客户 机。因为这幅网页的大小已经超过u i p 的最大段长( m a xs e g m e n ts i z e ,m s s ) ,因此 在u i p 内核第一次实际只发出了m s s 个字节,在等到下一次轮询到该连接并且收到上 次数据包的正确应答时,发送剩下的网页数据。 图3 - 4u i p 的总体程序结构图 嵌入式t c p i p 技术研究与应用 第三章嵌入式t c p i p 协议栈的实堡 在连接处于空闲的时候( u l p p o l l 0 ) ,应用程序可以从串口队列中读出原始数 据,经格式处理后再存到状态数据队列中,而在这个队列中保存着当前1 分钟的设备 工作数据,以便下次更新网页时使用。如果u l p 接收正确应答超时,它会自动设置重 发标志,应用程序中可以用u i p _ r e x m i t0 来检测这个标志,重新生成网页并发送。 一旦用户关闭了浏览器,u i p 也会自动检测到这一事件( 应用程序中可以用 u l p _ c l o s e d ( ) 来检测) ,并且释放掉这个连接项。 3 嵌入式网关接口e g i ( e m b e d d e dg a t e w a yi n t e r f a c e ) 嵌入式w e bs e r v e r 大多应用在测试控制领域,因此,s e r v e r 与外界的交互通信 必不可免,传统的w e bs e r v e r 是在客户端请求时发送相应的静态h t m l 页面,只是起 到一个文件服务器的功能。在p c 领域,人们的解决办法是引入c g i “”。即公共网关 接口( c o m m o ng a t e w a yi n t e r f a c e ,c g i ) 。c g i 是h t t p 服务器与你的或其它机器上的 程序进行“交谈”的一种工具,其程序运行在网络服务器上。绝大多数的c g i 程序被 用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反 馈给浏览器。c g i 程序使网页具有交互功能。 c g i 处理步骤: ( 1 )通过i n t e r n e t 把用户请求送到服务器。 ( 2 )服务器接收用户请求并交给c g i 程序处理。 ( 3 )c g i 程序把处理结果传送给服务器。 ( 4 )服务器把结果送回到用户。 c g i 适用于p c 机上,一般都是运行在某种多任务操作系统当中,用优秀的字符处 理语言p e r l 编写,然而在嵌入式系统中很难支持p e r l 语言。因此人们提出了一种新 的技术:e g i ( e m b e d e dg a t e w a yi n t e r f a c e ) h 6 。我们结合本课题,具体说明e g i 是如何让嵌入式w e bs e r v e r 具有交互功能的。 h t t p 协议规定,浏览器首先发送h t t p 请求,服务器返回i n d e x h t m 页面;如果 用户点击某个按键,浏览器就发送e g i 请求,例如“a d ”按键对应的的h t m l 语言如 下: a d 与此形成对比的是不具有e g i 功能的h t m l 语言如下: 4 嵌入式t c p i p 技术研究与应用 第三章嵌入式t c p i i p 协议栈的实现 a b o u t 因此,在发送h t t p 请求时,发送数据如图a - 2 ( 附录2 ) 所示( g e t e g i f i l e s ”) , 而不是如图a - l ( 附录2 ) 所示( g e t h t t p ) 。 e g i 文件包括3 部分:标志符( i ) + 文件头;e g i 标志( a ,b ,c ) :标志符( i ) + 文件尾。e 画文件的具体内容见附录3h t m l 文档2 :a de g i 。i 就是包含文件头 或文件尾,c 就是e g i 处理,我们有a ,b ,c 三种e g i 处理方法。 服务器在接到请求后,判断出是e g i 请求后,进行如下处理步骤: ( 1 )判断客户端申请的页面,并发出h t m l 页面头;服务器的文件组织是以 一个队列的结构形式,以我们编写的h t t p 协议为例,文件服务器包括 i n d e x h t m 、a b o u t h t m 、c o n t r 0 1 h t m 等静态页面,也包括f i l eh e a d rh t r a l h t m 、 f i l e _ e g i 、f i l e f o o t h t m l p l a i n 等动态页面。 ( 2 ) 协议栈通过字符处理找出请求 :雕j e g i 后的字符串,也就是”f i l e s ”,然后 以这个字符串在队列中的文件名中进行查找,如果匹配,就对该文件进行字 符处理,即对f i l e 进行处理。egi ( 3 ) 处理完e 西文件里第一部分后,进入第二部分,即e g i 处理部分。在这 里我们可以进行电导率的测量,得到新的数据后发送出去。见附录2 的图a - 4 h t t pe g i 请求帧。 ( 4 ) 处理e 舀文件里第三部分,发送文件尾,即f i l e f o o t h t m l p l a i n 。具体内 容见附录3h t m l 文档3 :a df o o t e r 。 e g i 技术的出现使我们可以根据客户端请求,即时构造新的页面,这在数据采集、 实时监控领域有着广阔的应用。图5 7 是本课题中应用e g i 技术,在浏览器里实时显 示采集到的模拟量( 温度和电导率) 。客户端每隔一段时间就自动刷新显示,发送e g i 请求,服务器端发送不变的头和尾,但是在e g i 处理部分把最新的数据发送过来。 3 。3 基- t p c o s -

温馨提示

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

评论

0/150

提交评论