微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于接口芯片的PCI总线接口卡的设计

基于接口芯片的PCI总线接口卡的设计

时间:02-11 来源:互联网 点击:

1、引言

  作为对PCI总线在仪器领域的扩展,PXI总线由于具有高性能、低价位等特点,使其在数据采集、工业自动化系统、计算机机械观测系统和图像处理等方面获得了广泛应用。

  但是PXI总线协议十分复杂,其接口的实现比ISA困难得多,直接为它设计相匹配的数字逻辑控制电路难度很大。特别是对于那些没有PCI板卡设计经验的人来说,要想直接设计出能满足要求的PXI模块几乎是不可能的事。而PXI总线的电气规范大部份跟PCI相同,只是增加了一些仪器特性。基于以上考虑,我们决定通过设计一个PCI接口卡来系统地了解利用接口芯片PCI 9030开发PXI模块的过程和方法。

2、硬件设计

  目前实现 PCI 接口的方法主要是采用可编程逻辑器件或采用专用接口芯片。为降低难度,缩短开发时间 ,我们决定采用专用接口芯片来进行接口的开发。因为我们的最终目的是开发PXI模块,所以我们选用了符合PXI性能要求的接口芯片PCI 9030。PCI 9030 是 PLX 公司开发的一种为扩展适配卡推出的高性能目标接口芯片,其符合 PCI2.2 规范,3.3V 核心电压,低功耗,176 引脚 PQFP 或180 引脚 BGA 封装,本地总线可以设置为 8 位、16 位、32 位复用和非复用模式。

  在我们原来的性能测试系统中,功率计模块是基于ISA总线的插件,端口地址是ox100-ox107,数据总线宽度是8位,具有输入输出功能。我们要设计的接口卡所实现的功能相当于一个从ISA总线到PCI总线的转接卡。PCI 9030作为一种桥接芯片,提供了PCI总线、EEPROM和ISA总线三个接口,下面分别介绍各部分的接口电路:

  第一部分是PCI9030与PCI总线的接口。这些信号包括地址数据复用信号AD[31:0]、总线命令和字节使能信号C/BE[3:0]、奇偶校验信号(PAR), 帧周期信号(FRAME#)、主设备准备好信号(IRDY#), 从设备准备好信号(TRDY#),停止数据传送信号(STOP#),初始化设备选择信号(IDSEL), 设备选择信号(DEVSEL#)、数据奇偶校验错误报告信号(PERR#)、系统错误报告信号(SERR#)、时钟输入信号(CLK),复位信号(RST#)、中断信号(INTA#)等。电路连接中,把两边对应的管脚相连就行,中间不需要用电阻隔离。

  第二部分是PCI9030与EEPROM的接口。EEPROM选用NATIONAL公司的NM93CS66L;它是一个4K的低电压串行存储器,用来存储PCI9030的配置信息并在芯片复位时进行加载,从而使PCI板卡具有即插即用的功能。PCI9030有四根信号线用于与EEPROM的连接:EESK, EEDO, EEDI和EECS。

第三部分是PCI9030与ISA总线的接口。

  ISA总线功率计模块的主要信号只涉及到I/0,且为8位宽的数据总线,数据传输只用到端口读写信号IORD#和IOWR#,用A0-A9作为地址译码。在接口芯片的本地端中我们采用非复用模式,地址和数据总线都是8位,所以只需选择LA2、LBE0和LBE1进行地址译码就可以了。

3、EEPROM的配置

  PCI总线能实现“即插即用”是因为它具有一个配置空间。当计算机启动时,BIOS会对每个PCI卡的配置空间进行访问,即自动加载EEPROM内容来获取各个PCI卡的配置信息,并根据这些信息进行资源分配。配置空间是PCI所特有的一个空间,所有的PCI设备必须提供配置空间。

  对EEPROM的配置要根据具体的硬件设备来进行,其配置的正确与否是硬件设备能否正常工作的关键。下面以我所做的接口卡的串行EEPROM内容为例进行介绍。

  首先介绍PCI配置寄存器的配置方法。主要是填写器件ID号、供应商ID号、类码、子系统ID号和子系统供应商ID号等。对于PCI9030,其器件ID号为9030, 供应商ID号为lOB5 ,子系统ID号为9030,子系统供应ID号为10B5,类码号为0680,表示其为桥设备中的其它桥设备类。另外,由于使用到中断INTA#,所以在中断寄存器中要将其值设为0100。

  其次介绍本地配置寄存器的配置方法。PCI9030本质上是一个桥设备,它的作用是把对某一段PCI总线地址空间的各种操作(包括读、写等)转换为相应的本地地址总线的操作。由于在接口卡的本地总线中只用到I/O地址空间,所以我们只需对本地地址空间1的相关寄存器进行配置就行了。本地空间1范围寄存器的值为oxFFFFFFF9,表示I/O空间大小为8个字节, bit0为1表示此空间被映射为I/O空间;本地空间1基地址寄存器的值为ox00000101,表示空间1的基地址为ox100, bit0为1表示空间1使能;本地空间1描述寄存器的值为ox00000022,表示本地空间1的数据总线宽度为8位。本地片选寄存器1的值是ox00000105,表示当本地地址落在ox100-ox107内时,片选信号CS1#有效以用来选择本地总线上的外围设备。对于其它值的含义可参考PCI9030的数据手册,这里就不再一一介绍。图2是PLXmON界面下EEPROM的配置窗口。

4、板卡调试

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top