基于FPGA的CPCI总线接口设计方法的学习探讨

(整期优先)网络出版时间:2017-12-22
/ 2

基于FPGA的CPCI总线接口设计方法的学习探讨

刘静寒

中国电子科技集团公司第三十八研究所安徽合肥230088

摘要:随着科学技术不断发展,新一代嵌入式前端处理中总线速率和CPU处理器技术在多种装备设计制造中不断得到广泛应用。本文立足于在对CPCI总线标准进行深入研究的基础上,对基于FPGA的CPCI总线接口设计方法进行了进一步的学习探讨,并对其接口设计功能进行了简单分析,希望可以在以后的工作中提供一些借鉴作用。

关键词:FPGA;CPCI;总线接口;设计方法

1、FPGA的简介与特点

1.1、FPGA简介

FPGA是英文FieldProgrammablGateArray的缩写,即现场可编程门阵列,它是

在可编程阵列逻辑PAL(ProgrammablArrayLogic)、门阵列逻辑GAL(GateArrayLogic)、可编程逻辑器件PLD(ProgrammabLogicDevice)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。

1.2、FPGA的特点

FPGA具有体系结构和逻辑单元灵活、集成度高以及适用范围宽FPGA等特点。兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC相比,它又具有设计开发什么是周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA。

2、CPCI总线技术国内发展现状

在中国计算机行业协会组织的的PICMG/PRC的倡导和组织下,我国的CPCI技术研制和应用工作近几年取得了突破性的进展。国内这项工作起步较早的有502所、三九佳和、716所、707所、电子部6所、华为、和聚普贤公司等,台湾地区取得较大成功的企业是凌华和研华等。在国内有影响力的从事COCI技术研制的外国企业有ForceComputers、Motorola、Intel等。为了更好的适应CPCI技术的发展需要,推动国内CPCI产业的发展,中国计算机行业协会PICMG/PRC以及中国计算机学会工控机专业委员会在扩大交流,加强技术培训、协调发展方面发挥了重要作用。

从1999年全球不足2000万美元的小行业,发展到2002年20亿美元的产业,预计在2003年将达到32亿美元,短短几年,CompactPCI技术走过了研制、生产、销售、应用、服务的历程,己经在国内形成了完整的运行体系,并保持着良好的发展势头,有效地推动着工业自动化、测量自动化和信息化产业朝着面向未来的标准化、网络化、开放性进步。

3基于FPGA的CPCI总线接口设计方法

3.1基于FPGA的CPCI总线接口设计分析

利用桥片PCI9030FPGA就可以连接CPCI总线,其内部在进行高速数据缓冲的时候主要是采用异步双口RAM来实现的。桥片的信号一共包括本地总线信号、串行EEPROM接口信号以及PCI总线信号。其中的J1、J2的总线信号可以与PCI总线信号实现相互连接,因此不必对其进行特殊处理。由于选择的是与SPI接口规范相符合的串行EEPROM接口,因此能够对相应的IP包进行调用。与本地功能设备的接口使用本地总线信号,其具有简单的操作和简单时序的特点。J1上的INTA必须要连接外设板卡的中断引脚,这样才能够确保可靠有效的中断信号。PCI9030器件需要3.3V的工作电压,然而其提供的VIO信号可以自适应3.3V和5.0V的接口电平。为了能够使卡板上总线受到的CPCI总线的信号线分支的影响得以减轻,就必须要选择串联电阻的方式对总线信号进行匹配。需要设计65×(1±0.1)ΩPCB的布线特征阻抗以及10Ω的匹配电阻。

3.2基于FPGA的CPCI总线接口设计的功能分析

使用PLX—Mon软件工具来对CPCI板卡进行调试,该PLX—Mon软件工具主要是PLX公司生产的。将PLX—Mon软件安装在Windows主板中,能够更加便利的进行调试。在PLX-Mon的安装文件夹中找到EEPROM配置文件,然后加载EEPROM配置文件,将计算机主板启动。“PCI板卡上电之后,EEPROM对桥片进行配置,从而完成系统用于识别PCI卡的vendorID和deviceID两个参数的配置。另外该标识也用于应用程序对PCI板卡进行定位。与此同时还应该为Local端的4个Space配置相应的属性参数和基地址。启动系统之后,根据相关提示将对应的板卡驱动安装好,就可以完成整个的系统架构。进而以功能要求为依据进行固件程序和软件的编写。软件程序是基于Vxworks操作系统下的CPCI板卡的软件开发,该软件的开发是整个软件程序开发的基础。以PCI9030为例,主要有以下几个步骤。

第一,将BSP包制作出来,主要是对CP9030init.c文件和PCI驱动程序进行增加,并且进行内存映射,用内存读写的方式来访问CPCI板卡。本文使用的是映射Localspace0Local,在实际操作中可以在S0~S3中进行选择。在配置寄存器列表的0x18地址单元中存放S0的基地址。

第二,用户程序。也就是读写操作端口地址,端口地址包括FPGA里设计的端口地址(偏移量)和S0的基地址(adress)。要获取端口地址可以使用PciConfigInLong。使用指针操作进行PCI端口操作,这是由于其使用的是内存读写。

第三,中断操作,将LocalConfigRegister列表的基地址得出来。

3.3基于FPGA的CPCI总线接口设计的系统分析

现在设计CPCI总线接口与设计PCI接口采用了相同的方法,一般都会选择两种方案,也就是专用总线接口和可编程逻辑器件。其中可编程逻辑器件主要是以PCI协议为根据使PCI总线接口控制器得以实现,然而由于PCI协议具有非常高的复杂性,因此其具有较长的周期和较大的开发难度,并且无法在较短的时间内保证系统稳定的实现。目前很多开发者都是选择现成的PCI接口器件,其具有很高的通用性和较低的成本,并且可以对数据传输进行优化,将相应的配置空间提供出来,因此其属于一种不仅省时而且省力的方案。选择FPGA+PCI接口芯片构建本系统,其主要由Altera的FPGA芯片和PCI9030共同组成。选择EP2C35F672I8器件作为FPGA芯片,其能够利用硬件描述语言将控制时序信号形成,完成读写地址总线和数据总线,从而实现与CPCI数据总线的通信工作。PCI9030一共提供了3种物理总线接口,也就是PCI总线接口、串行EEPROM接口以及LOCAL总线接口,其同时还包括若干个中断发生器、可编程片选信号、可编程GPIO接口以及LOCAL总线地址到PCI总线空间。

4结束语

作为新型的开放式工业计算机标准,CPCI总线是工业设备和计算机诸多经广泛验证经验融合的结果,基于FPGA的CPCI总路线接口设计结合了欧式卡组装技术和PCI总线技术,其能够完全兼容传统的PCI系统,使设备的抗恶劣环境能力得到大幅提高,其在故障管理、故障切换和冗余设计中也留有很大的空间,因此应用的非常广泛,在项目中发挥了广泛的用途。

参考文献

[1]孙国良.基于FPGA的cPCI接口数据采集系统设计[D].北京邮电大学,2009.

[2]田壮.基于PCI总线的数据采集系统设计[D].中北大学,2013.

[3]韩世川.基于CPCI总线的数字图形I/O设计[D].电子科技大学,2010.

[4]余强力.基于FPGA的SCI串行通信接口的研究与实现[D].厦门大学,2008.