MINI2440+DM9000网络驱动分析之一

1.DM9000硬件接口:

    DM9000提供了三组接口:EEPROM Interface、MII Interface和Processor Interface.相对于EEPROM Interface和MII Interface而言,DM9000是最直接的主控,这时候DM9000相当于一颗MCU;相对于Processor Interface(如S3C2440)而言,DM9000就是一个Slave Device.当然,DM9000提供了一些接口来实现Processor对EEPROM Interface和MII Interface的间接控制.其功能结构示意图如下:

    在MINI2440的DEMO板上,并没有在DM9000上实现EEPROM的硬件挂载,也没有实现MII的硬件挂载.我们只需要关注其和主控(S3C2440)的接口通讯.

 

    1-1.Processor Interface之Device:

    上述这个引脚及功能接口表,便是和主控CPU的连接脚.见MINI2440上DM9000部分的原理图如下:

   

    1-2.Processor Interface之Host:

    由上述的MINI2440_DM9000的原理图可知,DM9000和S3C2440的引脚接线包括:LnOE、LnWE、nLAN_CS、nRESET、LADDR2、IRQ_LAN和LDATA[0:15].DM9000面向Processor而言,是一个迷你型的一小块SRAM.主控实现DM9000内部寄存器的访问便是对这小块SRAM的形式访问,而不像一些常见IC是通过IIC、IIS、SPI等形式访问.对照MINI2440开发板,会发现其硬件连接方式和NOR FLASH很相近,不同的是BANK片选引脚 nLAN_CS和DM9000的数据地址线是复用(靠CMD引脚即LADDR2)区分.各引脚的意义如下:

LnOE(IOR#):读命令;
LnWE(IOW#):写命令;
nLAN_CS(AEN):地址使能,低电平有效.当S3C2440访问DM9000这颗IC对应的内存地址时,会把此引脚自动拉低;
nRESET(PW_RST#):DM9000的硬件复位,它和CPU及一些外设的复位引脚接一起,起硬件复位作用.低电平有效;
LADDR2(CMD):数据地址的片选引脚;
IRQ_LAN(INT):中断引脚;
LDATA[0:15](SD[0:15]):数据地址引脚.

    这七个(组)引脚对应的S3C2440的数据手册如下:

    LnOE(nOE)和LnWE(nWE):

    如果发现这两个引脚驱动能力不够的时候,还是可以配置寄存器DSC1:

   

    nLAN_CS(nGCS3):BANK3的片选引脚,用于选中接在BANK3的存储设备;

 

    nRESET(nRESET):CPU的复位引脚;

 

    LADDR2(ADDR2):地址线2;

 

    IRQ_LAN(EINT7):第17号中断引脚;

 

    LDATA[0:15](DATA[0:15]):数据线.

 

    [注:]DM9000通过LADDR2引脚来实现CMD的片选,是嵌入式编程中很常用也比较实际的编程方法,这样的做法的好处在于,对设备的操作就直接变成了对某个内存地址的操作.在后续的驱动源码分析中会提及.

 

2.DM9000寄存器:

    基本上每一颗IC都要暴露一些其内部寄存器的操作手段,比如IIC、SPI等.而DM9000则是以RAM的形式被主控操作其内部寄存器的,如控制DM9000的软件复位、唤醒、获取VID和PID等动作.不同于常规IC通过IIC、SPI等常见接口,看看这颗DM9000是如何以RAM的形式被主控访问的.

    2-1.基地址(0x300):

    DM9000内部寄存器并不是直接放在CPU可访问的0地址开始的,而是基于CPU可访问的0地址的0x300的位置处.DM9000一共可以支持8个基地址:300H、310H、320H、330H、340H、350H、360H和370H.有两种方式去决定其基地址:

    一种是"strap pins",即TXD[2:0].如下:

    MINI2440上面的DM9000的TXD[2:0]为空.   

 

    另一种就是从DM9000上面挂载的EEPROM直接LOAD进去的.如下:   

     MINI2440上面的DM9000没有挂载EEPROM.

    默认的基地址为0x300,如下:

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值