VLAN 在嵌入式 Linux 以太网交换机中的划分与实现.doc_第1页
VLAN 在嵌入式 Linux 以太网交换机中的划分与实现.doc_第2页
VLAN 在嵌入式 Linux 以太网交换机中的划分与实现.doc_第3页
全文预览已结束

下载本文档

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

文档简介

VLAN 在嵌入式 Linux 以太网交换机中的划分与实现廖毅,姜秀柱,薛淑娅中国矿业大学计算机学院,江苏 徐州 (221008)Email:摘要:VLAN 是一种将局域网内的设备逻辑地而不是物理地划分成一个个网段从而实现虚 拟工作组的新兴技术。文章讨论了在嵌入式 Linux 系统中,以二层以太网交换机设备为硬件 平台,实现基于 Port 和基于 Tag 的 VLAN 划分。该功能很好的解决交换机在进行局域网互 连时无法限制广播的问题。关键字:以太网交换机;驱动;嵌入式;VLAN;RTL83050引言VLAN(Virtual Local Area Network)即虚拟局域网,是为解决以太网的广播问题和安全 性而提出的,它能把用户划分为更小的工作组,限制不同工作组间的用户二层互访,每个工 作组就是一个虚拟局域网。VLAN 的划分有多种形式,为了达到限制广播的目的,我们利用了基于 Port 和基于 Tag的 VLAN 划分形式。1以太网交换机设备构成本文采用的二层以太网交换机设备硬件模块如图 1 所以。Clock32位CPU BUSMPC859DSL4MB Flash ROM32MB SDRAMRTL8305SC Switch图 1 本以太网交换机设备硬件模块图该设备以 Motorola 公司的 PowerQUICC 系列 PowerPC 嵌入式通信处理器 MPC859 为核 心,和 4 MB Flash Rom 以及 32 MB SDRAM 一起组成了最小系统。利用以太网交换机芯片 RTL8305 提供四个以太网接口。软件采用嵌入式1Linux 做为操作系统。2Linux 访问硬件机制Linux 访问硬件的方式主要有两种:(1) 通过访问物理芯片的设备驱动程序,利用驱动程序对寄存器进行读写。(2) 不通过驱动程序,直接在 Application(上层程序)中对寄存器读写。2.1 通过驱动程序配置驱动程序是操作系统内核和机器硬件之间的接口。Linux 设备驱动程序为应用程序屏蔽 了硬件的细节,应用程序看来,Linux 硬件设备只是一个设备文件2,应用程序可以像操作 普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下工作3:(1)对设备初始化和释放;(2)把数据从内核传送到硬件和从硬件读取数据;(3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据;(4)检测和处理设备出现的错误;Linux 系统设备驱动程序结构如图 2 所示。图 2 Linux 系统设备驱动程序的结构Application 首先打开与交换芯片驱动程序对应的设备节点,然后利用驱动提供的 ioctl或者 read/write 方法便可以方便的读写寄存器了。2.1 通过 Application 配置Linux 驱动虽然为用户操作硬件提供一些很好的接口。但是一方面:驱动程序处于内核 空间4,是嵌入到内核中的,一旦驱动程序出现了任何问题,都将直接影响到这个系统的运 行状态。所以这样做具有一定的风险性。要直接通过上层 Application 来访问寄存器,需要采用内存映射的方式来实现。这涉及 到 Linux 的设备文件 mem 和系统调用 mmap。mem 位于系统的 dev 目录下,内核启动后,会将主存映射为/dev/mem。由于其代表着 系统的内存,所以为了安全起见,这个文件对普通用户是不可读的。mmap 是一个系统调用,它可以把一个设备直接映射到内存,这意味着使用户空间的一 段地址关联到设备内存上,这使得只要程序在分配的地址范围内进行读取或者写入,实际上 就是对设备的访问。mmap 的磁盘映射如图 3 所示。图 3 mmap 磁盘映射图针对本以太网交换机,采用第二种方式。通过上层地址的映射和底层硬件操作代码的编写,我们实现了一个可以在上层配置 RTL8305 寄存器的程序 m8xx_set,VLAN 功能就可以 通过这个程序来实现了。3VLAN 的划分3.1 RTL8305 介绍RTL8305 是一款具有 5 个端口的以太网交换芯片,该芯片支持 16 组 VLAN 的划分。每 个端口各称作一个 PHY5,且有一组对应的寄存器,用来确定本端口或者整个芯片的一些功 能。该芯片可实现两种 VLAN 即:Port-based VLAN(基于端口的 VLAN)和 IEEE 802.1Q Tagged-VID Based VLAN(基于 802.1Q 协议的 VLAN)。(1) RTL8305 对 Port-based VLAN 的支持:每个端口的 Port VLAN Index 决定该端口属于哪个 VLAN。16 个 VLAN 成员寄存器, VLAN A member bit4:0VLAN P member bit4:0,描述了哪些端

温馨提示

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

评论

0/150

提交评论