Linux设备驱动工程师之路——DM9000网卡驱动程序分析
K-Style
转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com
DM9000是开发板经采用的网络芯片,是一种高度集成而且功耗很低的高速网络控制器,可以和CPU直连,支持10/100M以太网连接,芯片内部自带16K SARM(3KB用来发送,13KB用来接收).
1.模块初始化
模块初始化完成了基于platfrom平台的DM9000网卡驱动的注册,当DM9000网卡找到其对应的能处理的platform设备后调用probe函数。
2.DM9000网卡初始化
在probe函数中完成了对DM9000网卡的初始化
DM9000的特性:DM9000地址信号和数据信号复用使用CMD引脚区分它们(CMD为低是读写DM900地址寄存器,CMD为高时读写DM9000数据寄存器),访问DM9000内部寄存器时,先将CMD置低,写DM900地址寄存器,然后将CMD置高,读写DM9000数据寄存器。
我们在来看看读写网卡寄存器所用的ior和iow
可以看得出是先将要访问的寄存器地址写入到地址寄存器,然后在将数据写入到数据寄存器。地址。
3.打开网卡
在linux终端下使用ifconfig命令时调用net_device的open函数打开网卡设备
4.数据发送
下面说一下DM9000A中的存储部分,DM9000A内部有一个4K Dword SRAM,其中3KB是作为发送,16KB作为接收,如下图所示。其中0x0000~0x0BFF是传说中的TX buffer(TX buffer中只能存放两个包),0x0C00~0x3FFF是RX buffer。因此在写内存操作时,当IMR的第7位被设置,如果到达了地址的结尾比如到了3KB,则回卷到0。相似的方式,在读操作中,当IMR的第7位被设置如果到达了地址的结尾比如16K,则回卷到0x0C00。
DM9000的TX RAM可以同时放两个包,可以第9行代码中看出如果大于TXRAM中的包大于2则返回,DM9000会先发送第一个包,然后再发第二个包。
4.中断
5.接收数据
6.发送完成
7.超时处理
分享到:
相关推荐
《DM9000网卡驱动程序详解》 在Linux操作系统中,硬件设备的正常运行离不开对应...总的来说,理解和掌握DM9000网卡驱动的原理和实践,对于Linux系统开发者和硬件工程师来说,都是提升系统性能和设备兼容性的关键技能。
这些函数共同构成了驱动程序的核心逻辑,确保了DM9000网卡能够在Linux系统中正常工作。通过以上分析,可以深入理解DM9000网卡驱动的内部结构和工作原理,这对于进一步开发或调试类似的驱动程序具有重要的参考价值。
### DM9000网卡驱动程序分析 #### 引言 在ARM9开发板上进行网络通信,DM9000网卡驱动程序扮演着关键角色。DM9000是一款高性能、低功耗的以太网控制器,广泛应用于嵌入式系统中。本文将深入解析DM9000网卡驱动程序...
网卡开发必须要熟悉的驱动流程 dm9000网卡驱动分析
然而,在网上找到关于DM9000网卡芯片的介绍,都是关于Linux或WinCE下的驱动程序或移植,很少有介绍单片机驱动DM9000的例子。 本文主要介绍单片机驱动DM9000E网卡芯片的详细过程,从网卡电路的连接到网卡初始化相关...
这里我们关注的是DM9000网卡的驱动程序,它是一款广泛应用于嵌入式系统的以太网控制器。DM9000芯片提供了对10/100Mbps以太网连接的支持,适用于多种工业和消费级应用。 首先,DM9000驱动源代码通常由几个关键部分...
### dm9000网卡驱动在WinCE下的实现与移植 #### 1. 引言 dm9000是一种高性能、低功耗的快速以太网控制器,广泛应用于嵌入式系统中,尤其在基于ARM架构的开发板上。在WinCE环境下移植和实现dm9000网卡驱动,对于...
第一天 1.Linux驱动简介 2.字符设备驱动程序设计 3.驱动调试技术 4. 并发与竞态 第二天 1.Ioctl型驱动 ...3. Dm9000网卡驱动程序分析 4. 触摸屏驱动程序设计 第六天 1. PCI驱动程序设计 2. 串口驱动程序设计
本知识点将深入探讨如何为 TQ2440 开发板上的 DM9000 网卡编写裸机驱动程序。DM9000 是一款广泛应用的以太网控制器,它支持 10/100Mbps 自适应速率,为嵌入式设备提供网络连接功能。 一、DM9000 硬件接口 DM9000 ...
Linux DM9000驱动程序分析主要关注的是在Linux内核2.6.31版本中,如何为DM9000网络控制器编写和配置驱动,以便在Mini2440开发板上运行。DM9000是一款常见的以太网控制器,常用于嵌入式系统。在Linux中,驱动程序应与...
Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(中).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(下).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(上).pdf Linux驱动修炼之道-clock框架....
DM9000网卡驱动是在嵌入式开发中经常用到的网络接口扩展技术。DM9000是一款高性能、高集成度的以太网控制芯片,广泛应用于各种嵌入式系统中,如基于ARM架构的系统。本文将介绍DM9000网卡驱动的相关知识点,以及如何...
- 文档内容暗示DM9000网卡驱动程序可能已经适用于ARM-Linux、AVR等不同单片机平台。平台的多样性要求驱动程序具有良好的可移植性。 8. **调试过程**: - 调试过程可能包括检查硬件连接的正确性、验证寄存器配置...
### Linux-2.6.28 在 Mini2440 上的移植之 DM9000 网卡驱动的移植 #### 背景与概述 本文将详细介绍如何将 Linux 2.6.28 内核移植到 Mini2440 开发板,并在此基础上实现 DM9000 网卡驱动的移植。Mini2440 是一款...
【dm9000网卡驱动】是一款专为Linux操作系统设计的硬件驱动程序,用于支持DM9000系列的以太网控制器。这个驱动程序实现了基本的网络通信功能,经过了广泛的测试,确保了其稳定性和兼容性,非常适合在各种Linux系统中...
linux设备驱动中的网卡驱动(DM9000),源代码分析,通俗易懂
**DM9000网卡驱动详解** DM9000是一款广泛应用的以太网控制器,尤其在嵌入式系统中颇为常见,如基于ARM架构的S3C2440处理器平台。这款芯片提供了全速的10/100Mbps以太网连接能力,适用于各种网络应用,如物联网设备...
总结,dm9000网卡驱动在2410平台的应用涉及到硬件连接、驱动程序开发、中断处理、数据传输等多个环节,每个环节都需要细致入微的考虑和调试。理解这些知识点,有助于我们更好地进行嵌入式系统的网络设计和优化。
通过以上分析,我们可以看到 DM9000A 网卡驱动程序的实现涉及了硬件交互、中断处理、DMA 数据传输等多个层面。理解和掌握这些知识对于开发和维护相关硬件驱动,特别是在嵌入式系统中,是非常重要的。