1 引言
Xillybus 的设计目的在于向 Windows 主机提供一个简单且广为人知的接口,其行为自然且符合预期。主机驱动程序生成的行为类似于命 名管道的系统对象,并以此身份进行宣告。它们像普通文件一样被打开、读取和写入,但在行为上更像进程间的管道或 TCP/IP 流。对于主机 上运行的程序而言,不同之处在于流的另一端不是(通过网络或同一台计算机上的)另一个进程,而是 FPGA 中的 FIFO。与 TCP/IP 流一 样,Xillybus 流的设计既适用于高速数据传输,也能很好地处理偶尔到来或发送的单个字节。
由于与 Xillybus 的接口全部通过可像普通文件一样访问的对象实现,因此通常任何实用的编程语言都能使用,无需特殊模 块、扩展或其他任何适配。只要所选语言能够打开文件,就可以通过 Xillybus 访问 FPGA。
单个驱动程序二进制文件即可支持任意 Xillybus IP 核配置:驱动在初始化设备时会自动检测流及其属性,并据此创建设备文 件。这些设备文件通过 \\.\xillybus_something (对于 XillyUSB,则为 \\.\xillyusb_00_something)访问。
在运行过程中,FPGA 与主机之间的握手协议营造出连续数据流的假象。在后台,驱动程序的缓冲区被填充并处理。采用与 TCP/IP 流类似的技术,确保缓冲区的高效利用,同时保持对小数据量的响应性。
