zoukankan      html  css  js  c++  java
  • 网卡搭建

    <网络模型>

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

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

    控制字详情

    中断状态寄存器

    控制字详情

  • 相关阅读:
    js 设计模式
    jquery 概述
    Node.js最新Web技术栈(2015年5月)
    this
    gulp
    bootstrap modal
    jsTree问题
    iterm2 学习笔记
    knowledge_map 修改笔记
    handsontable 问题
  • 原文地址:https://www.cnblogs.com/big-devil/p/8589434.html
Copyright © 2011-2022 走看看