• 网卡搭建


    <网络模型>

    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状态寄存器

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

    控制字详情

    中断状态寄存器

    控制字详情

  • 相关阅读:
    PHP中几种加密形式
    PHP 常用的header头部定义汇总
    php二维数组排序方法(array_multisort,usort)
    js刷新当前页面的几种方法
    chosen.jquery插件的使用
    [NOI2006] 网络收费
    [NOI2002] 贪吃的九头蛇
    [NOI2013] 向量内积
    [TJOI2019] 甲苯先生的线段树
    [CF750G] New Year and Binary Tree Paths
  • 原文地址:https://www.cnblogs.com/big-devil/p/8589434.html
Copyright © 2020-2023  润新知