网卡芯片DM9103驱动程序开发

网卡芯片DM9103驱动程序开发

论文摘要

本课题主要研究基于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等网络协议。

论文目录

  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 课题背景
  • 1.2 课题任务
  • 1.3 论文结构
  • 第二章 LINUX驱动开发介绍
  • 2.1 本章概述
  • 2.2 LINUX设备驱动介绍
  • 2.2.1 Linux设备驱动开发过程
  • 2.2.2 Linux设备驱动程序开发难点
  • 2.3 LINUX驱动平台介绍
  • 2.3.1 硬件平台介绍
  • 2.3.2 系统平台介绍
  • 第三章 DM9103EP网卡芯片工作原理
  • 3.1 本章概述
  • 3.2 DM9103EP芯片介绍
  • 3.2.1 DM9103EP芯片基本描述
  • 3.2.2 DM9103EP芯片引脚描述
  • 3.3 DM9103EP工作原理
  • 3.3.1 DM9103EP芯片PCI总线缓存管理
  • 3.3.2 DM9103EP芯片网络交换功能
  • 第四章 DM9103EP设备驱动程序底层功能设计
  • 4.1 本章概述
  • 4.2 DM9103EP网卡驱动程序模块设计
  • 4.3 DM9103EP网卡设备初始化
  • 4.3.1 设备PCI总线初始化设计
  • 4.3.2 MII接口对PHY读写函数设计
  • 4.3.3 MAC地址初始化
  • 4.3.4 交换原理与过滤表
  • 4.4 DM9103EP网卡的打开与关闭
  • 4.4.1 网卡设备打开功能设计
  • 4.4.2 芯片初始化函数设计
  • 4.4.3 网卡设备定时器设计
  • 4.4.4 网卡设备关闭功能设计
  • 第五章 DM9103EP设备驱动程序开发与调试
  • 5.1 本章概述
  • 5.2 开发环境
  • 5.2.1 交叉编译工具链
  • 5.2.2 交叉调试环境
  • 5.3 开发编码过程
  • 5.3.1 分析数据手册
  • 5.3.2 驱动程序模块框架编码
  • 5.3.3 驱动程序数据发送功能编码
  • 5.3.4 驱动程序数据接收功能编码
  • 5.3.5 驱动程序设备初始化功能编码
  • 5.3.6 驱动程序调试接口编码
  • 5.4 关键代码解析
  • 5.4.1 数据发送
  • 5.4.2 数据接收
  • 5.4.3 中断处理例程
  • 5.5 调试过程
  • 5.5.1 打印消息调试
  • 5.5.2 系统错误调试
  • 5.6 DM9103EP驱动程序测试
  • 5.6.1 测试方法
  • 5.6.2 测试结果分析
  • 第六章 结束语
  • 6.1 论文工作总结
  • 6.2 问题和展望
  • 附录1:硬件原理图1
  • 附录2:硬件原理图2
  • 附录3:硬件原理图3
  • 附录4:芯片信息结构体定义
  • 附录5:控制寄存器列表
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].国内首款自主可控25G网卡芯片发布[J]. 中国集成电路 2020(Z4)
    • [2].USB故障又一原因[J]. 网络与信息 2009(07)
    • [3].嵌入式远程监控系统的设计与开发[J]. 唐山学院学报 2011(03)
    • [4].基于PXA270与LAN91C111的系统引导程序移植与实现[J]. 计算机技术与发展 2011(09)
    • [5].RTL8019AS网卡芯片在以太网通信中的应用[J]. 现代仪器 2009(04)
    • [6].以太网卡控制器与ARM7的接口设计及编程[J]. 通信技术 2009(01)
    • [7].基于DSP和AX88796B的以太网络接口模块的设计与实现[J]. 火控雷达技术 2010(04)

    标签:;  ;  ;  

    网卡芯片DM9103驱动程序开发
    下载Doc文档

    猜你喜欢