Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3003810
  • 博文数量: 523
  • 博客积分: 11908
  • 博客等级: 上将
  • 技术积分: 5475
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 15:50
文章分类

全部博文(523)

文章存档

2019年(3)

2013年(4)

2012年(71)

2011年(78)

2010年(57)

2009年(310)

分类: LINUX

2009-08-17 22:20:14

CS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,在嵌入式领域中使用非常常见。它的封装是100-pin TQFP,提供ISA总线接口,内部集成了EEPROM控制器、802.3MAC控制器、片内RAM、10BASE-T收发滤波器,支持IO和内存模式两种模式,可采用DMA方式与主机以8位和16位数据长度进行数据交换,一般在单片机中,使用了CS8900的8位接口模式。
  CS8900网卡工作原理:
  CS8900与ARM芯片按照16位方式连接,网卡芯片复位后默认工作方式为I/O连接,基址是300H,下面对它的几个主要工作寄存器进行介绍(寄存器后括号内的数字为寄存器地址相对基址300H的偏移量)。
  ·LINECTL(0112H)
  LINECTL决定CS8900的基本配置和物理接口。在本系统中,设置初始值为00d3H,选择物理接口为10BASE-T,并使能设备的发送和接收控制位。
  ·RXCTL(0104H)
  RXCTL控制CS8900接收特定数据报。设置RXTCL的初始值为0d05H,接收网络上的广播或者目标地址同本地物理地址相同的正确数据报。
  ·RXCFG(0102H)
  RXCFG控制CS8900接收到特定数据报后会引发接收中断。RXCFG可设置为0103H,这样当收到一个正确的数据报后,CS8900会产生一个接收中断。
  ·BUSCT(0116H)
  BUSCT可控制芯片的I/O接口的一些操作。设置初始值为8017H,打开CS8900的中断总控制位。
  ·ISQ(0120H)
  ISQ是网卡芯片的中断状态寄存器,内部映射接收中断状态寄存器和发送中断状态寄存器的内容。
  ·PORT0(0000H)
  发送和接收数据时,CPU通过PORT0传递数据。
  ·TXCMD(0004H)
  发送控制寄存器,如果写入数据00C0H,那么网卡芯片在全部数据写入后开始发送数据。
  ·TXLENG(0006H)
  发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过PORT0写入芯片。
  以上为几个最主要的工作寄存器(为16位),CS8900支持8位模式,当读或写16位数据时,低位字节对应偶地址,高位字节对应奇地址。例如,向TXCMD中写入00C0H,则可将00h写入305H,将C0H写入304H。
阅读(1705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~