EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【分享】PCIE 上位机 介绍 " _, A8 k$ _- f7 q+ }
作者:云哥哥
7 f- f* I+ n0 S本文为明德扬原创文章,转载请注明出处! ; d5 D# g* J3 q
开发环境:windows开发平台:QT5.11.3 , h) p8 e1 i! O* P' H- n% b3 x8 p* X
一.PCIE上位机测试过程 , Z; ]7 j6 T7 _( ^2 w6 O/ a8 {6 e
将数据传到芯片中,通过pcie再将芯片算完的数传给上位机。
' o; g5 _6 _& S, V( @目标: ) N6 [5 C$ X5 V, Z- F5 A5 I. S
1.实现上位机的速度测试,经测试pcie的传输速度达到2.2GB/s,以上
W- ^; G9 i7 j3 i7 P2.上位机收到pcie的数据后保存在D盘的根目录下,pcie实现测速的原理: 首先打开上位机后先检测pcie设备是否已经准备好,调用的函数为
9 d: I0 k2 K$ y$ E若pcie init()<0,则检测不到pcie设备。 检测完准备好后,开启一个线程检测接收的数据;开启线程的函数如下: : n* e% c0 I9 C5 w3 u
线程不断读取的函数如下: 其中,c2h_transfer_size:每次读取的长度为8MB H2c_align_mem_tmp:读取到的数据保存在这块内存中
; C1 b" y' S: v: a% X/ J7 Q6 r检验上位机收到的数据是否正确。 ; n3 w6 b) d& l5 V
由于要检测数据所以可以暂时把数据保存在文件中,保存的文件的函数如下:
7 [2 o, h% w+ J9 L$ SFile_test。Close()://关闭文件,刷新数据 当用户想保存文件的时候调用以上代码即可
$ [! _% A _0 z6 j) ~& B: ^二.分析文件 3 u- A3 ^* g2 x' B
保存的文件是以。Bin格式保存的,可以使用Hex Editor ,打开文件如下:
: U5 T) K# H# ]* i! m当用户相分析数据的时候可以使用Matable或者qt程序自行写软件分析这里,我们明德扬的pcie自定义了一个数据包,包的格式是以16个字节为一个数据,data[16]={0X55,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,,0X00,0X00,0X40,0X02,0X00,0X01}
D& a4 S/ y+ Q6 v; h; M其中0X55,0XAA是包头,,0X40,0X02是包序列,0X00,0X01包数据 8 \, y9 M; y) g# M; Y9 q+ j; ^
当包数据0X00,0X01递增到0X00,0X0F后,然后归为0X00,0X00,包序列也递增,如0X40,0X00递增到0X40,0X01 9 m1 N: l6 }3 {9 n; ], A t, f
然后用qt测试,打开如下界面:
i: Q$ F4 x7 U# Q* A然后点击"读数据",数据保存在D盘 9 }1 P5 q, L, a
然后打开如下图片中pcie_fun.c文件,该文件是pcie驱动文件 里面 是设备输出
' ^- e8 V7 q, K% k# f, b上位机接收fpga的数据的函数 O8 w" m8 x' x' ]8 c ]: J/ Z+ m7 o
以上为pcie 上位机的介绍,感兴趣的同学可以和我讨论。
$ f, o a i/ c/ |) p
; X4 X2 j/ s# t# F `' y- \8 Q' o1 c% x* S+ O* N3 `
|