MXI问题面面观
硬件: VXI/VME/MXI>>MXI Interfaces
问题: 在使用MXI设备的时候,有哪些常见的问题?
解答: 一、什么是MXI
MXI(Multisystem Extension Interface[1]),中文翻译成多系统延伸接口,实际上是MXIbus的一种简称。MXIbus是一种多路并行总线架构,主要用于仪器间的高速通信。通过这样一种多功能网关,可以实现个人PC,工作站,VXIbus大型机,VMEbus PC,独立仪器设备,以及模块化仪器设备之间的通信。MXIbus的一大应用就是连接独立仪器设备和模块化仪器设备,这可以很大程度上扩展核心计算机所能处理的应用范围。
在NI的产品应用中,使用MXI技术,可以实现对PXI设备和RIO设备的扩展应用。一般来说,我们通过MXI设备连接PXI机箱或者RIO机箱,可以实现一台PC机或PXI控制器来控制多台PXI设备和RIO设备。
这种应用是非常有意义的。当需要使用一个主控制器来控制多台仪器或者模块化仪器的情况下,如果PCI/PXI插槽不够用,使用多个机箱分别控制又无法满足需求的时候,就需要通过某种方式将这些仪器连接起来,并能被一台主控制器识别,这就需要用到MXI技术。MXI的优点是很多的,比如可以扩展待测仪器的距离,可以有效利用高性能计算机来处理复杂数据等等。
二、MXI总线类型
目前NI使用的MXI总线主要包括两大类,MXI和MXI-Express(也称作MXIe):
MXI-3,MXI-4,MXIe x1,MXIe x4,MXIe x8,MXIe x16
其中,MXI-3和MXI-4是比较老的总线类型,带宽较小,其中MXI-3已经由MXI-4替代,能支持3.3V和5V两种信号环境,应用在以前使用MXI-3的场合。NI推荐使用带宽更大的MXI-Express总线设备。
三、MXI软硬件要求
要使用MXI设备,是需要满足一定的软硬件要求的[2]。
1.软件
在安装使用MXI-Express kit硬件之前,一般建议先把PXI设备需要的所有设备驱动安装完毕,例如NI-DAQmx,NI-VISA,以及一些模块化仪器的驱动,等等。这样就可以获得MXI-Express的全部支持。
对于高级用户,可以只安装
PXI Platform Services,这个驱动在已经包含在比如NI-DAQmx这样的设备驱动中,但有些应用场合并不需要安装这些设备驱动,而只需要使用机箱或者MXI设备。这时,可以选择安装PXI Platform Services,这个驱动用来识别PXI/PXIe机箱和模块,以及路由触发信号,并可以获得全部的MXI-Express支持和机箱的识别和配置。
2.硬件
1)这里说的硬件实际上就是用到的MXI板卡,常用的MXI板卡如下表所示。
|
Model
|
BW
|
Features
|
PC-PXIe
|
MXIe x1
|
PXIe-PCIe8360
|
192MB/s
|
|
|
PXIe-PCIe8362
|
208MB/s
|
|
MXIe x4
|
PXIe-PCIe8371
|
798MB/s
|
|
|
PXIe-PCIe8372
|
832MB/s
|
|
|
PXIe-PCIe8375
|
838MB/s
|
Fiber-Optic, 100m Max
|
MXIe x16
|
PXIe-PCIe8388
|
5.6GB/s
|
P2P supported
|
|
|
5.6GB/s
|
|
|
RMC-8354
|
8GB/s
|
i7-860, 2T HDD, RAID
|
PC-PXI
|
|
|
|
MXI-4
|
PXI-PCI8331
|
78MB/s
|
|
|
PXI-PCI8336
|
78MB/s
|
Fiber-Optic, 200m Max
|
MXIe x1
|
PXI-PCI8360
|
100MB/s
|
|
|
PXI-PCIe8361
|
110MB/s
|
|
|
PXI-PCIe8362
|
160MB/s
|
|
Laptop-PXI(e)
|
|
|
|
MXIe x1
|
PXIe-ExpressCard8360
|
214MB/s
|
|
|
PXI-ExpressCard8360
|
110MB/s
|
|
MXI-Express RIO
|
|
|
|
MXIe x1
|
NI 9157
|
|
LX85 FPGA, 14 Slot
|
|
NI 9159
|
|
LX110 FPGA
|
可以看到,对应于不同的MXI总线类型,其带宽差异是很大的。现在最新的MXI总线类型为MXIe-x16。
目前NI推荐的MXI产品中,更多的是侧重于MXIe总线的设备,特别是MXI-Express RIO的推出,扩展了MXI的应用范围,可以应用到RT系统中。MXIe总线设备可以获得更大的带宽,对比一下就可以看到,相比MXI-4总线设备78MB/s的传输带宽,MXIe x1/x4/x16的设备可以获得最高达到5.6GB/s的传输速度。
对于已经发布的MXIe x16板卡,会有一些与主系统之间的兼容性问题。这是因为,MXIe x16产品需要基于PC's 时钟才能正常工作,因此必须在主机上进行过电气测试验证过方能使用。目前已经验证的主机为NI RMC-8354 机架式控制器,其他的主机系列将会在未来被陆续通过验证[3]。
2)板卡组成简介
这里简要介绍一下常用到的MXI板卡,ExpressCard 8360和PXI-8360,下面的测试也主要用到的是这两块板卡。
对于ExpressCard,主要是用在有ExpressCard扩展插槽的电脑或者PXI控制器上。在笔记本电脑上,通常是有ExpressCard扩展插槽的,由于笔记本电脑没有传统的PCI/PCIe插槽,要实现MXI应用的时候就需要这种ExpressCard 8360的设备了。另外,对于某些PXI控制器,也是有ExpressCard扩展插槽的,可以用来控制其他的PXI机箱或者RIO机箱。
要控制PXI机箱,需要在PXI机箱中安装MXI板卡,我们这里以PXI-8360为例。PXI-8360有一个MXI接口,插入PXI机箱后,连接由上游机箱引出的线缆,这样,就可以将该机箱作为MXI应用中的下游机箱了。
针对PXI-8360和ExpressCard 8360,用到的线缆为MXI-Express/ExpressCard MXI Cable,这是用于MXI-Express x1的专用线缆。
四、MXI连接方式
对于MXI设备连接,常用的有两种连接方式[4, 5]:星形连接(Star Configuration)和菊花链式连接(Daisy-Chain Configuration),如图所示:
![](images/7AA0606B3E51BB9386257AF0000A3375_DaisyStar.bmp)
1.星形连接
在星形结构中,多块MXI板卡安装在同一个PC机中,或者多块MXI板卡装在一台运行Windows操作系统PXI中,每一块卡分别连接到一台PXI机箱上。这种设置相当于并行系统,每一台连接的机箱独享一条PCI/PCIe总线,可以获得高速数据传输。
一般来说,这类MXI板卡会有一个接口,可以接到PXI机箱中对应的MXI板卡上,也有一些PCI/PCIe的MXI板卡会有多个接口,比如PCIe-8362,PCIe-8372等等。
![](images/7AA0606B3E51BB9386257AF0000A3375_1.png)
图中给出了星形连接方式的结构图,可以看到,使用一台Host PC,可以控制多台PXI机箱。但这种结构有一个缺点,就是PC机的PCI插槽一般是有限的,因此能够连接的PXI机箱数目也有限。要克服这个缺点,可以使用工作站或者工控机来扩展可用的PCI插槽,从而增加可控制的机箱数。但即使这样,能够连接的MXI设备也是有上限的,一般来说,上限为256,具体可以参照各个PC机的BIOS说明[7]。
另外,星形配置的连接线长度固定,一般PXI机箱与主控PC或机箱的距离有限。当然,对于类似于8375这样的板卡,其可用线缆为光缆,长度可以达到100m,可以实现远距离控制。
2.菊花链式连接
菊花链结构是指,PXI机箱按顺序连接到其他PXI机箱或者作为主控制的PC机上,这种连接方式有些类似于数据结构中的链表,链头和链尾分别连接到上游和下游的设备。
菊花链结构的优点是主控设备和被测量位置可以相隔很远,缺点是吞吐量或者数据传输速率在级联的机箱中是共享的,相当于一个串行系统,如果要处理高速数据采集,必须考虑这里的低速吞吐量。
图中给出了两种菊花链式连接的方式:1)可以直接使用PCIe/PXIe-8375实现菊花链式连接PXIe机箱,由于PXIe-8375有两个端口,可以使用一块PXIe-8375连接上下游两个机箱。
![](images/7AA0606B3E51BB9386257AF0000A3375_15.png)
2)使用PXIe-836x或PXIe-837x,安装在第一台PXIe机箱的第一个插槽,然后在第二插槽安装MXI-4板卡PXI-833x,用于连接到后续的PXI机箱上。这种方式是在8375没有推出之前的一种菊花链式解决方案,需要多占用一个插槽,并且MXI-4设备的传输带宽较小,建议使用第一种方式。
![](images/7AA0606B3E51BB9386257AF0000A3375_16.png)
五、MXI设备连接
常用的MXI连接的设备分为两种,PXI机箱和MXI-Express RIO机箱。分别就这两种设备做了以下实验:
1.PXI机箱
硬件设备:PXI-ExpressCard 8360,PXI-8360,MXI Cable,PXI-1042Q,DELL E6420 Laptop。
1)笔记本控制PXI机箱
笔记本用作主控设备,扩展插槽插入一块PXI-ExpressCard 8360,PXI机箱的1槽插入一块PXI-8360,通过MXI Cable连接。同时,PXI机箱中插入两块板卡,PXI-5610和PXI-7344。
先启动PXI-1042Q,然后启动笔记本。笔记本中打开MAX,刷新设备和接口,可以看到通过PXI-8360桥接的设备,为一个未被确认的PXI机箱,以及两块从属关系未确定的板卡。
![](images/7AA0606B3E51BB9386257AF0000A3375_1.PNG)
确认为PXI-1042Q,然后可以看到,设备和接口中出现了一个PXI-1042Q机箱。
![](images/7AA0606B3E51BB9386257AF0000A3375_13.png)
展开机箱,可以看到机箱中的板卡PXI-5610和PXI-7344。
这样就可以在笔记本中控制PXI机箱了,要控制板卡的操作,需要在笔记本中安装相应驱动。对于PC机,操作步骤是一致的,需要先在PC机中安装PCI/PCIe的MXI板卡。
2)运行Windows OS的PXI系统控制PXI机箱
除了一般的PC机和笔记本来控制PXI机箱以外,还可以用PXI系统来控制PXI机箱。对于某些PXI控制器,附有ExpressCard扩展插槽,可以插入一块PXI-ExpressCard 8360,这样PXI系统就可以用作主控设备来控制另外的PXI机箱了。
由于ExpressCard扩展插槽数目有限,一般这种方式无法用作星形连接。而菊花链式连接是可以实现的,可以在PXIe机箱中使用8375,或者是使用多个833x板卡。
PXI-8360插入从机箱的1槽,先启动从机箱;主机箱的ExpressCard扩展插槽中插入PXI-ExpressCard 8360,稍后启动主机箱。MAX中可以检测到自身机箱1042Q,另外还有一个未定义的机箱,以及检测到的不属于任何机箱的PXI-5154板卡。实际上,这块板卡是插在从机箱中的,只不过因为从机箱未确认,属于未知设备,MAX无法确定PXI-5154的从属关系。
![](images/7AA0606B3E51BB9386257AF0000A3375_9.PNG)
确认机箱为PXI-1042Q,可以看到设备和接口出现了一个名称为Chassis 2的PXI-1042Q机箱,该机箱中有一块远程控制器PXI-8360,以及一块PXI-5154。而自身机箱PXI-1042Q中的控制器被识别为嵌入式控制器,从控制器的类别就可以判断控制器的从属关系。
![](images/7AA0606B3E51BB9386257AF0000A3375_10.PNG)
2.MXI-Express RIO 机箱[6]
1)笔记本控制MXI-Express RIO机箱
硬件设备:MXI-Express RIO 9159,PXI-ExpressCard 8360,MXI Cable。
MXI-Express RIO机箱内置了MXI设备,在机箱上有两个MXI接口,分别用于连接上游和下游的MXI设备,对于MXI的连接方式,也分为星形连接和菊花链式连接两种方式。
将PXI-ExpressCard 8360插入笔记本的扩展插槽中,连接到一个9159的MXI UpStream端口,将DownStream端口与另一个9159的UpStream相连。这样,就通过菊花链结构连接了两个MXI-Express RIO机箱。
![](images/7AA0606B3E51BB9386257AF0000A3375_12.png)
在MAX中可以看到,设备和接口中出现了两个9159,这样就可以在笔记本中对两个RIO设备进行配置。
![](images/7AA0606B3E51BB9386257AF0000A3375_11.png)
按照一般的cRIO的使用方法,新建LabVIEW项目,添加终端,可以看到连接的两个MXIe-RIO机箱,添加后,可以继续添加机箱中的C模块。
![](images/7AA0606B3E51BB9386257AF0000A3375_8.png)
找到相应的模块,并添加,可以在项目中看到,模块出现在FPGA终端下面,需要注意的是,在MXIe-RIO机箱中,对FPGA的操作是不支持Scan模式的,必须采用FPGA模式来做配置。也就是说,MXIe-RIO机箱中,没有内置的扫描引擎,这一点与cRIO不同[7]。
![](images/7AA0606B3E51BB9386257AF0000A3375_5.PNG)
2)安装Real-Time Hypervisor的PXI系统控制MXI-Express RIO机箱
当控制器安装了Real-Time Hypervisor后,可以并行运行RT和Windows/Linux,由于Linux平台下还没有提供对于MXI/MXIe设备的支持,这里主要讨论并行运行RT和Windows的情况。
对于常用的PXI/PXIe控制器,某些控制器只能在Windows平台下配置MXIe-RIO机箱,某些可以在RT系统下配置MXIe-RIO机箱,这主要是根据控制器的中断线类型来区分的,中断类型A只能配置在Windows平台下,包括PXIe-8133、PXIe-8108、PXI-8109和PXI-8110,而工业控制器中断类型为D,可以配置在RT系统下,比如NI 3110,NI 3100。
六、MXI会遇到的问题
1.上电顺序[10, 11]
对于PXI机箱,必须保证是处于下游的从机箱先上电,处于控制位置的PC机或主机箱后上电,这样可以保证从机箱中的状态及板卡的启动状态先配置好,然后PC机或主机箱启动时就可以将这些配置加载,让BIOS给机箱中的设备分配资源,正确识别这些设备。
但这个上电顺序并不是唯一的,对于某些PXIe机箱,比如PXIe-1062,包含一个上电选项的功能,这个功能是通过MXIe控制器来决定的。在PC机中使用MXIe x1/x4板卡, 1)先直接启动PC机,然后会自动将下游的PXIe机箱启动;或者2)先启动PXIe机箱,可以直接启动PC机。这个功能对于含有内置MXI控制器的机箱是不适用的,比如PXI-1033或PXIe-1073,这类机箱的上电选项已经固化在机箱中,不可更改。要禁用这个功能也很简单,只要保证下游的从机箱先启动,用于控制的PC机或者主机箱后启动,就可以自动禁用这个功能。
2.MXI兼容问题[12, 13]
对于某些主板的BIOS,会出现一些MXI的兼容问题,建议先检查上电顺序,线缆连接,以及板卡指示灯是否正常[3],如果都正常,建议执行下面的操作:
1)更新PC机或笔记本电脑的BIOS,厂商可能会更新BIOS以解决现有的一些问题。
2)尝试不同的PCI或PCI Express插槽,某些BIOS的算法在某些插槽内会有更好的性能。
3)尝试禁止计算机BIOS的板上主板资源,释放这些资源可以帮助提高PCI的可扩展性。
4)降低PCI桥深度,如果使用的是菊花链连接方式,把主PXI板卡放在机箱的第一个插槽。
5)移除板卡,以及其上的PCI-PCI桥,如PXI-GPIB/ENET板卡,观察是否性能改观,尝试使用单桥机箱替代多桥机箱,减少多余的PCI-PCI桥,14槽的PXI-1044和18槽的PXI-1045有3个PCI总线分部。
6)NI测试过HP、DELL以及NI的控制器,并未对市面上所有品牌机器做相应的测试。因此,如果出现工控机使用MXI出现了问题,可以告诉客户先去询问主板厂商,因为BIOS的更新是由各个主板厂商来提供的。实在无法解决,但又很需要这种方式来控制PXI机箱或者MXI-Express RIO机箱的情况下,建议用HP或者DELL的工作站来代替。
相关链接:
附件: NIPXIRemoteConfig.exe
报告日期: 01/10/2013
最近更新: 01/10/2013
文档编号: 659JSO0X