(机械电子工程专业论文)基于8位mcu的嵌入式web服务器研究.pdf_第1页
(机械电子工程专业论文)基于8位mcu的嵌入式web服务器研究.pdf_第2页
(机械电子工程专业论文)基于8位mcu的嵌入式web服务器研究.pdf_第3页
(机械电子工程专业论文)基于8位mcu的嵌入式web服务器研究.pdf_第4页
(机械电子工程专业论文)基于8位mcu的嵌入式web服务器研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(机械电子工程专业论文)基于8位mcu的嵌入式web服务器研究.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 随着m t c m c t 技术的迅速发展,i i l t e m e t 的应用已经深入到生活的方方面面。 许多嵌入式设备都在开始尝试着接入i n l e m c l 。据网络专家预测,下一代网络设 备中嵌入式设备将大大增加,将来在互联网上传输的信息中7 0 左右是来自小 型嵌入式系统。 普通8 位微处理器是工业控制领域低端应用的主要机型。因系统资源有限、 运算速度慢等因素,使其接入i n t 咖c t 必然会面临诸多困难。如将其排斥在 i n t c m e t 之外,这势必会影响基于嵌入式i n t e m e t 的控制网络的发展。 本文的目的是直接在普通8 位微处理器上实现嵌入式w e b 服务器,通过它 可以将被控设备接入i n t e m e t ,用户可以通过标准浏览器对被控设备实现远程控 制和监测。归纳起来,本文主要进行了以下研究工作: ( 1 ) 探讨了三种典型控制网络及嵌入式i n t e r n e t 技术的特点,确定了本系 统采用的方案。 ( 2 ) 8 位微处理器与以太网控制器接口电路的设计和驱动程序的编写。 ( 3 ) 在保证系统可靠性的基础上,根据普通8 位微处理器的特点,完成了一 个功能完善且精简的t c p i p 协议栈体系结构的设计和实现。 ( 4 ) 根据控制网络的具体要求,实现了浏览器与服务器之间的动态交互功 能。 在上述工作顺利进展的基础上,进一步完善了系统的软硬件设计,最终做 出了样机。系统实现了简单的控制应用,系统的成功运行证明了在普通8 位微处 理器上直接实现嵌入式w e b 服务器的可行性,同时也表明低端应用的嵌入式系 统接入控制网络的嵌入式i n t e m e t 技术具有广阔的应用前景和推广价值。 关键词:嵌入式w e b 服务器,t c p i p ,r t l s 0 1 9 a s 武汉理工大学硕士学位论文 w i t ht h er a p i dd e v e l o p m e n to fi n t e r n e t , t h ea p p l i c a t i o no fi n t e r n e th a sc o m ei n t o e v e r ya s p e c t so fp e o p l e sd a i l yl i r e al a r g en u m h a ro fe m b e d d e dd e v i c e sb e g i nt o a c c e s st oi n t e r a c t n e t w o r ka n a l y s tf o r e c a s tt h a te m b e d d e dd e v i c e sw i l lb e c o m e m o r ea n dm o r ea n dt h a t7 0p e r c e n ti n f o r m a t i o nw h i c ht r a n s p o r t e do nt h ei n t e m e t w i l lc o m ef r o ms m a l le m b e d d e ds y s t e mi nt h ef u t u r e n o r m a i8 由i tm i c r o p r o c e s s o rp r e v a i l so v e rt h el o wl e v e li n d u s t r yc o n t r o lr e a l m b e c a u s eo ft h el i m i t e ds y s t e mr e s o u r c e sa n ds l o w s p e e do p e r a t i o n i tm u s t m e e tw i 也 m a n yd i f f i c o l t i e sw h e na c c e s s i n gi n t e r a c t a sar e s u l t , i tw i l la f f e c tt h ed e v e l o p m e n t o ft h ec o n t r o ln e t w o r kb a s e d0 nt h ee m b e d d e di n t e m e ti fi tc a i l ta c c e s si n t e m * t t h ep u r p o s eo ft h i st h e s i si st oc a r r yo u tt h ee m b e d d e dw e bs e r v e ro nn o r m a l 8 b i tm i c r o p r o c e s s o rd i r e c t l y w i t ht h eh e l po fi t c o n t r o l l e de q u i p m e n tc a na c c e s s i n t e r n * t , a n dc u s t o m e rc a nc o n t r o l ,m o n i t o ra n dm e a s u r ec o n t r o l l e de q u i p m e n t t h r o u g ht h es t a n d a r db r o w s e r t h em a i nc o n t r i b u t i o n so ft h ep a p e ra r ea sf o l l o w s : ( 1 ) d i s c u s s e dt h r e ek i n d so ft y p i c a lc o n t r o ln e t w o r ka n dt h ec h a r a c t e r i s t i c so f t h ee m b e d d e di n t e n l e tt e c h n o l o g y , a n dm a d et h es c h e m ef o rt h i ss y s t e m 陀) d e s i g nh a r d w a r ec i r c u i ta n dw r i t ep r o g r a mw h i c hb a s e do nm i c r o p r o c e s s o r a n dr t l 8 0 1 9 a sc h i p f 3 ) c o m p l , t e dt h ed e s i g na n dr e a l i z a t i o no fp e r f e c ta n ds i m p l i f i e dt c p u s t r u c t u r eb a s e do nt h es y s t e mc r e d i b i l i t ya c c o r d i n gt ot h ec h a r a c t e r i s t i c so f n o r m a l 8 - b i tm i c r o p r o c e s s o r ( 4 ) c a r f i e do u tt h ef u n c i i o no fe x c h a n g i n gd a t ad y n a m i c a l l yb e t w e e nb r o w s e r a n ds e r v e ro nt h ec o n t r o ln e t w o r k 。 a l lt h e s es t u d i e sw e n tw e l l 。a n dt h em o d e lw a sw o r k e do u tb yf u r t h e rp e r f e c t i n g t h es y s t e md e s i g no fh a r d w a r ea n ds o f t w a r e t h es y s t e mw o r k sw e l l w h i c hp r o v e s t h ef e a s i b i l i t yo fc a r r y i n go u tt h ee m b e d d e dw e bs e r v e ro nt h en o r l n a l8 一b i t m i c r o p r o c e s s o rd i r e c t l y , a l s oe x p r e s s e st h a tt h ee m b e d d e di n t e r n e tt e c h n o l o g y a c c e s s i n gc o n t r o ln e t w o r kw i l lb ew i d e l yu s e da n dh a se x t e n dv a l u e so nt h el o w l e v e le m b e d d e ds y s t e m k e y w o r d s :e m b e d d e dw e bs e r v e r , t c p i p , r t l 8 0 1 9 n 武汉理工大学硕士学位论文 1 1 本课题研究的意义 第一章绪论 近年来,基于现场总线的嵌入式系统已成为工业控制网络的主流产品,但是 一般现场总线都非常昂贵,而且数据链路层的处理非常复杂,更重要的是多种总 线标准分割共存局面的存在。严重地影响了现场总线自身提出的开放性、分散性 和完全可互操作性等特点,限制了现场总线技术在工控领域的进一步应用。随着 i n t e r n e t 技术的迅速发展,以太网和t c p i p 协议已成为世界范围内的事实标准, 基于t c p i p 协议的以太网可满足控制系统各个层次的需求,而且具有现场总线 技术所无法比拟的优点。如更高的通信带宽、实现现场设备层和企业管理层的无 缝连接、低成本和更高约可靠性,专家预言,基于以太网传输的嵌入式i n t e r n e t 网络将会成为下一代工业控制网络的重要选择,并将带来工业控制网络新的变 革。因此嵌入式系统与i n t e r n e t 相结合是嵌入式系统发展的一个重要趋势。 嵌入式i n t e r n e t 技术具有广阔的应用前景,其应用领域包括: 1 ) 信息家电:冰箱、空调等的网络化; 2 ) 家政系统:水、电、煤气表的远程抄表,安全防火、防盗系统; 3 ) 工业自动化:目前已经有大量的8 位、1 6 位、3 2 位嵌入式微控制器在应 用中,两络化是提高生产效率和产品质量、减少入力资源的主要途径; 4 ) 智能仪器仪表等; 嵌入式系统应用中8 位m c u 的选用是主流。8 位m c u 是目前品种最为丰富、 应用最为广泛,有着体积小、功耗低、功能强、性能价格比高、易于推广应用等 显著优点。从产品需求量来看,8 位m c u 仍是主流。专家预测,在未来相当长的 时间内,8 位g c u 仍然是嵌入式应用中的主流机型。 但以8 位微控制器为核心的嵌入式系统,因其系统资源有限、运算速度慢等 因素,接入i n t e r n e t 必然会面临很多困难。如果将其排斥在i n t e r n e t 之外,这 必将会影响嵌入式i n t e r n e t 的发展。所以研究以8 位微控制器为核心的嵌入式 系统接入i n t e r n e t 的技术有很重要的意义。 嵌入式肆e b 服务器就是指将嵌入式设备进 亍网络化,使其成为支持t c p i p 等i n t e r n e t 有关的协议的w e b 服务器,用户就可以使用w e b 浏览器远程监测管 理该嵌入式设备。特别是在工业应用领域,对智能设备、仪器、应用器具和传感 器采用以嵌入式w e b 服务器为主的方案是很有意义的。这类设备利用嵌入式w e b 服务器,在用户端浏览器上形成的动态h t m l 页面中显示和调整设备内部运行状 态、系统配置和控制数据参数。传统的基于d c s 结构工控系统向嵌入式w e b 结构 苎堡矍三查兰堡圭兰垒堡苎 转移,可以有效降低成本,这是因为没有必要开发专有的g u i ,还可以方便最终 用户,并改善故障检测和设备维护的远程访闯能力。 综上所述,研究嵌入式w e b 服务器有很重要的意义。 1 2 国内外研究现状 1 2 1 嵌入式i n t e r n e t 技术的研究现状 国际上,微控制器和微处理器在工业自动化和设备管理中采用t c p i p 协议 接入网络始于1 9 9 4 年,初期的进展比较缓慢。近几年来,由于微电子技术的迅 猛发展,微控制器和微处理器的性能大大提高,而价格却大大降低;与此同时, 因特网也以前所未有的速度向前发展,网络通信的性能、质量和可靠性得到稳步 提高,网络普及程度迅速提高。世界各大公司看到了嵌入式设备连上因特网的巨 大商业价值和市场潜力,纷纷投入力量研究,使得嵌入式i n t e r n e t 技术的研究 和应用呈现出加速发展的势头”1 。 嵌入式设备一般都是以嵌入式微处理器( e m p u ) 、微控制器( m c u ) 或数字信 号处理器( d s p ) 为核心的系统。利用嵌入式设备实现嵌入式w e b 服务器方案 的技术难点在于:如何用嵌入式设备自身有限的资源对信息进行t c p i p 协议 处理,使之变成可以在i n t e r n e t 上传输的i p 数据包。目前,国际上存在三 种常用嵌入式i n t e r n e t 技术的方案。 ( 1 ) 网关+ 轻量级设备网 这秘方案使用r s 2 3 2 、r s 4 8 5 、c a n 等轻量级总线将嵌入式系统连接成简 单的设备网络,再连接到一个网关设备上,网关设备是直接连接到i n t e r n e t 的高性能计算机,使用t c p i p 协议与i n t e r n e t 交换信息,同时负责将设备 网络上的信息转换为t c p i p 数据包。这里的网关相当于一个代理服务器的角 色。其结构如图卜l 所示。 图卜1网关+ 轻量级设备网 这种方案可以解决各种嵌入式系统接入i n t e r n e t 的问题。代理服务器的性 能一般都比较高,可以同时和多个嵌入式系统相通信,因此,此方案特别适用于 2 茎堡型三查兰堡主兰竺堡苎 嵌入式系统较多且较为集中的场合,这样不仅可以同时解决多台嵌入式设备的上 网问题,而且还可以通过分摊代理服务器的费用来降低每个接入点的接入成本。 本方案的优点是可以很方便的解决设备上网问题,开发难度低,代理服务器 上能够实现完整的t c p i p 协议,远端控制器可以通过多种方式对嵌入式设备进 行访问,如w w w 方式、e m a i l 方式、t e l n e t 方式、f r p 方式等都很容易实现。但 这种方案对过于分散的、需要重新布线的情况,花销就会很大,而且依靠网 关进行协议转换的软件和硬件成本也比较高。e m w a r e 公司提出的e m i t ( e m b e d d e di n t e r n e tt e c h n o l o g y ) 就是基于这种方案的一个典型应用。 ( 2 ) 采用t c p i p 专用芯片 。 这种方案将m c u 应用系统和内部固化了t c p i p 协议的芯片相结合。m c u 应用系统借助于t c p i p 专用芯片,通过直接拨号或者与以太网相连的方式接 入i n t e r n e t 。硬件电路相对简单,无需其它中问环节的支持。但由于t c p i p 协议实现比较复杂,没有一个专用芯片会实现所有的协议组,所以这些t c p i p 专用芯片都有各自的局限性,并不一定符合用户的具体要求。采用这种方案 的产品主要有s e i k o 公司的$ 7 6 0 0 a 和r a b b i t 公司的r a b b i t 2 0 0 0 芯片等。 ( 3 ) 使用嵌入式操作系统 这种方案可以描述为:t c p i p 协议栈+ 嵌入式操作系统+ 高速1 6 3 2 b i t 处理 器,其结构如图1 - 2 所示。 t c p i p 协议 嵌入式操作系统 i m r = o x 0 0 ,设置中断屏蔽寄存器j 屏蔽所有中断; ( 9 ) c r = o x 6 1 ,选择页l 的寄存器; ( 1 0 ) c u r r = o x 4 d ,c u r r 是r t l 8 0 1 9 a s 写内存的指针,指向当前正在写 的页的下一页,初始化时指和o x 4 c + i = o x 4 d ; ( 11 ) 设置多址寄存器m a r o - m a r 5 ,均设置为o x 0 0 ; ( 1 2 ) 设置 l a c 地址; ( 1 3 ) c r = o x 2 2 ,选择页1 的寄存器,进入正常工作状态。 接下来详细分析r t l 8 0 1 9 a s 的初始化过程。 ( 1 ) 寄存器页的选择 r t l 8 0 1 9 a s 共有四个页面,需初始化的是页0 与页1 的相关寄存器,2 的寄 存器是只读的,不可以设置,页3 的寄存器不与n e 2 0 0 0 兼容的,不用设置。 命令寄存器c r ( c o m l a n dr e g i s t e r ) ,地址偏移量o o h ,为一个字节,c r 寄存器 的相关位用来选择寄存器的页。 ( 2 ) 接收、发送缓冲区的设置 在前面章节中已讲到,r t l s 0 1 9 a s 含有1 6 k 字节的r a m ,地址为o x 4 0 0 0 o x 7 f f f ,每2 5 6 个字节称为一页,共有6 4 页。页的地址就是地址的高8 位, 页地址为o x 4 0 - - o x 7 f 。本系统中使用o x 4 0 - - o x 4 b 为r t l 8 0 1 9 a s 的发送缓冲 区,共1 2 页,刚好可以存储2 个最大的以太网包。使用o x 4 c - - o x 7 f 为 r t l 8 0 1 9 a s 的接收缓冲区,共5 2 页。 下面四个寄存器主要用于接收的设置: p s t a r t :接收缓冲区的起始页的地址。 p s t o p :接收缓冲区的结束页地址( 该页不用于接收) 。 b n r y :指向最后一个已经读取的页( 读指针) 。 c u r r :当前的接收结束页地址( 写指针) 。 因此p s t a r t = o x 4 c 。p s t o p = o x b o ( o x s o 为停止页,就是直到o x 7 f ,是接 收缓冲区,不包括o x 8 0 ) 。刚开始,r t l 8 0 1 9 a s 没有接收到任何数据包,所以, 武汉理工大学硕士学位论文 b n r y 设置为指向第一个接收缓冲区的页o x 4 c 。 c u r r 是r t l 8 0 1 9 a s 写内存的指针。它指向当前正在写的页的下一页,那么 初始化它就应该指向o x 4 c + 1 = o x 4 d 。 而寄存器t p s r 是发送页的起始页地址。初始化为指向第一个发送缓冲区的 页,即o x 4 0 。 ( 3 ) 配置寄存器的设置 r c r 为接收配置寄存器,设置为使用接收缓冲区,仅接收自己的地址的数据 包( 以及广播地址数据包) 和多点播送地址包,小于6 4 字节的包丢弃( 这是协 议的规定,设置成接收是用于网络分析) ,校验错的数据包不接收。 t c r 为发送配置寄存器,启用c r c 自动生成和自动校验,工作在正常模式。 d c r 为数据配置寄存器。设置为使用f i f o 缓存,普通模式,8 位数据传输 模式,字节顺序为高位字节在前,低位字节在后 ( 4 ) m a c 地址设置 r t l 8 0 1 9 a s 需要设置m a c 地址之后才能正常工作,设置m a c 之后,r t l s 0 1 9 就只接收和自己m a c 符合的以太网数据包,或者广播包( d a = f ff ff ff ff ff f ) , 或符合自己设定的组播包。在软件中设定本系统的物理地址,然后写入p a r o p a r 5 这六个地址寄存器中就可以了。 寄存器的页选择通过函数p a g e ( ) 实现: v o i dp a g e ( u c h a rp a g e n u m b e r ) u c h a rd a t at e m p ; t e m p = r e 9 0 0 ; t e m p = t e m l 地o x 3 b : p a g e n u m b e r = p a g e n u m b e r 6 : t e i i u ) = t e m pip a g e n u m b e r : r e g o o = t e m p : ) 初始化程序如下: v o i di n i t _ 8 0 1 9 ( v o i d ) 网卡初始化 r e g o o = o x 2 1 :使芯片处于停止模式,这时进行寄存器设置 停止模式下,将不会发送和接收数据包 d e l a y _ l o r e s ( i ) :延时l o 毫秒。确保芯片进入停止模式 p a g e ( 0 ) : 武汉理工大学硕士学位论文 r e g o a = o x 0 0 : r e g o b = o x 0 0 ; r e g o c = o x e o ;m o l l i t o r 模式 r e g o d = o x e 2 ;l o o pb a c k 模式使芯片处于m o l l 和l o o p b a c k 模式,跟外部 网络断开 r e 9 0 1 = o x 4 c : r e 9 0 2 = o x 8 0 : r e 9 0 3 = o x 4 c : r e 9 0 4 = o x 4 0 : r e 9 0 7 = o x f f ; r e g o f = o x 0 0 : r e g o e = o x c 8 : p a g e ( 1 ) : r e g o t = o x 4 d ; 组撩 使用o x 4 c - - o x 7 f 为网卡的接收缓冲区,共5 2 页。 b n r y 指向最后一个已读取的页 t p s r 发送缓冲区首地址 清除所有中断标志位 关闭所有中断 8 位d m a 方式 c u r r 当前的接收结束页地址。( 写指针) r e 9 0 8 = o x 0 0 ;l l a r o r e 9 0 9 = o x 4 1 ;m a r l r e g o a = o x 0 0 :m a r 2 r e g o b = o x 8 0 :m a r 3 r e g o c = o x 0 0 :m a r 4 r e g o d = o x 0 0 :m a r 5 r e g o e = o x 0 0 ;m a r 6 r e g o f = o x 0 0 ;m a r 7 r e g o o = o x 2 2 :这时让芯片开始工作 w r i t e r t l 8 0 1 9 n o d e i d 0 ;将网卡地址写入到m a r 寄存器 p a g e ( o ) : r e g o c = o x c c ;将网卡设置成正常的模式,跟外部网络连接 r e g o d = o x e o : r e g o o = o x 2 2 :这时让芯片开始工作 r e 9 0 7 = o x f f ;清除所有中断标志位 ) 武汉理工大学硕士学位论文 4 2 2 接受数据过程 在设计中,r t l 8 0 1 9 a s 的接收过程采用查询方式,因为如果采用中断方式, 当有大量以太网帧涌入时,可能会中断溢出。 接收包的过程涉及到的寄存器主要有2 个;c u r r 和b n r y 。c u r r 寄存器指向 新接收到的帧要存放的起始页,作为本地d m a 的写指针;b n r y 寄存器指向还未 读的帧的起始页,作为远程d m a 的读指针。当c u r r 寄存器追上b n r y 寄存器,表 示接收缓冲环己满,后续接收到的帧将被丢弃;当b n r y 寄存器追上c u r r 寄存器, 表示接收缓冲区己空。 接收帧时,网卡将网络上的数据帧接收,通过本地d m a 通道将接收到的数据 帧缓存于接收缓冲区中,再通过远程d m a 通道由单片机将接收缓冲区的数据帧由 数据总线读入存储单元以被程序使用。在接收帧时,本地d m a 通道将接收到的帧 从c u r r 寄存器加4 的位置开始存放。当接收到的帧完全存入接收缓冲区后,在 先前空出的4 个字节空问中,依次存入帧接收状态信息( 1 b y t e ) ,下一帧的页地 址指针( 1 b y t e ) ,该帧的帧长度( 2 b y t e ) 。所以,接收程序在读入帧时,先预读 4 个字节的数据,取得该数据帧长度后,就可把完整的帧读入。 c r 寄存器中的r d 2 ,r d l ,r d o 这3 个位组合起来设定d m a 的有关操作。 = 0 0 1 :启动远程读操作 = 0 1 0 :启动远程写操作 = 0 1 1 :发送网卡数据包 = l 料:终止或结束d m a 的读写操作 r t l 8 0 1 9 a s 的接受数据流程图见图4 - 1 。 武汉理工大学硕士学位论文 i设置p , b c r 、i l s a i l 寄存器 j l启动d 姒读 i i i得到该帧 l 4 2 3 发送数据过程 图4 - 1 接受数据流程图 发送数据过程指发送方将待发送的数据按帧格式要求封装成帧,再通过处理 茎堡里三查兰堡主堂鱼丝苎 器的u o 通道和网卡的远程d m a 通道将数据写入本地发送缓冲,然后将帧发送到 网络的传输线上,由接收方接收。 将目的m a c 地址( 6 b y t e ) 、源m a c 地址( 6 b y t e ) 、类型数据长度字段( 2 b y t e ) 、 待发送的数据依次装配成为一帧数据。但要注意帧封装时的长度要求。其中数据 可以包含4 6 - 1 5 0 0 字节的数据,少于4 6 字节时,需要填充一些无用数据;超过 1 5 0 0 字节时,需要拆成多个帧传送。 首先进行远程d m a 写操作,要初始化有关的寄存器。r s a r o 和r s a r l 寄存器 用来指定远程d m a 写操作时数据存放的缓冲区首地址。远程字节计数寄存器 r b c r o 和r b c r l 用来指明本次远程9 m a 操作时传输数据的字节数。 当远程d m a 写操作完成后,网卡将中断状态寄存器i s r 中的r d c 位置0 ,通 过此标志位的状态可判别远程d m a 写操作是否结束。 在发送前,也要初始化有关的寄存器。发送寄存器t p s r 用来指定待发送帧 的起始地址。发送配置寄存器t c r 用来确定网卡在发送帧时的方式,如是否在发 送的帧后添加c r c 校验码等。传输字节计数寄存器t b c r o 和t b c r l 用来指明待发 送帧的长度。帧长度以字节数表示,是目的地址、源地址、类型数据长度字段 和数据域的长度之和。 同接收过程一样,通过设置c r 寄存器中的r d 2 、r d l :r d o 这3 个位来启动 远程写操作和发送数据帧的操作。发送完毕后,测试发送状态寄存器t s r 中的各 标志位来检验是否数据帧己无错发送完成。发送流程如图4 2 所示。 武汉理工大学硕士学位论文 图4 - 2 发送数据流程图 4 3t o p i p 协议栈的实现 嵌入式w e b 服务器开发与在普通p c 机上开发w e b 服务器有很大的不同。 嵌入式系统的资源非常有限,本课题中所选用的w 7 8 e 5 8 b 单片机的程序存储空间 只有3 2 k 字节,外扩数据存储空间也只有3 2 k 字节,而无论是t c p 、i p ,还是h t t p , 每个协议都是庞大的,嵌入式设备不具有处理某个完整协议栈的存储资源,所以 必须对上述协议进行仔细地评估,确定协议中哪些部分是必须的,哪些部分又是 可省的,对不同的协议采用不同的处理方法,即完成一个功能完善的精简协议栈 的设计。这要求实现协议时应从具体需求着眼,而不是以实现完整的协议为主要 目的。在协议栈设计中,充分考虑如下原则: ( 1 ) 尊重协议分层体系结构、明确层间接口; ( 2 ) 协议内容精简; ( 3 ) 保证系统可靠性与安全性。 下面针对每一层具体协议详细分析本系统嵌入式w e b 服务器需要实现的协 议。 墨堡墨三查兰堡主兰竺堡塞 ( 1 ) 链路层协议 链路层的主要作用是为其上层协议发送和接收数据包,根据物理层采用的标 准不同,链路层有多种协议可以选择。其中主要有以太网、令牌环网、f d d i ( 光 纤分布式数据接口) 及r s 2 3 2 串行线路协议等。嵌入式i n t e r n e t 在实现链路层协 议的时候,首先应该根据接入i n t e r n e t 的所采用的方法来选择合适的协议。本 系统采用以太网接入i n t e r n e t 的方式。那么就应该遵循以太网协议要求。 另外,以太网上数据的传输是采用网络的m a c 地址来进行识别的,这就要求 系统有实现i p 地址到m a c 地址的转换功能,即a r p 协议( 地址解析协议) a r p 协议可以细分为a r p 请求协议和a r p 应答协议两种。其他计算机要同系统进行主 动通信,系统就必须要实现a r p 应答协议。a r p 请求协议在本地建立了一个i p 地址到m a c 地址的映射,保证了系统对外通信的有的放矢。 r a r p 协议( 逆地址解析协议) 实现了如何从m a c 地址得到i p 地址,它主要用 于无盘工作站中。嵌入式i n t e r n e t 中可以把i p 地址存储于本地存储器中,从而 无需从其他服务器得到i p 地址,这样就不要求实现r a r p 协议。 ( 2 ) 网络层协议 网络层主要负责处理数据报在网络中的活动。在t c p 1 p 协议族中,网络层 协议包括i p 协议、i c 咿协议以及1 6 m p 协议等。 i p 协议是t c p i p 族的核心协议,它使异构网络之间的通信成为可能。因此, 如果嵌入式i n t e r n e t 需要跨越不同的网络进行通信就必须要实现i p 协议。 i c m p 协议主要用来传递差错报文以及其它需要注意的信息通常使用的应 用程序p i n g 就是采用i c m p 协议来测试网络的连通情况,这种测试对一个网络设 备来说是非常重要的。i c m p 协议中规定了多种协议类型和代码,如果完全的实 现也要耗费不少的系统资源,对于普通的嵌入式i n t e r n e t 的应用而言,在i c m p 协议中能够测试网络的连通情况即可,因此在本系统中只需实现i c m p 中类型号 为0 、代码为0 的p i n g 应答协议即可。 网络层另外一个重要的协议是i g m p 协议,它主要用于支持主机和路由器进 行组播,i g m p 能够让一个物理网络上的所有系统知道主机当前所在的多播组, 多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。嵌入式 i n t e r n e t 作为一种专用系统接入i n t e r n e t 的技术,很少需要也不必要采用组播 的方式进行通信。因此在本系统不考虑实现i g m p 协议。 ( 3 ) 传输层协议 传输层主要为两台主机上的应用程序提供端到端的通信。在t c p i p 协议族 中,有两个互不相同的传输协议:t c p 协议和u d p 协议。t c p 协议为两台主机提 供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的 茎望堡三查兰堡主堂垒堡苎 小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟 等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些 细节。 而 j d p 协议则为应用层提供一种非常简单的服务。它只是把称作数据报的分 组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需 的可靠性必须由应用层来提供。这两种传输层协议分别在不同的应用程序中有不 同的用途,由于本系统要求对远程设备进行控制和监测,为了提高系统的可靠性, 将选择t c p 协议。 ( 4 ) 应用层协议 应用层协议是t c p i p 协议族中最大的一个子集,其种类非常繁多。最常用 的有t e l n e t 远程登录协议、f t p 文件传输协议、s m t p 简单邮件传送协议、s n m p 简单网络管理协议、h t t p 超文本传输协议等。不同嵌入式系统对嵌入式 i n t e r n e t 所采用的应用层协议的要求都不同,例如系统如果要求采用e m a i l 来 发送自己的信息,那么就需要针对s m t p 协议来实现,如果系统要求可以通过浏 览器的方式来访问,那么系统就应该实现w e b 服务器的相应协议。 另外,应用层的协议也必须和运输层所实现的协议相配套。如果传输层只实 现了u d p 协议,没有实现t c p 协议,那么在应用层就无法实现与t c p 有关的 协议种类。例如h t r p 、f t p 、s m t p 等。应用层的协议缤纷复杂,系统必须根据 自己的需要和传输层的协议实现来选择这些协议“删。 本系统需要提供舯服务,实现基于标准浏览器对被控设备的远程控制和 监测,因此应用层协议将选择h t t p 协议,负责w e b 页面的请求和应答。 4 3 。1 以太网协议的实现 以太网的物理传输帧格式如下所示: p rs dd as a t y p ed a t a f c s 5 6 位8 位4 8 位4 8 位1 6 位 1 5 0 0 b y t e3 2 位 p r :同步位,用于收发双方的时钟同步,同时也指明了传输的速率( i o m 和 l o o m 的时钟频率不一样,所以1 0 0 网卡可以兼容i o m 网卡) ,是7 个字节先导 字段开头,每字节的内容为1 0 1 0 1 0 1 0 。该字段的曼彻斯特编码会产生i o m h z ,持 续5 6 弘s 的方波,从而使接收方与发送方的时钟同步。 s d :分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8 位的 1 0 1 0 1 0 1 l ,跟同步位不同的是最后2 位是1 l 而不是l o 。 d a :目的地址,以太网的地址为4 8 位( 6 个字节) 二进制地址,表明该帧传 墨坚堡三查兰堡主兰垡丝苎 输给哪个网卡如果为f f f f f f f f f f f f ,则是广播地址,广播地址的数据可以被任 何网卡接收到。目的地址的最高位为“0 ”是普通的地址,为“1 ”时是组地址, 组地址允许多个站点使用同一地址。当把一帧送到组地址时,组内所有的站点都 会收到该帧,可以称之为多点播送( m u l t i c a s t ) 。 s a :源地址,4 8 位,表明该帧的数据是哪个网卡发的,即发送端的网卡地 址,同样是6 个字节。 t y p e :类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字 段不同。如:0 8 0 0 h 表示数据为i p 包,0 8 0 6 h 表示数据为a r p 包,8 1 4 c h 是s n m p 包,8 1 3 7 h 为i p x s p x 包,( 小于0 6 0 0 h 的值是用于i e e e 8 0 2 的,表示数据包的 长度。) d a t a :数据段,该段数据不能超过1 5 0 0 字节。因为以太网规定整个传输包 的最大长度不能超过1 5 1 4 字节( 1 4 字节为d a ,s a ,t y p e ) 。 p a d :填充位,由于以太网帧传输的数据包最小不能小于6 4 字节,除去d a ,s a , t y p e ,f c s 共1 8 个字节外,还必须传输4 6 字节的数据,当数据段的数据不足4 6 字节时,后面补0 0 0 0 0 0 ( 当然也可以补其它值) 。 f c s :3 2 位数据校验位,为3 2 位的c r c 校验,该校验由网卡自动计算,自 动生成,自动校验,自动在数据段后面填入。对于数据的校验算法,没有必要了 解。 事实上。p r ,s d ,p a d ,f c s 这几个数据段我们不用处理它,它是由网卡自动 产生的,我们要处理的是d a ,s a ,t y p e ,d a t a 四个段的内容。 所有数据位的传输由低位开始( 但传输的位流是用曼彻斯特编码的) d a + s a + t y p e + d a t a + p a d + f c s 最小为6 4 字节,最大为1 5 1 8 字节。 以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址( 我 们用不上) ,一个是它自己的地址。但网卡也可以设置为接收任何数据包( 用于网 络分析和监控) 。任何两个网卡的物理地址都是不一样的,是世界上唯一的。网 卡地址由专门机构分配。不同厂家使用不同地址段,同一厂家的任何两个网卡的 地址也是唯一的。根据网卡的地址段( 网卡地址的前三个字节) ,可以知道网卡的 生产厂家。有些网卡的地址也可以由用户去设定,但一般不需要。 对以太网控制器进行读写的是以太网帧,一个以太网帧由帧头部和数据部 分组成,其具体的结构我们已经作了介绍。根据以太网帧的结构定义了以太网帧 头部结构: t y p e d e fs t r u c t u c h a rd e s th w a d d r 6 : 墨堡墨三查兰堡主兰垡堡苎 u c h a rs o u r c e _ h w a d d r 6 : u i n t f r a m e t y p e : je t hh e a d e r ; 就是通过这个结构体将用于数据帧的收发控制过程的相关函数联系起来 了。在此特别声明,在后面的协议实现中将定义很多类似的结构体类型,不再详 细列出其成员表列,只是说明其功用。 单片机采用轮询方式查看寄存器标志以获取有无数据要接收或发送,由函数 q u e r y _ 8 0 1 9 ( ) 完成。 ( 1 ) 数据帧的接收 。 数据帧的接收过程分为两步:第一步由本地d m a 将帧存入接收缓冲环中; 第二步由远程d m a 将接收缓冲环中的帧读入内存。帧的接收工作由r t l s 0 1 9 a s 自动完成,只需对相关的寄存器p s t a r t 、p s t o p 、c u r r 和b n r y 进行适当的初 始化即可。网络上的数据帧接收并缓存在r t l 8 0 1 9 a s 的接收缓冲环中。帧读入 较接收要复杂一些。当查看寄存器获知有新的数据包在缓冲环中时,首先调用函 数r c v ef r a m e ( ) ,初始化相应的寄存器r s a r 、r b c r ,启动远程d m a 读操作和 主机程序的读端口操作,将缓存在缓冲环中的数据帧读走并存入内存中;接下来 调用函数e t h 二r c v e0 ,分析f r a m e _ t y p e ;然后根据帧的类别,调用相应的网络 协议处理函数。 ( 2 ) 数据帧的发送 首先调用函数e t hs e n d ( ) 将待发送的数据按帧格式封装( 需要设置以太网 目的地址、以太网源地址、帧类型) ;之后由函数s e n d _ f r a m e ( ) 启动远程d m a , 通过远程d m a 通道将数据帧送到网卡的发送缓冲区;最后网卡自动启动本地 d m a ,将数据发送到网上。 4 3 2a r p 协议的实现 在以太网中数据帧的传播是靠对m a c 地址的识别来完成的,但很多时候,我 们只知道i p 地址,因为在网络中,特别是在i n t e r n e t 中,必须要靠i p 地址来 进行路由识别。但是数据包传输到最后局域网中时,就必须依靠m a c 地址来对各 个站点进行识别,所以必须实现i p 地址与m a c 地址的对应。a r p ( a d d r e s s r e s o l u t i o np r o t o c 0 1 ) 协议就可以实现从i p 地址到m a c 地址的对应。在t c p i p 协议中,当有一个数据包( i p 包或a r p 包) 要进行发送时,首先到a r p 地址缓存 中,查询其对应的m a c 地址,然后生成以太网帧发送出去。a r p 缓存区结构: t y p e d e fs t r u c t 苎堡垩三奎兰堡主兰壁丝苎 u l o n gi p a d d r : u c h a rh w a d d r 6 : u c i a rt i m e r ; a r pc a c h e ; 从功能上讲,a r p 可以分为两部分:第一部分在发送分组时把i p 地址映射 到物理地址上,第二部分是回答其它机器的a r p 请求。 一个a r p 报文格式如下所示: 22112646 4 a r p 的响应协议比较简单,在收到a r p 请求后可按图4 - 3 所示的流程来完成。 首先检查数据包中目的i p 是否和本机相同。如果不相同,则直接返回。若相同, 接下来判断数据包中的操作码o p :当o p = o 0 0 2 h 时,系统知道此数据包为其他 系统发来的应答包,系统将直接发送i p 数据包否则当o p = o 0 0 1 h 时,系统知 道此数据包为其他系统发来的a r p 请求,将执行以下步骤:将操作码o p 置为 0 0 0 2 h :用以太网源地址替换以太网目的地址和目的以太网地址;交换发送端i p 地址和目的i p 地址;用系统的物理地址填充以太网的源地址和发送端以太网地 址;然后将缓冲区数据包发送到网络上。a r p 响应协议流程图见图4 3 。 武汉理工大学硕士学位论文 图4 - 3a r p 响应协议的实现 在上层协议需要对外进行通信的时候,系统会首先在本地的i p h i a c 的映射 表中来寻找通信目的i p 所对应m a c 地址,如果没有找到,则调用a r p 请求协

温馨提示

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

评论

0/150

提交评论