求助:CH365芯片的速度远达不到标称值的4MB/s

目前在测试CH365的速度,CH365连接FPGA。 经测试:实际最快速度只能达到1.6MB/s左右,远低于datasheet中的4MB/s。 测试方法:使用SPEED365.exe测试和自己的FPGA程序验证。

在使用逻辑分析仪分析时发现,在以字为单位(32位)进行块读取时,两次读操作之间的时间间间隔为2500ns左右,远小于例程中计算机的300ns。 而本人使用的计算机是四核3.1G主频,2G内存,硬件配置应该是可以的。不知为什么读操作间隔远远达不到300ns? 如果自己开发驱动程序是不是能够达到标称的4MB/s的速度?请各位朋友帮忙分析。

注:经过各种测试,并对CH365的速度寄存器进行了最快的配置,依然是远小于4MB/s。

41d702178a82b9011de0f587738da9773812efe4.html#IMG=41d702178a82b9011de0f587738da9773812efe4

我们测试时在DOS下进行,在windows下测试的话,用户态与内核态切换的话,需要几个微秒的。你可以测试读一次DWORD,看看2个IO读之间的时间间隔,这2个IO读之间没用户态与内核态之间的切换。


你用示波器测试,读一次DWORD,看看2个IO读之间的RD#变低的时间间隔,这2个IO读之间没用户态与内核态之间的切换。


在读一次DWORD时,连续4个读选通脉冲,脉冲之间的时间非常短,只有几十ns。 在连续读两次DWORD时,两个DWORD的时间间隔非常长,为2000ns以上,这也是造成速度低下的原因。

请问有没有办法我连续读32kB字节的数据,都是在内核态下完成的,读完32kB之后再切换到用户态?请赐教!


CH365mAccessBlock是可以读32K的。


我就是使用CH365mAccessBlock连续读32kB,这也是所有模式中速度最快的,但是也只能达到1.6MB/s。


请问CH365mAccessBlock是全部运行在内核模式吗?


你把测试代码发到我邮箱,我帮你看一下。


就只有一句: CH365mAccessBlock( Device_Number,mFuncReadMemDword,0,Buffer_High,0x8000 );

我是使用逻辑分析仪来抓取Mem_RD的脉冲波形。


只有登录才能回复,可以选择微信账号登录