学位论文 > 优秀研究生学位论文题录展示

网卡芯片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

相似论文

  1. 高性能计算机I/O总线技术研究,TP336
  2. 并行分布式网络模拟器PDNS容错技术的研究,TP302.8
  3. Windows内核态密码服务接口设计与实现,TP309.7
  4. PCI-E总线高速数据采集回放模块研制,TP274.2
  5. PCI-E数字化仪研制,TP274.2
  6. 基于ARM的TFT-LCD面板检测设备软件的研究,TN873.93
  7. 网位仪信号采集与处理平台的设计与实现,S951.2
  8. 基于TCP/IP协议的嵌入式图像传输系统接收终端的设计,TP368.1
  9. 处理器TI DSP VC33虚拟核的设计与实现,TP332
  10. 易化PCI对比直接PCI治疗ST段抬高性心肌梗死的有效性及安全性分析,R542.22
  11. 中断范式下的前瞻记忆研究,B842.3
  12. PCI术前强化他汀治疗对ACS患者心肌保护作用机制探讨,R541.4
  13. 血浆纤维蛋白原和载脂蛋白AⅠ水平与急性冠脉综合征患者PCI术后近期预后的相关性研究,R541.4
  14. 基于嵌入式系统钻孔成像装置的研究,P634.3
  15. IP网络QoS技术研究,TP393.09
  16. AWG在诱饵防护设备中的应用,TN97
  17. 基于嵌入式Web技术的动态应变仪研究与实现,TP368.1
  18. 嵌入式多参数环境智能监测系统的设计与实现,TP274
  19. 数字型智能终端系统门口机的设计,TP368.1
  20. 基于嵌入式系统的水厂加氯智能控制系统,TU991.2
  21. 基于ARM的智能车载终端的设计,TP368.1

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 电子数字计算机(不连续作用电子计算机) > 外部设备 > 接口装置、插件
© 2012 www.xueweilunwen.com