EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【分享】PCIE 上位机 介绍
4 w. m) n) l$ V* Y( j3 k& O- k作者:云哥哥 2 r' O3 z, g6 I: _: C$ q$ Q; |
本文为明德扬原创文章,转载请注明出处!
0 u! z3 L3 ]3 q6 F7 H/ m) m' x5 D
开发环境:windows开发平台:QT5.11.3
, M5 T( _: q7 y一.PCIE上位机测试过程 3 [& z6 ?0 B7 ]! x. h4 ?* a* }# @
将数据传到芯片中,通过pcie再将芯片算完的数传给上位机。
4 ]' z8 Z9 N. l- i2 v目标:
" m `- C: b2 {, Y8 W1.实现上位机的速度测试,经测试pcie的传输速度达到2.2GB/s,以上 # j7 w" t. \. q/ {9 n+ H6 m# ]
2.上位机收到pcie的数据后保存在D盘的根目录下,pcie实现测速的原理: 首先打开上位机后先检测pcie设备是否已经准备好,调用的函数为
; W4 T$ S! u2 U+ c若pcie init()<0,则检测不到pcie设备。 检测完准备好后,开启一个线程检测接收的数据;开启线程的函数如下:
/ j% z# ^+ I0 c4 f3 W- c8 T线程不断读取的函数如下: 其中,c2h_transfer_size:每次读取的长度为8MB H2c_align_mem_tmp:读取到的数据保存在这块内存中
; {7 r! |/ ~+ @8 r. r5 E检验上位机收到的数据是否正确。
) d6 U5 n4 V% x, x$ r: y由于要检测数据所以可以暂时把数据保存在文件中,保存的文件的函数如下: , M; }5 ~7 r' D
File_test。Close()://关闭文件,刷新数据 当用户想保存文件的时候调用以上代码即可 u8 |8 }% N2 _% x3 `6 X: D
二.分析文件 1 Y- {) ?" {& c; T
保存的文件是以。Bin格式保存的,可以使用Hex Editor ,打开文件如下:
( ?% N( {) `( p& r, s: O当用户相分析数据的时候可以使用Matable或者qt程序自行写软件分析这里,我们明德扬的pcie自定义了一个数据包,包的格式是以16个字节为一个数据,data[16]={0X55,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,,0X00,0X00,0X40,0X02,0X00,0X01}
8 J0 N {. v, U" N5 |8 j) L& w$ D其中0X55,0XAA是包头,,0X40,0X02是包序列,0X00,0X01包数据 $ Z) ~% Y8 L4 g2 ?3 a
当包数据0X00,0X01递增到0X00,0X0F后,然后归为0X00,0X00,包序列也递增,如0X40,0X00递增到0X40,0X01 ; x9 W" ^; l' f( _* Z: A9 E9 w8 F& k
然后用qt测试,打开如下界面:
7 g9 O0 u# K$ F1 E* Q$ ]然后点击"读数据",数据保存在D盘 . b) T7 |- x8 n1 n# y
然后打开如下图片中pcie_fun.c文件,该文件是pcie驱动文件 里面 是设备输出
/ Y/ u( ^, c4 p! M |) o% T/ ~0 Q上位机接收fpga的数据的函数 $ p& Z! M3 P) b( N$ K- R
以上为pcie 上位机的介绍,感兴趣的同学可以和我讨论。 2 u8 M+ [1 y M1 C- a
6 `4 G0 B. S* \2 n1 ~1 z5 P
: O) C |' _+ T; J$ s$ v4 K
|