PXI总线的数据传输接口设计与实现_第1页
PXI总线的数据传输接口设计与实现_第2页
PXI总线的数据传输接口设计与实现_第3页
PXI总线的数据传输接口设计与实现_第4页
PXI总线的数据传输接口设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 PXI总线的数据传输接口设计与实现 0 引言 随着无线通信业务的飞速发展,频谱资源显得越来越缺乏,而实际中像广播电视等频段的频谱利用率却并不高,提高频谱的利用率成为一种共识。认知无线电是一种按伺机方式充分利用频谱的共享频谱技术,因此可以用来提高频谱利用率。快速准确的数字频谱分析对认知无线电的频谱感知有非常重要的影响。在认知无线电系统中,数字频谱分析仪与下的处理模块的数据传输速率是制约认知无线电系统处理速度的一个瓶颈,因此需要选择一种高速稳定的数据传输接口技术。 本文利用 PXI 总线技术来实现数字频谱分析仪与下处理模块的数据传输接口。PXI是CompactPCI

2、 extend for Instrumentation 的简称,即面向仪器系统的PCI 扩展,由NI(美国国家仪器公司) 于1997 年10 月率先推出。它将CompactPCI 规范定义的PCI 总线技术发展为适合于工业控制、测量、数据采集和试验应用的电气、机械和软件规范,从而形成了新的虚拟仪器体系构造。PXI 总线是一种高性能的32 /64 位地址数据复用总线,支持突发传输,是一种牢固的基于PC 的测量和自动化平台, 它的数据传输速率的峰值于33 MHz、32 bit 的总线上可达132 MB/s; 于66 MHz、64 bit 的总线上则可高达528 MB/s,远高于GPIB (Gene

3、ral-Purpose Interface Bus,通用接口总线)与VXI (VME bus eXtension for Instrumentation,面向仪器系统的VME 总线的扩展)接口的传输速率。基于PCI 总线发展而来的PXI 系统具有较好兼容性、存取延时小、成本低等优点。PXI 总线数据传输接口以其高传输速率和稳定可靠的传输性能得到了越来越广泛的应用。 PXI 总线协议比较复杂, 工程应用中一般采用两种方式, 一是采用FPGA(FieldProgrammable Gata Array,现场可编程门阵列)来设计控制接口, 缺点是控制接口难度较大、开发周期长、成本大; 二是采用接口芯片

4、, 将复杂的PXI 总线接口转换为相对简单的用户接口, 用户只要设计转换后的总线接口。本文采用PXI 总线专用接口芯片PCI9054 来实现PXI总线的数据传输。 1 PCI9054 接口芯片 PCI9054 是PLX 公司提供的一款PCI 专用接口芯片,它兼容PCI V2.2 的协议规范。其内部构造图如图1 所示。由图可知,PCI9054 实现的是PCI Bus 端和Local Bus端的信号转换,使得Local Bus 端不需要开展复杂的PCI 协议逻辑的设计,只需要开展简单的数据传输逻辑的设计就能实现符合PCI 协议规范的信号生成。 图 1 PCI9054 内部构造示意图 PCI9054

5、 内部状态机给用户提供了三种传输方式:PCI Initiator 传输方式、PCI Target 传输方式以及PCI DMA 传输方式。PCI Initiator 传输方式下,PCI9054 成为PCI Bus 端的主机,同时是Local Bus 端的从机,由Local Bus 端主动发起数据传输,PCI9054 被动后再主动向PCI Bus 发起传输。PCI Target 传输方式下PCI9054 的角色刚好与PCI Initiator 方式相反,成为PCI Bus端的从机以及Local Bus端的主机。而在PCI DMA方式下PCI9054同时是PCI Bus端和Local Bus 端的主

