学位论文 > 优秀研究生学位论文题录展示
网卡芯片DM9103驱动程序开发
作 者: 郝振华
导 师: 王安生
学 校: 北京邮电大学
专 业: 软件工程
关键词: PCI Linux 内核 套接字 中断
分类号: TP334.7
类 型: 硕士论文
年 份: 2010年
下 载: 72次
引 用: 0次
阅 读: 论文下载
内容摘要
本课题主要研究基于EM8623平台的DM9103EP网络芯片驱动开发。该平台采用Linux的嵌入式操作系统uClinux。网卡芯片DM9103挂接在硬件平台的PCI总线,本课题将论述系统通过内核控制PCI网卡芯片的网络传输工作。其中涉及到uClinux对外设的寄存器操作、DMA映射以及中断处理。核心处理器EM8623是没有MMU (Memory Manage Unit)的ARM7 (200M)处理单元,所以操作系统不能使用处理器的虚拟内存管理技术,而使用分页管理技术,即实内存管理策略。处理器EM8623高度集成了HDTV, IPTV, DVD, MPEG-4.10 (H.264)和WMV9/VC-1的解码处理模块,并且该芯片具有复杂并且高效的音视频处理能力。EM8623有32bit的G-BUS连接到核心RISK的ARM处理器单元。G-BUS同时支持由PCI总线的DMA内存映射。网卡芯片DM9103EP高度集成了以太网交换控制器。它具有一个通用PCI总线接口,两个10/100Mbps物理接口收发器(PHY),一个MIl或RMII接口。其PCI总线接口直接连接到媒体接口控制器(MAC)和内部存储器。主机MAC具有32-bit数据寄存器,具有其他10/100Mbps PHY或Mil相同的功能,这使得该网卡具有四口网络交换能力,并且缩短了PCI接口到目标端口的网络响应时间。DM9103EP芯片同时支持1K的组播MAC地址表。并且提供三个PHY端口和一个PCI端口的收发缓冲。每个端口都具有四个传输优先级队列,在基于端口的802.1p VLAN和IP包头的ToS域都会自动定义这四个传输优先级队列。DM9103EP网卡芯片有校验和生成TCP/UDP/IPv4校验和的功能,以此可以降低网络传输中对CPU的消耗。在本课题的平台中,PCI总线设备的配置空间全部交由总线控制器管理,内核无法直接控制。而PCI总线上的寄存器空间将被通过DMA方式影射到内存,以便CPU通过访问该内存来控制PCI设备。在驱动程序的具体实现过程中,DMA映射方式也被用在数据收发过程中。数据发送时,应用程序通过内核协议栈将数据包放入DMA映射缓冲区,然后调用驱动程序操作网卡芯片发送数据包。在发送完成后网卡芯片向CPU发送中断,继续下一步的发送操作。在接收数据的状态下,一旦有数据到达网络接口,网卡芯片便向CPU发出中断。CPU通过中断函数将DMA缓冲区的数据放入套接字结构中。DM9103EP网卡芯片在数据发送完成、数据到达网络接口、总线错误等情况下会产生中断。为了防止数据收发时频繁产生中断,在驱动程序设计上尽量简化中断函数,也可以通过配置DM9103EP的控制寄存器可以屏蔽一些不必要的中断。其中网络交换功能并不会参与到中断中,它不会产生中断,驱动程序只需要配置过滤表和VLAN寄存器便可控制芯片的网络交换功能。本课题针对Linux平台的网络芯片的驱动程序开发进行了详细论述,并且成功开发了具有网络交换功能的双网口网卡DM9103EP的驱动程序。在该驱动的支持下,EM8623平台上的uClinux系统具有稳定的以太网连接,并且还支持四端口网络交换功能。通过内核的协议栈与驱动程序配合,系统可以支持TCP/IP、FTP、RTSP、VPN等网络协议。
|
全文目录
摘要 4-7 Abstract 7-12 第一章 引言 12-15 1.1 课题背景 12-13 1.2 课题任务 13 1.3 论文结构 13-15 第二章 LINUX驱动开发介绍 15-20 2.1 本章概述 15 2.2 LINUX设备驱动介绍 15-16 2.2.1 Linux设备驱动开发过程 15-16 2.2.2 Linux设备驱动程序开发难点 16 2.3 LINUX驱动平台介绍 16-20 2.3.1 硬件平台介绍 17 2.3.2 系统平台介绍 17-20 第三章 DM9103EP网卡芯片工作原理 20-30 3.1 本章概述 20 3.2 DM9103EP芯片介绍 20-23 3.2.1 DM9103EP芯片基本描述 20-21 3.2.2 DM9103EP芯片引脚描述 21-23 3.3 DM9103EP工作原理 23-30 3.3.1 DM9103EP芯片PCI总线缓存管理 23-27 3.3.2 DM9103EP芯片网络交换功能 27-30 第四章 DM9103EP设备驱动程序底层功能设计 30-47 4.1 本章概述 30 4.2 DM9103EP网卡驱动程序模块设计 30-31 4.3 DM9103EP网卡设备初始化 31-40 4.3.1 设备PCI总线初始化设计 32-34 4.3.2 MII接口对PHY读写函数设计 34-36 4.3.3 MAC地址初始化 36-38 4.3.4 交换原理与过滤表 38-40 4.4 DM9103EP网卡的打开与关闭 40-47 4.4.1 网卡设备打开功能设计 41-42 4.4.2 芯片初始化函数设计 42-45 4.4.3 网卡设备定时器设计 45-46 4.4.4 网卡设备关闭功能设计 46-47 第五章 DM9103EP设备驱动程序开发与调试 47-75 5.1 本章概述 47 5.2 开发环境 47-49 5.2.1 交叉编译工具链 47-48 5.2.2 交叉调试环境 48-49 5.3 开发编码过程 49-60 5.3.1 分析数据手册 50 5.3.2 驱动程序模块框架编码 50-52 5.3.3 驱动程序数据发送功能编码 52-54 5.3.4 驱动程序数据接收功能编码 54-55 5.3.5 驱动程序设备初始化功能编码 55-59 5.3.6 驱动程序调试接口编码 59-60 5.4 关键代码解析 60-69 5.4.1 数据发送 60-63 5.4.2 数据接收 63-67 5.4.3 中断处理例程 67-69 5.5 调试过程 69-71 5.5.1 打印消息调试 70 5.5.2 系统错误调试 70-71 5.6 DM9103EP驱动程序测试 71-75 5.6.1 测试方法 72-73 5.6.2 测试结果分析 73-75 第六章 结束语 75-76 6.1 论文工作总结 75 6.2 问题和展望 75-76 附录1:硬件原理图1 76-77 附录2:硬件原理图2 77-78 附录3:硬件原理图3 78-79 附录4:芯片信息结构体定义 79-80 附录5:控制寄存器列表 80-81 参考文献 81-82 致谢 82
|
相似论文
- 高性能计算机I/O总线技术研究,TP336
- 并行分布式网络模拟器PDNS容错技术的研究,TP302.8
- Windows内核态密码服务接口设计与实现,TP309.7
- PCI-E总线高速数据采集回放模块研制,TP274.2
- PCI-E数字化仪研制,TP274.2
- 基于ARM的TFT-LCD面板检测设备软件的研究,TN873.93
- 网位仪信号采集与处理平台的设计与实现,S951.2
- 基于TCP/IP协议的嵌入式图像传输系统接收终端的设计,TP368.1
- 处理器TI DSP VC33虚拟核的设计与实现,TP332
- 易化PCI对比直接PCI治疗ST段抬高性心肌梗死的有效性及安全性分析,R542.22
- 中断范式下的前瞻记忆研究,B842.3
- PCI术前强化他汀治疗对ACS患者心肌保护作用机制探讨,R541.4
- 血浆纤维蛋白原和载脂蛋白AⅠ水平与急性冠脉综合征患者PCI术后近期预后的相关性研究,R541.4
- 基于嵌入式系统钻孔成像装置的研究,P634.3
- IP网络QoS技术研究,TP393.09
- AWG在诱饵防护设备中的应用,TN97
- 基于嵌入式Web技术的动态应变仪研究与实现,TP368.1
- 嵌入式多参数环境智能监测系统的设计与实现,TP274
- 数字型智能终端系统门口机的设计,TP368.1
- 基于嵌入式系统的水厂加氯智能控制系统,TU991.2
- 基于ARM的智能车载终端的设计,TP368.1
中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 电子数字计算机(不连续作用电子计算机) > 外部设备 > 接口装置、插件
© 2012 www.xueweilunwen.com
|