Chinaunix首页 | 论坛 | 博客
  • 博客访问: 467186
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1957
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-07 23:02
文章分类

全部博文(56)

文章存档

2016年(1)

2014年(7)

2013年(48)

分类: 嵌入式

2013-07-09 20:51:46

5章 网卡驱动

5.1 概述

本章将通过AM79C97X网络通信芯片的例子来说明网卡的驱动原理。该通信芯片不仅具有网络通信功能,而且还建有PCI接口控制管理功能。在操作系统通过对AM79C97XPCI接口的自动配置为该设备分配内存资源和IO资源,这些内存资源和IO资源将是CPU控制AM79C97X网络通信芯片的主要的主要通道。

4.1列出了AM79C97X芯片的PCI配置寄存器。在配置寄存器的10h地址记录了该PCI设备对IO资源的要求:32字节;在配置寄存器的14h地址记录了该PCI设备对内存资源的需求:32字节。其实这两个地址所映射的内容是一样的,即CPU控制AM79C97X芯片的主要接口。一般来说既有IO接口又有内存接口的情况下,首先选用内存接口,因为内存接口访问速度要远高于IO接口。

5.1列出了映射到内存空间的32字节所对应的含义。

表格 5.1 am79C97x

偏移

字节数

寄存器

00h~0Fh

16

APROM

10h

2

RDP

12h

2

RAP

14h

2

Reset Register

16h

2

BDP

18h~1Fh

8

保留

其中APROMAM79C97X芯片外接一个串行的EEPROM,在H_RESET信号之后,EEPROM的内容会自动读入到AM79C97X芯片的相应位置,其中头16字节会自动读入APROM空间。表5.2列出了APROM空间的数据结构。

表格 5.2 APROM空间的数据结构

偏移

字节数

寄存器

00h~05h

6

MAC地址

06h~0Bh

6

保留

0Ch~0Dh

2

checksum

0Eh

1

'W'

0Fh

1

'W'

RAP为寄存器地址端口。在AM79C97X芯片中除了配置寄存器之外,还有两类寄存器:CSR(配置和状态寄存器)、BSR(总线状态寄存器)。要访问CSR寄存器时,首先在RAP寄存器中写入CSR寄存器的地址,然后直接访问RDP就完成了相应CSR寄存器的访问。BSR的访问原理相同。其中RDP用于控制AM79C97X芯片以及状态的获取,BDP用于配置总线接口单元以及LED指示灯的控制。关于BSRCSR寄存器的详细内容可以参考AM79C97X的数据手册。

复位寄存器:对复位寄存器的读操作将激发AM79C97X芯片产生一个软件复位操作。

阅读(3698) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~