6、机。在PCI9054 内部分别提供了这三种传输方式下的内部存放器,方便设计者来对每一种传输方式开展配置。 PCI9054 的本地端支持可编程的特点,通过两个模式选择管脚MODE来设置LocalBus 端分别工作在C 模式、J 模式、M 模式。这样可以使得PCI9054 的Local Bus 可以挂载不同类型的其他设备。 PCI9054 提供了两个独立的可编程DMA (Direct Memory Access,直接存储器存取) 控制器;每个通道均支持块和分散/集中的DMA 方式;在PCI 总线端支持32 位的数据位宽,时钟速率到达33MHz;本地端可以编程实现8、16 或32 位的数据宽度;传输

7、速率可达132MB/s;本地总线端时钟可达50MHz 支持复用/非复用的32 位地址数据。 欲了解更多信息,请登陆维库技术资料/data 2 接口电路设计 PXI 总线接口电路的设计主要是对PCI9054 芯片的外围电路开展设计,主要包括四个部分:电源方案的设计、时钟方案的设计、EEPROM 电路的设计,Local 端的连线方案设计。 PCI9054 芯片的正常工作电压是3.3V,而在上位机的PXI 接口中,提供了三种电压,3.3V、5V 和12V,因此PCI9054 的供电完全可以由上位机来提供。设计中,可以增加一个外部电压的接入接口,方便开发过程中的调试。 PCI9054 芯片需要两个工作

8、时钟,一个是PCI Bus 端的工作时钟,一个是Local Bus 端的工作时钟,这两个工作时钟是独立的,均需要外部逻辑输入。PCI Bus 端的工作时钟由上位机的PXI 接口提供,主要在PCB(Printed Circuit Board, 印刷电路板);布线的时候需要对该时钟线开展蛇形走线处理。Local Bus 端的工作时钟由晶振提供,本方案中采用50MHz 的晶振。 EEPROM 电路的设计中需要注意EEDI 和EEDO 两个管脚的连接,电路原理图如图2所示。注意在没有挂载Local 端的设备同时又没有EEPROM 时,EEDI 和EEDO 需要通过一个1K的电阻拉低。设计中,往往需要加

9、上一个EEPROM 用来存储对PCI9054 芯片的内部存放器的设置。这些设置在每次上电时自动开展加载,对PCI9054 芯片的内部存放器开展配置,使得每次上电后,PCI9054 能按事先所配置的方式工作。因此,在设计电路完成之后还需要对EEPROM 的内容开展设置,并通过PlxMon 工具写入。 图 2 EEPROM 电路设计原理图 在 Local 端的连线方案设计中,需要注意两点:一是本地时钟的接入,本地时钟作为PCI9054 识别Local 端是否有设备的依据,若在EEPROM 的EEDI 和EEDO 没有下拉的情况下,一定要接入本地时钟,不然连接上位机后,上位机进入不了系统。二是若需要

10、用到PCI Initiator 传输方式,则必须将LBE#全部拉低,否则就会造成读写出现上位机死机现象。 3 接口程序设计 由于数据传输接口涉及到数字频谱仪和上位机,其程序设计也包括两个部分:一部分是数字频谱仪端的程序设计,即PCI9054 Local 端的程序设计,由于本项目中在PCI9054 的Local端挂载的是FPGA 芯片,需要在FPGA 中开展Local 端的接口逻辑程序设计;另一部分是上位机端的程序设计,主要是基于操作系统的驱动程序以及上层应用程序设计。 3.1 FPGA 程序设计 FPGA 程序的设计主要是对PCI9054 的Local 端时序逻辑开展设计。由图2 可知,在PC

11、I9054 内部的Local 端存在三种传输方式状态机:PCI Initiator 方式、PCI Target 方式、PCIDMA 方式。因此,在对Local 端的控制开展设计时,可以用不同的状态机来匹配PCI9054的内部状态机,到达实现各种方式的数据传输。 本文根据系统的特点,选择使用PCI DMA的传输方式。在FPGA端的程序采用层次化和模块化的设计,分为上下两层构造:下层是链路层,实现PCI DMA 方式下,长字(4Bytes)数据流的双向传输链路的建立;上层是链路适配层,实现数字频谱仪的数据按照一定的帧格式封转成帧。PCI DMA 方式的设置和启动也在FPGA 中完成,程序采用模块化

