Virtex 5与上位机之间的PCIE通信

利用Xilinx公司的ML505开发板上的“金手指”,完成与电脑主机之间的PCIE通信!

主要参考文档:XAPP1052  这个文档必须精读!

FPGA 这一端就直接调用IP核,在核程序的基础上稍加修改就可以使用;

上位机可以利用官方提供的驱动与界面:

     驱动是WDM生成的,有32K的数据限制,即每次最多只能传32K,根据协议理论上可以传8M;

     界面有两部分组成,一部分是VB写的界面,另一部分是VC写的DriverMgr,VB调用DriverMgr里面的函数,DriverMgr再去调用底层驱动;

我们现在用Windriver自己生成驱动,比WDM的更加简单方便,而且可以不拘束于它的限制,能够根据我们实际的需求进行设计,界面也用MFC设计。

在传输的过程中,我们遇到一个很奇怪的问题,就是FPGA这一端只要发带有“0x0a”的数据,上位机用fopen("***.dat",'a+');函数把收到的数据存在一个文件里,这时

数据文件里0a前面必定多出一个0d!!  其实在C语言中 0a是‘\n’(换行),而0d是'\r'(回车),用fopen语句会自动把0a变成0d0a!!!!! 改成fopen("***.dat",'ab+')就可以了!!

posted on 2013-05-12 23:44  天空才是极限  阅读(790)  评论(0编辑  收藏  举报

导航