问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PCI 主要是接什么的端口的.谢谢

发布网友 发布时间:2022-04-20 13:09

我来回答

1个回答

热心网友 时间:2023-07-13 23:06

采用8位单片机驱动PCI总线网卡的设计方案
闫全成,李琦, 杨延西
(西安理工大学陕西 西安710048)

目前,以太网(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网卡简介

?RTL8029是符合Ne2000标准的32位PCI总线网卡,遵循IEEE802.3协议。按功能可将其划分为:接收功能模块、CRC产生模块、发送功能模块、地址识别模块、FIFO控制模块、协议逻辑阵列模块及DMA和缓冲控制模块。对网卡进行编程可以实现局域网内任一站点间的通信。熟悉网卡接口电路是对网卡编程的首要条件。网卡接口电路功能可以分为2部分:一是与计算机PCI总线相连,包括数据总线读写、地址总线驱动、中断控制信号的产生、存储器读写信号以及I/O端口信号的引入等;二是对网卡内部的操作,包括对缓冲SRAM的读写、对RTL8029AS芯片的控制、读站地址PROM及读自举ROM等。通过网卡工作原理的分析,可以将接口信号线减至最少。

以太网相当于一个链路层连接,因此可以把以太网的传输单元称为帧(Frame)。10 Mb以太网的Frame长度为64~1 518 b。其格式如表2所示。

其中前导码是网络适配器发送MAC帧的时候为了使接收适配器辨别出MAC帧开始而加入的码,高层的用户不必考虑。32位CRC,即冗余校检码,是以太网使用的校检机制,现在CRC的生成与检测都可以由网络适配器完成,因此用户也不必考虑这一字段。帧类型,这一字段决定了以太网帧数据使用的是什么协议,如ARP是0x0806,IP是0x0800等。从另一个角度看,这一字段也可以看作以太网帧自己表明身份的字段。因此,在处理MAC帧时,需要根据这一字段的数据来决定将数据传送给哪个上层协议。在IEEE 802?3协议中,这一字段表示以太网数据的长度。由于两个协议在这一字段上的不同定义,所以网络适配卡对这一字段是不做解释的。程序员必须在软件上编程处理这一字段。

3方案设计

(1)本方案设计的硬件结构如图2所示。

系统中用到的主要芯片除了80C51单片机和PCI9054外还有MAX232(串口的电平转换),24C02(I2C总线的E?2PROM),74HC373(8位锁存),62256(32K的RAM),EPM7096(CPLD),93C46(E2PROM,用来初始化PCI9054)。其中62256(外部32K的RAM)可以不用,可以用网卡上的RAM来代替,但是网卡上的RAM的存取比较复杂,速度会比加62256慢。使用外部RAM的目的是提高单片机的数据传输速度和处理复杂的TCP/IP协议。由于以太网的数据包最大可以有1500多字节,80C51单片机是无法存储这么大的包的,只有放到外部的RAM里。同时外部的RAM也用作串行口的输入输出缓冲,以使单片机具有高速的吞吐数据的能力。24C02是I2C总线的E2PROM,用来存储用户的一些设置,比如IP地址、网关等。本方案使用CPLD的目的是,将80C51单片机的8位数据与16位地址转换成32位的数据和地址,因为PCI9054工作在初始化器模式时,他要求本地端的总线是32位的。在这里,用CPLD实现这样一个外部逻辑非常简单。MAX232为串口电平转换电路。数据可以从串口输入到单片机,单片机再把数据通过网卡传出去。

(2) 软件设计

对网卡编程就是对网络接口控制芯片RTL8029AS中各种寄存器进行编程控制,从而完成数据分组的正确发送和接收。所有单片机程序采用C51语言编制,具有可读性强、移植性好、开发周期短的特点。代码的使用效率也比较高。

主程序可以分为PCI9054芯片初始化、网络通讯和串行通讯2部分:PCI9054芯片初始化过程就是对PCI9054芯片的PCI端配置寄存器和本地端配置寄存器进行正确的编程配置,以实现本地端单片机与PCI端网卡的无缝连接,对这2个寄存器既可以通过对93C46烧写编程的方式,也可以通过本地CPU直接编程的方式来完成初始化。网络通讯过程又可分为网卡初始化、发送控制和接受控制3部分。主程序框图如图3所示。

PCI9054芯片初始化过程就是对PCI9054芯片的相关寄存器进行初始化,这些寄存器包括DMRR、DMLBAM、PCICR、CNTRL等。

(1) PCICR〔2∶0〕=111B。允许PCI初始化器(本地端)访问PCI总线。PCI9054能够响应I/O访问。
(2) DMPBAM〔1∶0〕=11。允许PCI初始化器访问PCI9054存储器和I/O端口。
(3) DMRR = FFF00000H。设定PCI初始化器端
(4) 可访问的存储器范围是1MB。
(5) DMLBAI = 40000000H。为PCI InitiatortoPCI I/O Configuration寄存器设定本地端基地址
(6) DMPBAM〔1〕=1。允许本地端I/O端口访问PCI InitiatortoPCI I/O Configuration寄存器
DMCFGA〔23∶0〕=005010,DMCFGA〔31〕=1。

网卡初始化过程对网卡的初始化就是对网卡相关寄存器进行初始化。这些寄存器包括CR,DCR,RBCR PSTART,PSTOP,ISR,IMR,PAR0~PAR5,MAR0~MAR5D等。PSTART接收缓冲区的起始页的地址。PSTOP接收缓冲区的结束页地址(该页不用于接收)。BNRY指向最后一个已经读取的页(读指针)CURR当前的接收结束页地址(写指针)。

(1) CR=0x21:选择页0寄存器,将RTL8029芯片处于离线状态;
(2) DCR=0x8:32位内存访问;
(3) RBCR0=0,RBCR1=0:远程DMA操作时传递字节数清零;
(4) RCR=0xc0,接受到的帧存入缓冲区;
(5) TCR=oxe2:环路测试状态;
(6) PSTART=0x4C,PSTOP=0x80;构造缓冲区;
(7) ISR=0xff;中断寄存器清零;
(8) CR=0x61:选择页1;
(9) 设置网卡地址PAR0~PAR5
(10) 设置多址寄存器MAR0~ MAR5;
(11) CURR=0x4d:初始化当前页寄存器;
(12) TCR=0xE0:发送器正常工作状态。
发送控制过程在网络中,帧传输的过程就是发送方将待发送数据按帧格式要求封装成帧,然后通过网卡发送到网络的传输线上的工程。发送程序框图如图4所示。

接收控制过程帧的接收过程分为2步〔3〕:

第1步有本地DMA将帧存入接收缓冲区中;

第2步由远程DMA将接收缓冲区中的帧读入内存。即将网络上的数据帧接收并存在网卡的接收缓冲区中,然后由主机程序将缓存区中的帧读走并存入内存中。帧的接收工作由网卡自动完成,只需对相关的寄存器和PSTART,PSTOP,CURR和BNRY进行适当的初始化即可。帧读入之前,必须初始化相应的寄存器RSAR,RBCR,然后再启动远程DMA读操作和主机程序的读端口操作。为了获得数据长度,先读入18 B的数据,然后根据有效数据的长度将帧完整的读入。启动远程DMA读操作,应该令CR=0AH,远程DMA将从接收缓冲区的DMA地址处读入1 B并送往I/O数据端口,由主机程序读入内存。

这一过程将一直持续到RBCR寄存器为0。

4结语

本文提出了一种用8位单片机80C51和PCI总线主控I/O加速器芯片9054来驱动PCI总线网卡,实现RS232串行设备与以太网的连接以传送控制信令和数据文件,实现单片机上网的设计方案,设计了相关硬件,编制了相应的驱动程序。整个方案结构简单,实现方便,缩短了开发周期,降低了系统开发成本。

本文摘自《北极星电技术网》
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
用六个成语各造一段话 关于把握机会的名言名句 关于把握住机会的名言名句(把握机会,成就未来) 关于把握机会的名言名句(把握机会的励志句子) 关于机会的名言名句篇一 包括“机遇”的名言名句(一) BPM中国普及之路还有多远? 哪个公司可以做OA系统 目前业内有很多人认为OA现在某些应用或者说功能在向BPM领域延生,请问... ting的三个声调组词 怎样可以从局域网上推系统啊?(不是高手勿进) 也就... psp和pc的英雄传说白发魔女怎么画面查真么多啊 HDI有什么模拟器可以玩?? FC98模拟器游戏 英雄传说4:朱红的泪的版本状况 微信公众号可不可以修改名称? 怎么用PC98模拟器(Anex86)打开一个HDI格式的游戏?... 微信公众号可以改名字吗 微信公众号怎么改名字头像 教大家怎么在PC98模拟器上安装Win95 微信公众平台要重新认证才能改名吗 求PC98的ROM——hdi的解压和打包方法。 微信公众平台账号名称错了可以修改吗? 如何提取pc98的rom的图片? 微信公众平台名称可以修改吗 微信公众号,订阅号,可以改名吗?没认证,只是刚... 修改微信公众号名字必须重新付费认证吗? 微信公众平台想改名字,没有认证,能改吗?需要什... 微信公众号申请后(未认证)认证可以修改名字吗 微信公众号申请后(未认证)还能改名字吗? 你的城府有多深是什么意思? 手机迅雷抱团键位去哪了? 迅雷抱团下载断网了重连还有吗? 迅雷白金会员的订购规则是什么? 迅雷会员的详细规则是什么! 迅雷积分规则 迅雷需要配置什么规则 谁知道迅雷积分规则是什么?谢! 曾经很火的迅雷,现在不火了是什么原因? photoshop蒙版怎么反选 我的电脑在添加打印机时为什么找不到打印机 服务已启动,打印机设备还是找不到 为什么xp电脑找不到打印机设备? 设备管理器里没打印机 打印机安装了驱动 但是找不到设备 也添加不了 爱普生3118打印机手机搜索不到设备 电脑上没有设备和打印机怎么办? 电脑找不到打印机设备,然后打印机安装驱动时候的... 打印机列表中没有相应型号的打印机怎么办 长春乘地铁怎样刷手机 长春地铁,轻轨,公交能用手机刷吗