网卡搭建

<网络模型>

OSI七层模型

特点:过于复杂

应用层——表示层——会话层——传输层——网络层——数据链路层——物理层

作用:数据传输的时候按照每层的协议对数据进行封装

 

Linux四层模型

特点:相对来说简单

(应用层/表示层/会话层) ———传输层———网络层————(数据链路层/物理层)

       应用层—————————传输层————IP层—————网络接口层

 

<网卡硬件结构>

硬件总他架构

 

注意:网卡的实质就是MAC通过MII接口控制PHY的过程。

网卡中最主要的几个部分:

MAC:数据数据链路层

作用分析:主要负责数据帧的构建,数据差错检验,传输控制

 

 

PHY:属于物理层

作用分析:PHY是物理接口收发器,属于物理层,当收到MAC发过来的数据,他就会加上校验码,然后根据物理层的规则对数据进行编码。再发送到传输介质。

 

 

MII接口(media independent interface):媒体独立接口,表明MAC独立的情况下,phy都可以独立工作。

 

 

<DM9000工作特性>

编程接口:DM9000没有提供可可直访问的编程接口,只是提供了INDEX和数据接口,如果想要 访问其中的寄存器,只能往INDEX中写入偏移地址。旺数据寄存器中写入相应的数据。后面的过程由网卡自动处理。

片选:DM9000是一个独立于CPU系统以外的硬件,想要访问这个硬件,就必须提供片选信号。

 

DM9000:

2440INDEX地址:20000300

其中的2000000DM9000的片选地址。

 

300来自于其IObase

 

注意:(GCS4

 

2440中的数据地址:20000304

2440中数据传输和地址传输,都是使用的引脚(SD0-SD15,在某个时间段使用的是数据还是地址,就使用的一个叫做CMD的引脚来区分。

CMD=1 使用数据端口

CMD=0 使用地址端口

 

这就是数据地址为什么比地址地址大4的原因。

 

 

《网卡驱动》

<片选>

总线宽度和等待状态寄存器

 

控制字详情(片选4数据宽度)

 

bank4控制寄存器

作用分析:

用于初始化片选的时序信号

 

 

<中断初始化>

 

由上图可以知道DM90000接的是EINT7中断源 。

 

 

由上图可以知道需要将该GPIO引脚配置成中断功能。

 

GPF引脚控制寄存器

 

控制字详情

 

外部中断控制寄存器

EXTINT(externale interrupt control register)

 

控制字详情(设置成高电平触发)

 

总的中断屏蔽寄存器

 

控制字详情(使能EINT4_7

 

扩展中断屏蔽寄存器

 

控制字详情(使能EINT7)

 

中断状态寄存器

作用分析:

用于表示前一个中断是否处理完成

 

控制字详情:

 

总中断状态寄存器:

用于表示前一个中断是否处理完成

 

控制字详情(注意清零是往里面写1,这一点有点不一样)

 

 

<复位网卡>

GPSR控制寄存器偏移地址

 

控制位详情

 

GPR控制字详情

 

 

NCR控制寄存器偏移地址

 

控制字详情

 

<捕获网卡>

网卡信息数据的寄存器偏移地址

 

产品信息详情

 

<MACA初始化>

SMCR寄存器

 

控制字详情

 

<填充MAC地址>

 

由上图可知MAC地址是一个唯一的地址,总共分为六个段

 

DM9000中的屏蔽寄存器

作用分析:

在数据发送的过程中,不想被中断,所以屏蔽中断器,在DM9000内部就有该寄存器,所以不用设置INTMSK这个寄存器

 

控制字详情

 

DM9000中数据待发送寄存器

作用分析:

将要发送的数据写入该寄存器中,DM9000就会将该数据写入DM9000RAM

 

发送控制寄存器

作用分析:

用于启动发送

 

控制字详情

 

DM9000状态寄存器

作用分析:
用于将清除发送状态

 

控制字详情

 

中断状态寄存器

 

控制字详情

 

posted @ 2018-03-17 13:58  流浪的Coder  阅读(322)  评论(0编辑  收藏  举报