- 2
- 0
- 约6.06千字
- 约 7页
- 2020-10-22 发布于中国
- 举报
PCI 接口扩展卡的快速开发方案
摘要:介绍了 PCI 总线扩展卡的设计思路和方法,并结合一个多功能 CAN 通信 I/O 卡的设计实例
介绍了 PCI 总线扩展卡的软硬件设计流程,给出了一套快速可行的解决方案。
关键词:PCI 总线 PLX9052 设备驱动程序 Windriver
随着计算机和控制技术的不断发展,很多工程人员都选用 PC 机作为控制系统的操作平台。为了能
够和外部设备通信 PC 机上提供了外置的 USB、串口、并口及内置的 ISA、PCI 等接口。PCI 总线接口
速度快,系统占用率低,有完备的即插即用(PnP)管理体制,是目前计算机插卡式外设总线的事实标
准。
笔者设计了一块 PCI 总线多功能 CAN 通信 I/O 卡,可以完成数字量 I/O、CAN 总线通信的功能。本
文将根据笔者的实际经验,介绍 PCI 接口扩展卡的软硬件设计流程和一种快速开发方案。
1 PCI 总线简介
PCI 总线标准由 PCISIG (PCI Special Interest Group)制定,该组织的成员有 Intel、IBM、DEC
等公司。目前 PC 机中使用的 PCI 总线标准主要以 PCI2.0 为主,其频率为 33MHz,字宽为 32bit,电源
电压为5V。新版的PCI 标准向下兼容,并支持 66MHz 时钟,字宽为 64bit,电压为 3.3V。
PCI 总线是一种时分复用的双向应答总线,传输发起方称为主设备,接收方称为从设备。主设备用
RFAME 信号指示,从设备拉低它的 DEVSEL 线来表示响应传输请求。PCI 总线的数据传输以帧为单位,每
次传输由一个地址周期(Address Phase)和多个数据周期(Data Phase)组成,如图 1 所示。AD0~AD31
首先给出本次传输的首地址,后面紧跟一个或多个 32 位(4 字节)宽的数据,多个数据的地址自动递
增。在地址周期 C/BE0~C/BE3 这四根线的不同组合指示出在 AD0~AD31 上将要进行何种类型的操作
如 C/BE0~C/BE3=0110 表示存储器读 C/BE0~C/BE3=0011 表示 I/O 写。在数据周期 C/BE0~BE3 对应
AD0~AD31 上四个字节的使能。IRDY 和 TRDY 分别表示主设备准备好和从设备准备好。在传输过程中
只有 IRDY 和 TRDY 同时有效,传输才能继续;否则插入等待周期,用于在不同速度的设备之间协调工作。
计算机的接口卡一般会用到 I/O 端口、存储器空间、中断及 DMA 等计算机资源。传统 ISA 接口卡通
过更改跳线来避免多块卡之间的资源冲突 PCI 接口卡则摒弃了硬件跳线,由软件统筹分配资源,这被
称为即插即用。为实现此功能 PCI 协议除了可以对 I/O 空间、存储器空间读写外,还定义了对配置空
间的读写(C/BE0~C/BE3=1010、1011)。所谓配置空间,是指映射到每块接口卡上的256 字节的特殊
功能寄存器。设计者事先在配置空间的指定位置写入需要申请使用的资源量,主板上电后,由 PnP-Bios
读取各卡的配置空间,对它们所需的资源进行统筹分配,再将分配结果写回对应的配置空间地址,完成
自动配置。
2 PCI 接口卡的硬件设计及调试
以笔者设计的PCI 卡为例,使用 SJA1000 实现 CAN 总线通信功能,需要映射 32 字节的存储器空间
和一个中断资源,在功能上属于 PCI 从设备(Target-only DEVICE)。SJA1000 的对外接口电路可以直
接与 Intel8051、8096 及 ISA 总线连接,但是不能与 PCI 总线直接连接,因此需要设备用于逻辑转换的
接口电路。
PCI 接口电路的设计一般有两类方法:一类是使用 FPGA/CPLD 等可编程器件开发逻辑转换电路。根
据实现功能的多少,所需的等效门密度约为 5000~15000 门,可自行编程或者购买已有“软核”(IPCOR
E)的产品实现;另一类是使用标准接口芯片对PCI 总线逻辑信号解码。第一种方法开发成本高、难度大、
周期长、测试设备昂贵,但是批量生产成本很低,适合大规模全定制或半定制 ASIC 的生产。第二种方
法相对简单、开发周期短、性价比合理,适合本方案采用。市场上的接口芯片供应商有 PLX、AMCC、TI
等公司。其中 PLX 公司的接口芯片 PLX9052 价格便宜、供货渠道畅通、功能适用,因此这里选用
PLX9052。
采用 PLX9052
原创力文档

文档评论(0)