Linux下网卡驱动程序的研究-毕业论文.doc

上传人:滴答 文档编号:1272988 上传时间:2019-01-26 格式:DOC 页数:46 大小:581KB
下载 相关 举报
Linux下网卡驱动程序的研究-毕业论文.doc_第1页
第1页 / 共46页
Linux下网卡驱动程序的研究-毕业论文.doc_第2页
第2页 / 共46页
Linux下网卡驱动程序的研究-毕业论文.doc_第3页
第3页 / 共46页
Linux下网卡驱动程序的研究-毕业论文.doc_第4页
第4页 / 共46页
Linux下网卡驱动程序的研究-毕业论文.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: Linux下网卡驱动程序的研究 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月I Linux下网卡驱动程序的研究 摘要 此网卡驱动研究开发是遵循 POSIX 通用 Linux设备标准, 基于 BCM6338 芯片, 在Linux操作系统 平台 下 , 实现 BCM6338芯片的基于 MII接口的网络接 口的驱动 。 本文 引言部分简要介绍了 Linux操作系统、内核模块、 Linux设备驱动等基本概念,并阐述了驱动程序的基本框架。 系统实现部分首先

2、明确实现目标 ,接着阐述驱动开发的硬件 平台 ,并分析了 BCM6338芯片网络接口原理。 然后 从 Linux 网络子系统的四个层次, 并 分析 网卡驱动的作用 。 接着详细地分析与设计了 网络接口驱动的 实现原理和实现方法 。网络接口驱动 的设计大体 包括 以下十一部分 :加载模块、卸载模块、探测设备、初始化设备、打开设备、关闭设备、发送报文、接收报文、检测连接状态、获取统计信息和支持多播。 最后, 阐述编 译环境和编译方法,并 通过测试结果表明此网卡驱动能使 BCM6338 芯片的网络接口部分正常工作 。 关键词 网卡 驱动 ; Linux; NAPI; 模块编程 ; BCM6338 I

3、I III Research of Network Interface Card Driver in Linux Abstract This research and development are to develop the network interface driver of BCM6338 chip which is based on POSIX-generic Linux equipment standard. The network interface part of BCM6338 chip is based MII Interface. In this paper, the

4、introduction part expounds on Linux operating system, kernel modules, Linux device drivers, basic framework of driver development and other basic concepts. The mplementation part firstly make clear the development objective, and then expounds the hardware platform of development and analyze the prin

5、ciples of network interface on BCM6338 chip. Secondly, The paper explains the four layers of linux network subsystem and the function of network interface card driver. Then a detailed analysis and design of the network interface drive r are presented. Network Driver Interface driver design will incl

6、ude the following 11 parts: loading module, unloading module, detecting equipment, equipment initialization, openning the equipment, shutting down equipment, sending messages, receiving messages, detecting connection status, getting statistical information and supporting multicast. In-depth analysis

7、 of various parts of the methods to achieve, principle and attention to detail. Finally, The paper describes compilation environment and compilation method, and the test results are showed to indicate that the network interface card driver works well. Keywords Network Interface Card Driver; Linux; N

8、API; Module Programming; BCM6338 IV V 目录 第一章 引言 . 1 1.1 Linux简介 . 1 1.2内核模块 . 1 1.3 Linux设备驱动 . 2 1.4设备驱动框架 . 3 第二章 分析与设计 . 5 2.1实现目标 . 5 2.2硬件平台 . 5 2.2.1 BCM6338 平台描述 . 5 2.2.2 BCM6338 网络接口 原理 . 7 2.3 Linux网络子系统 . 8 2.3.1网络子系统的结构 . 8 2.3.2网络设备接口部分 . 9 2.3.3网络接口核心部分 . 9 2.3.4网络接口协议族部分 .10 2.3.5网络接口

