CN204256731U - 一种fpga高速读取usb设备数据装置 - Google Patents
一种fpga高速读取usb设备数据装置 Download PDFInfo
- Publication number
- CN204256731U CN204256731U CN201420768086.8U CN201420768086U CN204256731U CN 204256731 U CN204256731 U CN 204256731U CN 201420768086 U CN201420768086 U CN 201420768086U CN 204256731 U CN204256731 U CN 204256731U
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- module
- arm processor
- usb device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Systems (AREA)
Abstract
本实用新型公开了一种FPGA高速读取USB设备数据装置,包括数据读取模块、控制模块、数据转发模块、接收模块和DDR储存模块,其特征在于,所述数据读取模块、控制模块及数据转发模块存储在ARM处理器中,所述数据读取模块与USB外设连接,所述数据转发模块与接收模块连接,所述DDR储存模块与FPGA件连接,所述ARM处理器和FPGA件接口的信号线包括片选信号线、写信号线、响应信号线、地址总线和数据总线。本实用新型采用ARM处理器间接实现FPGA读取USB设备的数据,大大降低FPGA控制和管理USB设备的工作量,节约成本。
Description
技术领域
本实用新型涉及电子设备领域,尤其涉及一种FPGA高速读取USB设备数据装置。
背景技术
USB具有传输速率快、即插即用、灵活性高、成本低和简便易用等特点,USB接口越来越受消费者、研究者的青睐,USB标准接口正逐渐取代其他接口,成为计算机外部设备应用最广泛的标准接口。而FPGA由于其具有高集成度、高速、可编程等优点,推动了数字系统设计的单片化、自动化发展,在超高速信号处理和实时测控方面有非常广泛的应用。因此,将FPGA与USB接口结合,使FPGA能够通过USB接口实现高速读取外部设备的数据己成为嵌入式电子系统设计的重要手段。
具有USB接口的设备可分为从设备和主设备。目前FPGA作为从设备,通过USB接口实现与上位机(通常指计算机)的通信较为成熟,应用较广的方案为上位机通过CY68013芯片实现与FPGA之间的通信,由于上位机一般体积较大,它约束了以FPGA为主的便携式嵌入式系统的推广。目前FPGA作为主设备实现高速读取U盘、SD卡、数码相机、移动硬盘等USB设备的数据存在困难,其原因有二,一是FPGA作为主设备,在其内部实现USB控制和传输协议较为困难,它需要实现USB底层传输协议,和USB控制协议;USB底层协议如果自己开发,工作量大,如果采用IP核,需要付专利费;同时USB控制协议一般需要通过内建一个CPU软核来实现,这导致设计复杂,并且也占用较多的FPGA片上资源。二是FPGA外部采用专用USB芯片的解决方案。
典型的方案有两种:第一种是集成了USB控制器和USB收发器,但需自行实现文件系统;另一种则是实现了包括文件系统在内的所有USB读取U盘所需的软硬件,只需要FPGA发送命令进行控制即可实现读取U盘。在这两类方案中,CY7C67300集成度高,但其只支持USB 1.1,传输速率较慢,同时需要FPGA对其进行配置和控制和实现文件系统,FPGA端的开发量较大。CH376支持USB 2.0接口,是一个真正的单芯片解决方案。但CH376只支持FAT16/32文件系统,不支持NTFS文件系统,无法读取大于4GB的大文件;同时CH376需要FPGA进行配置和控制,因此需要实现CH376的控制逻辑并占用一定的FPGA资源,而实际CH376芯片数据传输平均速度较慢,难以满足高速传输要求。
实用新型内容
本实用新型的目的在于提供一种FPGA高速读取USB设备数据装置,以解决上述背景技术中提出的问题。
为实现上述目的,本实用新型提供如下技术方案:
一种FPGA高速读取USB设备数据装置,包括数据读取模块、控制模块、数据转发模块、接收模块和DDR储存模块,其特征在于,所述数据读取模块、控制模块及数据转发模块存储在ARM处理器中,所述数据读取模块与USB外设连接,所述数据转发模块与接收模块连接,所述DDR储存模块与FPGA连接,所述ARM处理器和FPGA接口的信号线包括片选信号线、写信号线、响应信号线、地址总线和数据总线。
作为优选,所述FPGA选用XC5VFX130T-1738芯片,其存储模块选MT47H128M16HG芯片。
作为优选,所述的ARM处理器选用支持USb2.0协议S5V210芯片。
一种FPGA高速读取USB设备数据装置读取USB接口数据的方法,具体步骤为:
步骤1,ARM处理器初始化;
ARM处理器完成自身操作系统的加载,与数据传输相关部分的初始化工作,在USB外设插入后,完成USB设备驱动的加载;
步骤2,监控FPGA初始化工作;
如果FPGA完成自身系统加载工作,FPGA会通过响应线向ARM处理器发出响应信号,表明已准备好接受数据,此时ARM处理器会通过信号指示灯指示用户进入数据转发阶段;
步骤3,被传数据参数提取;
ARM处理器读入USB外设被传数据信息,计算传输次数;
步骤4,启动数据传输;
ARM处理器将USB外设数据转发给FPGA;
步骤5,判断FPGA准备接收状态;
步骤6,组帧转发数据;
ARM处理器中的转发模块将待发的数据进行打包处理,添加帧头信息,包括是否最后一包数据以及有效数据长度,FPGA可以判定数据是否完全发送完毕以及提取每帧有效数据;
步骤7,判断数据是否发送完毕;
ARM处理器中的控制模块计算所有数据是否发送完毕,如果没有完毕,转入步骤5继续发送数据,如果发送完毕,则停止发送数据;
步骤8,结束数据转发;
在转发完数据后,ARM处理器关闭对USB外设的操作,通过指示灯提示数据发送完毕。
上述步骤4包括两个过程,分别为从USB外设读入ARM处理器的内存缓存器以及将内存缓存器的数据组帧转发给FPGA两个过程,
采用“乒乓方式”读取USB外设数据,即,ARM处理器开辟两个缓存空间,以便在进行当前缓存空间组帧发送的同时,ARM将USB外设数据读入另一缓存空间。
所述ARM处理器开辟第一缓存器和第二缓存器,所述ARM处理器监控发送模块是否发完第一缓存器的数据,如果未发完,等待数据发完;如果发送完毕,则向第一缓存器读入新的数据,再判断第二缓存器的数据是否发完,依此循环操作。
上述步骤5中,所述FPGA在发送下一帧数据时判断FPGA是否准备好接收下一帧数据,如果未收到FPGA通过响应线发来的准备好接收信号,则继续等待,直到FPGA准备好接收数据为止。
上述步骤6中,ARM处理器中的转发模块中传输的帧头信息默认长度为2字节,可根据需要进行调整。
所述ARM处理器和FPGA接口信号线包括片选信号、写信号、响应信号线、地址总线和数据总线,FPGA在完成初始化或接收完一帧数据后,通过响应信号线向ARM处理器发出允许发数据信号,ARM处理器通过数据总线向FPGA发数据,同时向FPGA发出片选信号、写信号和地址总线等辅助信息供FPGA正确接收数据用。
与现有技术相比,本实用新型的有益效果:1)本实用新型采用ARM处理器间接实现FPGA读取USB设备的数据,大大降低FPGA控制和管理USB设备的工作量,从而节省FPGA的资源开销,间接降低FPGA的成本开销。
2)本实用新型由于采用ARM处理器乒乓方式传输数据并以帧格式方式通过并行总线发送给FPGA,可以实现FPGA高速读取数据的功能,便于开展超大规模图像尺寸的FPGA图像处理;
3)本实用新型由于采用ARM处理器,ARM处理器便于移植,系统便于升级处理以兼容更多USB外设。
4)本实用新型由于ARM处理器和FPGA模块之间数据总线采用8位、16位和32位可调位宽设计,适合不同类型的数据传输处理。
5)本实用新型中的FPGA只需简单处理,根据帧格式提取数据,相比之前的方法更为简洁,可以保证高速、实时接收数据。
附图说明
图1为本实用新型FPGA读取USB设备数据装置的示意图;
图2为本实用新型FPGA与ARM处理器之间连线示意图;
图3为本实用新型ARM处理器数据转发组帧结构置示意图;
图4为本实用新型ARM处理器控制转发USB设备数据流程图。
具体实施方式
下面结合附图和实施咧对本实用新型作进一步阐述:
请参阅图1,本实用新型FPGA高速读取USB设备数据装置,包括数据读取模块、控制模块、数据转发模块、接收模块和DDR储存模块,数据读取模块、控制模块和数据转发模块存储在ARM处理器中,DDR储存模块与FPGA连接。
所述数据读取模块与USB外设连接,用于从USB外设中存储的数据,在用户启动数据读取功能后,数据读取模块根据预定的文件路径,从USB外设打开指定的文件,获取文件大小信息,并按预设置的数据块大小依次读取,直至读完数据并关闭文件。
所述控制模块,控制ARM处理器读取并转发USB外设中的数据,在进入数据转发工作后,控制模块采用“乒乓操作”模式负责将USB外设数据依次读入内存中开辟的第一缓存器和第二缓存器,即监控发送模块是否发完第一缓存器的数据,如果未发完,等待数据发完;如果发送完毕,则向第一缓存器读入新的数据,再判断第二缓存器的数据是否发完,依此循环操作;由于ARM处理器从USB外设读入的数据速率比转发的数据速率快,因此,它不会造成数据的丢失。
所述数据转发模块,用于将内存中的第一缓存器和第二缓存器的数据转发给FPGA,数据转发模块根据所读取的文件大小信息,判断需要传输的次数,每次按帧数据格式组帧,然后发送给FPGA接收端。
所述数据接收模块,用于实现与ARM处理器之间的数据交互;FPGA将接收到的数据暂存于内部开辟的RAM,如果只需处理少量数据,FPGA数据处理单元可以直接处理该部分数据,如果需要处理大量的数据,如大尺寸图像数据,则可将暂存于RAM的数据存入DDR高速缓存芯片以便实时处理。
请参阅图2,本实用新型FPGA与ARM处理器之间连线示意图,本实用新型的ARM处理器和FPGA接口信号线包括片选信号、写信号、响应信号线、地址总线和数据总线,FPGA在完成初始化或接收完一帧数据后,通过响应信号线向ARM处理器发出允许发数据信号,ARM处理器通过数据总线向FPGA发数据,同时向FPGA发出片选信号、写信号和地址总线等辅助信息供FPGA正确接收数据用。
请参阅图3,其为本实用新型ARM处理器数据转发组帧结构置示意图,本实用新型的帧格式,包括帧类型、扩展位、帧有效数据长度和数据信息,其中帧类型占2位位宽,用于区分是否最后一帧数据。扩展位用于今后功能扩展,帧有效数据长度表示将转发的数据长度,数据信息为被传的有效数据。
本实用新型中,所述的FPGA件选用Xilinx公司的XC5VFX130T-1738芯片;所述的ARM处理器选用三星的S5V210芯片,它支持USb2.0协议,满足高速传输要求;所述的FPGA件的存储模块选用美光公司的MT47H128M16HG芯片,单片存储容量2Gbit,支持高速缓存,支持并联以扩大存储容量。
请参阅图4,本实用新型ARM处理器控制转发USB设备数据流程图,本实用新型的ARM处理器控制发送USB外设数据流程如下:
步骤1,ARM处理器初始化;
ARM处理器完成自身操作系统的加载,与数据传输相关部分的初始化工作,在USB外设插入后,完成USB设备驱动的加载。
步骤2,监控FPGA初始化工作;
如果FPGA完成自身系统加载工作,FPGA会通过响应线向ARM处理器发出响应信号,表明已准备好接受数据,此时ARM处理器会通过信号指示灯指示用户进入数据转发阶段。
步骤3,被传数据参数提取;
ARM处理器读入USB外设被传数据信息,计算传输次数;
步骤4,启动数据传输;
ARM处理器将USB外设数据转发给FPGA包括两过程,即从USB外设读入ARM处理器内存缓存器以及将内存缓存器的数据组帧转发给FPGA两过程,为了快速发送数据,需要采用“乒乓方式”读取USB外设数据,即,ARM处理器开辟两缓存空间,以便在进行当前缓存空间组帧发送的同时,ARM将USB外设数据读入另一缓存空间,由于ARM处理器从USB外设数据读入的速度比组帧发送给FPGA的速度快,通过这样处理不会造成数据的丢失,并且可以提高整个系统读取USB外设的速度。
数据组帧并行传输工作,ARM处理器采用并行传输模式向FPGA发送数据,数据位宽可以选用8位、16位和32位等,为了保证FPGA快速读取数据,采用帧格式进行数据打包,ARM采用连续发送方式发送完一帧数据。
步骤5,判断FPGA准备接收状态;
由于FPGA接收一帧数据后需要根据需求转发数据,为了保证FPGA准确接收数据,需要在发送下一帧数据时判断FPGA是否准备好接收下一帧数据,如果未收到FPGA通过响应线发来的准备好接收信号,则继续等待,直到FPGA准备好接收数据为止。
步骤6,组帧转发数据;
ARM转发模块将待发的数据进行打包处理,添加帧头信息,包括是否最后一包数据以及有效数据长度,为节省帧开销,帧头信息默认长度为2字节,可根据需要进行调整。通过以上处理,FPGA可以判定数据是否完全发送完毕以及提取每帧有效数据。
步骤7,判断数据是否发送完毕;
ARM控制模块计算所有数据是否发送完毕,如果没有完毕,转入步骤5继续发送数据,如果发送完毕,则停止发送数据。
步骤8,结束数据转发;
在转发完数据后,ARM处理器关闭对USB外设的操作,通过指示灯提示数据发送完毕。
本实用新型中的FPGA只需简单处理,根据帧格式提取数据,相比之前的方法更为简洁,可以保证高速、实时接收数据。
以上所述仅为本实用新型的较佳实施例,对实用新型而言仅仅是说明性的,而非限制性的。本专业技术人员理解,在实用新型权利要求所限定的精神和范围内可对其进行许多改变,修改,甚至等效,但都将落入本实用新型的保护范围内。
Claims (3)
1.一种FPGA高速读取USB设备数据装置,包括数据读取模块、控制模块、数据转发模块、接收模块和DDR储存模块,其特征在于,所述数据读取模块、控制模块及数据转发模块存储在ARM处理器中,所述数据读取模块与USB外设连接,所述数据转发模块与接收模块连接,所述DDR储存模块与FPGA连接,所述ARM处理器和FPGA接口的信号线包括片选信号线、写信号线、响应信号线、地址总线和数据总线。
2.根据权利要求1所述的一种FPGA高速读取USB设备数据装置,其特征在于,所述FPGA选用XC5VFX130T-1738芯片,其存储模块选MT47H128M16HG芯片。
3.根据权利要求1所述的一种FPGA高速读取USB设备数据装置,其特征在于,所述的ARM处理器选用支持USb2.0协议S5V210芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201420768086.8U CN204256731U (zh) | 2014-12-08 | 2014-12-08 | 一种fpga高速读取usb设备数据装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201420768086.8U CN204256731U (zh) | 2014-12-08 | 2014-12-08 | 一种fpga高速读取usb设备数据装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN204256731U true CN204256731U (zh) | 2015-04-08 |
Family
ID=52961017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201420768086.8U Expired - Fee Related CN204256731U (zh) | 2014-12-08 | 2014-12-08 | 一种fpga高速读取usb设备数据装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN204256731U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329929A (zh) * | 2017-07-05 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种基于SoC FPGA的数据传输系统及数据传输方法 |
-
2014
- 2014-12-08 CN CN201420768086.8U patent/CN204256731U/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329929A (zh) * | 2017-07-05 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种基于SoC FPGA的数据传输系统及数据传输方法 |
CN107329929B (zh) * | 2017-07-05 | 2021-04-09 | 郑州云海信息技术有限公司 | 一种基于SoC FPGA的数据传输系统及数据传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
KR101932920B1 (ko) | 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법 | |
US20120303846A1 (en) | Method for implementing audio transmission and mobile terminal | |
CN111090221B (zh) | 用于直写式光刻系统中的PCIe DMA数据传输系统及其传输方法 | |
CN107577636A (zh) | 一种基于soc的axi总线接口数据传输系统及传输方法 | |
CN104021107A (zh) | 一种支持NVMe PCIE SSD系统设计方法 | |
TWI479326B (zh) | 資料傳輸方法、主裝置以及從裝置 | |
CN102841870B (zh) | 基于高速串行总线的通用dma结构及预读方法 | |
KR20160018987A (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
CN103838694B (zh) | 一种fpga高速读取usb接口数据的方法 | |
CN106407145A (zh) | 接口访问方法、系统及存储卡 | |
CN102841871A (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
CN103294836A (zh) | 基于pcie的雷达数据采集显控系统及其方法 | |
CN104239252A (zh) | 数据存储系统的数据传输方法、装置及系统 | |
US20130212309A1 (en) | Communication bridging between devices via multiple bridge elements | |
CN112749113A (zh) | 一种数据交互的方法、系统、设备及介质 | |
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
CN114297124A (zh) | 一种基于fpga的srio高速总线的通讯系统 | |
CN104615386A (zh) | 一种核外高速缓存装置 | |
CN101937413A (zh) | 一种i2c总线的通信方法 | |
CN105718396B (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
CN104317747A (zh) | 一种网格接收机的数据缓存与发送装置及方法 | |
CN204256731U (zh) | 一种fpga高速读取usb设备数据装置 | |
CN105117179A (zh) | 一种主机与存储设备数据交互的方法及存储控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150408 Termination date: 20181208 |