EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【分享】PCIE 上位机 介绍 3 g6 W7 N& t, \. D1 p
作者:云哥哥 ! e- A5 N1 d% M. p" h$ p& A
本文为明德扬原创文章,转载请注明出处!
1 `, h# p2 R# C( V7 ~5 @2 ?
开发环境:windows开发平台:QT5.11.3
* R, T R' g) t, A一.PCIE上位机测试过程
' V$ _8 I3 I* B+ B# O+ V: v将数据传到芯片中,通过pcie再将芯片算完的数传给上位机。
0 h! E6 k6 R2 X目标: ) E0 U- ?7 }7 p5 H& W8 B/ n
1.实现上位机的速度测试,经测试pcie的传输速度达到2.2GB/s,以上
$ h$ f2 r! @, O6 K/ @2.上位机收到pcie的数据后保存在D盘的根目录下,pcie实现测速的原理: 首先打开上位机后先检测pcie设备是否已经准备好,调用的函数为
. Z8 Q. E' @- N4 n若pcie init()<0,则检测不到pcie设备。 检测完准备好后,开启一个线程检测接收的数据;开启线程的函数如下: 8 q0 B. v9 e1 Q p2 j4 N
线程不断读取的函数如下: 其中,c2h_transfer_size:每次读取的长度为8MB H2c_align_mem_tmp:读取到的数据保存在这块内存中 ! G. w9 W8 A P# ~! O
检验上位机收到的数据是否正确。
$ k7 @5 C9 ~* s- d由于要检测数据所以可以暂时把数据保存在文件中,保存的文件的函数如下: # H$ U, Y/ Y9 H- G8 {8 b5 i, M
File_test。Close()://关闭文件,刷新数据 当用户想保存文件的时候调用以上代码即可 8 S& R3 U; y8 Y8 W j
二.分析文件 , c' ~: f7 H$ i: M' {. S
保存的文件是以。Bin格式保存的,可以使用Hex Editor ,打开文件如下: 5 ]2 m" I) ?2 ?9 f+ B( J. ]+ p
当用户相分析数据的时候可以使用Matable或者qt程序自行写软件分析这里,我们明德扬的pcie自定义了一个数据包,包的格式是以16个字节为一个数据,data[16]={0X55,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,,0X00,0X00,0X40,0X02,0X00,0X01} ( @3 G* A! j; a
其中0X55,0XAA是包头,,0X40,0X02是包序列,0X00,0X01包数据
4 s2 B1 g3 |+ A% d" F( ]/ }当包数据0X00,0X01递增到0X00,0X0F后,然后归为0X00,0X00,包序列也递增,如0X40,0X00递增到0X40,0X01
0 X6 y9 m+ R% T" K1 a* W然后用qt测试,打开如下界面:
! h. V1 @6 F0 G& p/ x然后点击"读数据",数据保存在D盘
9 O' n/ |9 D8 ]4 w3 s然后打开如下图片中pcie_fun.c文件,该文件是pcie驱动文件 里面 是设备输出
( w' m$ v2 @6 C" S上位机接收fpga的数据的函数
4 o" F. i- n' A# v0 F% @以上为pcie 上位机的介绍,感兴趣的同学可以和我讨论。 ' h1 {' t* {# ], o& m# U! w M
8 M. U0 j7 B5 K" b- S2 e0 x Q
7 l% D9 K! V2 Y5 d- w- y |