且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器

更新时间:2022-03-10 17:06:12

本节书摘来异步社区《嵌入式Linux软硬件开发详解——基于S5PV210处理器》一书中的第2章,第2.4节,作者:刘龙,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 DM9000A以太网控制器

嵌入式Linux软硬件开发详解——基于S5PV210处理器
为了实现以太网通信功能,Smart210开发板搭载了一片以太网芯片DM9000A,它是一款高度集成、低成本的单片快速以太网MAC控制器,含有通用的处理器接口、10M/ 100M物理层和16KB的SRAM。

该芯片具有如下特点。

支持处理器读写内部存储器的数据操作,命令以字节/字/双字的长度进行。
集成10/100M自适应收发器。
支持背压模式半双工流量控制模式。
IEEE802.3x流量控制的全双工模式。
支持唤醒帧,链路状态改变和远程的唤醒。
内部具有4K双字SRAM。
支持自动加载EEPROM里面生产商ID和产品ID。
支持4个通用输入输出口。
兼容3.3V和5.0V输入输出电压。
100脚LQFP封装工艺。

2.4.1 DM9000A引脚及功能

DM9000A的引脚排列如图2-13所示,各个引脚的功能如表2-8所示。

《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器

2.4.2 DM9000A硬件设计

如图2-14所示,DM9000A的读信号线IOR#、写信号线IOW#分别与S5PV210的读信号控制线XmoOEn、写信号控制线Xm0WEn相连;由于其片选信号CS#与S5PV210微处理器的SROM_BANK1片选信号Xm0CSn1相连,因此DM9000A网络控制器的端口地址的基址(IOAddr)可以为0x88000000开始的0x88000000 ~08FFFFFF空间的任一地址。DM9000的地址信号和数据信号复用,使用CMD引脚来区分,CMD引脚为低的时候总线上传输的是地址信号,引脚为高的时候总线上传输的是数据信号,S5PV210的地址线Xm0ADDR2连接至CMD引脚,通过控制Xm0ADDR2引脚的高低电平来区分S5PV210传输的是地址还是数据。访问DM9000A内部寄存器时,我们需要先将CMD置为低电平,发出地址信号,然后将CMD置为高电平,读写数据。

通过以上分析,DM9000A的地址与数据端口地址分别为如下所示。

ADDR端口地址 = IOAddr + 0x00
DATA端口地址 = IOAddr + 0x04
DATA端口加上0x04是因为DM9000A的CMD引脚连在了CPU的Xm0ADDR2地址线上,当写数据时,此引脚必须为高,所以地址为IOAddr加上0x04,这样既可以选择访问不同的端口,同时也能将端口数据写在两块不同的存储空间。

《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器