CN108959136A - 基于spi的数据传输加速装置、系统及数据传输方法 - Google Patents

基于spi的数据传输加速装置、系统及数据传输方法 Download PDF

Info

Publication number
CN108959136A
CN108959136A CN201810673764.5A CN201810673764A CN108959136A CN 108959136 A CN108959136 A CN 108959136A CN 201810673764 A CN201810673764 A CN 201810673764A CN 108959136 A CN108959136 A CN 108959136A
Authority
CN
China
Prior art keywords
spi
data
request
interface
module
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.)
Granted
Application number
CN201810673764.5A
Other languages
English (en)
Other versions
CN108959136B (zh
Inventor
李宝川
刘勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omnivision Technologies Shanghai Co Ltd
Original Assignee
Omnivision Technologies Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omnivision Technologies Shanghai Co Ltd filed Critical Omnivision Technologies Shanghai Co Ltd
Priority to CN201810673764.5A priority Critical patent/CN108959136B/zh
Publication of CN108959136A publication Critical patent/CN108959136A/zh
Application granted granted Critical
Publication of CN108959136B publication Critical patent/CN108959136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明提供一种基于SPI的数据传输加速装置、系统及数据传输方法,所述装置包括寄存器模块、总线主机接口、系统请求模块、请求仲裁模块、SPI控制模块以及至少一个专用请求接口。本发明在大规模实时性数据搬运时,仅支持读外围设备的命令CMD,且仅需在上电前配置少数寄存器,即可在专用数据请求的数据传输过程中,摆脱软件参与导致的SPI数据传输效率及CPU、系统总线负荷较重的弊端,还采用专用请求接口与总线主机接口相结合且进行优先级仲裁的方式,满足各个数据需求模块的数据效率要求。

Description

基于SPI的数据传输加速装置、系统及数据传输方法
技术领域
本发明涉及数据传输技术领域,尤其涉及一种基于SPI的数据传输加速装置、系统及数据传输方法。
背景技术
串行外设接口(Serial Peripheral Interface,SPI)是一种高速全双工的同步串行外设接口,具有结构简单、易于连接,通讯速度快等显著优点,可以实现中央处理器(Central Processing Unit,CPU)或与FLASH(快闪存储器)、网络控制器、LCD显示驱动器、A/D转换器、D/A转换器、微控制器(Micro Controller Unit,MCU)和其他CPU等外围设备以串行方式进行通信以交换信息,近年来得到了非常广泛的应用。
目前有很大一部分应用是主机通过软件的方式实现SPI接口的数据传输,即是主机通过SPI接口访问外围设备时需要软件、CPU及其系统总线的参与,这种方式需要花费大量的CPU处理时间,系统最快数据传输速率受限于系统工作频率和CPU处理性能,数据传输速度很难提高。为了提高软件方式下的SPI数据传输速率,现有技术中也进行了很多改进,例如,专利申请号为CN201710086193.0的发明公开了一种自动搬运且适应器件的多线SPI-Flash控制器,其在SPI接口模块内部添加一状态控制模块,通过部分硬件参与的方式较好地解决了软件控制SPI数据传输的效率低下的问题,为提高与数据需求模块之间的传输,该专利申请甚至提出了DMA传输至总线的方式。但是,此专利申请中的技术方案仍存在一些缺点:
1、SPI数据传输仍然需要软件的参与,即传输完每一段数据,仍然需要CPU配置相关寄存器以准备下次数据传输。
2、若完全采用DMA的方式,则会在无形中给总线带来了很大负担。尤其在系统总线上有多个主机同时请求系统总线时,可能会有不能及时传送相关数据至数据需求模块情况发生。也就是说,CPU和系统总线资源被较多使用,而可能拉长线上其他需要这些资源的设备等待时间。
3、当一段数据搬运结束需要切换到下一段数据搬运时,需要软件参与的切换方式常常较慢,易造成SPI的带宽浪费。
4、在传输一些不能提前得知传输长度的特殊数据(如一些压缩数据)时,软件方式往往较难处理。
上述的技术方案不能满足专用模块的大规模数据传输效率需求,因此,需要一种新的技术方案,能够减轻CPU和系统总线负担,提高SPI数据有效传输的效率,并解决专用模块的大规模数据传输效率需求。
发明内容
本发明的目的在于提供一种基于SPI的数据传输加速装置、系统及数据传输方法,能够减轻CPU和系统总线负担,提高SPI数据有效传输的效率,解决专用模块的大规模数据传输效率需求。
为了实现上述目的,本发明提供一种基于SPI的数据传输加速装置,包括:寄存器模块、总线主机接口、系统请求模块、请求仲裁模块、SPI控制模块和至少一个专用请求接口,其中,
连接系统总线,所述总线主机接口和所述系统请求模块用于向所述SPI控制模块发送系统数据请求,并将所述SPI控制模块根据所述系统数据请求发回的数据,通过所述总线主机接口和所述系统总线搬运至与所述系统总线相连的存储地址;
所述寄存器模块用于接收和存储所述系统总线发过来的配置信息,以使所述SPI控制模块根据所述配置信息对其他各个模块进行配置;
所述专用请求接口连接相应的专用模块,用于向所述SPI控制模块发送所述专用模块发出的专用数据请求,并将所述SPI控制模块根据所述专用数据请求发回的数据搬运至所述专用模块;
所述请求仲裁模块用于对所述系统数据请求和所述专用数据请求进行仲裁,从中选出优先响应的数据请求,并将响应的数据请求传送给所述SPI控制模块;以及,
所述SPI控制模块用于根据接收到的数据请求以及一用于实现SPI控制模块和所述数据请求所需的数据所在的外围设备对接的SPI接口的状态,对所述SPI接口进行配置,以控制相应数据的搬运过程。
可选的,所述寄存器模块接收和存储的配置信息包括所述系统数据请求的请求地址和长度,以及,所述外围设备的命令和虚拟请求的长度;所述系统请求模块根据所述寄存器模块接收的所述系统数据请求的请求地址和长度向所述SPI控制模块发送系统数据请求。
可选的,所述专用请求接口允许传输的内容包括请求信号、请求地址、有效信号和数据信号。
可选的,所述专用请求接口向所述SPI控制模块发送的专用数据请求的内容包括所述专用模块发出的请求信号和请求地址,所述SPI控制模块根据所述专用数据请求而向所述专用请求接口发回的内容包括有效信号和数据信号。
可选的,所述请求仲裁模块用于在响应的前一数据请求对应的数据搬运过程结束后才会对当前的数据请求进行仲裁。
可选的,所述请求仲裁模块支持多个所述专用请求接口同时发送专用数据请求。
可选的,所述的基于SPI的数据传输加速装置还包括SPI交互接口,所述SPI交互接口用于实现所述SPI接口和所述SPI控制模块的对接,并将所述SPI接口的状态反馈给所述SPI控制模块,使所述SPI控制模块对所述SPI接口进行配置和控制,以完成相应数据的搬运。
可选的,所述SPI控制模块用于依次发送所述命令、相应的请求地址和所述虚拟请求长度至所述SPI交互接口,并通过所述SPI交互接口配置SPI接口的发送数据寄存器,以完成相应数据的搬运。
可选的,所述SPI交互接口自带表示所述SPI接口的状态的状态信号,所述SPI控制模块通过所述SPI交互接口自带的状态信号获取所述SPI接口的状态,并基于所述状态信号完成对所述SPI接口的配置和收发控制,以控制相应数据的搬运过程。
可选的,所述外围设备为FLASH、网络控制器、LCD显示驱动器、A/D转换器、D/A转换器、主处理器。
本发明还提供一种基于SPI的数据传输系统,包括主处理器、系统总线、SPI接口、至少一个专用模块以及本发明的基于SPI的数据传输加速装置,其中,所述基于SPI的数据传输加速装置通过所述SPI接口与相应的外围设备连接,所述基于SPI的数据传输加速装置的总线主机接口通过所述系统总线与所述主处理器连接,所述基于SPI的数据传输加速装置的一个专用请求接口连接一个相应的所述专用模块。
本发明还提供一种利用本发明的基于SPI的数据传输加速装置的数据传输方法,包括以下步骤:
所述系统总线向所述寄存器模块发送配置信息,以完成所述基于SPI的数据传输加速装置的初始配置;
所述总线主机接口和所述系统请求模块根据所述系统总线发来的数据需求向所述SPI控制模块发送系统数据请求,各个所述专用请求接口根据连接的所述专用模块发来的数据需求向所述SPI控制模块发送所述专用模块发出的专用数据请求;
所述请求仲裁模块对所述系统数据请求和所有所述专用数据请求进行仲裁,从中选出优先响应的数据请求,并将响应的数据请求传送给所述SPI控制模块;
所述SPI控制模块根据接收到的数据请求以及一用于实现SPI控制模块和所述数据请求所需的数据所在的外围设备对接的SPI接口的状态,对所述SPI接口进行配置,以控制和完成所述数据请求所需的数据的搬运过程。
可选的,所述SPI控制模块控制和完成所述数据请求所需的数据的搬运过程的步骤包括:
首先,检查所述SPI接口的空闲状态,在确定所述SPI接口的状态为空闲时,使能并启动所述SPI接口,并对所述SPI接口进行初始配置;
接着,依次向所述SPI接口发送命令、请求地址以及虚拟请求长度;
然后,通过所述SPI接口接收所述外围设备发回的所述数据请求所需的数据,并在所述所需的数据接收完毕后关停所述SPI接口;
之后,对所述SPI接口进行恢复配置,并返回所述SPI接口的空闲状态,等待接收下一数据请求。
可选的,在所述所需的数据接收完毕时,所述SPI控制模块会从所述SPI接口接收到一脉冲信号,所述SPI控制模块通过所述脉冲信号关停所述SPI接口。
与现有技术相比,本发明的技术方案具有以下有益效果:
1、本发明的基于SPI的数据传输加速装置独立于SPI接口之外,可以仅通过少量SPI接口的状态信号,就可完成数据搬运过程的控制,且在大规模实时性数据搬运时,本装置仅支持读SPI接口连接的外围设备的命令,使得本装置可以作为一个通用装置,不再拘于SPI协议层的规定,更清晰、容易地服务于各个专用模块,解决专用模块的大规模数据传输效率需求。
2、本发明的基于SPI的数据传输加速装置包括专用请求接口和系统请求模块,即将数据请求划分为专用数据请求和系统数据请求两种,能通过请求仲裁模块进行优先级仲裁,因而可以满足各个数据需求模块的数据传输效率要求;而且当仅有专用模块独自请求数据时,除上电配置外,数据传输及数据传输间的切换过程无需CPU等主处理器或系统总线的参与,由此使得宝贵的CPU等主处理器和系统总线资源能够从SPI数据搬运工作中解脱出来,即可在专用请求数据的传输过程中,摆脱软件参与而导致的SPI数据有效传输效率及CPU、系统总线负荷较重的弊端。
3、本发明的基于SPI的数据传输加速装置中独设的系统请求模块和总线主机接口,能够使得在数据传输前系统仅对其进行少量配置,即可独自搬运指定长度数据至与系统总线相连的相应存储位置。
4、本发明的数据传输方法中的特殊的请求响应和控制机制,可以在提前不清楚数据搬运量的情况下,搬运数据至所需模块,这种数据传输方法可以用来搬运一些特殊数据,尤其一些提前不能得知长度的压缩数据时效果比较明显。
5、本发明的技术方案中,多个数据请求搭配且较少的软件参与的控制方式,使得当前数据请求的数据搬运完成后能极快地切换至下一数据请求的数据搬运,使得SPI接口及其连接的外围设备的利用率大大提高,尤其是仅多个专用数据请求工作时,甚至可以将切换周期缩短至若干个时钟周期。
附图说明
图1是本发明具体实施例的基于SPI的数据传输加速装置的功能模块图;
图2是本发明具体实施例的基于SPI的数据传输系统的功能模块图;
图3是本发明具体实施例的专用请求接口的信号时序图;
图4是本发明具体实施例的请求仲裁模块的仲裁机制示意图;
图5是本发明具体实施例的SPI交互接口的的信号时序图;
图6是本发明具体实施例的数据传输方法的流程图;
图7是本发明具体实施例的SPI控制模块的控制流程图。
具体实施方式
为使本发明的目的、特征更明显易懂,下面结合附图对本发明的具体实施方式作进一步的说明,然而,本发明可以用不同的形式实现,不应只是局限在所述的实施例。
请参考图1和图2,本实施例提供一种基于SPI的数据传输加速装置10,包括SPI控制模块100、请求仲裁模块101、SPI交互接口102、总线主机接口103、系统请求模块104、寄存器模块105和至少一个专用请求接口,例如有三个专用请求接口P1、P2、P3。
所述总线主机接口103连接外部的系统总线13,所述系统请求模块104连接所述总线主机接口103以及请求仲裁模块101,所述主要总线主机接口103和所述系统请求模块104主要用于向所述SPI控制模块100发送系统数据请求,并将所述SPI控制模块100根据所述系统数据请求发回的数据,通过所述总线主机接口103和所述系统总线13搬运至与所述系统总线13相连的存储地址(即系统的相应存储位置),其中,系统请求模块104需要CPU等主处理器告知其所要搬运的数据地址及长度等信息,即所述系统请求模块104需要根据所述寄存器模块105接收的所述系统数据请求的请求地址和长度等信息,向所述SPI控制模块100发送系统数据请求。可见,本装置独设的系统请求模块104和总线主机接口103,使得数据传输前系统仅对其进行少量配置,即可独自搬运指定长度数据至与系统总线13相连的相应存储位置。
所述寄存器模块105连接所述系统总线13,主要用于接收和存储所述系统总线13发过来的配置信息,以使所述SPI控制模块100根据所述配置信息对其他各个模块进行配置。其中,CPU(中央处理器)、MCU(微控制器)等主处理器可以通过系统总线13对寄存器模块105进行读写,以选择本装置的工作模式,并配置系统请求模块104发出的系统数据请求的请求地址和长度以及SPI接口连接的外围设备(例如SPI Flash)2的命令(CMD)、虚拟请求(dummy)的长度,以及主处理器(即系统总线13连接的CPU或MCU)对本装置相应的模块(例如是总线主机接口103、系统请求模块104以及SPI控制模块100等)的工作状态的读取等等。进一步的,所述寄存器模块105可以包含一个总线从机接口,用于接收系统总线13上发过来的配置信息;还包含若干用于存储信息的寄存器,CPU(中央处理器)、MCU(微控制器)等主处理器还可以通过系统总线13读取和查询寄存器模块105的寄存器中存储的信息。
一个所述专用请求接口可以连接一个相应的专用模块(通常为大批量实时性数据需求模块),实现专用模块与本装置的对接,例如图2中,专用请求接口P0可以连接专用模块G0和请求仲裁模块101,专用请求接口P1可以连接专用模块G1和请求仲裁模块101,专用请求接口P2可以连接专用模块G2和请求仲裁模块101。每个所述专用请求接口主要用于向所述SPI控制模块100发送其连接的专用模块发出的专用数据请求,并将所述SPI控制模块100根据所述专用数据请求发回的数据搬运至所述专用模块。所述专用请求接口为一自定义接口,如图3所示,其允许传输的内容包括请求信号req、请求地址addr、有效信号valid和数据信号data等等,当所述专用请求接口连接的专用模块需要数据时,可以向其连接的专用请求接口发送请求信号req和请求地址addr,SPI控制模块100会根据所述请求信号req和请求地址addr控制SPI接口11完成对外围设备(SPIFlash)2的数据读取,之后把读取的数据转换为专用请求接口接受的有效信号valid和数据信号data送回专用模块。即所述专用请求接口向所述SPI控制模块100发送的专用数据请求的内容包括所述专用模块发出的请求信号req和请求地址addr,所述SPI控制模块100根据所述专用数据请求而向所述专用请求接口发回的内容包括有效信号valid和数据信号data。另外,因为本装置内有请求仲裁模块101的存在,可以支持数个专用请求接口同时发送专用数据请求信号。得一提的是,专用数据请求下的数据搬运,在无需更改外围设备的命令(例如Flash CMD)的情况下,无需CPU和系统总线13参与。
所述请求仲裁模块101用于依据各个专用请求接口和系统请求模块104的优先级的高低,对系统请求模块104发出的系统数据请求和所有专用请求接口发出的专用数据请求进行仲裁,选择优先响应高优先级的数据请求,并将响应的数据请求传送给所述SPI控制模块100。所述请求仲裁模块100支持多个所述专用请求接口同时发送专用数据请求,也支持至少一个所述专用请求接口和系统请求模块104同时发送数据请求。此外,当外围设备2为SPI Flash等具有特殊传输的特点的设备时,所述请求仲裁模块101仅在结束前一数据请求的数据搬运后才会对当前的数据请求进行仲裁。图4展示了请求仲裁模块101的仲裁机制,具体地,开始时,请求仲裁模块101先接收到一专用模块或系统独自发起的数据请求0,并响应数据请求0,将其传送给所述SPI控制模块100,开始数据请求0对应的数据搬运过程,在数据请求0对应的数据搬运过程中,请求仲裁模块101又接收到同时发起的数据请求1和数据请求3,可以是两个专用数据请求,也可以一个是系统数据请求而另一个系统数据请求,但是由于数据请求0对应的数据搬运未结束,因此数据请求1和数据请求3一直处于等待请求仲裁模块101仲裁的请求队列中,当数据请求0对应的数据搬运结束时,请求仲裁模块101根据发出数据请求1的模块相对发出数据请求3的模块的优先级较高,优先响应数据请求1,本装置开始实现数据请求1对应的数据的搬运,在数据请求1对应的数据搬运过程中,请求仲裁模块101又接收到独自发起的数据请求2,此时数据请求2和之前未被响应的数据请求3一同处于等待请求仲裁模块101仲裁的请求队列中,当数据请求1对应的数据搬运结束时,请求仲裁模块101根据发出数据请求2的模块相对发出数据请求3的模块的优先级较高,优先响应数据请求2,本装置开始实现数据请求2对应的数据的搬运,若之后不再有数据请求发起,则在数据请求2对应的数据搬运结束后,请求仲裁模块响应数据请求3,本装置开始实现数据请求3对应的数据的搬运。
所述SPI控制模块100用于根据接收到的数据请求以及响应的SPI接口11的状态等信息,对所述SPI接口进行配置,以控制相应数据的搬运过程。所述SPI接口11用于实现SPI控制模块100和其所接收的数据请求所需的数据所在的外围设备2对接。所述SPI控制模块100对所述SPI接口进行配置时,会依次发送命令(CMD)、请求地址和虚拟请求长度等至SPI交互接口102,并通过SPI交互接口102配置SPI接口11的发送数据寄存器或数据读写寄存器(可以是先进先出存储器FIFO),并控制整个数据搬运的具体过程。其中SPI接口11用于实现FLASH、网络控制器、LCD显示驱动器、A/D转换器、D/A转换器、主处理器等外围设备和SPI交互接口102的对接。因为所述SPI控制模块100独立于SPI接口11之外,SPI控制模块100无需考虑SPI接口11的线上频率或工作模式等SPI协议层要考虑的内容,仅需通过SPI交互接口102自带的状态信号即可了解SPI接口的状态(空闲或空满),并基于所述状态信号完成对SPI接口11的收发控制,以此控制数据搬运工作,由此使得本装置可以作为一个通用装置,不再拘于SPI的协议层的规定,更清晰容易地服务于各个专用模块。
所述SPI交互接口102为一自定义接口,用于实现所述SPI接口11和所述SPI控制模块100的对接,并将所述SPI接口11的空满状态或者空闲状态等反馈给所述SPI控制模块100,使所述SPI控制模块100对所述SPI接口11进行配置和控制,以完成相应数据的搬运。本实施例中,SPI交互接口102与总线接口类似,且自带表示所述SPI接口11的空闲状态和空满状态的状态信号,所述SPI控制模块100通过所述SPI交互接口102自带的状态信号获取所述SPI接口11的状态,并基于所述状态信号完成对所述SPI接口11的配置和收发控制,以控制相应数据的搬运过程。本实施例的SPI交互接口102的信号时序图如图5所示,其接收和传输的信号包括时钟信号clk、写信号write、读信号read、请求地址addr(包括写地址w_ad和读地址r_ad)、写入的数据信号wdata(即w_da)、读取的数据信号rdata(即r_da)、表示SPI接口的空闲状态的状态信号spi_idle、表示数据搬运完成的信号spi_done、发送数据的等级tx_fifo_lvl(即tx_lvl)以及接收数据的等级rx_fifo_lvl(即rx_lvl)。
需要说明的是,在本发明的其他实施例中,如果SPI接口11或者SPI控制模块100中集成了类似SPI交互接口102的功能,则可以省略SPI交互接口102。
由上可见,本实施例的基于SPI的数据传输加速装置,具有特殊的请求响应和控制机制,在大规模实时性数据搬运时,仅支持读外围设备的CMD(即command),可以在提前不清楚数据搬运量的情况下,搬运数据至所需模块,显然可以用来搬运一些特殊数据,尤其一些提前不能得知长度的压缩数据时效果比较明显。本装置还能通过专用请求接口和系统请求模块104将数据请求划分为专用数据请求和系统数据请求两种,在专用数据请求的数据传输过程中,仅需在上电前配置少数寄存器,数据传输及数据传输间的切换过程无需CPU等主处理器或系统总线13参与,这样,宝贵的CPU等主处理器和系统总线13资源就得以从SPI数据搬运工作中解脱出来,从而摆脱了软件参与导致的SPI数据传输效率及CPU、系统总线负荷较重的弊端。另外,本装置还采用专用请求接口与系统请求模块相结合且请求仲裁模块对数据请求进行优先级仲裁的方式,以及多个数据请求搭配且较少的软件参与的控制方式,使得当前数据段传输完成后能极快地切换至下一段数据传输,使得SPI的利用率大大提高,能满足各个专用模块和系统的数据传输效率要求,尤其是在仅有多个专用请求工作时,数据传输间的切换周期缩短至若干个时钟周期,大大提高了SPI数据传输效率。因此,本装置特别适合用于需要从SPI FLASH等外围设备搬运大规模数据至芯片内部的场合,最佳的实施方式应为SoC芯片的数据搬运硬件加速装置。
请参考图2,本实施例还提供一种基于SPI的数据传输系统1,包括主处理器(未图示)、系统总线13、SPI接口11、至少一个专用模块以及本发明的基于SPI的数据传输加速装置10,其中,所述主处理器可以是CPU(中央处理器)或MCU(微控制器),所述基于SPI的数据传输加速装置10通过所述SPI接口11与FLASH、网络控制器、LCD显示驱动器、A/D转换器、D/A转换器、其他的CPU或MCU等相应的外围设备2连接,所述基于SPI的数据传输加速装置10的总线主机接口103通过所述系统总线13与所述主处理器连接,所述基于SPI的数据传输加速装置10的一个专用请求接口连接一个相应的所述专用模块。由于本系统具有本发明的基于SPI的数据传输加速装置10,因此性能得到提高。
请参考图1至图6,本实施例还提供一种利用本发明的基于SPI的数据传输加速装置的数据传输方法,包括以下步骤:
S1,所述系统总线13向寄存器模块105发送配置信息,以完成所述基于SPI的数据传输加速装置的初始配置,包括对寄存器模块105进行初始配置,比如,外围设备2的CMD和虚拟请求长度(即dummy字节数)等,另外需要搬运至系统总线13上的应用还要配置系统数据请求的长度、地址等信息;
S2,所述总线主机接口103和系统请求模块104根据所述系统总线13发来的数据需求向所述SPI控制模块100发送系统数据请求,各个所述专用请求接口(P0至P2)根据连接的专用模块(G0至G2)发来的数据需求向所述SPI控制模块100发送相应的专用数据请求;各个数据请求自系统或专用模块需求数据时发起,数据搬运完时终止,且各个数据请求包含请求地址(即所需数据在相应的外围设备中的存储位置);
S3,所述请求仲裁模块101依据优先级的高低,对符合自定义规定的系统数据请求和所有专用数据请求进行仲裁,选择优选响应优先级高的数据请求,并将响应的数据请求传送给所述SPI控制模块100;
S4,所述SPI控制模块100根据接收到的数据请求以及一用于实现SPI控制模块100和所述数据请求所需的数据所在的外围设备(例如SPI FLASH)2对接的SPI接口11的状态,对所述SPI接口11进行配置,以控制和完成所述数据请求所需的数据的搬运过程,具体的执行步骤如图7所示,包括:
(S4.1)通过SPI交互接口102自带的状态信号来检查SPI接口11的空闲状态;
(S4.2)在确定SPI接口11为空闲状态时,使能并启动SPI接口11,并通过SPI交互接口102对SPI接口11进行初始配置,包括设置搬运数据长度,通常使用一较大初始值(即搬运的数据或者说请求的数据所能达到的最大数据长度);
(S4.3)发送命令(即CMD),由于本装置不涉及SPI协议层,并且根据SPI控制模块100与SPI交互接口102的握手机制,收到SPI交互接口102的握手信号即可跳转到下一控制状态(例如下一数据请求的数据搬运控制);
(S4.4)发送请求地址,支持24位和32位地址长度;
(S4.5)发送虚拟请求(dummy)数据,支持自定义dummy个数以及长度;
(S4.6)通过SPI交互接口102和SPI接口11接收从所述外围设备发回的相应数据,直到数据请求终止或其他配置关断,才会跳转到下一控制状态;
(S4.7)检查SPI接口11是否发送接收数据完毕,当前字节发送完后SPI接口11会发回一脉冲信号,以表示SPI接口11发送接收数据完毕;
(S4.8)通过所述脉冲信号关停SPI接口11;
(S4.9)对SPI接口11进行恢复配置(即复位SPI接口11),以便其他装置使用SPI接口11,并返回SPI接口11的空闲状态,等待接收下一数据请求。
本实施例的数据传输方法,利用本发明的基于SPI的数据传输加速装置,实现特殊的请求响应和控制机制,在仅有专用数据请求时,数据传输及数据传输间的切换过程无需CPU或系统总线参与,可以减轻CPU和系统总线的负担,提高SPI数据传输效率,解决专用模块的大规模数据传输效率需求;另外,可以在提前不清楚数据搬运量的情况下,搬运数据至所需模块,由此可以用来搬运一些特殊数据,尤其一些提前不能得知长度的压缩数据时效果比较明显;此外还可以实现多个请求搭配且较少的软件参与的控制方式,使得当前数据请求的数据传输完成后能极快地切换至下一数据请求的数据传输,使得SPI接口的利用率大大提高,尤其是仅多个专用数据请求工作时,甚至可以将切换周期缩短至若干个时钟周期。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1.一种基于SPI的数据传输加速装置,其特征在于,包括:寄存器模块、总线主机接口、系统请求模块、请求仲裁模块、SPI控制模块和至少一个专用请求接口,其中,
所述总线主机接口连接系统总线,所述总线主机接口和所述系统请求模块用于向所述SPI控制模块发送系统数据请求,并将所述SPI控制模块根据所述系统数据请求发回的数据,通过所述总线主机接口和所述系统总线搬运至与所述系统总线相连的存储地址;
所述寄存器模块用于接收和存储所述系统总线发过来的配置信息,以使所述SPI控制模块根据所述配置信息对其他各个模块进行配置;
所述专用请求接口连接相应的专用模块,用于向所述SPI控制模块发送所述专用模块发出的专用数据请求,并将所述SPI控制模块根据所述专用数据请求发回的数据搬运至所述专用模块;
所述请求仲裁模块用于对所述系统数据请求和所述专用数据请求进行仲裁,从中选出优先响应的数据请求,并将响应的数据请求传送给所述SPI控制模块;以及,
所述SPI控制模块用于根据接收到的数据请求以及一用于实现SPI控制模块和所述数据请求所需的数据所在的外围设备对接的SPI接口的状态,对所述SPI接口进行配置,以控制相应数据的搬运过程。
2.如权利要求1所述的基于SPI的数据传输加速装置,其特征在于,所述寄存器模块接收和存储的配置信息包括所述系统数据请求的请求地址和长度,以及,所述外围设备的命令和虚拟请求的长度;所述系统请求模块根据所述寄存器模块接收的所述系统数据请求的请求地址和长度向所述SPI控制模块发送系统数据请求。
3.如权利要求1所述的基于SPI的数据传输加速装置,其特征在于,所述专用请求接口允许传输的内容包括请求信号、请求地址、有效信号和数据信号。
4.如权利要求3所述的基于SPI的数据传输加速装置,其特征在于,所述专用请求接口向所述SPI控制模块发送的专用数据请求的内容包括所述专用模块发出的请求信号和请求地址,所述SPI控制模块根据所述专用数据请求而向所述专用请求接口发回的内容包括有效信号和数据信号。
5.如权利要求1所述的基于SPI的数据传输加速装置,其特征在于,所述请求仲裁模块用于在响应的前一数据请求对应的数据搬运过程结束后才会对当前的数据请求进行仲裁。
6.如权利要求5所述的基于SPI的数据传输加速装置,其特征在于,所述请求仲裁模块支持多个所述专用请求接口同时发送专用数据请求。
7.如权利要求1所述的基于SPI的数据传输加速装置,其特征在于,还包括SPI交互接口,所述SPI交互接口用于实现所述SPI接口和所述SPI控制模块的对接,并将所述SPI接口的状态反馈给所述SPI控制模块,使所述SPI控制模块对所述SPI接口进行配置和控制,以完成相应数据的搬运。
8.如权利要求7所述的基于SPI的数据传输加速装置,其特征在于,所述SPI控制模块用于依次发送所述命令、相应的请求地址和所述虚拟请求长度至所述SPI交互接口,并通过所述SPI交互接口配置SPI接口的发送数据寄存器,以完成相应数据的搬运。
9.如权利要求7所述的基于SPI的数据传输加速装置,其特征在于,所述SPI交互接口自带表示所述SPI接口的状态的状态信号,所述SPI控制模块通过所述SPI交互接口自带的状态信号获取所述SPI接口的状态,并基于所述状态信号完成对所述SPI接口的配置和收发控制,以控制相应数据的搬运过程。
10.如权利要求1至9中任一项所述的基于SPI的数据传输加速装置,其特征在于,所述外围设备为FLASH、网络控制器、LCD显示驱动器、A/D转换器、D/A转换器、主处理器。
11.一种基于SPI的数据传输系统,其特征在于,包括主处理器、系统总线、SPI接口、至少一个专用模块以及权利要求1至10中任一项所述的基于SPI的数据传输加速装置,其中,所述基于SPI的数据传输加速装置通过所述SPI接口与相应的外围设备连接,所述基于SPI的数据传输加速装置的总线主机接口通过所述系统总线与所述主处理器连接,所述基于SPI的数据传输加速装置的一个专用请求接口连接一个相应的所述专用模块。
12.一种利用权利要求1至10中任一项所述的基于SPI的数据传输加速装置的数据传输方法,其特征在于,包括以下步骤:
所述系统总线向寄存器模块发送配置信息,以完成所述基于SPI的数据传输加速装置的初始配置;
所述总线主机接口和所述系统请求模块根据所述系统总线发来的数据需求向所述SPI控制模块发送系统数据请求,各个所述专用请求接口根据连接的专用模块发来的数据需求向所述SPI控制模块发送相应的专用数据请求;
所述请求仲裁模块对所述系统数据请求和所有所述专用数据请求进行仲裁,从中选出优先响应的数据请求,并将响应的数据请求传送给所述SPI控制模块;
所述SPI控制模块根据接收到的数据请求以及一用于实现SPI控制模块和所述数据请求所需的数据所在的外围设备对接的SPI接口的状态,对所述SPI接口进行配置,以控制和完成所述数据请求所需的数据的搬运过程。
13.如权利要求12所述的数据传输方法,其特征在于,所述SPI控制模块控制和完成所述数据请求所需的数据的搬运过程的步骤包括:
首先,检查所述SPI接口的空闲状态,在确定所述SPI接口的状态为空闲时,使能并启动所述SPI接口,并对所述SPI接口进行初始配置;
接着,依次向所述SPI接口发送命令、请求地址以及虚拟请求长度;
然后,通过所述SPI接口接收所述外围设备发回的所述数据请求所需的数据,并在所述所需的数据接收完毕后关停所述SPI接口;
之后,对所述SPI接口进行恢复配置,并返回所述SPI接口的空闲状态,等待接收下一数据请求。
14.如权利要求13所述的数据传输方法,其特征在于,在所述所需的数据接收完毕时,所述SPI控制模块会从所述SPI接口接收到一脉冲信号,所述SPI控制模块通过所述脉冲信号关停所述SPI接口。
CN201810673764.5A 2018-06-26 2018-06-26 基于spi的数据传输加速装置、系统及数据传输方法 Active CN108959136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810673764.5A CN108959136B (zh) 2018-06-26 2018-06-26 基于spi的数据传输加速装置、系统及数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810673764.5A CN108959136B (zh) 2018-06-26 2018-06-26 基于spi的数据传输加速装置、系统及数据传输方法

Publications (2)

Publication Number Publication Date
CN108959136A true CN108959136A (zh) 2018-12-07
CN108959136B CN108959136B (zh) 2020-12-25

Family

ID=64487130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810673764.5A Active CN108959136B (zh) 2018-06-26 2018-06-26 基于spi的数据传输加速装置、系统及数据传输方法

Country Status (1)

Country Link
CN (1) CN108959136B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933293A (zh) * 2019-03-25 2019-06-25 深圳忆联信息系统有限公司 基于SpiFlash的数据写入方法、装置和计算机设备
CN112667549A (zh) * 2020-12-24 2021-04-16 杭州和利时自动化有限公司 一种通讯方法及模拟量采集系统
CN113419985A (zh) * 2021-06-15 2021-09-21 珠海市一微半导体有限公司 Spi系统自动读取数据的控制方法及spi系统
CN114328342A (zh) * 2020-09-29 2022-04-12 中国船舶重工集团公司第七二四研究所 一种用于PCIe异构加速卡的新型程控配置方法
CN114641763A (zh) * 2019-11-05 2022-06-17 深圳市汇顶科技股份有限公司 协议转换器模块系统和使用该协议转换器模块系统的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382927A (zh) * 2008-09-25 2009-03-11 杭州爱威芯科技有限公司 集成在芯片内的高速串行外围接口电路
US20100146157A1 (en) * 2008-12-10 2010-06-10 Electronics And Telecommunications Research Institute Multi-radio interfacing and direct memory access based data transferring methods and sink node for performing the same in wireless sensor network
CN102023956A (zh) * 2009-09-23 2011-04-20 上海摩波彼克半导体有限公司 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN102122367A (zh) * 2010-01-07 2011-07-13 上海华虹集成电路有限责任公司 一种大容量sim卡系统架构
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路
CN102495818A (zh) * 2011-12-09 2012-06-13 上海爱信诺航芯电子科技有限公司 一种提高软件方式spi通信速率的方法
CN104809094A (zh) * 2015-05-25 2015-07-29 中国电子科技集团公司第四十七研究所 Spi控制器及其通信方法
CN106874224A (zh) * 2017-02-17 2017-06-20 杭州朔天科技有限公司 自动搬运且适应器件的多线SPI‑Flash控制器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382927A (zh) * 2008-09-25 2009-03-11 杭州爱威芯科技有限公司 集成在芯片内的高速串行外围接口电路
US20100146157A1 (en) * 2008-12-10 2010-06-10 Electronics And Telecommunications Research Institute Multi-radio interfacing and direct memory access based data transferring methods and sink node for performing the same in wireless sensor network
CN102023956A (zh) * 2009-09-23 2011-04-20 上海摩波彼克半导体有限公司 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN102122367A (zh) * 2010-01-07 2011-07-13 上海华虹集成电路有限责任公司 一种大容量sim卡系统架构
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路
CN102495818A (zh) * 2011-12-09 2012-06-13 上海爱信诺航芯电子科技有限公司 一种提高软件方式spi通信速率的方法
CN104809094A (zh) * 2015-05-25 2015-07-29 中国电子科技集团公司第四十七研究所 Spi控制器及其通信方法
CN106874224A (zh) * 2017-02-17 2017-06-20 杭州朔天科技有限公司 自动搬运且适应器件的多线SPI‑Flash控制器

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933293A (zh) * 2019-03-25 2019-06-25 深圳忆联信息系统有限公司 基于SpiFlash的数据写入方法、装置和计算机设备
CN109933293B (zh) * 2019-03-25 2022-06-07 深圳忆联信息系统有限公司 基于SpiFlash的数据写入方法、装置和计算机设备
CN114641763A (zh) * 2019-11-05 2022-06-17 深圳市汇顶科技股份有限公司 协议转换器模块系统和使用该协议转换器模块系统的方法
CN114641763B (zh) * 2019-11-05 2024-04-19 深圳市汇顶科技股份有限公司 协议转换器模块系统和使用该协议转换器模块系统的方法
CN114328342A (zh) * 2020-09-29 2022-04-12 中国船舶重工集团公司第七二四研究所 一种用于PCIe异构加速卡的新型程控配置方法
CN114328342B (zh) * 2020-09-29 2023-09-26 中国船舶集团有限公司第七二四研究所 一种用于PCIe异构加速卡的新型程控配置方法
CN112667549A (zh) * 2020-12-24 2021-04-16 杭州和利时自动化有限公司 一种通讯方法及模拟量采集系统
CN113419985A (zh) * 2021-06-15 2021-09-21 珠海市一微半导体有限公司 Spi系统自动读取数据的控制方法及spi系统

Also Published As

Publication number Publication date
CN108959136B (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN108959136A (zh) 基于spi的数据传输加速装置、系统及数据传输方法
CN106951388B (zh) 一种基于PCIe的DMA数据传输方法及系统
EP2676204B1 (en) Serial interface
CN100595744C (zh) 芯片上系统集成电路、电子系统及在其内传送数据的方法
CN105824777B (zh) 一种spi总线在ipran设备中的实现方法
WO2016127552A1 (zh) 一种直接内存存取dma控制器及数据传输的方法
US10572410B2 (en) Function-specific communication on a multi-drop bus for coexistence management
JPH04230557A (ja) 直接メモリアクセス・コントローラ
CN112463651A (zh) Qspi控制器,图像处理器及闪存访问方法
US5444860A (en) Translator system for message transfers between digital units operating on different message protocols and different clock rates
TWI226547B (en) Bus system and bus interface for connection to a bus
CN112711550A (zh) Dma自动配置模块和片上系统soc
CN101937413B (zh) 一种i2c总线的通信方法
JP2005122372A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN101452430A (zh) 多处理器之间的通信方法与包括多处理器的通信装置
US9524260B2 (en) Universal serial bus (USB) communication systems and methods
CN101656658A (zh) 一种提高队列管理中出队效率的方法和装置
CN110297612A (zh) 一种mipi数据处理芯片及方法
CN116594951B (zh) 一种基于fpga的数据传输系统及方法
CN111045817A (zh) 一种PCIe传输管理方法、系统和装置
US6684284B1 (en) Control chipset, and data transaction method and signal transmission devices therefor
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
CN109992560B (zh) 一种通信方法及通信系统
CN101290564B (zh) 数据传输方法、系统及cpu接口控制器
CN106655975B (zh) 兼顾低延时和高吞吐量的数据通信的电动机控制装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant