(计算机科学与技术专业论文)以太网二层交换机驱动和协议的实现.pdf_第1页
(计算机科学与技术专业论文)以太网二层交换机驱动和协议的实现.pdf_第2页
(计算机科学与技术专业论文)以太网二层交换机驱动和协议的实现.pdf_第3页
(计算机科学与技术专业论文)以太网二层交换机驱动和协议的实现.pdf_第4页
(计算机科学与技术专业论文)以太网二层交换机驱动和协议的实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机科学与技术专业论文)以太网二层交换机驱动和协议的实现.pdf.pdf 免费下载

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

文档简介

独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所 知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰 写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢 意。 申请学位论文与资料若有不实之处, 本人签名:j 强谁# 一 本人承担一切相关责任。 日期:趔:2 :丝 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有 关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学 位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论 文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位 本人签名: 导师签名: 适用本授权书。 日期:迎2 :l 趾 日期:趁盆盟一 3 以太网二层交换机驱动和协议的实现 摘要 交换机是当今以太网中普遍而又十分重要的设备,通过交换机之 间的组合,可以形成大规模、高性能的网络拓扑。现在的以太网交换 机不仅用于局域网的互联,网络的接入,还运用在了骨干网中。 本文总结了本人在研究生课题阶段所做的研发工作,重点论述了 以下内容:基于北京万林克公司研制的一款二层交换机,设计并实现 了芯片的驱动程序,并且在交换机上实现了生成树协议和通用v l a n 注册协议,交换机已成功地用于产品并投放市场。 驱动程序的框架采用分层式的设计,将一个完整的驱动程序拆分 为了五层,每一层都通过向上层提供的标准服务接口函数的方式来使 得每个层次能够按照需求进行调换,而不用大规模修改其它层次的程 序;另外,文章介绍了几个子模块的具体实现,给出了详细的实现方 法。协议模块的实现借鉴了开源的生成树协议代码和通用v l a n 注册 协议的代码,并按照芯片和硬件环境的要求完成了在芯片上的具体实 现,另外对原有的协议做了相应的优化和改进。 关键字交换机驱动程序分层设计协议实现 t h ei m p l e m e n l 隋t i o no f l a y e r2e t h e r n e ts w i t c h d l u v e ra n dp r o t o c o l a b s t r a c t s w i t c hi sas o r to fn o r m a l ,b u tv e r yi m p o r t a n te q u i p m e n ti nt h er e a l w o r l d n e t w o r k i n gt o p o l o g yw i t hl a r g ed i m e n s i o na n dh i g hp e r f o r m a n c e c o u l db es e tu pt h r o u g ht h ec o m b i n a t i o no fs w i t c h e s n o w a d a y s ,e t h e r n e t s w i t c h e sa r en o to n l yu s e df o rl a n si n t e r a c t i o na n dn e t w o r ka c c e s s i n g , b u ta l s ob a c k b o n e s t h i st h e s i ss u m m a r i z e st h ed e v e l o p m e n tw o r ka t t h ep e r i o do f r e a d i n gf o rm a s t e rd e g r e ea n dd i s c u s s e st h ec o n t e n t sa sf o l l o w s t h r o u g h t h er e s e a r c ho fs w i t c hc h i pt h a ti su s e di nt h el a y e r2e t h e r n e ts w i t c h d e v e l o p e db yb e i j i n gv a n l i n k c o t h ea r c h i t e c t u r eo ft h ed r i v e rh a s b e e nd e s i g n e da n dr e a l i z e d s p a n n i n gt r e ep r o t o c o la n dg e n e r a l a n r e g i s t r a t i o np r o t o c o lh a v eb e e ni m p l e m e n t e d t h e s w i t c hi sl a u n c h e d s u c c e s s f u l l y l a y e r e dd e s i g ni su s e df o rt h ea r c h i t e c t u r eo f t h ed r i v e r t h ew h o l e d r i v e r p r o g r a mi s d i v i d e di n t of 沁el a y e r s ,e a c ho fw h i c hp r o v i d e s s e l f - d e f i n e ds t a n d a r ds e r v i c ef u n c t i o n sf o r t h eu p p e rl a y e r w h e nt h e d r i v e ri st r a n s f e r r e df r o mo n eh a r dp l a t f o r mt ot h eo t h e r s ,t h el a y e r s 5 c o m p l e t e l yd e p e n d e n to nt h eh a r d w a r em u s tb em e n d e d ,b u tt h eo t h e r s s t a yl i t t l ec h a n g e d b e s i d e s ,il i s t e dt h es p e c i f i ci m p l e m e n t a t i o no f s e v e r a l s u b m o d u l e s t h et w op r o t o c o lm o d u l e sw e r er e a l i z e db ys o m eo p e n i n g c o d e so ft h er f c t h e yw e r er e a l i z e db a s e do nt h es w i t c hc h i p f i n a l l y , t h ei m p r o v e m e n to ft h e mw a sm e n t i o n e d k e yw o r d s :s w i t c h d r i v e r l a y e r e dd e s i g n p r o t o c o l 6 第一章绪论 1 1以太网及以太网交换机简介 以太网是当今现有局域网采用的最通用的通信协议标准。以太网使用同轴电 缆作为网络媒体,数据传输速率达到l o 1 0 0 1 0 0 0 m b p s 。以太网由x e r o x 公司创 建并由x e r o x ,i n t e l 和d e c 公司联合开发。 以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数 据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据 确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。以太网采 用c s m a c d 媒体访问机制,任何工作站都可以在任何时间访问网络。在发送数 据之前,工作站首先需要侦听网络是否空闲,如果网络上没有任何数据传送,工 作站就会把所要发送的信息投放到网络当中。否则,工作站只能等待网络下一次 出现空闲的时候再进行数据的发送。 以太网交换机的工作原理比较简单。交换机是根据数据帧中封装的目的地 m a c 地址做出转发数据的决定的。交换机在转发数据前必须知道它的每一个端 口所连接的主机的m a c 地址,构建出一个m a c 地址表,以便做出正确的转发 决定。当交换机从某个端口收到数据帧后,读取数据帧中封装的目的地m a c 地 址信息,然后查阅事先构建的m a c 地址表,找出和目的地址相对应的端口,从 该接口把数据转发出去,其他接口不受影响。交换机在地址表中找不到目的地址 和端口的相对应记录时,则会把数据向除了数据来源端口外的其他所有端口转 发,所以广播数据会被交换机转发到其所有端口,使得和交换机相连的设备处于 同一个广播域内。 交换式以太网和传统的以太网相比,存在很大的优点如下: 扩展传统以太网的带宽,每个以太网交换机的端口对用户提供专用的 l o l o o m b 带宽。 提高网络的安全性,因为交换机只对和数据包的目的地地址相联系的端 口送出单点传送的数据包,其它地址的用户接收不到。 加快网络响应时间,在以太网交换机端口上,可以由少数几个用户共享 同一个带宽,也可以只有一个用户独占带宽。这样可以明显地加快网络 的响应速度。这是减少甚至消除了在网络上发生数据包碰撞的直接结果。 随着交换网络规模的不断扩大,带来了一系列问题。因为交换机无法隔离广 播域,对广播帧的处理方式是向各端口转发。网络规模越大,广播帧增加,广播 9 范围变大,造成网络带宽的极大消耗,时延增长,严重时产生“广播风暴”,全 网阻塞,甚至瘫痪。解决方法之一是构造较小的交换网,限制广播范围。为了有 效地提升交换网络的性能,扩展其规模,v l a n 技术应运而生,所谓v l a n 是 指网络中的站点不拘泥于所处的物理位置,而可以根据需要灵活地加入不同的逻 辑子网中的一种网络技术。v l a n 可以根据网络用户的位置、作用、部门或者根 据网络用户所使用的应用程序和协议来进行分组,处于不同v l a n 的终端相互 之间不能直接通信。 1 2论文内容及成果 本文论述了本人在北京万林克公司的v a n l i n ks w 2 5 5 0 二层交换机硬件设计 基础上的驱动程序的设计和开发以及协议的实现工作。驱动程序主体包括:寄存 器的访问模块,硬件操作适配层,功能化运算模块,命令模块等。另外有两个协 议模块:生成树协议( s 口) 协议模块和通用v l a n 注册协议( g v r p ) 协议模 块。 本文首先在第一章介绍了整个项目的硬件和软件系统结构,其中包括了交换 芯片的介绍和驱动程序模块中的框架层次设计,详细说明它们的设计思想,以及 各层次之间的关系;在此基础上,在第三章给出了交换芯片的驱动设计方案,并 详细说明了其中v l a n 管理子模块,质量管理( q o s ) 子模块等子模快的实现 过程。随后,在第四章介绍了生成树协议( s t p ) 和通用v l a n 注册协议( g v r p ) 的具体实现方式,并针对其中存在的问题提出了讨论及解决方案。最后的一章给 出了整个项目的测试方案和结果,具体而言有以下几点: 1 以b r o a d c o m 公司的b c m 5 3 2 4 和b c m 5 4 2 1 交换芯片为硬件基础,参考 其芯片说明手册对软件驱动程序进行了模块化的层次结构设计,对各软件模块的 关系结构做出了设计和实现,并对系统结构作出了详细阐述。 2 在v a n l i n ks w 2 5 5 0 二层交换机上实现了基于端口的v l a n 管理,基于 8 0 2 1 p ,d i f f s e r v 和i p t o s 的q o s ,还有速率控制,端口镜像,端口捆绑,以 及风暴抑制等功能,并将所有这些操作具体对应到b r o a d c o m 5 3 2 4 芯片的相应硬 件表的操作上去。 3 在v a n l i n ks w 2 5 5 0 二层交换机上基于b r o a d c o m 5 3 2 4 芯片的相应硬件设置 编码实现了s t p 协议,给出了具体的实现方法,并对s t p 协议中存在的问题, 如对多v l a n 的支持问题,做了分析并给出了相应解决方案。 4 在v a n l i n ks w 2 5 5 0 二层交换机上基于b r o a d c o m 5 3 2 4 芯片的相应硬件设 置编码实现了g v r p 协议,给出了具体的实现方法,并对g v r p 实现中的几个 关键问题:状态机问题和定时器问题,做了分析并给出了相应解决方案。 1 0 2 1 交换芯片简介 第二章系统结构 本小节主要介绍万林克公司的s w 2 5 5 0 交换机上的交换芯片b r o a d c o m 5 3 2 4 。 b c m 5 3 2 4 为b r o a d c o m 公司推出的一款单片2 4 端口快速以太网( f e ) 交换芯片。 该产品为业界首款集成了2 4 端1 2 1f e 物理层( p r r o 收发器和2 端1 2 1 千兆位以太网 媒体接入控制器的交换芯片,适用于中小型业务( s m b ) 网络应用。 b c m 5 3 2 4 是一款集成了2 4 个快速以太网m a c 和p h y ,以及4 m b i t 片上存 储( 包括各种表和数据包缓存) 的交换芯片。这样的集成度可以降低系统的成本, 提高系统的可靠性。b c m 5 3 2 4 芯片虽然是二层以太网交换芯片,但是它在设计 时就充分考虑了多业务融合应用,因此,比一般的带管理功能的交换芯片支持更 多的功能。比如i g m ps n o o p i n g 就不是二层功能,但可以利用它将三层组播影射 到二层上,它不仅其有完整的二层功能,还具有某些增强的功能,对多业务应用 做了一定的优化。其具有二层线速交换能力。采用了无缓存交换矩阵加交换控制 芯片的结构,最高支持8 8 g b p s ( 全x 2f ) 的数据速率。b c m 5 3 2 4 m 中的交换矩阵 采用无缓存方式,实现了无阻塞交换,即每个端口都为其他每个端口维护一个输 出f i f o ,多个源端口的数据包如果要发往同一个目标端口,则先存入目标端口 的对应f i f o 中,再经过发送控制单元调度从该端口发出,可以解决线头阻塞的 问题。 b r o a d c o m 5 3 2 4 芯片支持的功能列出如下: 2 4 x 快速以太网端口,2 x 千兆以太网,1 0 0 兆m a c 上连 m d c m d i o 和s p i 接口 基于8 0 2 1 p ,t o s ,d i f f s e r v ( 1 p 、r 钔【p v 6 ) 的q o s 分类( 4 个优先级队列) 支持8 0 2 1 0 v l a n ( 最大可存在4 0 9 4 个a n ) 支持生成树协议 支持8 0 2 i xe a p o l 协议 基于m a c 的端口捆绑( 3 个捆绑组) 支持基于端口的广播风暴抑制 支持基于端口的入i :1 出口速率控制 支持安全端口和保护端口 8 k m a c 地址表,自动学习,自动老化 基于端口的全双工流量控制和半双工背压机制 支持2 5 6 条组播地址 i g m p 窃听 所有端口统计数值 2 2 硬件系统结构 在v a n l i n ks w 2 5 5 0 交换机中,b r o a d c o m5 3 2 4 以m o t o r o l ap o w e r p c8 5 2 t 作 为处理器( 也可以m o t o r o l ap o w e r p c8 8 5 作为处理器,m o t o r o l ap o w e r p c8 8 5 为 v a n l i n kr t 2 8 0 0 采用,因相似,本文仅介绍m o t o r o l ap o w e r p c8 5 2 t 为处理器情 况) ,采用s p i 总线和m d c m d i o 作为芯片控制接口,m o t o r o l ap o w e r p c8 5 2 t 的f e c 以太网控制器和b m a d c o m5 3 2 4 的i m p ( i n d e p e n d e n tm a n a g e m e n tp o r t ) 背 对背连接,作为数据包收发接口。b c m 5 3 2 4 通过s p i 方式或者m d c m d i o 方 式与c p u 相连实现c p u 对b c m 5 3 2 4 的配置管理,。另外,因为b r o a d c o m5 3 2 4 集成了2 4 个i o i o o mp h y ,所以只需通过g m i i 再连接两片b r o a d c o m5 4 2 1 作 为千兆p h y 。 c p u 管理模块以m p c 8 5 2 t 通信处理器为核心,其上运行着嵌入式实时操作 系统,负责整个交换机系统的配置和管理。管理模块通过m i i 接口与交换模块连 接,进行数据的交换,通过s p i 接口完成对交换模块配置。百兆交换模块提供 2 4 口i o i o o m 以太网接口。千兆交换模块提供2 个1 0 1 0 0 1 0 0 0 m 以太网接口。 b c m 5 3 2 4 m 提供的2 个g m i i 接口连接b m a d c o m 公司的单端口千兆芯片 b c m 5 4 2 1 s 。 b c m5 3 2 4 硬件的大体结构图如下图2 - 1 所示: 1 2 v a n l i n ks w 2 5 5 0 主板 ( m p c8 5 2 t ) f e c 彳奢 砬茎 群蔷 一乱 毫 l m p p o r t b c 【5 3 2 4 冀 堪 b c m 5 4 2 1 2 3 软件系统结构 图2 - 1b c m5 3 2 4 硬件结构图 2 3 1 交换机系统的软件结构体系 v a n l i n ks w 2 5 5 0 二层交换机软件架构在嵌入式实时操作系统r m o s 上 ( r m o s 是北京万林克公司自行研发的嵌入式操作系统,可提供进程、线程、信 箱、信号量、事件和时钟等多种资源的管理) 。软件系统采用了模块化、分布式 的设计方法,基于实时多任务操作系统。软件系统的结构呈层次结构,一层建立 在另一层的基础上,每一层都使用近邻它的下一层所提供的服务,并且为它上面 一层提供更高一级的服务,其优点是: 可以向上层软件屏蔽底层操作,为上层软件提供更抽象的硬件视图 提高上层软件的可移植性 提高软件的可维护性 交换机的软件系统层次结构如图2 2 所示: 图2 2 交换机的软件系统层次结构 软件系统层次最底层的是驱动模块,包括l 2 s wd r i v e r 模块和e t h d r i v e r 模块。l 2 s wd r i v e r 模块负责交换芯片的驱动,实现了交换芯片从底 层硬件接口,到驱动程序提供的各种子模块和a p i 函数。e t hd r i v e r 模块负 责c p u 的驱动,并负责接受数据包或发送数据包。l 2 s wd r i v e r 模块并不能 对进入交换机的数据包进行收发,所以l 2 s w 模块和e t h 模块之间将通过消息 机制进行交互,从而协同工作。 在此之上是协议模块,包括s t p 模块和g v r p 模块。这两个模块分别负责 管理自己协议底层的状态机和定时器。同时,它们都与l 2 s w 和e t h 有交互, 这也是通过发送消息的机制实现的。在交换机接受到数据包的时候,首先e t h 收到数据包,之后e t h 将发送消息告诉相应的协议模块去更改自己的底层协议 状态,然后在需要更改交换机的状态时,协议模块又将以消息的形式通知l 2 s w 驱动模块去修改硬件底层的硬件状态。在协议需要发送协议数据包的时候,协议 模块将通知e t h 驱动模块去发送数据包。 最上层的是m m l 人机交互模块,它将与所有模块进行交互。它提供给用户 一个配置的界面,一旦配置发生或改变,都将调用一套操作系统提供的命令解析 程序去修改相应需要更改的下层模块的状态。 本人参与设计并实现了l 2 s wd r i v e r 模块,s t p 模块和g v r p 模块。本 文也将主要围绕这些模块的实现进行阐述。 1 4 2 3 2 驱动程序层次结构设计 考虑到尽可能的让驱动程序可以适应各种不同的硬件平台,而不用在硬件平 台更换时去重新设计驱动程序。驱动程序将采用分层式的设计,这样,可以向用 户提供一致的操作方式,并可以将开发中重复的部分统一起来,加快开发的速度, 以及对未来硬件也可复用驱动程序的某些模块,提高了软件的复用程度。 驱动程序设计的结构图如图2 3 所示: 5命令处理协议接口 乡3 弓 一 4 操作解释 弋,7 3 硬件操作统a p i 函数 弋、夕 弋夕 交换芯片寄存器信息p h y 芯片寄存器信息 2 及操作及操作 逞弓 一 l 硬件操作接口( 可多个 图2 - 3 驱动程序结构图 驱 动 模 型 模 块 硬 件 接 口 模 块 第一层:访问交换芯片寄存器,或者p h y 寄存器芯片所采用的接口规 范,本文中采用的标准接口有p c i ,s p i 和m d c m d i o 。 第二层:交换芯片寄存器和p h y 芯片寄存器的信息、结构,主要包括 寄存器名,它的地址,所包含的位信息等;并且提供统一的寄存器读写 a p i 函数。 第三层:将芯片的寄存器分类成多个子模块,如:v l a n ,t r u n k , q o s ,p o r t ,r a t ec o n t r o l ,s t o r mc o n t r o l ,p r o t o c o l 等。 每个子模块向上层提供统一的a p i 函数,来实现指定的功能。如果芯片 不支持某个或多个功能,只需将相应的a p i 函数设计成不做任何操作的 空函数。 第四层:该层将上层发送下来的命令,分解为一个或多个操作原子,并 调用下层的统一a p i 函数,来完成操作。 第五层:包含两个模块,一个是m m i ( m a nm a c h i n ei n t e r f a c e ) 模块向 用户提供配置命令,它对用户输入的命令进行判断,再执行操作,如果 操作失败将通知用户。另一个是向协议提供操作接口,外部协议模块可 采用消息的方式,对硬件进行相应的配置,主要支持的协议为二层协议, 包括生成树协议,g v r p 等。 本文将第一层到第三层命名为硬件接口模块,该模块依赖于底层的硬件。第 四层和第五层为驱动模型模块,有很好的复用性,尤其是第四层。 1 6 第三章驱动程序的实现 以上已经介绍了驱动程序框架的设计思想,下面将介绍驱动程序的具体实 现,本章将详细介绍选取的驱动程序中重要的几个例子:硬件操作接口,v l a n 子模块,q o s 子模块,速率控制子模块,端口镜像子模块等子模块,包括他们的 具体实现方法,以及他们提供的各自的服务访问标准接口。 3 1 硬件操作接口的实现 3 1 1s p i 总线的实现 串行外围设备接口s p i 总线技术是m o t o r o l a 公司推出的一种同步串行接口。 m o t o r o l a 公司生产的绝大多数m c u ( 微控制器) 都配有s p i 硬件接口。s p i 总 线是一种三线同步总线,因其硬件功能很强,所以,与s p i 有关的软件就相当简 单,使c p u 有更多的时间处理其他事务。 s p i 总共包含四根信号线:串行时钟信号( s c k ) ,片选信号( s s c s ) ,主 导入从属出数据信号( m i s o ) ,和主导出从属入数据信号( m o s i ) 。 s p l 分为主从结构,一个系统中,可以存在多个主导s p i ,也可以并存多个 从属s p i 。主导s p i 可以通过片选信号,来决定与那个从属s p i 接口通信;主导 s p i 也可以通过片选信号,发现冲突的主导s p i 操作。本文只介绍单主导s p i 和 单从属s p i 相互通信的实现,其结构如图3 1 所示: 1 7 口c8 5 2 tb c m5 3 2 4 图3 - 1s p i 总线结构图 由于b c m5 3 2 4 的s p i 时钟频率最高位2 k h z ,所以m p c8 5 2 t 的s p i 时钟 也要设置为相应的频率,不超过b c m5 3 2 4 ;调整时钟和数据的相位,并设置s p i 参数区的重新映射;在每次读写操作时,将片选信号下拉,使能从属s p i 设备读 写操作,即可使s p i 正常的读写数据。 为了使c p u 能够正常的和交换芯片进行交互,它们之间的消息格式被定义 如下图所示: o1m o d e = 0c h i p i d2c h i p i d lc h i p l 0 0r e a d n r i t e (usa)(lsb)(o1) 图3 - 2s p i 命令字节 c p u 对b c m 5 3 2 4 的读操作格式是 ;写操 作的格式是 。 3 。1 2m d c j f m d i o 的实现 m d c m d i o 一般用于访问p h y 芯片,但是某些非p h y 芯片的内部寄存器, 也可以通过m d c m d i o 访问,如b c m5 3 2 4 。m d c m d i o 采用两根线,一根为 时钟线( m d c ) ,还有一根为数据线( m d i o ) ,数据在时钟上升沿有效;在数据 线空闲时期,可以没有时钟信号,当数据活跃时,时钟信号必须有效。 虽然m d c m d i o 有标准的时序,但是c p u 不提供m d c m d i o 的通信控制 接口,所以该时序和上- d , 节的串行接口一样,要通过程序来实现:考虑到可能 蛇的中断,会打破访问的时序,所以在进行访问操作时,也必须将中断关闭。 1 8 m d c 的时钟周期大约为1 3 6 0 n s ,一次读写操作需要4 0 个时钟周期,所以一次 读或写操作将花费大约5 4 m s ,并且同上述s p i 情况一样,配置时间可以忽略不 计。因此在关中断的情况下,不会对系统产生很大的影响。数据格式如以下表格 所示: 表3 - 1p h y 读写格式 o p e r a t i o n p r es to pp h y a dr e g a d弱d 腿i d l e r e a d1 10 11 0a a a a ar r r r rz zz zz z 0d d z w r i t e1 10 10 1a a a a ar r r r r1 0z zz 该时序由程序实现后,采用示波器测量时钟和数据信号,时钟频率和要求相 同,也可以访问硬件内部寄存器。 对于b c m5 3 2 4 ,由于它提供了一个伪p h y ( 内含一系列读写控制寄存器和 数据寄存器) ,作为读写内部寄存器的接口,所以可以采用m d c m d i o 对该p h y 进行读写,从而完成读写b c m5 3 2 4 内部寄存器的操作。 m d c m d i o 的读操作具体代码实现如下: s t a t i cb c m 5 3 2 4 m i i b i t r e a d ( b y t e 宰v a l ) q u i c c _ r e g 幸q r e g ; q r e g = ( q u i c c _ r e g 搴) m a s t e r _ r e g b a s e ; i f ( m a i n b o a r d = := v l r t 8 8 5 ) q r e g - p i p _ p b p a r & = - - o x 删; q r e g - p i p _ p b d i r & = - - 0 x 删4 0 ; q r e g - p i p _ _ p b d i rl - o x 0 0 0 0 0 0 8 0 ; 户m d c 宰 q r e g - p i p _ p b d a t & = - - 0 x 0 0 0 0 0 0 8 0 ; m i l d e l a y ( 2 0 0 ) ; q r e g - p i p _ _ p b d a ti - o x 0 0 0 0 0 0 8 0 ; ,m i i _ d e l a y ( 2 0 0 ) ;毫 宰v a l = ( q r e g - p i p _ _ p b d a t & o x o o o o 0 0 4 0 ) 6 ; e l s ei f ( m a i n b o a r d = := v l r t l 7 0 0 ) q r e g - p i o _ _ p a p a r & = - - 0 x 0 0 3 0 ; q r e g - p i o _ _ p a d i r & = 0 x 0 0 1 0 ; 1 9 q r e g - p i o _ p a d i ri = o x 0 0 2 0 ; 拳m d c q r e g - p i o _ p a d a t & = 4 ) x 0 0 2 0 ; q r e g 一 p i o _ p a d a ti - 0 x 0 0 2 0 ; 搴v a l = ( q r e g - p i o _ p a d a t & o x 0 0 1 0 ) 4 ; d b g ( ( ”r e a db i ti s d l l ”, v a l ) ,d b g _ b w l ) ; # d e f i n em o t _ b c m _ m i i _ w r ( d a t a ,l e n ) l b y t ei ; i = l e n ; w h i l e ( i ) b c m 5 3 2 4 m i i b i t w r i t e ( ( ( d a t a ) i ) & 0 x 1 ) ; w o r dm o t b c m m i i r e a d b y m d i o ( b y t ep h y a d d r , b y t er e g a d d r ) w o r d t e m p ;产t e m p o r a r yv a r i a b l et | t e m p = 0 ; s y s _ m u t e x _ e n t e r 0 ; pw r i t et h ep r e a m b l ep a t t e r nf i r s t _ | m o t b c m m i i w r ( m i i m f _ p r e a m b l e , m i i _ m f _ p r e a m b u l l e n ) ; 产w r i t et h es t a r to ff r a m e 卑| m o tb c m _ m i i _ w r ( m i i _ m f _ s t , m i i m f s tl e n ) ; | w r i t et h eo p e r a t i o nc o d e 毒| m o t b c m m i i r ( m i i m f _ o pp d ,m i i _ m f _ o p _ l e n ) ; l 鼻w r i t et h ep h ya d d r e s s 毒| m o t b c m m i i w r ( p h y a d d r , m i i m f _ a d d r _ l e n ) ; pw r i t et h ep h yr e g i s t e r 毫l m o tb c m _ m i i _ w r ( r e g a d d r , m i im f r e g _ l e n ) ; pw r i t et h et u r n a r o u n dp a t t e r n | s y s _ b c m _ m i i _ b i t - w r ( ( u i n t ) n o n e ) ; s y s _ b c mm z z b i t _ r d ( ( b y t e 掌) & t e m p ) ; r e a dt h ed a t ao nt h em d i o 毒 m o tb c mm i ir d ( t e m p ,m i i m f _ d a t a _ l e n ) ; pl e a v ei ti ni d l es t a t e | s y s _ b c m _ m i i _ b i t _ w r ( ( u i n t ) n o n e ) ; s y s _ m u t e x _ l e a v e 0 ; r e t u m ( t e m p ) ; m d c m d i o 的写操作具体代码如下: s t a t i cv o i db c m 5 3 2 4 m i i b i t w r i t e ( u i n tb i t v a l ) q u i c c _ r e g 宰q r e g ; q r e g = ( q u i c c _ r e g 木) m a s t e r _ r e g b a s e ; i f ( m a i n b o a r d = := v l r t 8 8 5 ) q r e g - p i p _ _ p b p a r & = - - 0 x 删; q r e g - p i p _ _ p b d i rl - 0 ) 【删c o ; 宰m d i o 宰 s w i t c h ( b i t v a l ) c a s e 0 : q r e g - p i p _ _ p b d a t & = - - 0 x 0 0 0 ( k ) 0 4 0 ; b r e a k ; c a s e1 : q r e g - p i p _ p b d a tl - 0 x 0 0 0 0 0 0 4 0 ; b r e a k ; c a s e ( ( u i n t ) n o n e ) : 严p u ti ti nh i g l l i m p e d a n c es t a t e 拳 q r e g - p i p _ _ p b d i r & = - 4 ) x 0 0 0 0 0 0 4 0 ; b r e a k ; * m i i _ d e l a y ( 2 0 0 ) ;| 户m d c 枣 i f ( b i t v a l ! = ( u i n t ) n o n e ) q r e g 一 p i p _ p b d a t = - - o x o 0 0 0 0 0 8 0 ; 2 1 q r e g - p i p _ _ p b d a ti - o x 0 0 0 0 0 0 8 0 ; * m i i _ d e l a y ( 2 0 0 ) ;宰 e l s ei f ( m a i n b o a r d = = v l r t l 7 0 0 ) d b g ( ( ”t h eb i t v a li s d k n ”,b i t v a l ) ,d b g _ b w l ) ; q r e g - p i o _ p a p a r = - - o x 0 0 3 0 ; q r e g - p i o _ p a d i rl - o x 0 0 3 0 ; 严m d l 0 事 s w i t c h ( b i t v a l ) c a s e 0 : q r e g - p i o _ p a d a t & = - o x 0 0 1 0 ; b r e a k ; c a s e1 : q r e g - p i o _ p a d a tl - o x 0 0 1 0 ; b r e a k ; c a s e ( ( u i n t ) n o n e ) : 幸p u ti ti nh i g h - i m p e d a n c es t a t e 木 q r e g - p i op a d i r = - 0 x 0 0 1 0 ; b r e a k ; ) * m i i _ d e l a y ( 2 0 0 ) ;宰 宰m d c 宰 i f ( b i t v a l ! = ( u i n t ) n o n e ) q r e g 一 p i o _ p a d a t & = 4 ) x 0 0 2 0 ; q r e g - p i o _ p a d a ti - o x 0 0 2 0 ; ) 宰m i i _ d e l a y ( 2 0 0 ) ;串 ) ) # d e f i n em o t b c m m i i _ w r ( d a t a , l e n ) | b y t e i ; i = l e n ;| w h i l e ( i 一l b c m 5 3 2 4 m i i b i t w r i t e ( ( ( d a t a ) i ) o x l ) ; v o i dm o t b c m m i i w r i t e b y m d i o ( b y t ep h y a d d r , b y t er e g a d d r , w o r dd a t a ) s y s _ m u t e x _ e n t e r 0 ; | 1w r i t et h ep r e a m b l ep a t t e r nf i r s t l m o t _ b c m _ m i i _ w r ( m i i _ m fp r e a m b l e , m i i _ m f _ p r e a m b l e _ l e n ) ; 1 1w r i t e t h es t a r t o f f r a m e i | m o t _ b c m _ m i i _ w r ( m i i m f _ s t , m i i m e s 【l e n ) ; l w r i t et h eo p e r a t i o nc o d e | m o t _ b c m _ m i i _ w r ( m i i _ m f _ o p _ w r ,m i i _ m f _ o p _ l e n ) ; 尸w r i t et h ep r ya d d r e s s 幸 m o t b c m m i i w r ( p h y a d d r , m i i _ m f _ a d d r _ l e n ) ; pw r i t et h ep h yr e g i s t e r l m o t b c m m i i w r ( r e g a d d r , m i i _ m f _ r e g _ l e n ) ; pw r i t et h et u r n a r o u n dp a t t e r n 鼻| s y s _ b c m _ m i i _ b i t _ w r ( 1 ) ; s y s b c m m i i b i t - w r ( 0 ) ; | 毒w r i t et h ed a t ao nt h em d i o 粤| m o t b c m m i i w r ( d a t a , m i im fd a t a _ l e n ) ; | 聿l e a v ei ti ni d l es t a t e | s y s _ b c m _ m i ib i 忑nr ( ( u i n t ) n o n e ) ; s y s _ m u t e xl e a v e 0 ; 其中q r e g = ( q u i c c _ r e g 事) m a s t e r _ r e g b a s e 为c p um p c 8 5 2 t 上的 q u i c c 寄存器,通过修改c p u 的p i p o 管脚的值去进行底层的操作 3 2v l a n 管理驱动子模块的实现( v l a n ) 3 2 1v l a n 技术简介 v l a n 是英文v i r t u a ll o c a l a r e an e t w o r k 的缩写,即虚拟局域网,它是为解 决以太网的广播问题和安全性而提出的一种协议,它在以太网帧的基础上增加了 v i a n 头,用a ni d 把用户划分为更小的工作组,限制不同工作组问的用户 二层互访,每个工作组就是一个虚拟局域网。虚拟局域网的好处是可以限制广播 范围,并能够形成虚拟工作组,动态管理网络。 在交换式以太网中,利用v l a n 技术,可以将由交换机连接成的物理网络 划分成多个逻辑子网。也就是说,一个v l a n 中的站点所发送的广播数据包将 仅转发至属于同一v l a n 的站点。而在传统局域网中,由于物理网络和逻辑子 网的对应关系,任何一个站点所发送的广播数据包都将被转发至网络中的所有站 点。在交换式以太网中,各站点可以分别属于不同的v l a n 。构成v l a n 的站 点不拘泥于所处的物理位置,它们既可以挂接在同一

温馨提示

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

评论

0/150

提交评论