目的:通过学习,掌握如何移植、编写DM9000C网卡驱动

一、概述:

DM9000是一款高度集成低功耗快速以太网处理器,该芯片集成了MAC和PHY。DM9000可以和CPU直接连接,支持8位、16位和32位数据总线宽度。该芯片支持10M和100M自适应以太网接口,内部有16K的FIFO以及4K双字节SRAM,支持全双工工作。内部集成了接收缓冲区,可以在接收到数据的时候把数据存放到缓冲区中,链路层可以直接把数据从缓冲区取走

1.1 DM9000C原理图

信号线(#表示低电平有效):

  • SD0~15: 16位数据线,有CMD引脚决定访问类型
  • CMD:      命令线,当CMD为高,表示SD 传输的是数据,CMD为低表示传输的是地址
  • INT:         中断引脚,接在2440的GPF7脚上
  • IOR#:      读引脚,接在2440的nOE脚上
  • IOW#:     写引脚,接在2440的nWE脚上
  • CS#:       片选,放在2440的bank4的片选上面
  • VDD:       芯片内部工作电压

1.2 DM9000的基地址

DM9000C网卡芯片与处理器的接口只有一根地址线、即CMD引脚接在bank4的LADDR2上面,说明网卡芯片开放给处理器的只有两个地址,查看芯片手册可知:

CMD为高电平时,访问DM9000的数据端口,数据端口地址为0x20000004

CMD为低电平时,访问DM9000的地址端口,地址端口地址为0x20000000

片选信号CS#与nGCS4相接,即选中bank4,其区间位于: 0X20000000~0X28000000,

当我们访问这个区间的地址,内存控制器便会使能网卡DM9000C的使能脚,所以我们的DM9000C的io基地址=0X20000000

DM9000收发数据过程

当DM9000C收到外部的数据后,会暂存到内部地址中,然后产生一个上升沿中断,等待2440读取数据

当DM9000C将2440的数据转发出去后,也会产生一个上升沿中断给2440

如下图所示,DM9000C的中断引脚位于pin34脚,接在2440的GPF7引脚上,使用的中断为EINT7

二、DM9000网卡驱动框架及源码分析

参见:

嵌入式Linux——网卡驱动(3):结合硬件分析厂家提供驱动代码dm9dev9000c.c

三、修改厂家提供的DM9000C源代码

参见:

27.Linux-DM9000C网卡移植(详解)

最新文章

  1. Tween.js的使用示例
  2. EF-联合查询-结果集-Group by-统计数目
  3. [vijos1892]树上的最大匹配(树形DP)
  4. 8款功能强大的最新HTML5特效实例
  5. windows权限错误
  6. strip, 关于去除目标文件种的不必要信息
  7. 快速下单!简化EcStore的购物结算流程
  8. ios_swift开发资源整理
  9. jquery 日期获取
  10. 网络安全实验室_上传关writeup
  11. [SDOI2008]Sue的小球
  12. linux下安装tomcat和jdk
  13. pre强制 自动换行
  14. XML—代码—DOM4J解析
  15. html转jsp部分css不可用
  16. node(一)安装nodejs最新版到debian,ubuntu,mint系统
  17. xhEditor在线编辑器使用实例
  18. [转]Python Web部署方式总结
  19. 【转】iOS-APP如何做才安全
  20. 【C++】C++函数重载的总结

热门文章

  1. ES6学习笔记(十四)Generator函数
  2. NOIP2017 Day-1 模板荟萃
  3. Django初学习程序大致流程
  4. 紫书 例题 10-27 UVa 10214(欧拉函数)
  5. C#版清晰易懂TCP通信原理解析(附demo)
  6. 洛谷 P1096 Hanoi双塔问题
  7. 深度学习 —— 使用 gensim 实现 word2vec
  8. 关于es6中对象的扩展
  9. MySQL外键的介绍
  10. POJ 2436 二进制枚举