0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究CPCI总线的PMC载板设计

电子工程师 来源: 《微型机与应用》 作者:贾 亮 王 浩 叶青林 2021-05-05 16:56 次阅读

摘 要:设计了一种基于CPCI总线标准的PMC接口载板。载板以FPGA为核心,集成了CPCI接口模块和DPRAM(双口RAM)模块,CPCI接口模块采用FPGA+PCI IP核(软核)解决了系统集成的问题,DPRAM模块为系统提供了数据缓存功能。环回测试和中断测试解决了在没有子卡PMC模块的情况下,读写、验证DPRAM空间数据和测试中断响应的问题。此外,还支持子卡PMC模块后出线到CPCI总线。调试结果表明,该载板在嵌入式实时操作系统VxWorks下可以稳定运行,正确地读写DPRAM空间的数据,及时地响应中断,满足了对载板的性能需求。

工业和嵌入式领域实际工程应用中,模块化的设计思想已深入人心。针对不同使用场合的具体应用以及为方便后续的维护和升级,将其中具有通用性和可持续利用的部分单独设计成载板,载板配合不同的应用模块就可以组合成具有不同功能的专业I/O模块。

Compact PCI(Compact Peripheral Component Interconnect)简称CPCI,中文又称紧凑型PCI,是国际工业计算机制造者联合会PICMG(PCI Industrial Computer Manufacturer′s Group)于1994提出来的一种总线接口标准,是以PCI电气规范为标准的高性能工业用总线[1]。CPCI规范改进自PCI电气规范2.1,应用于工业和嵌入式领域。当前最新的CPCI规范是PICMG 3.0。PICMG 3.0主要将应用在高带宽电信传输上,以适应未来电信的发展,PICMG 2.x则仍是目前CPCI的主流,并将在很长时间内主宰CPCI的应用。

PCI夹层卡PMC(PCI Mezzanine Cards)是IEEE P1386.1的标准,作为一个IEEE标准,PMC确保了任何符合该标准的主板或者模块能够与其他按照该标准设计的主板或者模块兼容[2]。这样就为用户提供了很大的柔性,用户可以任意组合和搭配不同的主卡和模块。PMC是个开放标准,它为Multibus II、VME和Compact PCI带来了前所未有的大量I/O产品和高性能。

本文结合实际的工程项目,设计实现一个基于CPCI总线并符合PICMG 2.0规范的6U(233.35 mm×160 mm)通用型PMC载板FTC-C920并开发其在VxWorks 5.5下的驱动软件。

1 载板总体结构设计

本着简洁和通用的前提,此载板主要由电源模块(Power)、PMC接口模块(J11~J14)、CPCI总线接口模块(J1、J4、J5)和FPGA组成,总体结构如图1所示。

9718808777529.gif

2 PMC接口和CPCI总线接口模块设计

PMC接口的特性为:前两个(“P11”和“P12”)用于32位PCI信号,第3个(“P13”)是64位PCI信号需要。一个额外的总线连接器(“P14”),可用于非指定的I/O信号[2]。本设计中,PMC接口模块采用4个(J11~J14)PMC(PCI Mezzanine Cards)8 mm高标准连接器,支持用户子卡PMC后出线到CPCI总线接口J4和J5。图1给出了板卡的CPCI连接器情况,J1用作32位PCI,J4和J5用作后面板I/O,可自定义[1]。

3 FPGA设计

从图2中可以清楚地看到,FPGA主要被设计集成了PCI接口模块(PCI Slave IP CORE)和DPRAM模块。

3.1 PCI接口模块设计

3.1.1 几种PCI接口设计方案及选择

常见的设计方案有:(1)专用的PCI接口芯片+CPLD;(2)ASIC+CORE;(3)专用的FPGA+PCI IP CORE(硬核);(4)专用的FPGA+PCI IP CORE(软核);(5)带PCI接口的DSP[3]。

几种方案各有利弊,本文结合项目的实际应用需求选择了第4种方案,这个方案满足了系统集成的需求,并可自由添加接口逻辑,降低了成本,减小了设计风险。

3.1.2 具体设计

此模块主要实现33 MHz工作时钟、32 bit总线宽度的PCI接口功能,支持内存空间及配置空间的读写和PCI中断功能。

PCI配置空间分配[4]:Vendor ID(厂商号)1206,Device ID(设备号)0920,BAR0(基地址)映射为1 MB内存空间,其中0x0000~0x3FFF为DPRAM空间,0x4000~0x7FFF为DPRAM环回测试空间,0x8000以后为控制寄存器。

正常情况下(配合用户PMC子卡使用时),CPCI通过DPRAM左(L)端口对DPRAM空间进行读写,用户子卡则通过DPRAM右(R)端口对DPRAM空间进行读写;环回测试情况下(即没有用户PMC子卡的情况下),CPCI可以通过环回测试空间对DPRAM进行读写,即interwetten与威廉的赔率体系 用户子卡对DPRAM空间进行读写。

需要注意的是,0x0000~0x3FFF为DPRAM 16 KB空间,对应DPRAM空间大小为8K×16 bit,而0x4000~0x7FFF为DPRAM环回测试空间,不是FPGA另外开辟的RAM空间,只是软件通过这个空间地址在环回测试下读写DPRAM空间(8K×16 bit)。示意图如图3所示。

pIYBAGCFP7mAMRbfAAJjGG6D7-Y337.png

PCI控制寄存器的分配如表1所示。

3.2 DPRAM模块设计

双口RAM模块是FPGA调用内部的IP核实现的,其为数据处理提供缓存功能,总线宽度为16 bit,容量为8 K×16 bit。在没有用户PMC子卡的情况下,为了验证对数据处理的可用性及准确性,通过FPGA逻辑设计支持双口RAM R端口环回自检,如图3(b)中虚线所示,即模拟用户子卡对双口RAM进行读写数据的操作。

CPCI和用户PMC子卡通信采用双口RAM方式,双口RAM用户PMC子卡侧总线定义如表2所示。

pIYBAGCFP9KAPz8nAAETTrWg088055.png

4 VxWorks下设备驱动程序设计

开发此PMC载板Vxworks 5.5下的驱动,硬件选用了Motorola公司的实时主控单板机MCP-750、工控机箱CPX2000 series和此PMC载板FTC-C920,操作系统则选择了美国风河公司的VxWorks嵌入式实时操作系统,使用普通的PC,在Tornado IDE(集成开发环境)下进行驱动的开发。以良好的可靠性和卓越的实时性着称的VxWorks可以满足系统对于高实时性和高可靠性的要求[5]。驱动开发软硬件环境简图如图4所示。

对驱动程序的设计主要有3个部分:载板自检测试模块、FTC-C920和系统控制器互通测试模块以及CPCI中断测试模块。

o4YBAGCFP-SAHyw4AABghDFudK8481.png

4.1 载板自检测试模块

载板自检测试主要是载板检测自身器件是否正常工作,功能是否可以实现。

4.1.1 查找C920载板

对于Vxworks下PCI设备调试来说,其有专门的函数可供调用,查找FTC-C920载板可以通过调用函数pciFindDevice()来实现,它包含在pciConfigShow库函数中,此库函数专门用来帮助显示一些PCI设备的信息。此函数可以根据PCI设备给定的供应商标识(VENDOR ID)和设备标识(DEVICE ID)找到相应的设备,并以此返回设备的总线号(busNO)、设备号(deviceNO)和功能号(funcNO)。

4.1.2 读取FTC-C920上的配置资源信息

根据获得的设备的总线号(busNO)、设备号(deviceNO)和功能号(funcNO),通过调用操作系统库函数pciConfigLib中的函数pciConfigInLong和pciConfigInByte访问C920的配置空间,获得设备映射的内存基地址(memBase)和I/O基地址(ioBase)以及中断号irq,分辨对基地址空间是I/O操作还是内存操作,获得的基地址要分别与存储器屏蔽位PCI_MEMBASE_MASK和I/O屏蔽位PCI_IOBASE_MASK相“与”,才能得到真正板卡的内存基地址和I/O基地址。

4.2 FTC-C920和系统控制器互通测试模块

互通测试主要是:

(1)系统控制器(MCP-750)读取用户PMC子卡数据:用户PMC子卡向双口RAM中写入数据,系统控制器(MCP0750)从双口RAM中读取数据,并验证数据是否正确。

(2)用户PMC子卡读取系统控制器(MCP-750)数据:系统控制器(MCP-750)向双口RAM中写入数据;用户PMC子卡从双口RAM中读取数据,并验证数据是否正确。

由于FTC-C920是通用型PMC载板,为了在没有用户PMC子卡的情况下验证互通测试,在FPGA的设计上进行了支持DPRAM R端口环回自检的设计,如图2中虚线所示。

正常情况下(配合用户PMC子卡使用时),环回测试空间不可使用,此时FPGA内部环回自检控制寄存器的相应位为默认值0。如进行环回自检(没有用户PMC子卡时),需往环回自检控制寄存器的相应位写1,此时,系统控制器可对环回测试空间进行读写。

4.3 CPCI中断测试模块

CPCI中断测试主要是用户PMC子卡通过写寄存器的方式产生CPCI中断;系统控制器响应中断,读取数据并验证数据是否正确。

在没有用户PMC子卡的情况下,可以通过产生内部中断的方式进行测试,具体的方法是在FPGA中设置中断使能寄存器,中断测试寄存器,中断状态寄存器和清中断寄存器。程序流程图如图5所示。

9720046803390.gif

本文详细描述了某项目中PMC载板FTC-C920的设计方法及其在VxWorks操作系统下驱动程序的开发流程。在没有用户PMC子卡的情况下,通过环回测试空间的设计,解决了互通测试的要求,通过中断测试寄存器的设计,解决了中断测试的要求。调试结果表明,此PMC载板在VxWorks 5.5下可以稳定地运行。本文的设计方法具有一定的通用性,可为相关工程威廉希尔官方网站 人员提供可以参考的设计经验。

参考文献

[1] PICMG.PICMG2.0 Rev.3.0. PICMG2.0 D3.0 Compact PCI Specification[S]。

[2] IEEE. IEEE P1386.1.Draft Standard Physical and Environmental Layers for PCI Mezzanine Cards: PMC[S]。

[3] 郑毅。基于PMC(PCI背卡)接口的实时数据采集卡[D]。成都:电子科技大学,2003.

[4] 李贵山,陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社,2003.

[5] 唐晓平,何峰,梁甸农。基于VxWorks的PCI总线驱动设计[J]。嵌入式操作系统应用,2008,11(2):79-81.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603029
  • 控制器
    +关注

    关注

    112

    文章

    16336

    浏览量

    177829
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114649
  • PMC
    PMC
    +关注

    关注

    0

    文章

    89

    浏览量

    14899
收藏 人收藏

    评论

    相关推荐

    XMC 转 CPCI转接卡

    XMC 转 CPCI转接卡是一种用于实现 XMC(Extended Mezzanine Card)接口与 CPCI(CompactPCI)接口相互转换和连接的硬件设备14。以下是关于它的一些
    的头像 发表于 10-09 16:03 203次阅读

    PCI 转 PMC转接卡

    天津拓航科技有限公司自研生产的PCI接口转PMC接口的·载转接卡 PCI2PMC
    的头像 发表于 10-09 15:59 257次阅读
    PCI 转 <b class='flag-5'>PMC</b> 载<b class='flag-5'>板</b>转接卡

    PMC转PXIE载转接卡

    天津拓航科技自研生产的PMC转PXIE载转接卡
    的头像 发表于 10-09 15:32 238次阅读
    <b class='flag-5'>PMC</b>转PXIE载<b class='flag-5'>板</b>转接卡

    CPCI转PCI载转接卡 PCI2CPCI

    CPCI转接卡作为一种关键的转接设备,在实现 PCI(Peripheral Component Interconnect)接口与 CPCI(CompactPCI)接口之间的转换方面发挥着重要作用。  PCI 是个人计
    的头像 发表于 10-09 15:21 308次阅读
    <b class='flag-5'>CPCI</b>转PCI载<b class='flag-5'>板</b>转接卡 PCI2<b class='flag-5'>CPCI</b>

    PCI转PMC转接卡

    PCI接口转PMC接口转接卡
    的头像 发表于 10-08 17:43 256次阅读
    PCI转<b class='flag-5'>PMC</b>载<b class='flag-5'>板</b>转接卡

    pcie转pmc转接卡

    PCIE转PMC转接卡
    的头像 发表于 10-08 17:10 228次阅读
    pcie转<b class='flag-5'>pmc</b>载<b class='flag-5'>板</b>转接卡

    CPCI转PCI载转接卡

    CPCI转PCI载转接卡  
    发表于 09-07 09:37 1次下载

    PMC转PXIE载转接卡

    PMC转PXIE载转接卡
    发表于 09-07 09:36 1次下载

    探索PCI转PMC转接卡:连接不同接口的桥梁

    PCI2PMC转接卡 PMC接口转PCI接口
    发表于 09-06 14:41 0次下载

    解读PCIE转PMC转接卡:跨越接口的桥梁

    电子发烧友网站提供《解读PCIE转PMC转接卡:跨越接口的桥梁.docx》资料免费下载
    发表于 09-06 14:39 0次下载

    解析XMC转CPCI转接卡:连接不同接口的关键纽带

    XMC转CPCI转接卡 CPCI2XMC转接卡
    发表于 09-06 14:37 0次下载

    pmccpci转接卡

    电子发烧友网站提供《pmccpci转接卡.docx》资料免费下载
    发表于 09-06 14:36 0次下载

    探索 PCI 转 PMC转接卡:连接不同接口的桥梁

    在计算机硬件领域,各种接口和总线标准不断演进,以满足日益增长的性能和功能需求。在这个过程中,不同接口之间的转换设备应运而生,其中PCI转PMC转接卡就是一种重要的连接解决方案。PCI转PM
    的头像 发表于 09-04 11:21 402次阅读
    探索 PCI 转 <b class='flag-5'>PMC</b> 载<b class='flag-5'>板</b>转接卡:连接不同接口的桥梁

    CPCI设计与制造:提高可制造性的关键要素

    CPCI总线(中文又称紧凑型PCI)是由PICMG组织于1994年提出的 高性能工业计算机总线标准 。它采用了抗震的Eurocard封装,是标准PCI总线的工业版本。插孔连接器被设计成
    的头像 发表于 03-26 19:04 3210次阅读
    <b class='flag-5'>CPCI</b>设计与制造:提高可制造性的关键要素

    CPCI设计与制造:提高可制造性的关键要素

    数据通信中,CPCI总线可以提供更高的数据传输速率和更低的传输延迟,从而能够满足一些高性能应用的需求。 CPCI-3U和CPCI-6U是CPCI
    发表于 03-26 18:34