9、 Socket部分 .10 2.4网卡驱动的作用 . 11 2.5网卡驱动设计 . 11 2.5.1主要数据结构 . 11 2.5.2加载模块 .14 2.5.3卸载模块 .14 2.5.4探测设备 .15 2.5.5初始化设备 .16 2.5.6打开设备 .17 2.5.7关闭设备 .17 2.5.8发送报文 .18 2.5.9接收报文 .20 2.5.10检测连接状态 .21 VI 2.5.11获取统计信息 .22 2.5.12支持多播 .22 第三章 编译与测试 .23 3.1搭建编译环境 .23 3.1.1安装 Linux操作系统 .23 3.1.2安装交叉编译工具链 .23 3.2模

10、块 Makefile设计 .23 3.3测试 .25 3.3.1测试一:主机 ping开发板 .25 3.3.2测试二:开发板 ping主机 .25 3.3.3测试三:浏 览 BCM6338芯片的配置管理网站 .26 第四章 结论 .27 致谢 .28 参考文献 .29 VII Contents Chapter 1 Introduction . 1 1.1 Introduction to Linux . 1 1.2 Kernel Module. 1 1.3 Linux Device Driver . 2 1.4 Device Driver Skeleton. 3 Chapter 2 Syste

11、m Implementation . 5 2.1 Implement Object . 5 2.2 Hardware Environment. 5 2.2.1BCM6338 Platform . 5 2.2.2BCM6338 Network Interface . 7 2.3 Linux Network Subsystem . 8 2.3.1 The Structure of Linux Network Subsystem . 8 2.3.2 Network Device Driver Layer. 9 2.3.3 Network Interface Core Layer . 9 2.3.4

12、Network Interface Protocol Layer .10 2.3.5 Network Interface Socket Layer .10 2.4 The Function Of Network Interface Card Driver . 11 2.5 Network Interface Card Driver Design . 11 2.5.1 Main Data Structure .14 2.5.2 Load Module .14 2.5.3 Unload Module.14 2.5.4 Probe Device.15 2.5.5 Initialize Device

13、.16 2.5.6 Open Device .17 2.5.7 Close Device .17 2.5.8 Send Packet .18 2.5.9 Receive Packet .20 VIII 2.5.10 Detect Link Status .21 2.5.11 Get Statistic Information .22 2.5.12 Support Mutilcast .22 Chapter 3 Compilation and Test.22 3.1 Build Compilation Environment.22 3.1.1 Install Linus OS.22 3.1.2

14、Install Cross Compilation Tool Chain .22 3.2 Module Makefile Design.22 3.3 Test .24 3.3.1 Test One: The host pings BCM6338 chip .24 3.3.2 The BCM6338 chip pings the host .24 3.3.3 Browse the web pages of Bcm6338 chip .25 Chapter 4 Conclusion .27 Acknowledgement .28 References .29 1 第一章 引言 1.1 Linux简

15、介 Linux 是一套免费使用和自由传播的类 Unix 操作系统,它主要用于基于 Intel x86 系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix兼容产品。 Linux最早由一位名叫 Linus Torvalds的计算机爱好者开发,当时他是芬兰赫尔辛基大学的学生。他的目的是设计一个代替 Minix( 由一位名叫 Andrew Tannebaum的计算机教授编写的一个操作系统示范教学程序)的操作系统,这个操作系统可用于 386、 486 或奔腾处理器的个人计算机上,并且具有 Unix操作系统的

16、全部功能。 Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的 Unix特性,具有多任务、多用户的能力。 Linux可在 GNU( 不是 UNIX工程的缩写)公共许可权限下免费获得,是一个符合 POSIX 标准的操作系统。Linux操作系统软件包不仅包括完整的 Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的 X-Windows图形 用户界面,如同我们使用 Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 由于 Linux 是一套自由软件,用户可以无偿地得到它及其源代码,可以无偿地获得大量的应用程序,而且可以任意地修改和补充它们 1。 1.2 内核模块 每块可以在运行时添加到内核的代码,被称为一个模块。每个模块由目标代码组成没有( 连接成一个完整可执行文件 ) ,可以动态连接到运行中的内核中,通过 insmod 程序,以及通过 rmmod 程序去连接。 内核是由负责特定任务的不同类别的模块组成的。一个模块是根据它提供的功能来 说它属于一个特别类别的。内核的划分见图 1-12。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。