Linux下基于PCI总线的网络设备驱动程序的研究与开发
发布时间:2017-10-08 17:12
本文关键词:Linux下基于PCI总线的网络设备驱动程序的研究与开发
【摘要】:随着计算机技术的普及速度加快,Linux操作系统就是随着其发展起来的一种实时操作系统,它在短短的时间内,已经成为各个企业和研发机构很热衷于使用的一种操作系统。随着小型控制系统的迅速发展,给Linux又带来了新的活力。目前嵌入式Linux系统是在嵌入式领域应用最广泛的。我们通过查看Linux的内核源代码可以发现,内核中最多的代码就是设备驱动程序。现在的计算机外围设备日新月异,每一款设备都要有相应的设备驱动与之配套,设备驱动直接影响到设备的性能,因此设备驱动程序的开发无论是在嵌入式领域还是在个人电脑领域都占有重要的地位。本课题是为一款基于PCI总线的网络加密卡编写驱动程序,网络加密卡应用的平台是Linux操作系统平台。首先介绍了与本课题相关的理论基础,包括Linux设备驱动程序设计的基本概念以及一些核心理论的介绍。其次介绍了与网络加密卡相关的总线协议和用到的网卡芯片的介绍,具体的说介绍了PCI总线协议的基本知识和网卡芯片DM9000的基本操作。然后分层介绍了在Linux网络设备驱动的架构和开发流程。最后重点介绍了针对网络加密卡的网络设备驱动的开发,从网络设备驱动中的总线驱动开始介绍,分析了总线驱动的初始化函数、总线移除函数、总线挂起和复苏函数。然后介绍了本课题的网络设备驱动程序的各个主要接口。在本文的最后,对安装了网络加密卡并加载了相应的驱动程序的计算机进行了驱动程序的测试,并最后得出测试结论。
【关键词】:Linux操作系统 网络设备 驱动程序
【学位授予单位】:黑龙江大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP393.05;TP316.81
【目录】:
- 摘要3-4
- Abstract4-8
- 第1章 绪论8-12
- 1.1 研究背景及意义8-9
- 1.1.1 Linux操作系统8-9
- 1.1.2 Linux设备驱动研究的意义9
- 1.2 课题设计的目标和主要内容9-10
- 1.3 组织结构安排10-12
- 第2章 Linux设备驱动程序设计12-19
- 2.1 Linux设备驱动程序概述12-13
- 2.1.1 设备驱动的概念12
- 2.1.2 Linux设备驱动程序的分类和特点12-13
- 2.2 Linux设备驱动程序开发的核心理论13-18
- 2.2.1 Linux内核模块13-15
- 2.2.2 驱动程序中的并发控制15-16
- 2.2.3 Linux系统的中断机制16-17
- 2.2.4 内存管理与I/O访问17-18
- 2.3 本章小结18-19
- 第3章 网络加密卡硬件结构和PCI总线协议19-28
- 3.1 网络加密卡硬件结构概述19-20
- 3.2 PCI总线协议20-24
- 3.2.1 PCI总线的系统结构20-21
- 3.2.2 PCI局部总线的特点21
- 3.2.3 PCI局部总线的信号定义21-23
- 3.2.4 PCI局部总线的编址23-24
- 3.3 网卡芯片DM9000介绍24-27
- 3.3.1 DM9000寄存器的读写24-25
- 3.3.2 DM9000对数据的发送和接收25-27
- 3.4 本章小结27-28
- 第4章 网络设备驱动程序的设计28-39
- 4.1 Linux网络实现的分层模型28-29
- 4.2 套接字缓冲区29-31
- 4.2.1 套接字缓冲区概述29-30
- 4.2.2 套接字缓冲区对数据的管理30-31
- 4.3 网络访问层31-34
- 4.3.1 网络设备的表示31-33
- 4.3.2 分组数据的接收33-34
- 4.3.3 分组数据的发送34
- 4.4 网络设备驱动分层结构34-35
- 4.5 网络设备驱动主要接.函数设计框架35-38
- 4.5.1 网络设备驱动的注册与注销35-36
- 4.5.2 网络设备的初始化36
- 4.5.3 网络设备的打开与释放36-37
- 4.5.4 数据的发送流程和接收流程37
- 4.5.5 网络连接状态37-38
- 4.6 本章小结38-39
- 第5章 基于PCI总线的网络加密卡驱动程序设计39-55
- 5.1 程序设计过程中需要注意的问题39-40
- 5.1.1 设备驱动中的I/O操作39
- 5.1.2 设备的私有信息结构体39-40
- 5.1.3 网卡MAC地址的设定40
- 5.2 网络设备的注册40-42
- 5.3 网卡驱动中的PCI总线驱动42-45
- 5.3.1 总线初始化函数probe42-44
- 5.3.2 PCI总线移除函数44-45
- 5.3.3 总线挂起和复苏函数45
- 5.4 网卡驱动中的网络设备驱动接.设计45-54
- 5.4.1 设备打开函数和停止函数45-49
- 5.4.2 中断处理函数49-50
- 5.4.3 发送数据函数50-52
- 5.4.4 接收数据函数52-53
- 5.4.5 网络连接状态53-54
- 5.5 本章小结54-55
- 第6章 驱动程序的测试55-60
- 6.1 网络设备驱动的编译和加载55-57
- 6.2 网卡性能测试57-59
- 6.3 本章小结59-60
- 结论60-61
- 参考文献61-65
- 致谢65-66
【参考文献】
中国期刊全文数据库 前1条
1 梁金千,张跃,甄成;Linux设备驱动程序架构的研究[J];计算机工程与应用;2002年08期
,本文编号:995263
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/995263.html