通过USB访问PC的PCI卡

时间:2014-02-04 21:32:11

标签: c matlab simulink fpga pci

我有一台连接了两块PCI卡的PC。我创建了一个Matlab / Simulink模拟,它将数字信号发送到其中一个卡片。该卡是DA转换器。然后它将该信号输出到控制系统。 Matlab生成C代码来执行此操作。我的目标是用FPGA板重建这个模拟。不幸的是我无法将PCI卡连接到电路板上。因此,FPGA必须访问PC的PCI端口。它将通过USB连接,我使用Quartus作为FPGA软件。有没有办法从主板上访问PCI卡?或者有没有办法让FPGA调用模拟代码。

1 个答案:

答案 0 :(得分:1)

总结我的理解:

当前设置

将两张PCI卡连接到购物车的PC。

  • 一个PCI卡具有输出D->用于驱动推车的转换器
  • 一个PCI卡具有用于测量角位置和速度的输入A-> D转换器
  • PC上的一个Matlab软件关闭循环并驱动购物车。

新设置

与上述相同,加上以FPGA为主要成分的电路板 该板具有串行,SATA,HSMC,以太网和USB连接,但没有A / D转换器。

董事会应该取代PC上的驱动软件。

我的想法

  • FPGA不是微处理器。

要替换Matlab生成的软件类型,您必须使用模拟Matlab算法的VHDL状态机。这在一般情况下是不可行的,并且只有当Matlab算法非常基本时才会成功。

如果您拥有功能强大的FPGA,您实际上可以使用它来实现微控制器,然后对所述微控制器进行编程以执行您想要的任何操作。在我看来,这似乎有点矫枉过正。

  • FPGA应该只实现低级接口

您可以立即忘记USB,因为最小的接口需要FPGA无法模仿的软件。电路板上的USB访问是通过专用微控制器完成的,该微控制器将能够访问FPGA RAM和其他电路板组件,但您很可能无法直接使用它来实现您的协议。

例如,你可能会在以太网链路上实现某种基本协议,但是这里再次将FPGA添加到它要实现的低级环形缓冲区之上的软件协议时会遇到最大的困难,除非您可以对FPGA进行编程以首先模拟处理器。

  • 您的项目需要一个微控制器

你可以用一个可以装载一些数字I / O和一个小型微控制器的准系统板取代PC,但试图在没有数字I / O的电路板上用FPGA模拟微控制器似乎非常不合适。我

使用PC作为FPGA从设备来驱动几个I / O信号是愚蠢的。这将花费你巨大的开发时间,并且很可能会失败,因为这个解决方案充其量只是一个尴尬的概念证明。

我的建议:放下FPGA板并用合适的微控制器板替换它。