采用8位单片机驱动PCI总线网卡的设计方案

目前,以太网(ethernet)协议已经非常广泛地应用于各种计算机网络,如办公局域网、工业控制网络、因特网等场合,并且还不断地在发展。单片机或微控制器(mcu)(也称为嵌入式系统)已经在各个领域得到了广泛的应用。目前绝大多数系统都是以mcu为核心,与监测、伺服、指示设备配合实现一定的功能。如果嵌入式系统能够连接到internet,则可以方便、低廉地将信息传送到世界上的任何一个地方。因此单片机如何控制以太网网卡进行传输数据,如何加载tcp/ip协议连接到互联网,这些都是一些具有挑战性的问题[1,2]。

单片机上网研究最多的一个方案就是用单片机驱动isa总线网卡或者是驱动基于isa总线的以太网控制芯片。但是,近年来,随着isa总线在台式电脑上的消失(pc98以后的标准已经取消了isa总线),isa总线的设备也不断减少,而且很多生产isa网卡芯片的厂家已经停止生产isa网卡芯片。在计算机上,多数设备用的是pci总线,因此如何制造低成本的pci总线的以太网接口设备,如何用单片机来驱动pci总线网卡,已成为目前计算机工业控制系统的燃眉之急。然而用只有16位地址总线、8位数据端口的8位单片机来直接驱动有32位地址数据复用总线及其他各种信号线的pci总线网卡,几乎是不可能的。

为此,本文中采用pci 9054接口芯片作为沟通单片机与pci设备间的桥梁,设计实现了单片机与pci网卡间的可靠通信任务,并提供了主要硬件接口电路和主要程序原代码。

1pci9054芯片介绍[3]

1.1pci9054主要特性

pci9054是由美国plx公司生产的先进的pci i/o加速器,他采用了先进的plx数据管道结构技术。符合pciv2,2规范的32 位33 mhz总线主控接口控制器可获得高达132 mb/s的pci突发传输速度。通用总线主控接口配备先进的数据流水线架构(data pipe architecture(tm)),包含2个dma引擎,可编程目标、起始器数据传输模式和pci信息传输等功能。

1.2pci9054本地总线工作模式介绍

pci9054芯片连接的本地端总线有3种工作模式:m模式、c模式和j模式。可利用模式选择引脚加以选择,其中c模式时序较为简单。为此,本方案设计选择pci 9054工作在c模式。当pci9054工作在c模式时,其数据传输采用直接数据传输方式,按数据传输的控制方式,他又分为3种传输模式,如表1所示。

本方案设计采用pci初始化器模式,通过本地端的单片机来控制pci9054芯片,然后通过pci9054芯片来驱动pci总线上的网卡,在这里pci9054芯片就象一个桥梁,连接了2个不同的总线设备。其读写工作原理如图1所示。

1.3pci9054寄存器简介

pci9054内部提供了5种寄存器:pci配置寄存器,本地端配置寄存器,运行时间runtime寄存器,dma寄存器和i2o信息寄存器。在本方案设计中,我们主要用到2种配置寄存器:pci配置寄存器和本地端配置寄存器,下面对这2种寄存器的功能做简要介绍。

pci配置寄存器也就是我们常说的pci配置空间,他提供了配置pci的一些信息。其中venderid,deviceid,revisionid,headertype,classcode用于pci设备的识别。命令寄存器(command)包含设备控制位,包括允许存储器读写响应等。状态寄存器(status)用于记录pci总线的相关事件。pci配置寄存器提供了6个基地址寄存器,这些基地址都是在系统中的物理地址范围内,其中base0和base1都是用来访问其他配置寄存器的基地址,base1是其他配置寄存器映射到pci端内存的基地址,base2是其他寄存器映射到pci端i/o的基地址。所以可以通过pci端内存和pci端i/o来访问local配置寄存器与其他3种寄存器。base2~5四个空间提供了访问本地端所接的4个芯片(当然可以少于4个),他们将本地端的芯片通过本地端地址(在local配置寄存器中设)翻译成pci的地址,也就是将本地的芯片映射到系统的内存或i/o口。这样使得用程序操作这一段内存(或i/o)实际上就是对本地的芯片操作。

本地端配置寄存器提供了本地端的一些信息,在本方案设计中,主要是通过配置本地端配置寄存器来将本地端的单片机读写指令、周期转换成pci端的读写指令及周期。也就相当于将pci端网卡上的芯片及存储器映射到本地端,与本地端的存储器统一编址,这样单片机只要能访问本地端的内存,那么就能用来访问pci总线上的网卡。

pci9054工作时需要一个配置芯片e?2prom,以便在pci卡上电的时候配置pci 9054,主要配置pci卡的vendorid和deviceid,这是系统用来标识pci卡的。另外,还需要了其他寄存器,主要起到了对pci 9054初始化的作用。其中本地端寄存器也可以由本地cpu读写,直接进行配置。

2rtl8029网卡简介

  • 采用8位单片机驱动PCI总线网卡的设计方案已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计