12、的设计方式,将数据传输模块与控制模块区分。在控制模块中,分成三层:层是存放器读写层,实现对PCI9054 内部存放器的读写操作;第二层是参数获取与PCI DMA 方式配置层,实现从PCI9054 内部消息存放器获取数字频谱仪的控制参数以及对PCI DMA 方式开展配置与启动控制;第三层是上层控制层,用来解析控制参数以及控制生成数据帧。整个程序构造图如图3 所示。 图3 FPGA程序构造图 上述 FPGA 程序中主要包括了两个状态机的设计,一个PCI DMA 数据传输方式的状态机设计,一个是PCI 9054 内部存放器读写操作的状态机设计。它们的状态转移图分别如图4和图5 所示。 图4 PCI

13、DMA 数据传输状态转移图 图 4 中,S0 为空闲状态;S1 若在PCI9054 对Local Bus 开展写的操作中为数据接收状态,若在PCI9054 读Local Bus 的操作中为数据准备状态;S2 为PCI 9054 读Local Bus 的操作中的数据发送状态;S3 为读写操作的终止状态。图中各状态转移触发信号均为PCI 9054Local Bus 端的控制信号。 图 5 PCI 9054 内部存放器读写操作的状态转移图 图 5 中,S0为空闲状态,在读写启动信号en_rwreg=1的情况下进入工作状态;S1为读写周期开始状态,有效Local Bus 端的读写周期开始信号;S2 为

14、读写周期等待状态,等待PCI9054 的LREADY#有效;S3 为突发读写方式下的响应状态,突发读写方式下,PCI9054的LREADY#有效后,使能内部逻辑开展相应的响应;S4 为读写周期响应状态,在非突发读写方式下或者突发读写的终止周期中的响应状态。 在实现了上述两个状态机模块后,FPGA的程序还需要包括对FFT处理器的输出数据开展数据帧封装,即给每FFT 处理器根据相应的配置参数开展处理输出的数据加上帧头,帧头中包含了此次传输的FFT 数据所覆盖的频段以及数据的长度信息。这样做的好处是上位机不需要额外的同步信息,只需要根据帧头中的频段信息以及长度信息就可以判断当前数据帧所表示的频谱信息

15、。利用PCI9054 内部存放器中的MailBox 存放器组来实现数字频谱仪与上位机之间的参数传递。由于数字频谱仪需要的参数信息比较少,只需要频段选择信息,以及开始和结束数字频谱仪的控制信号,选择MailBox 存放器组中的第七个位宽为32 位的存放器来传递控制信息。 整个 FPGA 程序的流程示意图如图6 所示。 图6 FPGA程序流程示意图 3.2 接口驱动程序的设计 接口驱动程序的设计可以通过两种方式实现,一种是通过专用的驱动程序开发工具开展驱动程序的设计,如DDK、DriverStudio 和WinDriver 等,另外一种方式是通过PLX 公司提供的PCI软件工具包SDK(Softw

16、are Development Kit)实现接口的驱动设计,它提供了能够实现各种传输方式所需要的基本API 函数。 为了缩短开发周期,本文采用由PLX 公司提供的SDK 工具包开展驱动程序的开发。运用其SDK 提供的工作API 函数实现Block DMA 模式下的Burst Forever(无限突发)方式的数据传输。主要用到的函数如下表1 所示。 由于本系统的特殊应用,还需要增加一些上层的应用程序,才能实现整个数字频谱仪数据的正常工作,主要包括数字频谱仪的参数控制字的生成和写PCI9054 内部存放器MailBoxReg7,以及对接收的数据帧开展解封装的相关程序开发。 表1 Block DMA 模式下的SDK API 函数应用列表 4 结论 本文使用了 PCI9054 的DMA传输方式,并且在Local端发起DMA传输,在上位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论