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