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

简介:

本节书摘来异步社区《嵌入式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所示。

11904325cdf06d0c3ae0175001a793c68fbd808c 66916d13ecc5f1a4e665a3042ef6adac06bc85e6 e9b029c4b96966b6fd95eeb76a2c40633433e888

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,这样既可以选择访问不同的端口,同时也能将端口数据写在两块不同的存储空间。

ce2da4ccbdb64d3837e8b9f1166cdcbf49d84911
相关文章
|
1月前
|
消息中间件 存储 缓存
【嵌入式软件工程师面经】Linux系统编程(线程进程)
【嵌入式软件工程师面经】Linux系统编程(线程进程)
57 1
|
2月前
|
JSON 机器人 Linux
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
84 3
|
2月前
|
Linux Shell
嵌入式Linux系统脚本小技巧之启动脚本
嵌入式Linux系统脚本小技巧之启动脚本
31 2
|
1月前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
49 1
|
27天前
|
Unix Linux 异构计算
用于实时 Linux® 的 TwinCAT Runtime,基于 Linux® 的实时控制器开辟了新的应用可能性
**TwinCAT Runtime for Linux®** 打开了倍福实时控制的新领域,支持在同一PC上运行多个独立实例,促进硬件整合和效率提升。基于Debian的定制Linux发行版,内置实时内核,允许GPU驱动的高速应用如机器视觉。利用Docker等容器技术,实现模块化控制和资源优化,降低工程成本。此发行版将逐步扩展到更多倍福设备,为Linux用户提供熟悉的TwinCAT编程环境和增强的灵活性。
|
1月前
|
边缘计算 安全 物联网
【网卡可能存在的后门】以太网控制器IP核中的潜在安全威胁与自主化思考
本文探讨了2011年作者在FPGA上开发以太网控制器时发现的一个潜在后门。该后门利用以太网协议的特性,通过特定数据触发网卡进入死亡模式,持续产生中断,导致设备无法正常关闭,对无操作系统的嵌入式设备构成威胁。尽管有操作系统的设备受此影响较小,但WiFi网卡可能因广播攻击而受影响。作者强调网卡安全的重要性,认为其比CPU更需自主化,并指出防止CPU后门的关键在于确保驱动和代码无后门,而非仅仅自主化CPU。
|
1月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
30 4
|
1月前
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
21 1
|
1月前
|
存储 缓存 Unix
【嵌入式软件工程师面经】Linux文件IO
【嵌入式软件工程师面经】Linux文件IO
24 1
|
2月前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
该文指出了学习嵌入式Linux开发的两个常见误区。一是过分专注于学习桌面或服务器版Linux,而非关注嵌入式开发本身,实际上只需熟悉基本操作即可。二是试图在没有基础的情况下直接阅读Linux内核源代码,这是不切实际的,应先建立基础知识再进行源码学习。文章还提到了在嵌入式系统中获取和处理屏幕数据的示例,包括使用gsnap工具将framebuffer数据转为图像,以及涉及的交叉编译过程。
26 0