引言
随着CompactPCI在中国大范围的普及和使用,越来越多的企业开始研制基于CompactPCI接口的产品,市场上有一些专用PCI接口芯片。FPGA(现场可编程门阵列)技术的快速发展使得万门以上乃至几十万门逻辑阵列的使用越来越普遍。与专用PCI接口芯片相似,很多FPGA制造商都提供了PCI接口核逻辑。设计者可以将PCI用户逻辑与PCI Core集成在一片FPGA里,并且可以在顶层通过仿真来验证PCI接口以及用户逻辑设计的正确与否,这样可以大幅度提高调试速度、缩短开发周期、提高电路板的集成度和系统的性能。目前,开发者最常用的两种PCI IP核是ALTERA公司的PCI MEGACORE和XILINX公司的PCI Logicore。本文所介绍的PCI_MT64 IP核是ALTERA公司开发的一个功能强大的CPCI接口内核,最高能实现64位的数据宽度和66MHz的工作频率。文章介绍了PCI_MT64的工作原理以及此IP核在CPCI总线数据采集卡的应用设计,并通过本地逻辑设计测试了此IP核的功能。
PCI_MT64 IP核的原理和结构
根据用户性质的不同,CPCI接口类型分为两种:MASTER(主设备) 和TARGET(从设备)。ALTERA公司据此开发了多种 PCI IP核:PCI_MT64、PCI_MT32、PCI_T64和PCI_T32。由于设计需要完成66MHz、64位宽度数据传输,且在主模式下DMA控制器才能工作,因此选择了PCI_MT64。
PCI_MT64是支持33/66MHz工作频率、64位PCI总线、支持主/从模式的PCI IP功能模块。当其宽度为64位、系统时钟为66 MHz时,峰值传输速率为528 MB/s。其主要由8个模块组成,如图1所示。
图1 PCI_MT64的模块结构
参数配置寄存器:提供参数确定的寄存器,包括设备识别、供应商识别、分类代码、修订版本、基址寄存器和子系统供应商等信息。在设计中,ALTERA公司提供了参数化的图形界面,用户只需按PCI协议输入或选择合理的值即可完成该寄存器的配置。
PCI侧地址/数据缓冲模块:用来缓存PCI总线侧的地址数据输入、输出信号。
PCI侧主/从模式控制模块:用于控制PCI总线的主设备和从设备的各种时序操作。
Local侧主/从模式控制模块:用于控制PCI_MT64与本地逻辑的各种操作。
Local侧地址/数据/命令/字节使能模块:接收和输出用户侧的所有地址、数据、命令、字节使能等信号。
奇偶校验模块:用于对数据、地址、命令进行奇偶校验。
PCI_MT64 IP核在CPCI数据采集卡中的应用设计
PCI_MT64 IP核在CPCI数据采集卡中的功能:与CPCI总线之间的通信和数据传输,并做奇偶校验以保证正确性,即将复杂的CPCI总线信号转换为相对简单易操作的CPCI本地总线信号,它从CPCI总线侧获得传输命令和读写数据的地址后,一方面对这个操作命令做出反应,将其传达给本地逻辑,另一方面将CPCI总线传送过来的数据地址映射为本地逻辑可识别的地址。当本地端总线准备好后,PCI IP核会收到本地逻辑做出的响应信号,然后根据主从模式,读/写命令的不同执行相应的时序。简单的说,它是CPCI总线和本地逻辑的桥梁,所以首先要设计CPCI本地侧逻辑实现PCI IP核功能验证,如图2所示。
图2 CPCI本地端逻辑设计
以上设计能快速评估PCI IP核的功能,当PCI_MT64作为一个主设备,主模式控制逻辑连接DMA控制器来完成一次PCI主模式读写传输。当PCI_MT64作为一个从设备,它触发从模式控制逻辑来执行一次从模式传输。CPCI数据采集卡使用DMA方式上传数据,即将数据采集模块的数据处理后,缓存到FIFO,从FIFO中传输数据到上位机;使用从模式写传输发送控制命令到板卡不同寄存器。当进行一次从模式传输时,PCI IP核不能启动总线操作,只能依赖于主设备从其中读取数据或向其传送数据,相关设计较为简单,而DMA模式是PCI_MT64配合自主设计的DMA控制器来实现的,所以DMA控制器是整个设计的关键。[page]
DMA控制器由DMA寄存器和DMA状态机两个模块构成。DMA寄存器是主机控制DMA的窗口,包括控制状态寄存器、地址寄存器、字节寄存器、中断状态寄存器和本地地址寄存器。DMA寄存器的地址直接映射到PCI的地址空间,其基地址对应PCI IP核中的配置寄存器Bar0。主机通过设置在存储器地址空间的DMA寄存器来控制DMA传输。DMA状态机是控制主模式写传输的核心,产生主模式传输需求的各种信号。状态跳转条件来自DMA寄存器,IP核以及DMA FIFO。状态机流程图如图3所示。
图3 DMA状态机
以链式DMA传输为例介绍其流程:主机首先把多组字节寄存器和地址寄存器的值写入描述符FIFO,每一组字节寄存器和地址寄存器就是一个描述符;主机再写本地地址寄存器和控制状态寄存器即启动了DMA状态机,开始链式的数据传输。状态机跳入装载DMA状态,通过对DMA FIFO的读取将需要的值写入寄存器中,经寄存器有效状态进入等待请求状态。当外部FIFO数据准备好,DMA状态机向主机发送总线请求信号,并等待主机的总线允许信号,此时状态机进入等待允许状态;一旦接收到主机的总线允许信号,整个DMA传输开始,状态机也进入数据传输状态。在数据传输周期中,字节寄存器的值逐渐减少直到零时,一个描述符传输完成,每一个描述符传输完成的时候,状态机并不进入结束状态,而是直接进入空闲状态,开始下一次描述符的传输,所以不产生中断。等到DMA FIFO为空的时候,状态机认为本次链式DMA传输完成,进入到结束状态,此时产生中断,一次链式DMA传输结束。
实验调试及分析
PCI_MT64 IP核在CPCI数据采集卡中的应用主要是完成数据的高速传输,包括从模式写传输方式的数据下传(控制命令)和DMA方式的数据上传(采集卡数据)。在QuartusII9.0环境下,运用Megacore PCI Complier对PCI_MT64进行设置,并对CPCI本地端逻辑进行了综合编译,生成网表文件,运用Testbench工具对从模式写传输方式进行仿真,验证了PCI_MT64 IP核的稳定性。其时序仿真如图4所示。
图4 从模式单周期写仿真时序
图4中是一个对地址为8000H的MEM域空间的单周期写操作,在第3个时钟周期,FRAME#低电平有效,此时pci_ad的值是8000H,pci_cben的值是0111B,表示存储器写,在TRDY#和IRDY#同时有效的时候,数据由pci_ad传给l_dato,这里写入的数据是66666666H。由仿真图可以看到,pci_ad和l_dato的数据是一样的,所以从模式单周期写传输正确。单周期读写适合少量数据传输,不同寄存器控制命令的发送及DMA寄存器的设置都是通过从模式下单周期读写实现的。
为测试PCI_MT64 IP核的本地端逻辑设计,调用基于Windriver编写的驱动程序和用户界面实现数据的传输。这样,既验证了CPCI数据采集卡硬件逻辑的正确性,又验证了软件的正确性。其测试结果如图5所示。
图5 应用软件测试界面
图5中数据采样率为500MHz,输入信号频率为16MHz,一个周期的采样点数N=500/16=31.25,故250个点内应有250/31.25=8个周期的数据。采样数据的幅值以十六进制格式在列表框中显示。波形显示了有限数据的连续传输,没有任何数据丢失,验证了基于PCI_MT64 IP核在数据采集卡中采用DMA方式传输数据的完整性及传输速度。
结束语
PCI_MT64 IP核能有效的满足CPCI数据采集卡对数据高速传输的要求,实现CPCI接口功能,并能与用户逻辑配合工作,实现数据的缓存和传输。相较于使用PCI专用芯片实现接口功能的方法,本设计具有电路板集成性能高、功耗低、成本低、方便移植等优点。
关键字:PCI IP核 CPCI总线 数据采集卡
引用地址:PCI IP核在CPCI总线数据采集卡的应用设计
随着CompactPCI在中国大范围的普及和使用,越来越多的企业开始研制基于CompactPCI接口的产品,市场上有一些专用PCI接口芯片。FPGA(现场可编程门阵列)技术的快速发展使得万门以上乃至几十万门逻辑阵列的使用越来越普遍。与专用PCI接口芯片相似,很多FPGA制造商都提供了PCI接口核逻辑。设计者可以将PCI用户逻辑与PCI Core集成在一片FPGA里,并且可以在顶层通过仿真来验证PCI接口以及用户逻辑设计的正确与否,这样可以大幅度提高调试速度、缩短开发周期、提高电路板的集成度和系统的性能。目前,开发者最常用的两种PCI IP核是ALTERA公司的PCI MEGACORE和XILINX公司的PCI Logicore。本文所介绍的PCI_MT64 IP核是ALTERA公司开发的一个功能强大的CPCI接口内核,最高能实现64位的数据宽度和66MHz的工作频率。文章介绍了PCI_MT64的工作原理以及此IP核在CPCI总线数据采集卡的应用设计,并通过本地逻辑设计测试了此IP核的功能。
PCI_MT64 IP核的原理和结构
根据用户性质的不同,CPCI接口类型分为两种:MASTER(主设备) 和TARGET(从设备)。ALTERA公司据此开发了多种 PCI IP核:PCI_MT64、PCI_MT32、PCI_T64和PCI_T32。由于设计需要完成66MHz、64位宽度数据传输,且在主模式下DMA控制器才能工作,因此选择了PCI_MT64。
PCI_MT64是支持33/66MHz工作频率、64位PCI总线、支持主/从模式的PCI IP功能模块。当其宽度为64位、系统时钟为66 MHz时,峰值传输速率为528 MB/s。其主要由8个模块组成,如图1所示。
图1 PCI_MT64的模块结构
参数配置寄存器:提供参数确定的寄存器,包括设备识别、供应商识别、分类代码、修订版本、基址寄存器和子系统供应商等信息。在设计中,ALTERA公司提供了参数化的图形界面,用户只需按PCI协议输入或选择合理的值即可完成该寄存器的配置。
PCI侧地址/数据缓冲模块:用来缓存PCI总线侧的地址数据输入、输出信号。
PCI侧主/从模式控制模块:用于控制PCI总线的主设备和从设备的各种时序操作。
Local侧主/从模式控制模块:用于控制PCI_MT64与本地逻辑的各种操作。
Local侧地址/数据/命令/字节使能模块:接收和输出用户侧的所有地址、数据、命令、字节使能等信号。
奇偶校验模块:用于对数据、地址、命令进行奇偶校验。
PCI_MT64 IP核在CPCI数据采集卡中的应用设计
PCI_MT64 IP核在CPCI数据采集卡中的功能:与CPCI总线之间的通信和数据传输,并做奇偶校验以保证正确性,即将复杂的CPCI总线信号转换为相对简单易操作的CPCI本地总线信号,它从CPCI总线侧获得传输命令和读写数据的地址后,一方面对这个操作命令做出反应,将其传达给本地逻辑,另一方面将CPCI总线传送过来的数据地址映射为本地逻辑可识别的地址。当本地端总线准备好后,PCI IP核会收到本地逻辑做出的响应信号,然后根据主从模式,读/写命令的不同执行相应的时序。简单的说,它是CPCI总线和本地逻辑的桥梁,所以首先要设计CPCI本地侧逻辑实现PCI IP核功能验证,如图2所示。
图2 CPCI本地端逻辑设计
以上设计能快速评估PCI IP核的功能,当PCI_MT64作为一个主设备,主模式控制逻辑连接DMA控制器来完成一次PCI主模式读写传输。当PCI_MT64作为一个从设备,它触发从模式控制逻辑来执行一次从模式传输。CPCI数据采集卡使用DMA方式上传数据,即将数据采集模块的数据处理后,缓存到FIFO,从FIFO中传输数据到上位机;使用从模式写传输发送控制命令到板卡不同寄存器。当进行一次从模式传输时,PCI IP核不能启动总线操作,只能依赖于主设备从其中读取数据或向其传送数据,相关设计较为简单,而DMA模式是PCI_MT64配合自主设计的DMA控制器来实现的,所以DMA控制器是整个设计的关键。[page]
DMA控制器由DMA寄存器和DMA状态机两个模块构成。DMA寄存器是主机控制DMA的窗口,包括控制状态寄存器、地址寄存器、字节寄存器、中断状态寄存器和本地地址寄存器。DMA寄存器的地址直接映射到PCI的地址空间,其基地址对应PCI IP核中的配置寄存器Bar0。主机通过设置在存储器地址空间的DMA寄存器来控制DMA传输。DMA状态机是控制主模式写传输的核心,产生主模式传输需求的各种信号。状态跳转条件来自DMA寄存器,IP核以及DMA FIFO。状态机流程图如图3所示。
图3 DMA状态机
以链式DMA传输为例介绍其流程:主机首先把多组字节寄存器和地址寄存器的值写入描述符FIFO,每一组字节寄存器和地址寄存器就是一个描述符;主机再写本地地址寄存器和控制状态寄存器即启动了DMA状态机,开始链式的数据传输。状态机跳入装载DMA状态,通过对DMA FIFO的读取将需要的值写入寄存器中,经寄存器有效状态进入等待请求状态。当外部FIFO数据准备好,DMA状态机向主机发送总线请求信号,并等待主机的总线允许信号,此时状态机进入等待允许状态;一旦接收到主机的总线允许信号,整个DMA传输开始,状态机也进入数据传输状态。在数据传输周期中,字节寄存器的值逐渐减少直到零时,一个描述符传输完成,每一个描述符传输完成的时候,状态机并不进入结束状态,而是直接进入空闲状态,开始下一次描述符的传输,所以不产生中断。等到DMA FIFO为空的时候,状态机认为本次链式DMA传输完成,进入到结束状态,此时产生中断,一次链式DMA传输结束。
实验调试及分析
PCI_MT64 IP核在CPCI数据采集卡中的应用主要是完成数据的高速传输,包括从模式写传输方式的数据下传(控制命令)和DMA方式的数据上传(采集卡数据)。在QuartusII9.0环境下,运用Megacore PCI Complier对PCI_MT64进行设置,并对CPCI本地端逻辑进行了综合编译,生成网表文件,运用Testbench工具对从模式写传输方式进行仿真,验证了PCI_MT64 IP核的稳定性。其时序仿真如图4所示。
图4 从模式单周期写仿真时序
图4中是一个对地址为8000H的MEM域空间的单周期写操作,在第3个时钟周期,FRAME#低电平有效,此时pci_ad的值是8000H,pci_cben的值是0111B,表示存储器写,在TRDY#和IRDY#同时有效的时候,数据由pci_ad传给l_dato,这里写入的数据是66666666H。由仿真图可以看到,pci_ad和l_dato的数据是一样的,所以从模式单周期写传输正确。单周期读写适合少量数据传输,不同寄存器控制命令的发送及DMA寄存器的设置都是通过从模式下单周期读写实现的。
为测试PCI_MT64 IP核的本地端逻辑设计,调用基于Windriver编写的驱动程序和用户界面实现数据的传输。这样,既验证了CPCI数据采集卡硬件逻辑的正确性,又验证了软件的正确性。其测试结果如图5所示。
图5 应用软件测试界面
图5中数据采样率为500MHz,输入信号频率为16MHz,一个周期的采样点数N=500/16=31.25,故250个点内应有250/31.25=8个周期的数据。采样数据的幅值以十六进制格式在列表框中显示。波形显示了有限数据的连续传输,没有任何数据丢失,验证了基于PCI_MT64 IP核在数据采集卡中采用DMA方式传输数据的完整性及传输速度。
结束语
PCI_MT64 IP核能有效的满足CPCI数据采集卡对数据高速传输的要求,实现CPCI接口功能,并能与用户逻辑配合工作,实现数据的缓存和传输。相较于使用PCI专用芯片实现接口功能的方法,本设计具有电路板集成性能高、功耗低、成本低、方便移植等优点。
上一篇:雷电预警装置
下一篇:几种微型电机驱动电路分析
推荐阅读最新更新时间:2024-05-02 23:55
PCI总线和PCIE总线的差异
由于公司产品一直以X86架构为基础发展,在前几年中一直受到ASIC、NP架构等厂商的攻击,但是随着技术的发展,在PCI-E架构出现后,效率的瓶颈得以突破。 最初PCI总线是32bit,33Mhz,这样带宽为133Mbps。
接着因为在服务器领域传输要求Intel把总线位数提高到64,这样又出现了2种PCI总线,分别为64bit/33Mhz和64bit/66Mhz,当然带宽分别翻倍了,为266Mbps和533Mbps,这个比较通常的名称应该是pci-64,但这好像是intel自己做的,没有行业标准。
稍后一段时间,在民用领域,单独开发出了AGP,32bit,66Mhz,这样带宽为266Mbps,再加上后来A
[嵌入式]
一种跳频MSK信号检测算法及FPGA 实现
引言 采用MSK 调制的跳频通信具有主瓣能量集中、旁瓣衰落滚降快、频谱利用率高和抗干扰能力强等优点,在军事通信中应用广泛。如美军现役的联合战术信息分发系统采用的通信信号,工作带宽969~1 206 MHz,跳频速率为70000 多跳/ s, 单个频点驻留时间约为13 s,信号持续时间* s, 总共有51个间隔为3 MHz 的信道,码速率为5 MHz。已知在该工作频段内主要还存在单频、窄带调幅和线性调频等信号。为了准确截获并识别目标信号,针对此信号环境设计了一种MSK 信号检测识别方法,并使用FPGA 进行了设计实现。 1 算法设计 1.1 宽带跳频信号实时检测算法 用现代技术来实现宽带数字化接收的一个实
[测试测量]
多传感器空气流量测试系统方案
1系统硬件设计 本设计将LabVIW软件、多传感器、计算机结合,构建了一个空气流量测试系统,实现对多传感器信息的融合。系统包括被测对象、传感系统、信号调理电路、数据采集与处理系统,系统框图如图1所示。 1.1被测对象 被测对象通过改变变频器的频率控制风机发出不同大小的风量通过流量传感器,模拟进入发动机的空气流量大小。 1.2传感系统 传感系统主要包括温度传感器、空气流量传感器、玻璃转子流量计及有关连接部分。 1.2.1温度传感器 温度传感器选择集成电路温度传感器LM35,它具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例,并且无需外部校准或微调,可以提供±1/4℃的常用室温精度。 1.2.2空气流量传
[测试测量]
一种单端10-bit SAR ADC IP核的设计
随着集成电路和数字信号处理技术的快速发展,我们可以在数字域里实现比模拟域里更高精度,更快速度,更低价格的各种信号处理功能,因此,模数转换器作为模拟系统和数字系统的接口就变得非常重要。而在各种类型的模数转换器当中,逐次逼近型的模数转换器(SAR ADC)因为其低功耗,中等精度和中高分辨率而得到了广泛的应用。而SARADC从输入来分,可以分为单端输入和双端(全差分)输入。虽然一个双端SAR ADC电路架构可以获得更好的共模抑制比和和较少的失真,而得到了广泛的应用,但在现实生活中对单端的ADC仍有一定的需求,如光栅尺中绝对码道信号的检测。本文则是在一种常见单端SAR ADC电路架构的基础上,对D/A转换器进行了改进,在不增加电容面
[电源管理]
采用8位单片机驱动PCI总线网卡的设计方案
目前,以太网(Ethernet)协议已经非常广泛地应用于各种计算机网络,如办公局域网、工业控制网络、因特网等场合,并且还不断地在发展。单片机或微控制器(MCU)(也称为嵌入式系统)已经在各个领域得到了广泛的应用。目前绝大多数系统都是以MCU为核心,与监测、伺服、指示设备配合实现一定的功能。如果嵌入式系统能够连接到Internet,则可以方便、低廉地将信息传送到世界上的任何一个地方。因此单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP协议连接到互联网,这些都是一些具有挑战性的问题[1,2]。 单片机上网研究最多的一个方案就是用单片机驱动ISA总线网卡或者是驱动基于ISA总线的以太网控制芯片。但是,近年来,随着ISA总线在台
[单片机]
CPCI总线技术在加固计算机的开发平台中的应用
O 引言
目前,CPCI技术已广泛且成功地应用到了许多行业,相关的产品大量涌现,到目前为止,无论是生产厂家的数量、产品的种类和数量,还是系统应用的数量都得到了大幅度增长,越来越多的项目转向CPCI解决方案。
基于以上考虑,我们选用 CPCI总线技术及相关产品作为加固计算机的开发平台。
1 关于CPCI
1.1 CPCI的含义
CPCI的全称为Compact PCI(Compact Peripheral Component Interconnect),中文又称紧凑型PCI,是国际工业计算机制造者联合会(PCI Industrial Computer Manufecmrers
[嵌入式]
一种采用PCI软核的轴角数据采集系统
0引言
在工业控制伺服设备中,实现角度位置量的高精度实时测量和控制是关键性的技术。轴角转换模块是一种角度量/数字转换器,其功能是将旋转变压器及自整角机的模拟信号转换为数字信号,与普通的A/D编码相比,轴角编码采用正、余信号进行编码,抗干扰能力强及转换速度快。随着FPGA技术的发展,在FPGA上能够实现PCI接口。存贮器及逻辑控制功能。由于FPGA具有灵活的可编程性的优点,PCI接口可以依据插卡功能进行最优化,而不必实现所有的PCI功能,这样可以节约系统的逻辑资源,实现紧凑的系统设计。本文介绍采用轴角转换器及Altera公司的FPGA器件实现角度量高速采集的PCI接口板的方法。
1系统硬件设计
轴角数据
[嵌入式]
PCI接口芯片9052及其应用
摘要: PCI9052是PLX技术公司开发的PCI协议从模式接口芯片。介绍了其功能、特点及应用,并说明了其引脚功能及配置注意事项。最后给出了一个开关控制器电路实例,旨在介绍如何利用PCI9052完成由ISA扩展板向PCI扩展板的转换。
关键词: PCI ISA 扩展板 PCI接口芯片9052
PCI(Peripheral Compornent Interconnect,即外围部件互连)总线是一种能为主CPU及外设提供高性能数据总线的局部总线。1992年以INTEL为首的多家集团开始设计PCI总线,其V2.0规范于1993年4月正式发布。PCI总线具有严格的规范,这就保证了它具有良
[应用]
小广播
热门活动
换一批
更多
最新嵌入式文章
更多精选电路图
更多热门文章
更多每日新闻
更多往期活动
- 【在线研讨会】ADI RadioVerse™技术与集成DPD算法的RF收发器AD9375
- TI 中国大学计划20周年——写祝福送好礼!
- 已结束|Maxim IO-Link通信协议设计方案详解,5大优势助你轻松联网!
- 测评有礼!动手实战:全网征集TI毫米波雷达测评者
- 系列二:TI模拟芯片选型指南(参与过系列一活动的也可以参加这期哟)
- ST有奖直播:智能功率开关在工业自动化行业的应用
- 6月6日 Microchip 直播|利用单片机设计安全关键型应用时应采取的最佳实践方法
- MicroPython抢鲜玩 Python遇上MCU=? 由你定
- 报名赢红包,到场抽开发板|2021 RT-Thread 开发者大会等你约!
- 有奖直播:英飞凌工业半导体在电机驱动行业中的应用 2020年4月21日 上午10:00-11:30 准时开启!
11月13日历史上的今天
厂商技术中心