基于FPGA的高速访问USB设备设计
时间:11-12
来源:互联网
点击:
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
1.3.2 应用程序设计
本方案通过Linux系统的热插拔机制自动启动应用程序。在U盘插入USB接口后,Linux系统自动加载USB驱动和FPGA驱动并启动应用程序。应用程序流程如图5所示。
运行应用程序时,通过设置参数能使应用程序读取U盘、移动硬盘甚至网络上的文件,使方案具有很高的灵活性。应用程序使用了多线程技术来充分利用系统资源,使用两个线程分别实现从U盘读取数据存入缓冲区的过程和将缓冲区内的数据传输至FPGA的过程。在读取线程或写入线程中,可以加入数据处理代码实现数据的预处理,减少FPGA工作量。应用程序分配了多个缓冲区提高性能,并使用了互斥锁实现读取线程与传输线程间的线程同步,确保数据正确传输。
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、CH376的数据传输速率高。在传输速率测试中,传输100 KB文件的传输速率与传输1 MB和1 GB文件的传输速率相比偏低,而传输1 MB和1 GB文件的传输速率则相差不大。原因为:
①测试为先进行计时后开始传输,存在一段时间未传输数据。
②应用程序在传输开始前需要一段时间进行初始化,存在一段时间未传输数据。
在后两种测试中,以上两种未传输数据的时间占总时间的比重较低,因此数据传输速率较高。
2.2 传输准确率测试
此测试在FPGA内实现一个比较器,比较异步RAM接收到的数据与比较器内置数据是否一致,从而测试传输是否正确并确定正确率。经测试,此方案在传输过程中无差错发生,传输正确率为100%。
结语
FPGA与ARM处理器相配合实现FPGA高速获取U盘数据的方案,可以满足FPGA高速读取U盘数据的需求。在传输过程中无差错,且具有良好的灵活性。本方案具有很高的实用价值。
1.3.2 应用程序设计
本方案通过Linux系统的热插拔机制自动启动应用程序。在U盘插入USB接口后,Linux系统自动加载USB驱动和FPGA驱动并启动应用程序。应用程序流程如图5所示。
运行应用程序时,通过设置参数能使应用程序读取U盘、移动硬盘甚至网络上的文件,使方案具有很高的灵活性。应用程序使用了多线程技术来充分利用系统资源,使用两个线程分别实现从U盘读取数据存入缓冲区的过程和将缓冲区内的数据传输至FPGA的过程。在读取线程或写入线程中,可以加入数据处理代码实现数据的预处理,减少FPGA工作量。应用程序分配了多个缓冲区提高性能,并使用了互斥锁实现读取线程与传输线程间的线程同步,确保数据正确传输。
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、CH376的数据传输速率高。在传输速率测试中,传输100 KB文件的传输速率与传输1 MB和1 GB文件的传输速率相比偏低,而传输1 MB和1 GB文件的传输速率则相差不大。原因为:
①测试为先进行计时后开始传输,存在一段时间未传输数据。
②应用程序在传输开始前需要一段时间进行初始化,存在一段时间未传输数据。
在后两种测试中,以上两种未传输数据的时间占总时间的比重较低,因此数据传输速率较高。
2.2 传输准确率测试
此测试在FPGA内实现一个比较器,比较异步RAM接收到的数据与比较器内置数据是否一致,从而测试传输是否正确并确定正确率。经测试,此方案在传输过程中无差错发生,传输正确率为100%。
结语
FPGA与ARM处理器相配合实现FPGA高速获取U盘数据的方案,可以满足FPGA高速读取U盘数据的需求。在传输过程中无差错,且具有良好的灵活性。本方案具有很高的实用价值。
FPGA USB ARM 收发器 Cypress 电子 总线 Cortex Linux 比较器 相关文章:
- 一种基于电力线的家庭以太网络实现方法(10-10)
- 基于DSP和FPGA的机器人声控系统设计与实现 (04-16)
- 面向大众市场的千兆位级收发器(05-04)
- 利用以太网硬件在环路实现高带宽DSP仿真(05-04)
- 采用软处理器IP规避器件过时的挑战(05-04)
- WCDMA系统基带处理的DSP FPGA实现方案(01-02)