zoukankan      html  css  js  c++  java
  • DM9000C网卡驱动

    目的:通过学习,掌握如何移植、编写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网卡移植(详解)

  • 相关阅读:
    一个人事工资模块
    Delete From 带 inner join
    打开SQL AnyWhere *.db数据库
    开启查询IO操作统计
    一个大数据量表访问优化联动下拉框查询优化
    一个简单的配置文件读取类
    MSSQL2005 双机热备说明
    数据库镜像
    GridView + ObjectDatasource 的一个范例代码
    往带自增长列的数据表中导数据
  • 原文地址:https://www.cnblogs.com/y4247464/p/10430278.html
Copyright © 2011-2022 走看看