ARM学习之网卡DM9000详解

一口Linux
关注

从0学arm系列继续更新两篇,这是第一篇,下一篇是uboot中的网络协议栈详解。

一、网卡 

1. 概念

网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以通过电缆或无线相互连接。

每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。这是因为电气电子工程师协会(IEEE)负责为网络接口控制器(网卡)销售商分配唯一的MAC地址。

网卡上面装有处理器和存储器(包括RAM和ROM)。网卡和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的。而网卡和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行。

因此,网卡的一个重要功能就是要进行串行/并行转换。由于网络上的数据率和计算机总线上的数据率并不相同,因此在网卡中必须装有对数据进行缓存的存储芯片。

网卡以前是作为扩展卡插到计算机总线上的,但是由于其价格低廉而且以太网标准普遍存在,大部分新的计算机都在主板上集成了网络接口。

这些主板或是在主板芯片中集成了以太网的功能,或是使用一块通过PCI (或者更新的PCI-Express总线)连接到主板上的廉价网卡。

除非需要多接口或者使用其它种类的网络,否则不再需要一块独立的网卡。甚至更新的主板可能含有内置的双网络(以太网)接口。

2. 主要功能

1、数据的封装与解封发送时将上一层传递来的数据加上首部和尾部,成为以太网的帧。接收时将以太网的帧剥去首部和尾部,然后送交上一层

2、链路管理主要是通过CSMA/CD(Carrier Sense Multiple Access with Collision Detection ,带冲突检测的载波监听多路访问)协议来实现

3、数据编码与译码即曼彻斯特编码与译码。其中曼彻斯特码,又称数字双向码、分相码或相位编码(PE),是一种常用的二元码线路编码方式之一,被物理层使用来编码一个同步位流的时钟和数据。在通信技术中,用来表示所要发送比特 流中的数据与定时信号所结合起来的代码。常用在以太网通信,列车总线控制,工业总线等领域。

3. 分类按总线接口类型分按网卡的总线接口类型来分一般可分bai为ISA接口网卡、PCI接口网卡以及在服务器上使用的PCI-X总线接口类型的网卡,笔记本电脑所使用的网卡是PCMCIA接口类型的。(1)ISA总线网卡(2)PCI总线网卡(3)PCI-X总线网卡(4)PCMCIA总线网卡(5)USB总线接口网卡按网络接口划分除了可以按网卡的总线接口类型划分外,我们还可以按网卡的网络接口类型来划分。网卡最终是要与网络进行连接,所以也就必须有一个接口使网线通过它与其它计算机网络设备连接起来。不同的网络接口适用于不同的网络类型,目前常见的接口主要有以太网的RJ-45接口、细同轴电缆的BNC接口和粗同轴电AUI接口、FDDI接口、ATM接口等。而且有的网卡为了适用于更广泛的应用环境,提供了两种或多种类型的接口,如有的网卡会同时提供RJ-45、BNC接口或AUI接口。(1)RJ-45接口网卡(2)BNC接口网卡(3)AUI接口网卡(4)FDDI接口网卡(5)ATM接口网卡按带宽划分随着网络技术的发展,网络带宽也在不断提高,但是不同带宽的网卡所应用的环境也有所不同,目前主流的网卡主要有10Mbps网卡、100Mbps以太网卡、10Mbps/100Mbps自适应网卡、1000Mbps千兆以太网卡四种。(1)10Mbps网卡(2)100Mbps网卡(3)10Mbps/100Mbps网卡(4)1000Mbps以太网卡

二、DM9000

DM9000芯片是DAVICOM公司生产,DM9000A 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。

一个 10/100M PHY 和 4K 双字的 SRAM 。它是出于低功耗和高性能目的设计的,其 IO 端口支持 3.3V 与 5V 容限值。

DM9000A 为适应各种处理器,提供了 8 位、16 位数据接口访问内部存储器。

DM9000A物理协议层接口完全支持使用 10MBps 下 3 类、4 类、5 类非屏蔽双绞线和 100MBps 下 5类非屏蔽双绞线。这是完全遵照 IEEE 802.3u 标准。

它的自动协商功能将自动完成 DM9000AE配置以使其发挥出最佳性能。

它还支持 IEEE 802.3x 全双工流量控制。

1. 模块图

图1 DM9000内部结构框架

EEPROM Interface接口用于存放mac地址,Internal SRAM用于存放收发数据,MII部分把MAC部分与PHY部分连接起来通信,AUTO-MDIX用于自适应10/100M网络,在物理层上,MAC在PHY之下。

2. 引脚分析

(#:表示低电平有效)

开发板FS4412的网卡DM9000A连接到了SROM控制器,下面我们分析数据线、地址线和信号线连接

1) SD0~15

SD0~15: 16位数据线连接到引脚BUF_B_Xm0DATA[0:15],由CMD引脚决定访问类型。

可见数据和地址线都连接到了SOC的XM0上。

数据线和信号线对应的SROMC的引脚如上图。

2)  CMD dm9000       外围电路             转换电路         soc
 CMD--------BUF_B_Xm0ADDR2--------Xm0ADDR2-----Xm0ADDR2

如下图所示:CMD:      命令线,当CMD为高,表示SD 传输的是数据,CMD为低表示传输的是地址,接在exynos4412的BUF_B_Xm0ADDR2上,可见CMD复用了地址线Xm0ADDR2引脚。

3)  IOR#、IOW# dm9000       外围电路         转换电路    soc
 IOR--------BUF_Xm0OEn--------Xm0OEn-----Xm0OEn
 IOW--------BUF_Xm0WEn--------Xm0WEn-----Xm0WEn  

4) CS# dm9000       外围电路         转换电路    soc
 CS--------BUF_Xm0cs1--------Xm0cs1-----Xm0CSn1

CS#:片选,放在exynos4412的Bank1的片选上面,内存基地址是0x05000000。

我们的DM9000A是放在exynos4412的Bank1(0X05000000)的片选上面。

而DM9000的CMD引脚接在Bank1的LADDR2上面

读写DM9000A的地址CMD拉低, 此时向0X05000000地址上读写的数据便是DM9000A的内部寄存器地址

读写DM9000A的数据CMD拉高,此时向0X05000000+4地址上读写的数据便是DM9000A的数据

设置exynos4412的bank1的硬件位宽,时序,因为不同的硬件,涉及的数据收发都不同。

5)  INT#

中断线DM9000_IRQ通过U8转接到引脚XEINT6

由上图可知中断引脚INT,接在exynos4412的GPX0_6脚上。uboot中的DM9000A的驱动没有用到中断。

3. 复用GPIO引脚

XM0引脚复用了GPIO引脚,所以需要初始化对应的GPIO引脚来使能SROMC。

1) GPY0CON

2) GPY1CON

3)GPY3CON

4) GPY5CON

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存