新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FPGA的高速访问USB设备设计

基于FPGA的高速访问USB设备设计

作者: 时间:2014-09-24 来源:网络 收藏

  1.3.2 应用程序设计

本文引用地址://m.amcfsurvey.com/article/263272.htm

  本方案通过Linux系统的热插拔机制自动启动应用程序。在U盘插入接口后,Linux系统自动加载驱动和驱动并启动应用程序。应用程序流程如图5所示。



  运行应用程序时,通过设置参数能使应用程序读取U盘、移动硬盘甚至网络上的文件,使方案具有很高的灵活性。应用程序使用了多线程技术来充分利用系统资源,使用两个线程分别实现从U盘读取数据存入缓冲区的过程和将缓冲区内的数据传输至的过程。在读取线程或写入线程中,可以加入数据处理代码实现数据的预处理,减少工作量。应用程序分配了多个缓冲区提高性能,并使用了互斥锁实现读取线程与传输线程间的线程同步,确保数据正确传输。

  1.4 ARM向FPGA传输数据设计

  本方案在FPGA中实现一个异步RAM,其使用乒乓机制接收来自ARM处理器的数据,同时需要将异步RAM中的数据写入DDR 2存储器。异步RAM内部有两个数据缓冲模块。在乒乓机制中,两个模块分别执行不同的任务,当模块1接收数据来自ARM处理器的数据时,模块2将数据写入DDR 2存储器。当两个模块的任务都完成后,交换模块1和模块2的任务。与现有方案相比,本方案FPGA无需配置外部芯片,所需开发量较小。

  2 测试与分析

  2.1 传输速率测试

  此测试传输3个不同大小的文件,记录数据传输时间,从而获得数据传输速率。

  测试结果如表1所列。



  由表1可知,在传输速率测试中,测得的最高数据传输速率为47.6 Mbps,比现有方案如CY7C67300、的数据传输速率高。在传输速率测试中,传输100 KB文件的传输速率与传输1 MB和1 GB文件的传输速率相比偏低,而传输1 MB和1 GB文件的传输速率则相差不大。原因为:

  ①测试为先进行计时后开始传输,存在一段时间未传输数据。

  ②应用程序在传输开始前需要一段时间进行初始化,存在一段时间未传输数据。

  在后两种测试中,以上两种未传输数据的时间占总时间的比重较低,因此数据传输速率较高。

  2.2 传输准确率测试

  此测试在FPGA内实现一个比较器,比较异步RAM接收到的数据与比较器内置数据是否一致,从而测试传输是否正确并确定正确率。经测试,此方案在传输过程中无差错发生,传输正确率为100%。

  结语

  FPGA与ARM处理器相配合实现FPGA高速获取U盘数据的方案,可以满足FPGA高速读取U盘数据的需求。在传输过程中无差错,且具有良好的灵活性。本方案具有很高的实用价值。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

fpga相关文章:fpga是什么


linux相关文章:linux教程



上一页 1 2 下一页

关键词:FPGAUSBCH376

评论


相关推荐

技术专区

关闭