基于FPGA的PCI总线接口原理研究与设计

2010-03-05 20:57:24来源: 21ic

  在现代数据采集及处理系统中,ISA、EISA、MCA等扩展总线已无法适应高速数据传输的要求,而PCI局部总线以其优异性价比和适应性成为大多数系统的主流总线。

  PCI总线特点

  PCI总线宽度32位,可升级到64位;最高工作频率33MHz,支持猝发工作方式,使传输速度更高;低随机访问延迟(对从总线上的主控寄存器到从属寄存器的写访问延迟为60ns);处理器/内存子系统能力完全一致;隐含的中央仲裁器;多路复用体系结构减少了管脚数和PCI部件;给于ISA、EISA、MAC系统的PCI扩展板,减少了用户的开发成本;对PCI扩展卡及元件能够自动配置,实现设备的即插即用;处理器独立,不依赖任何CPU,支持多种处理器及将来更高性能的处理器;支持64位地址;多主控制允许任何PCI主设备和从设备之间进行点对点访问;PCI提供数据和地址的奇偶校验功能,保证了数据的完整性和准确性。

  PCI接口开发现状

  目前开发PCI接口大体有两种方式,一是使用专用的PCI接口芯片,可以实现完整的PCI主控模块和目标模块接口功能,将复杂的PCI总线接口转换为相对简单的用户接口。用户只要设计转换后的总线接口即可,缩短了开发周期,缺点是用户可能只用到部分PCI接口功能,这样造成了一定的逻辑资源浪费,也缺乏灵活性,很可能增加板上的组件,导致产品成本的增加和可靠性的降低。二是使用可编程器件,采用FPGA的优点在于其灵活的可编程性,首先PCI接口可以依据插卡功能进行最优化,而不必实现所有的PCI功能,这样可以节约系统的逻辑资源。而且,用户可以将PCI插卡上的其他用户逻辑与PCI接口逻辑集成在一个芯片上,实现紧凑的系统设计。当系统升级时,只需对可编程器件重新进行逻辑设计,而无需更新PCB版图。现在已经有越来越多的用户使用可编程器件如FPGA、CPLD等进行PCI设备的开发。

  本文所论述的PCI接口控制器是作为一个转换接口工作于PCI总线与用户设备之间,也可以认为其主要功能是起一个桥梁作用,完成用户设备与PCI总线间的信息传送。

  PCI接口设计

  在PCI板卡的设计中,核心设计有时序控制和配置空间两部分。时序控制保证了板卡能按正常的PCI时序工作,配置空间部分保证了板卡的即插即用功能。在进行FPGA设计时本设计使用的软件是Altera的MAX+PLUSII,开发芯片是EPF10K20RC240-3。

  ● PCI接口配置空间的实现

  PCI总线定义了3种物理地址空间,分别是存储器地址空间、I/O地址空间和配置地址空间。

  配置空间是PCI所特有的一种空间,其目的在于提供一套适当的配置措施,使之满足现行的和可预见的系统配置机构。配置空间是一长度为256字节并且有特定记录结构的地址空间,可以在系统自举时访问,也可在其他时间访问。该空间分为首部区和设备有关区两部分,设备在每个区中只须实现必要的和与之相关的寄存器。配置空间的基地址寄存器提供了一种为设备指定存储空间或I/O空间的机制。操作系统在启动的时候要判断系统中有多少存储器、系统中的I/O设备需要多少地址空间,然后根据得到的结果,自动配置系统的存储空间和I/O空间,实现设备无关管理。在本设计中,那些只读的配置寄存器通过硬件连线到相应的值,因而不占用宏单元。通过配置寄存器,配置软件可了解目标设备的存在、功能及配置要求。

  (1)厂商ID:此16位的只读寄存器定义了设备的生产厂商,可以使用MACH芯片最初的生产厂商-AMD公司的ID值1022。

  (2)设备ID:该值由生产厂商分配以识别其产品,可为除00000000H和0FFFFFFFFH中的任意值。

  (3)命令寄存器:此寄存器控制了设备响应PCI访问的能力。位1、6、8在本设计中被实现。本设计要求实现对存储空间的访问,位1设置为1,则设备响应PCI对存储器访问;位6控制了设备对奇偶校验错误的响应;当位8被设置为1时,设备能够驱动SERR线,0则禁止设备的SERR输出驱动器。在这里当系统复位后,位1、6、8被设置为0。

  (4)状态寄存器:此寄存器记录了PCI相关事件的信息。在本系统中,位9、10、11、14、15被设计实现。位10∶9为设备选择(DEVSEL#)定时,00B为慢速,01B为中速,10B为快速,11B保留。本设计这两位被硬件连线为01B。当目标设备失败时,位11被设置为1,当发生系统错误时位14置1,发生奇偶校验错误时位15置1。

  (5)基地址寄存器:该寄存器用来映射设备的存储器地址空间,与设备地址空间大小相应的低位被强制为0,因此在配置写交易中,配置软件通过对这个寄存器的所有位写1,然后再读出该寄存器的值来决定设备存储器所占用的地址范围。位0用来定义设备是存储器映射还是I/O映射,在本设计中,位0被设为低以表明目标设备为存储器映射的。

  如需要256字节的存储空间,配置软件写入0FFFFFFFFH,本设备送出0FFFFFF00H,而配置软件再次写入基地址寄存器的值与本设备的0FFFFFF00H相与的结果就是基地址值,如配置软件再次写入0CD000000H则基地址值为0CD000000H。

  (6)类代码寄存器:这个24位的只读寄存器用来说明设备的基本功能和它的可编程接口。这里,此寄存器被强制为018000H,即设备为大容量存储控制器。

  (7)首部类型寄存器:这个只读寄存器的位0~6定义了首部格式,位7说明了设备为单功能还是多功能。首部类型1为PCI-PCI桥定义,首部类型2则用于PCI CardBus桥。在本设计中寄存器被强制为0来显示其为单功能设备且首部类型为0。

[1] [2] [3]

关键字:FPGA  PCI总线接口

编辑:小甘 引用地址:http://www.eeworld.com.cn/FPGA/2010/0305/article_1008.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
PCI总线接口

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved