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进行读写,即模拟用户子卡对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
    +关注

    关注

    1656

    文章

    22290

    浏览量

    630399
  • 控制器
    +关注

    关注

    114

    文章

    17648

    浏览量

    190291
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1398

    浏览量

    119833
  • PMC
    PMC
    +关注

    关注

    0

    文章

    92

    浏览量

    15587
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    重磅升级!PMC-690A新增电机能效测试功能,精准监测,为节能改造赋能

    作为工业生产的主要用电负载,电动机能效水平直接影响生产能耗与成本。然而,传统测试需额外安装传感器,操作复杂、成本高昂且适配性差。PMC-690A便携式电能质量综合分析仪全新升级电机能效测试功能,凭借
    的头像 发表于 11-27 18:04 154次阅读
    重磅升级!<b class='flag-5'>PMC</b>-690A新增电机能效测试功能,精准监测,为节能改造赋能

    3U CPCI视频:专业视音频处理利器

    CPCI6320视频核心特性 总线与兼容性 3U CPCI总线结构,符合5V/3.3V CPCI
    的头像 发表于 11-10 09:59 289次阅读
    3U <b class='flag-5'>CPCI</b>视频<b class='flag-5'>板</b>:专业视音频处理利器

    捕捉真实世界的瞬间:认识CPCI6310复合视频采集

    的摄像头和采集卡就难以胜任了。今天,我们就来认识一位在这些关键领域默默工作的“幕后英雄”: CPCI6310型复合视频采集 。 一、 什么是视频采集?它就像专业的“眼睛”和“记忆大脑” 您可以把它想象成一个高度专业化的“眼
    的头像 发表于 11-10 09:57 170次阅读
    捕捉真实世界的瞬间:认识<b class='flag-5'>CPCI</b>6310复合视频采集<b class='flag-5'>板</b>

    GPS北斗双模-CPCI授时卡

    gps总线
    西安同步电子科技有限公司
    发布于 :2025年10月14日 19:08:46

    B码-CPCI总线授时卡

    gps总线
    西安同步电子科技有限公司
    发布于 :2025年10月14日 19:08:21

    九航星达CPCI6310型复合视频采集使用手册

    CPCI6310:3U CPCI总线,显示分辨率720*576(PAL)/720*480(NTSC)·24位。
    发表于 08-07 17:15 0次下载

    北京九航星达CPCI6320型复合视频播放使用手册

    CPCI6320:3U CPCI 总线,复合视频,S端子视频输出,立体声输出,S/PDIF 数字音频输出。
    发表于 08-04 14:52 1次下载

    九航星达CPCI6320型复合视频播放使用手册

    九航星达CPCI6320型复合视频播放使用手册
    发表于 07-11 15:46 4次下载

    CPCI6310型复合视频采集资料

    CPCI6310型复合视频采集资料
    发表于 07-10 14:07 1次下载

    中科亿海微SoM模组——嵌入式工业现场总线通信控制

    使用中科亿海微FPGA+国产DSP核心与底板架构。FPGA内部调用嵌入式工业现场总线IP核进行设计。FPGA部分实现电流环和速度环,DSP实现位置环控制,DSP
    的头像 发表于 06-24 14:22 570次阅读
    中科亿海微SoM模组——嵌入式工业现场<b class='flag-5'>总线</b>通信控制<b class='flag-5'>板</b>

    PMC-887-N电流差动保护基本功能介绍

    PMC-887-N 的差动保护具备快速动作、高灵敏度和强选择性等特点。通过差动速断保护、比率制动差动保护、谐波制动、CT 断线闭锁等多种功能,能够有效保护电力设备免受内部故障的损害,同时避免外部故障引起的误动,确保电力系统的安全稳定运行。
    的头像 发表于 04-28 10:38 729次阅读
    <b class='flag-5'>PMC</b>-887-N电流差动保护基本功能介绍

    触觉智能RK3506核心,工业应用之EtherCAT总线

    设备间的高精度协同控制与实时通信能力,成为了制造业不可忽视的性能指标。近日,触觉智能RK3506核心带来EtherCAT总线技术,为工业自动化领域提供解决方案。EtherCAT总线EtherCAT
    的头像 发表于 04-11 19:13 789次阅读
    触觉智能RK3506核心<b class='flag-5'>板</b>,工业应用之EtherCAT<b class='flag-5'>总线</b>

    总线汇流有哪些作用特点?

    总线汇流作为一种关键的工业自动化组件,在现代制造业中发挥着不可或缺的作用。它不仅能够优化生产线布局,简化布线工作,还能提高生产效率与系统的灵活性。本文将详细探讨总线汇流的作用特点,
    的头像 发表于 02-28 10:07 1144次阅读
    <b class='flag-5'>总线</b>汇流<b class='flag-5'>板</b>有哪些作用特点?

    如何使用Arduino实现CAN总线通信呢

    的硬件模块实现CAN总线通信。 硬件需求 Arduino :任何支持Arduino IDE的板子都可以,例如Arduino Uno、Mega等。 CAN总线模块 :例如MCP2515或MCP2562
    的头像 发表于 12-23 09:06 2821次阅读

    如何通过PMC_GPIO唤醒AMD Versal™ Adaptive SoC Linux系统

    指导页面和 MPSoC 系统在同一个 Wiki 网页。本文将通过 PMC_GPIO 作为例子来描述如何唤醒 Versal 系统。 Wiki 网页: https
    的头像 发表于 12-17 10:07 1261次阅读
    如何通过<b class='flag-5'>PMC</b>_GPIO唤醒AMD Versal™ Adaptive SoC Linux系统