CN111444123A - 基于硬件加速的spi接口的自动读取控制系统及方法 - Google Patents
基于硬件加速的spi接口的自动读取控制系统及方法 Download PDFInfo
- Publication number
- CN111444123A CN111444123A CN202010232675.4A CN202010232675A CN111444123A CN 111444123 A CN111444123 A CN 111444123A CN 202010232675 A CN202010232675 A CN 202010232675A CN 111444123 A CN111444123 A CN 111444123A
- Authority
- CN
- China
- Prior art keywords
- read
- data
- group
- reading
- counter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开基于硬件加速的SPI接口的自动读取控制系统及方法,自动读取控制系统包括SPI接口模块、APB接口模块、中断产生模块、DMA控制器、状态调度控制模块、寄存器组模块、计数信号产生模块、发送数据缓冲器和接收数据缓冲器;状态调度控制模块、寄存器组模块和计数信号产生模块构成一个状态机系统,状态调度控制模块根据寄存器组模块的配置信息和计数信号产生模块的计数定时信息,实现对SPI接口的传感器数据定时分批自动读取的控制。本发明采用前述模块进行硬件加速以替代软件算法,充分发挥硬件所固有的处理速度优势,减少CPU大量使用软件中断延时程序,降低CPU的软件处理负担,也实现硬件加速的技术效果。
Description
技术领域
本发明涉及数据传输处理领域,特别涉及一种基于硬件加速的SPI接口的自动读取控制系统及其自动读取控制系统。
背景技术
SPI接口最早由Motorola公司提出的一种全双工、同步串行传输总线。SPI具有电路结构简单、传输速度快、通信可靠等优点,主要用于微控制器与外围设备之间的通信。现在,越来越多的高速传感器接口采用SPI接口。
机器人智能化发展离不开各种传感器的应用支持,其中陀螺仪和光流仪等传感器广泛应用于机器人运动控制等领域。机器人微控制器需要通过SPI接口,实时获取陀螺仪和光流仪等外围传感器的数据信息。因为从陀螺仪和光流仪读取数据较为频繁,需要一个精准的定时器来控制。如果通过用触发软件中断的方式来实现的话,频繁的中断会影响软件执行的流畅性,降低软件效率,对实时处理有一定的影响。
发明内容
针对以上问题,本发明提供了一种硬件实现SPI接口传感器数据的自动读取控制系统,因为从陀螺仪和光流仪等传感器读取回来的数据需要一个精准的定时来计算,用软件做的话很难达成实时处理的要求,故而采用硬件设计的方式来实现待读取存储器的数据自动读取,具体的技术方案如下:
一种基于硬件加速的SPI接口的自动读取控制系统,自动读取控制系统分别与CPU和外部的待读取存储器相连,自动读取控制系统包括SPI接口模块、APB接口模块、中断产生模块和DMA控制器,该自动读取控制系统还包括状态机控制器、发送数据缓冲器和接收数据缓冲器;SPI接口模块,用于按照SPI总线时序完成自动读取控制系统与其外部的待读取存储器的数据通信,并分别为发送数据缓冲器和接收数据缓冲器提供其与外部的待读取存储器之间的传输通道;APB接口模块,用于按照APB总线时序给寄存器组模块配置CPU发过来的数据读取配置信息;状态机控制器用于接收APB接口模块传输过来的配置信息,状态机控制器内部包括产生计数信号的驱动源,状态机控制器在内部驱动源的计数信号驱动下,结合配置信息调度出相应的工作状态,控制接收数据缓冲器在每一轮读取操作中,按照一定的读取频率,成批量地读出外部的待读取存储器内的数据;发送数据缓冲器,用于接收寄存器组模块配置的用于访问读取外部的待读取存储器数据的寻址地址,使得每一轮访问读操作中,所述自动读取控制系统支持寻址外部的待读取存储器内不同组数据的目的地址和/或源地址;接收数据缓冲器,用于在DMA控制器的控制作用下,根据状态机控制器调度出的工作状态,存放从外部的待读取存储器读取的数据,并自动将内部存储的数据传输给外部的数据存储器,以供软件调用,其中,这个DMA控制器,用于通过SPI接口模块将外部的待读取存储器中的数据读出并存放到接收数据缓冲器,或者从接收数据缓冲器读取数据存到外部的数据存储器;中断产生模块,用于在自动读取控制系统完成一轮外部的待读取存储器的数据的读取后,产生中断信号,通知CPU已完成数据读取;其中,每一轮读取外部的待读取存储器的数据,都按照寄存器组模块配置信息划分为不同组数据,每一组数据配置的目的地址和源地址都不同。
与现有技术相比,该技术方案通过硬件自动调度工作和硬件延时模块实现SPI接口定时去读取外部的待读取存储器(陀螺仪/光流仪)内的数据,能够按照不同读取频率自动分批读取数据,减少大量使用软件延时程序,进而降低CPU的软件处理负担,实现硬件加速的效果。
进一步地,所述状态机控制器包括寄存器组模块、计数信号产生模块和状态调度控制模块;寄存器组模块,用于接收所述APB接口模块传输过来的配置信息,包括延时配置信息和数据长度配置信息,并对状态调度控制模块、计数信号产生模块、发送数据缓冲器和接收数据缓冲器进行配置;计数信号产生模块,包括定时器和计数器,定时器用于以寄存器组模块的延时配置信息为定时临界参数,计数产生出确定外部的待读取存储器内每组数据的读取频率的定时信号;所述计数器用于以寄存器组模块的数据长度配置信息为数据长度临界参数,计数出确定外部的待读取存储器内每组数据的数据长度的计数信号;状态调度控制模块,用于根据寄存器组模块的配置信息和计数信号产生模块的计数信息及定时信息,产生所述自动读取控制系统自动读取外部的待读取存储器的数据的调度动作和工作状态,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据。
进一步地,所述寄存器组模块包括使能控制寄存器、地址长度选择寄存器、地址选择寄存器、读等待时间寄存器、字节长度选择寄存器、组间隔时间寄存器、最大组数寄存器和再次读取等待时间寄存器;使能控制寄存器,用于为所述自动读取控制系统配置复位信息;地址选择寄存器,用于为所述状态调度控制模块和所述发送数据缓冲器配置寻址地址;地址长度选择寄存器,用于为所述状态调度控制模块和所述发送数据缓冲器配置寻址地址长度;读等待时间寄存器,用于为所述状态调度控制模块和所述接收数据缓冲器配置读延时参数,该读延时参数为:从所述发送数据缓冲器发送完寻址地址后,至所述接收数据缓冲器开始接收外部的待读取存储器中的数据之前所设置的定时参数;字节长度选择寄存器,用于为所述状态调度控制模块和所述接收数据缓冲器配置读取外部的待读取存储器的数据的数据长度;组间隔时间寄存器,用于为所述状态调度控制模块和所述接收数据缓冲器配置组延时参数,该组延时参数为:读取外部的待读取存储器中的相邻两组数据的时间间隔参数;最大组数寄存器,用于为所述自动读取控制系统配置外部的待读取存储器每轮被读取数据的最大组数;再次读取等待时间寄存器,用于为所述自动读取控制系统配置再次读延时参数,该再次读延时参数为:从所述接收数据缓冲器当前一轮接收完外部的待读取存储器的数据之后,至所述接收数据缓冲器开始下一轮接收外部的待读取存储器中的数据之前所设置的定时参数。
与现有技术相比,本提案公开的所述寄存器组模块支持灵活配置传感器数据的读取信息。满足读取过程的不同定时要求和丰富目的地址资源。
进一步地,所述计数信号产生模块包括组计数器、读等待计数器、字节计数器、组间隔计数器和再次读取等待计数器;组计数器,用于计数输出所述接收数据缓冲器当前读取外部的待读取存储器的数据所属的组号;读等待计数器,用于在所述发送数据缓冲器发送完寻址地址后,所述接收数据缓冲器开始接收数据之前,保持计数操作直至其计数值达到所述读延时参数,再清零;字节计数器,用于计数所述接收数据缓冲器读入数据的字节长度,每当计数值达到所述字节长度选择寄存器配置的与组计数器当前计数值对应的组号的一组数据的数据长度时,清零,其中,一组数据的数据长度是该组数据的字节长度之和;组间隔计数器,用于在所述接收数据缓冲器相继读取相邻两组数据之间保持计数操作,直至其计数值达到所述组延时参数,再清零;再次读取等待计数器,用于在所述自动读取控制系统当前一轮读取完外部的待读取存储器的数据之后,开始下一轮读取外部的待读取存储器的数据之前,保持计数操作直到其计数值达到所述再次读延时参数,再清零;其中,读等待计数器、组间隔计数器和再次读取等待计数器的计数值之和,形成用于确定外部的待读取存储器内每组数据的读取频率的定时信号。
该技术方案公开的所述计数信号产生模块产生的定时计数信息可用于配置读取数据的长度,还可以设置地址与数据,相邻两组数据的地址之间的访问时间间隔。
进一步地,所述状态调度控制模块包括复位工作子模块、寻址地址配置发送子模块、读等待控制子模块、数据读取控制子模块、组间读取控制子模块和数据读取完成控制子模块;复位工作子模块,用于在所述自动读取控制系统上电复位时,控制所述使能控制寄存器配置复位信息,并启动寻址地址配置发送子模块开始工作;寻址地址配置发送子模块,用于从所述地址长度选择寄存器选择与所述组计数器当前计数值匹配的一组数据的寻址地址长度,同时从所述地址选择寄存器中选择与所述组计数器当前计数值匹配一组数据的寻址地址,在所述地址长度选择寄存器和所述地址选择寄存器完成配置后,将所述地址选择寄存器中的寻址地址送给所述发送数据缓冲器,使得所述发送数据缓冲器通过所述SPI接口模块发送用于读取外部的待读取存储器的寻址地址;在所述发送数据缓冲器发送完这些寻址地址后,启动读等待控制子模块开始工作;读等待控制子模块,用于启动所述读等待计数器计数所述自动读取控制系统从发送完寻址地址至接收数据的时间延时,当所述读等待计数器的计数值达到所述读延时参数时,将所述读等待计数器清零,再控制数据读取控制子模块启动工作;在所述读等待计数器的计数值达到所述读延时参数之前,从所述字节长度选择寄存器选择与所述组计数器当前计数值匹配的一组数据的数据长度;数据读取控制子模块,用于启动所述字节计数器计数所述接收数据缓冲器读入的每组数据的字节长度,当所述字节计数器每计数至所述字节长度选择寄存器配置的与所述组计数器当前计数值匹配的一组数据的数据长度时,控制所述组计数器的计数值加一,且清零所述字节计数器,使得所述状态调度控制模块控制所述接收数据缓冲器结束读取外部的待读取存储器的当前一组数据,开始读取外部的待读取存储器的下一组数据,然后启动组间读取控制子模块工作;组间读取控制子模块,用于当所述组计数器的计数值达到所述最大组数寄存器配置的当前一轮被读取数据的最大组数时,将所述组计数器的计数值清零,再控制数据读取完成控制子模块启动工作;否则,控制所述组间隔计数器启动计数,当所述组间隔计数器的计数值达到所述组延时参数时,调度寻址地址配置发送子模块重新进入工作状态,以准备读取外部的待读取存储器的下一组数据;数据读取完成控制子模块,用于启动所述再次读取等待计数器计数,以延时等待当前一轮的外部的待读取存储器的数据读取操作的结束,当所述再次读取等待计数器的计数值达到所述再次读延时参数时,将所述再次读取等待计数器清零,调度复位工作子模块重新进入工作状态,以开始下一轮的外部的待读取存储器的数据读取操作。
与现有技术相比,所述状态调度控制模块、所述寄存器组模块和所述计数信号产生模块构成一个状态机系统,实现硬件加速的手段对SPI接口的传感器数据通信速率和自动读取的控制;所述状态调度控制模块根据所述寄存器组模块的配置信息和所述计数信号产生模块的计数定时信息,产生所述自动读取控制系统自动读取外部的待读取存储器的数据的调度动作和工作状态,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据。
进一步地,所述发送数据缓冲器和所述接收数据缓冲器都是先进先出队列;所述地址选择寄存器最先送出的寻址地址被所述发送数据缓冲器最先存放,所述发送数据缓冲器的队头存放的寻址地址最先发送给外部的待读取存储器;所述接收数据缓冲器最先存放外部的待读取存储器最先被读取的数据,所述接收数据缓冲器的队头存放的数据在DMA控制器的控制作用下最先发送给外部的数据存储器。该技术方案减少CPU或DMA的依赖,控制传感器数据的自动搬运,适应各种传感器、总线接口设备。
进一步地,所述自动读取控制系统在一轮所述外部的待读取存储器的数据读取访问过程中,支持寻址3组不同的目的地址。提高数据读取效率。
本发明还提供一种基于所述自动读取控制系统的自动读取控制方法,包括:步骤A、按照APB总线时序接收CPU传输过来的配置信息;步骤B、在状态机控制器内部驱动源的计数信号驱动下,结合配置信息调度出相应的工作状态,控制接收数据缓冲器在每一轮读取操作中,先向发送数据缓冲器发送外部的待读取存储器内不同组数据的寻址地址,然后结合调度出的对应的工作状态,控制接收数据缓冲器按照一定的读取频率,通过DMA控制器成批量地读出外部的待读取存储器内的数据;步骤C、完成一轮外部的待读取存储器的数据的读取后,产生中断信号,通知CPU已完成数据读取;其中,每一轮读取外部的待读取存储器的一批数据,都按照寄存器组模块配置信息划分为不同组,每一组数据配置的目的地址和源地址都不同。该技术方案让硬件系统成批量地有频率地读取外部存储器内的待读取数据,节约CPU查询的频率,加快了数据传输过程,也提高了软件执行的流畅性,提升了软硬协同加速的效率。
进一步地,所述步骤B具体包括:步骤S1、当使能控制寄存器置高电平时进入步骤S2,否则保持复位状态;步骤S2、从地址长度选择寄存器选择与组计数器当前计数值匹配的寻址地址长度,同时从地址选择寄存器中选择与组计数器当前计数值匹配的寻址地址,在地址长度选择寄存器和地址选择寄存器完成配置更新后,将地址选择寄存器中的寻址地址送给所述发送数据缓冲器,所述发送数据缓冲器发送完这些寻址地址后,进入步骤S3;步骤S3、启动读等待计数器计数所述自动读取控制系统从发送完寻址地址至接收数据的时间延时,同时,从字节长度选择寄存器选择与组计数器当前计数值匹配的数据长度,当读等待计数器的计数值达到读等待时间寄存器配置的读延时参数时,将读等待计数器清零,再进入步骤S4;步骤S4、启动字节计数器计数所述接收数据缓冲器读入的每组数据的字节长度,当字节计数器计数至字节长度选择寄存器配置的与组计数器当前计数值匹配的数据长度时,控制组计数器的计数值加一,且清零字节计数器,然后进入步骤S5;步骤S5、判断组计数器的计数值是否达到最大组数寄存器配置的当前一轮被读取数据的最大组数,是则将组计数器的计数值清零,再进入步骤S6;否则控制组间隔计数器启动计数,并判断组间隔计数器的计数值是否达到组间隔时间寄存器配置的组延时参数,是则返回步骤S2,否则控制组间隔计数器保持计数;步骤S6、启动再次读取等待计数器计数,当再次读取等待计数器的计数值达到再次读取等待时间寄存器配置的再次读延时参数时,将再次读取等待计数器清零,返回步骤S1;其中,所述状态机控制器内部的寄存器包括:使能控制寄存器、地址长度选择寄存器、地址选择寄存器、字节长度选择寄存器、最大组数寄存器、读等待时间寄存器、组间隔时间寄存器和再次读取等待时间寄存器;所述状态机控制器内部的计数器包括:所述组计数器、所述读等待计数器、所述字节计数器、所述最大组数寄存器、所述组间隔计数器和所述再次读取等待计数器。
附图说明
图1为一种基于硬件加速的SPI接口的自动读取控制系统框架示意图。
图2为基于硬件加速的SPI接口的自动读取控制方法的一种实施例的流程图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明。需要本领域技术人员注意的是,本发明公开的所有模块、子模块、控制器以及系统都是一种数字逻辑电路,采用VHDL或者Verilog等硬件描述语言进行设计,并映射形成一种可供生产制造成集成电路的网表信息。
现有传感器,比如从陀螺仪和光流传感器读取数据需要一个精准的定时机制,用软件做的话会存在许多CPU中断查询流程,直接影响数据的实时处理效果,故而采用硬件设计的方式来实现陀螺仪和光流传感器的数据自动读取,本实施例通过SPI接口来实现,也可以采用其他从机总线接口去实现与待读取存储器对接,其实现原理是:通过设定时间来驱动SPI接口分批次去读取陀螺仪和光流传感器内的待读取存储器的数据,并将读取的数据存放在发送FIFO中,再在一个状态机的调度下通过通用的DMA方式自动将数据传输出去,以供软件使用。
一种基于硬件加速的SPI接口的自动读取控制系统,自动读取控制系统分别与CPU和外部的待读取存储器相连,这里的的待读取存储器可以是传感器设备的,自动读取控制系统包括通用的SPI接口模块、通用的APB接口模块、通用的中断产生模块和通用的DMA控制器,与现有的系统的区别在于,该自动读取控制系统还包括状态机控制器、发送数据缓冲器和接收数据缓冲器;SPI接口模块,用于按照通用的SPI总线时序完成自动读取控制系统与其外部的待读取存储器的数据通信,并分别为发送数据缓冲器和接收数据缓冲器提供其与外部的待读取存储器之间的传输通道; APB接口模块,用于按照APB总线时序给寄存器组模块配置CPU发过来的数据读取配置信息;状态机控制器用于接收APB接口模块传输过来的配置信息,状态机控制器内部包括产生计数信号的驱动源,状态机控制器在内部驱动源的计数信号驱动下,结合配置信息调度出相应的工作状态,控制接收数据缓冲器在每一轮读取操作中,按照一定的读取频率,成批量地读出外部的待读取存储器内的数据;发送数据缓冲器,用于接收寄存器组模块配置的用于访问读取外部的待读取存储器数据的寻址地址,使得每一轮访问读操作中,所述自动读取控制系统支持寻址外部的待读取存储器内不同组数据的目的地址和/或源地址;接收数据缓冲器,用于在通用的DMA控制器的控制作用下,根据状态机控制器调度出的工作状态,存放从外部的待读取存储器读取的数据,并自动将内部存储的数据传输给外部的数据存储器,以供软件调用,其中,这个通用的DMA控制器,用于通过SPI接口模块将外部的待读取存储器中的数据读出并存放到接收数据缓冲器,或者从接收数据缓冲器读取数据存到外部的数据存储器;中断产生模块,用于在自动读取控制系统完成一轮外部的待读取存储器的数据的读取后,产生中断信号,通知CPU已完成数据读取;其中,每一轮读取外部的待读取存储器的数据,都按照寄存器组模块配置信息划分为不同组数据,每一组数据都匹配上对应的组号,每一组数据配置的目的地址和源地址都不同。
作为一种实施例,所述状态机控制器包括寄存器组模块、计数信号产生模块和状态调度控制模块;寄存器组模块,用于接收所述APB接口模块传输过来的配置信息,包括延时配置信息和数据长度配置信息,并对状态调度控制模块、计数信号产生模块、发送数据缓冲器和接收数据缓冲器进行配置;计数信号产生模块,包括定时器和计数器,定时器用于以寄存器组模块的延时配置信息为定时临界参数,计数产生出确定外部的待读取存储器内每组数据的读取频率的定时信号;所述计数器用于以寄存器组模块的数据长度配置信息为数据长度临界参数,计数出确定外部的待读取存储器内每组数据的数据长度的计数信号;状态调度控制模块,用于根据寄存器组模块的配置信息和计数信号产生模块的计数信息及定时信息,产生所述自动读取控制系统自动读取外部的待读取存储器的数据的调度动作和工作状态,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据。
如图1所示,该自动读取控制系统分别与CPU和外部的待读取存储器相连,自动读取控制系统包括通用的SPI接口模块、通用的APB接口模块、通用的中断产生模块和通用的DMA控制器,这些常规的接口模块根据总线类型,例如SPI总线、APB总线和DMA总线相应配置得到的。本实施例的CPU是由单片机或者SOC芯片代替,外部的待读取存储器可以是串行接口或并行接口的通信设备。所述自动读取控制系统还包括状态调度控制模块、寄存器组模块、计数信号产生模块、发送数据缓冲器和接收数据缓冲器。
SPI接口模块,是自动读取控制系统访问外部的待读取存储器的通道,用于按照通用的SPI总线时序完成自动读取控制系统与其外部的待读取存储器的数据通信,并分别为发送数据缓冲器和接收数据缓冲器提供其与外部的待读取存储器之间的传输通道,发送数据缓冲器和接收数据缓冲器提供其与外部的待读取存储器的交互机制与SPI总线的作用机制一样。
APB接口模块,是CPU访问自动读取控制系统的通道,用于按照AHB总线时序给寄存器组模块配置CPU发过来的数据读取配置信息,完成CPU与所述自动读取控制系统之间的通信。
寄存器组模块,用于接收APB接口模块传输过来的配置信息,并能够通过控制信号线对状态调度控制模块、计数信号产生模块、发送数据缓冲器和接收数据缓冲器进行控制参数的配置,CPU通过APB接口模块对寄存器组模块内部的寄存器进行参数配置。
计数信号产生模块,用于根据寄存器组模块的配置信息,计数产生出确定外部的待读取存储器内每组数据的读取频率的定时信号,还产生出确定外部的待读取存储器内每组数据的数据长度的计数信号,计数信号产生模块内部的定时器或计数器能够对系统的时钟信号进行分频,配合上述读取频率和计数信号,完成对所述自动读取控制系统的串行通信速率的控制。
状态调度控制模块负责整个所述自动读取控制系统的工作状态的调度,其接收寄存器组模块和计数信号产生模块的信号,状态调度控制模块用于根据寄存器组模块的配置信息和计数信号产生模块的计数定时信息,产生所述自动读取控制系统自动读取外部的待读取存储器的数据的调度动作和工作状态,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据,其中,状态调度控制模块产生的动作和信号包括:使能信号、异常信号、计数控制信号、缓冲读写使能信号、片选信号等。
发送数据缓冲器,用于接收寄存器组模块配置的用于访问读取外部的待读取存储器数据的寻址地址,使得每一轮访问读操作中,所述自动读取控制系统支持寻址外部的待读取存储器内不同组数据的目的地址和/或源地址,其中,发送数据缓冲器缓存的寻址地址通过SPI接口模块向外部的待读取存储器发送。
接收数据缓冲器,用于在通用的DMA控制器的控制作用下,根据状态调度控制模块的调度动作和工作状态信号,存放从外部的待读取存储器读取的数据,并自动将内部存储的数据传输给外部的数据存储器,以供软件调用,其中,这个通用的DMA控制器,用于通过SPI接口模块将外部的待读取存储器中的数据读出并存放到接收数据缓冲器,或者从接收数据缓冲器读取数据存到外部的数据存储器。
中断产生模块,用于在自动读取控制系统完成一轮外部的待读取存储器的数据的读取后,即执行一次陀螺仪或光流仪等传感器数据读取后,产生中断信号,通知CPU已完成一轮数据读取。
其中,成批量地读取数据是:每一轮读取外部的待读取存储器的一批数据,都按照寄存器组模块配置信息划分为不同组待读取数据,每一组待读取数据配置的目的地址和源地址都不同,每一组待读取数据的数据长度可以不同,但可以拥有多个数据,均被按照配置的寻址地址依次读出,所述接收数据缓冲器读取可以按照各个组内的源地址和目的地址寻址外部的待读取存储器的数据。软件初始化配置一次就可访问多组不同的目的地址,实现频批量式处理数据,可以更高效地读取刷新传感器的多种数据信息。
与现有技术相比,本实施例公开的一种基于硬件加速的SPI接口的自动读取控制系统,通过硬件自动调度工作和硬件延时模块实现SPI接口定时去读取外部的待读取存储器(陀螺仪/光流仪)内的数据,满足不同读取频率的需求,本实施例采用前述模块进行硬件加速以替代软件算法,充分发挥硬件所固有的处理速度优势,减少CPU大量使用软件中断延时程序,减少不必要的CPU读取操作,进而降低CPU的软件处理负担,也实现硬件加速的技术效果。
具体地,如图1所示,所述寄存器组模块包括使能控制寄存器auto_read_en、地址长度选择寄存器byte_length_sel、地址选择寄存器addr_search、读等待时间寄存器wait_time_num、字节长度选择寄存器byte_length_sel、组间隔时间寄存器group_time_num、最大组数寄存器group_num和再次读取等待时间寄存器next_time_num。
使能控制寄存器auto_read_en,用于为所述自动读取控制系统配置复位信息,当使能控制寄存器auto_read_en置1时,控制所述自动读取控制系统进入寻址工作状态。
地址选择寄存器addr_search_sel,用于为所述状态调度控制模块和所述发送数据缓冲器配置寻址地址,包括外部的待读取存储器的所有组数据的寻址地址,该寻址地址与外部的待读取存储器的一批数据所属划分组的组号相匹配,比如分区存储有组号1的一组数据的寻址地址、组号2的一组数据的寻址地址以及组号3的一组数据的寻址地址。本实施例按照读取数据的分组情况划分为3组地址选择寄存器addr_search_0 、addr_search_1或addr_search_2,在本系统的寻址地址数据可以以寄存器的方式存储。
地址长度选择寄存器addr_length_sel,用于为所述状态调度控制模块和所述发送数据缓冲器配置寻址地址长度,包括外部的待读取存储器的所有组数据的寻址地址长度,该寻址地址长度与外部的待读取存储器的一批数据所属划分组的组号相匹配,比如分区存储有组号1的一组数据的寻址地址长度、组号2的一组数据的寻址地址长度以及组号3的一组数据的寻址地址长度。本实施例按照读取数据的分组情况划分为3组地址长度选择寄存器addr_length_0、addr_length_1或 addr_length_2,在本系统的寻址地址长度可以以寄存器的方式存在;本实施例可以将地址长度选择寄存器addr_length_sel内置的寻址地址长度设置为8bit或16bit,当addr_length_sel为0时,配置8bit寻址地址;当addr_length_sel为1时,配置16bit寻址地址,使得寻址地址长度灵活可控,对陀螺仪、光流传感器等不同型号传感器的兼容性更好。
读等待时间寄存器wait_time_num,用于为所述状态调度控制模块和所述接收数据缓冲器配置读延时参数,该读延时参数为:从所述发送数据缓冲器发送完寻址地址后,至所述接收数据缓冲器开始接收外部的待读取存储器中的数据之前所设置的定时参数。
字节长度选择寄存器byte_length_sel,用于为所述状态调度控制模块和所述接收数据缓冲器配置读取外部的待读取存储器的各组数据的数据长度,该数据长度与外部的待读取存储器的一批数据所属划分组的组号相匹配,比如分区存储有组号1的一组数据的数据长度、组号2的一组数据的数据长度以及组号3的一组数据的数据长度。本实施例将数据长度配置为1至32个字节,每次从外部的待读取存储器读取1至32个字节的数据,可以理解为各个数据的字节长度之和,一个字节长度可以是8个比特位,本实施例按照读取数据的分组情况将字节长度选择寄存器划分为3种类别的字节长度选择寄存器addr_search_0 、addr_search_1或addr_search_2。
组间隔时间寄存器group_time_num,用于为所述状态调度控制模块和所述接收数据缓冲器配置组延时参数,该组延时参数为:读取外部的待读取存储器中的相邻两组数据的时间间隔参数,也是相继访问相邻两组数据的地址的延时参数。
最大组数寄存器group_num,用于为所述自动读取控制系统配置外部的待读取存储器每轮被读取数据的最大组数;优选地,在启动传感器数据读取前,本实施例通过软件配置所述自动读取控制系统在一轮数据读取操作中最多可寻址3组不同的目的地址。
再次读取等待时间寄存器next_time_num,用于为所述自动读取控制系统配置再次读延时参数,该再次读延时参数为:从所述接收数据缓冲器当前一轮接收完外部的待读取存储器的数据之后,至所述接收数据缓冲器开始下一轮接收外部的待读取存储器中的数据之前所设置的定时参数。
值得说明的是,前述实施例中的所述定时临界参数包括读等待时间寄存器配置的读延时参数、组间隔时间寄存器配置的组延时参数和再次读取等待时间寄存器配置的再次读延时参数;所述数据长度临界参数包括字节长度选择寄存器配置的数据长度和最大组数寄存器配置的最大组数。
与现有技术相比,本提案公开的所述寄存器组模块支持灵活配置传感器数据的读取信息,通过前述读等待时间寄存器wait_time_num、组间隔时间寄存器group_time_num和再次读取等待时间寄存器next_time_num灵活配置传感器数据读取过程的不同定时要求,完成对SPI控制器串行通信速率的控制,从而满足不同读取频率的需求;地址选择寄存器addr_search_sel和最大组数寄存器group_num实现可访问多组不同的目的地址的效果,提高刷新传感器的多种数据信息效率。
具体地,如图1所示,所述计数信号产生模块包括组计数器group_cnt、读等待计数器wait_time_cnt、字节计数器byte_cnt、组间隔计数器group_time_cnt和再次读取等待计数器next_time_cnt。
组计数器group_cnt,用于计数输出所述接收数据缓冲器当前读取外部的待读取存储器的数据所属的组号,组计数器group_cnt的计数值优选为0、1和 2,可用于配置好3组不同的寻址地址、3组不同的寻址地址长度和3组不同的读取数据长度;因而,外部的待读取存储器的数据按所述目的地址和所述源地址的配置而被所述接收数据缓冲器分组读取。
读等待计数器wait_time_cnt,用于在所述发送数据缓冲器发送完寻址地址后,所述接收数据缓冲器开始接收数据之前,保持计数操作直至其计数值达到所述读延时参数,即计数至读等待时间寄存器wait_time_num的配置值,再清零。
字节计数器byte_cnt,用于计数所述接收数据缓冲器读入的每个数据的字节长度,即统计读入数据的字节个数,每当计数值达到所述字节长度选择寄存器byte_length_sel配置的与组计数器group_cnt当前计数值对应的组号的一组数据的数据长度(组号匹配)时,清零。值得注意的是,所述数据长度是一组数据的字节长度之和,字节计数器byte_cnt每计数8个比特位即记为计数一个字节长度。字节计数器byte_cnt用于产生出确定外部的待读取存储器内每组数据的数据长度的计数信号。
组间隔计数器group_time_cnt,用于在所述接收数据缓冲器相继读取相邻两组数据之间保持计数操作,直至其计数值达到所述组延时参数,即计数至所述组间隔时间寄存器group_time_num配置的组延时参数,再清零。
再次读取等待计数器next_time_cnt,用于在所述自动读取控制系统当前一轮读取完外部的待读取存储器的数据之后,开始下一轮读取外部的待读取存储器的数据之前,保持计数操作直到其计数值达到所述再次读延时参数,即计数至所述再次读取等待时间寄存器next_time_num配置的所述再次读延时参数时,清零。
前述的读等待计数器、组间隔计数器和再次读取等待计数器的计数值之和,即进行一轮待读取存储器数据的读取操作所需的等待延时参数之和,形成用于确定外部的待读取存储器内每组数据的读取频率的定时信号。本实施例公开的所述计数信号产生模块设置地址与数据,相邻两组数据的地址之间的访问时间间隔,通过多个定时器,满足不同读频率的需求,自动实现传感器数据实时自动刷新。前述的组计数器group_cnt和字节计数器byte_cnt产生的定时计数信息可用于配置读取数据的字节长度/数据长度,使得外部传感器的数据分组读取成为可能,从而可以寻址更多目的地址上数据信息。值得说明的是,前述实施例所述状态机控制器的所述定时器包括读等待计数器、组间隔计数器和再次读取等待计数器;所述状态机控制器的所述计数器包括组计数器和字节计数器。
优选地,所述自动读取控制系统在一轮所述外部的待读取存储器的数据读取访问过程中,支持寻址3组不同的目的地址。提高数据读取效率。
陀螺仪和光流仪等传感器数据读取流程都基本上是一致的,都是先发寻址地址,然后读取数据回来,本发明实施例采用了一个状态机来实现相关的控制流程,状态机的状态编码优选为独热码,从而一定程度上简化了系统电路的译码逻辑。本实施例设置的所述状态调度控制模块对应于状态机,状态机能够在各个状态跳转运行需要配置前述各种寄存器、定时器和/或计数器。状态跳转调度的步骤可以有所差别,但跳转的条件离不开这些器件的支持。状态机总共有6个状态分别对应于所述状态调度控制模块包括的六个子模块:空闲状态IDLE是由复位工作子模块控制,发送寻址状态SEND_ADDR是寻址地址配置发送子模块控制,数据读取等待状态READ_WAIT是读等待控制子模块控制,数据读取接收状态READ_DATA是数据读取控制子模块控制,组读取间隔等待状态GROUP_GAP是组间读取控制子模块,数据读取完成状态READ_OVER是数据读取完成控制子模块控制。从而,状态调度控制模块根据寄存器组模块的配置信息和计数信号产生模块的计数定时信息,产生所述自动读取控制系统自动读取外部的待读取存储器的数据的调度动作和工作状态,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据。
需要说明的是,本发明实施例中提及的状态机是由状态寄存器和组合逻辑计数电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是调度相关信号动作、完成特定操作的控制中心。本实施例将所述自动读取控制系统内部的相关的模块,特别是所述状态机控制器包括的寄存器组模块、计数信号产生模块和状态调度控制模块,其中涉及的读取数据的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合硬件电路的工作特点。
空闲状态IDLE是系统的默认状态,系统上电复位时进入该状态。复位工作子模块,用于在所述自动读取控制系统上电复位后,根据所述使能控制寄存器配置复位信息;当使能控制寄存器auto_read_en置1,则跳转到SEND_ADDR状态,调度寻址地址配置发送子模块开始工作。
寻址地址配置发送子模块根据所述地址长度选择寄存器addr_len_sel和所述地址选择寄存器addr_search的配置信息和所述组计数器group_cnt的计数信息,让所述自动读取控制系统工作在发送寻址状态SEND_ADDR下。在发送寻址状态SEND_ADDR下,寻址地址配置发送子模块用于根据所述组计数器group_cnt的计数值对应的组号,从所述地址长度选择寄存器addr_len_sel选择与该组号匹配的一组数据的寻址地址长度,寻址地址配置发送子模块通过所述组计数器group_cnt的计数作用可以设置为3组地址长度选择寄存器addr_length_0、addr_length_1或 addr_length_2中与所述组计数器group_cnt当前计数值匹配的一组,以适应被划分的不同组数据,具体为:当group_cnt计数为0,即对应组号为0时,addr_length_sel 选择addr_length_0这一种地址长度选择寄存器;当group_cnt计数为1,即对应组号为1时,addr_length_sel选择 addr_length_1;当group_cnt 计数为2,即对应组号为2时,addr_length_sel选择 addr_length_2。需要说明的是,前述各组的地址长度选择寄存器配置的寻址地址长度不一样,比如,当addr_length_sel为0时,发送8bit寻址地址;当addr_length_sel为1时,发送16bit寻址地址,使得寻址地址配置发送子模块选择的寻址地址长度类型灵活可控,能够兼容陀螺仪和光流传感器等不同型号传感器。同时,根据所述组计数器group_cnt的计数值对应的组号,寻址地址配置发送子模块可以从所述地址选择寄存器addr_search中选择与该组号匹配的一组数据的寻址地址,通过所述组计数器group_cnt的计数作用,寻址地址配置发送子模块可设置为3组所述地址选择寄存器addr_search_0 、addr_search_1或 addr_search_2中与所述组计数器group_cnt当前计数值匹配的一组,具体为:当group_cnt 计数为 0,即对应组号为0时,addr_search_sel 选择为 addr_search_0这一类的所述地址选择寄存器;当group_cnt 计数为 1,即对应组号为1时,addr_search_sel 选择 addr_search_1;当group_cnt 计数为 2,即对应组号为2时,addr_search_sel 选择 addr_search_2。以上各组地址选择寄存器选择的寻址地址不一样。所述寻址地址配置发送子模块更新所述地址长度选择寄存器addr_len_sel与所述地址选择寄存器addr_search的配置值,并将地址重载控制信号load_addr置1,把所述地址选择寄存器addr_search_sel中的寻址地址送给所述发送数据缓冲器,使得所述发送数据缓冲器通过所述SPI接口模块发送用于读取外部的待读取存储器的寻址地址;所述发送数据缓冲器发送完这些寻址地址数据后,跳转到数据读取等待状态READ_WAIT,调度启动所述读等待控制子模块开始工作,其中,这些寻址地址和寻址地址长度随数据所属组号的不同而不同。
读等待控制子模块根据所述读等待时间寄存器wait_time_num和字节长度选择寄存器byte_length_sel的配置信息和组计数器group_cnt和读等待计数器wait_time_cnt的计数信息,让所述自动读取控制系统工作在数据读取等待状态READ_WAIT下。在数据读取等待状态READ_WAIT下,读等待控制子模块启动所述读等待计数器计数,实现计时所述自动读取控制系统从发送完寻址地址至接收数据的时间延时,当所述读等待计数器wait_time_cnt的计数值达到所述读延时参数,即等于读等待时间寄存器wait_time_num配置的定时参数时,表明计时时间到,将所述读等待计数器wait_time_cnt清零,再调度进入数据读取接收状态READ_DATA,控制数据读取控制子模块启动工作,从而产生地址与数据之间的时间间隔。
还是在在数据读取等待状态READ_WAIT下,所述读等待计数器的计数值达到所述读延时参数之前,从所述字节长度选择寄存器选择与所述组计数器当前计数值匹配的一组数据的数据长度,更新所述字节长度选择寄存器byte_length_sel的配置值,提高状态机的资源利用率。所述读等待控制子模块还根据所述组计数器group_cnt的计数值对应的组号,所述字节长度选择寄存器byte_length_sel可设置为3组字节长度选择寄存器byte_length_0、byte_length_1或 byte_length_2中与所述组计数器group_cnt当前计数值匹配的一组,具体为:当group_cnt = 0时,byte_length_sel = byte_length_0;当group_cnt =1时,byte_length_sel = byte_length_1;当group_cnt = 2时,byte_length_sel = byte_length_2,值得说明的是,本实施例的不同的数据长度可以存储在对应的字节长度选择寄存器中,如byte_length_0、byte_length_1或 byte_length_2。
数据读取控制子模块根据字节长度选择寄存器byte_length_sel的配置信息和字节计数器byte_cnt和组计数器group_cnt的计数信息,让所述自动读取控制系统工作在数据读取接收状态READ_DATA下。在数据读取接收状态READ_DATA下,启动所述字节计数器byte_cnt计数所述接收数据缓冲器读入的每组数据的字节长度之和,即所述接收数据缓冲器读入数据中的一个字节长度,字节计数器byte_cnt的计数值加1,当所述字节计数器每计数至所述字节长度选择寄存器配置的与所述组计数器当前计数值匹配的一组数据的数据长度时(包括其中一种:当group_cnt = 0时,byte_length_sel = byte_length_0;当group_cnt = 1时, byte_length_sel = byte_length_1;当group_cnt = 2时,byte_length_sel = byte_length_2),表示读取完成一组数据,控制所述组计数器group_cnt的计数值加一,且清零所述字节计数器byte_cnt,使得所述状态调度控制模块控制所述接收数据缓冲器结束读取外部的待读取存储器的当前一组数据,开始读取外部的待读取存储器的下一组数据,然后调度进入组读取间隔等待状态GROUP_GAP,启动组间读取控制子模块工作,实现同一组数据的字节之间的切换效果。所述接收数据缓冲器每读入一个字节长度的数据,就在通用的DMA控制器的控制作用下通过SPI接口模块传输到外部的软件中,以实现软件刷新传感器的数据。
组间读取控制子模块,根据组间隔时间寄存器group_time_num和最大组数寄存器group_num的配置信息和组计数器group_cnt和组间隔计数器group_time_cnt的计数信息,让所述自动读取控制系统工作在组读取间隔等待状态GROUP_GAP下。所述组计数器group_cnt在该状态下仍保持计数操作,当所述组计数器group_cnt的计数值达到所述最大组数寄存器group_num配置的当前一轮被读取数据的最大组数时,也就是判断到所述自动读取控制系统从外部的待读取存储器中完全读出了一轮读取操作中的所有组数据的时候,将所述组计数器group_cnt的计数值清零 ,再调度进入数据读取完成状态READ_OVER,控制数据读取完成控制子模块启动工作,同时所述自动读取控制系统发出的中断请求信号auto_read_int置1,通知CPU已完成当前一轮的所有组传感器数据的读取。如果在一轮读取操作中还没有完全读出外部的待读取存储器的所有组数据,控制所述组间隔计数器group_time_cnt启动计数,当所述组间隔计数器group_time_cnt的计数值达到所述组间隔时间寄存器group_time_num配置的所述组延时参数时,表明读取相邻两组数据之间的等待时间已到,组间隔计数器group_time_cnt清零,调度进入发送寻址状态SEND_ADDR,让寻址地址配置发送子模块重新进入工作状态,以准备读取外部的待读取存储器的下一组数据,从而产生不同组数据之间的切换读取控制效果,同时也产生读数据的时间间隔,以及地址与地址之间的时间间隔。
数据读取完成控制子模块,根据再次读取等待时间寄存器next_time_num的配置信息和组计数器group_cnt和再次读取等待计数器next_time_cnt的计数信息,让所述自动读取控制系统工作在数据读取完成状态READ_OVER下。数据读取完成控制子模块启动所述再次读取等待计数器next_time_cnt定时计数,通过设置延时等待参数来结束当前一轮的外部的待读取存储器的数据读取操作,当所述再次读取等待计数器next_time_cnt的计数值达到所述再次读取等待时间寄存器next_time_num配置的所述再次读延时参数时,表明延时等待计时已到,将再次读取等待计数器next_time_cnt清零,再调度进入空闲状态IDLE,控制所述复位工作子模块重新进入工作状态,以开始下一轮的外部的待读取存储器的数据读取操作。从而产生读操作结束的时间延时效果。在本实施例中,数据读取完成控制子模块、组间读取控制子模块和读等待控制子模块通过控制延时计数实现所述SPI接口模块定时刷新读取数据的功能。
在本实施例中,所述状态调度控制模块、所述寄存器组模块和所述计数信号产生模块构成一个状态机系统,基于所述状态调度控制模块的调度动作和工作状态,在启动传感器数据读取后,使能控制寄存器auto_read_en置1,自动选择预先自定义配置好的各组不同的寻址地址(addr_search_0、addr_search_1、addr_search_2)、寻址地址长度(addr_length_0、addr_length_1、addr_length_2)、读取数据长度(byte_length_0、 byte_length_1、 byte_length_2),经过对相关寄存器地址进行可编程配置,结合计数器驱动状态机控制延时发送的功能。利用上述的硬件加速读取数据的手段,传感器数据就会通过SPI接口不停的自动读取,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据,软件不用再参与数据读取流程,有效地提高数据读取效率。
在前述实施例中,所述发送数据缓冲器和所述接收数据缓冲器都是先进先出队列,即所述发送数据缓冲器为发送FIFO,所述接收数据缓冲器为接收FIFO;所述地址选择寄存器最先送出的寻址地址被所述发送数据缓冲器最先存放,所述发送数据缓冲器的队头存放的寻址地址最先发送给外部的待读取存储器;所述接收数据缓冲器最先存放外部的待读取存储器最先被读取的数据,所述接收数据缓冲器的队头存放的数据在通用的DMA控制器的控制作用下最先发送给外部的数据存储器。本实施例减少CPU或DMA的依赖,控制传感器各组数据的自动搬运,每一轮数据读取操作中可访问多组不同的目的地址,可以更高效的读取传感器的多种数据信息。也适应各种传感器、总线接口设备。
本发明还提供一种基于所述自动读取控制系统的自动读取控制方法,该自动读取控制方法适用于一种基于硬件加速的SPI接口的自动读取控制系统,该自动读取控制系统分别与CPU和外部的待读取存储器相连,自动读取控制系统包括通用的SPI接口模块、通用的APB接口模块、通用的DMA控制器、状态机控制器、发送数据缓冲器和接收数据缓冲器;该自动读取控制方法包括:步骤A、按照APB总线时序接收CPU传输过来的配置信息;步骤B、在状态机控制器内部驱动源的计数信号驱动下,结合配置信息调度出相应的工作状态,控制接收数据缓冲器在每一轮读取操作中,先向发送数据缓冲器发送外部的待读取存储器内不同组数据的寻址地址,然后结合调度出的对应的工作状态,控制接收数据缓冲器按照一定的读取频率,通过DMA控制器成批量地读出外部的待读取存储器内的数据;步骤C、完成一轮外部的待读取存储器的数据的读取后,产生中断信号,通知CPU已完成数据读取;其中,每一轮读取外部的待读取存储器的一批数据,都按照寄存器组模块配置信息划分为不同组,每一组数据配置的目的地址和源地址都不同。该技术方案让硬件系统成批量地有频率地读取外部存储器内的待读取数据,节约CPU查询的频率,加快了数据传输过程,也提高了软件执行的流畅性,提升了软硬协同加速的效率。
具体地,所述状态机控制器内部的寄存器包括:使能控制寄存器、地址长度选择寄存器、地址选择寄存器、字节长度选择寄存器、最大组数寄存器、读等待时间寄存器、组间隔时间寄存器和再次读取等待时间寄存器;所述状态机控制器内部的计数器包括:所述组计数器、所述读等待计数器、所述字节计数器、所述最大组数寄存器、所述组间隔计数器和所述再次读取等待计数器。它们的信号联系可参照前述实施例。
所述步骤B具体如图2所示,包括:步骤S1、判断所述使能控制寄存器是否置位为高电平,是则进入步骤S2,否则所述自动读取控制系统维持在上电复位状态;步骤S2、从所述地址长度选择寄存器选择与所述组计数器当前计数值匹配的一组数据的寻址地址长度,同时从所述地址选择寄存器中选择与所述组计数器当前计数值匹配一组数据的寻址地址,在所述地址长度选择寄存器和所述地址选择寄存器完成配置后,将所述地址选择寄存器中的寻址地址送给所述发送数据缓冲器,使得所述发送数据缓冲器通过所述SPI接口模块发送用于读取外部的待读取存储器的寻址地址;在所述发送数据缓冲器发送完这些寻址地址后,进入步骤S3;步骤S3、启动所述读等待计数器计数所述自动读取控制系统从发送完寻址地址至接收数据的时间延时,同时,从所述字节长度选择寄存器选择与所述组计数器当前计数值匹配的一组数据的数据长度,当所述读等待计数器的计数值达到所述读延时参数时,将所述读等待计数器清零,再进入步骤S4;步骤S4、启动所述字节计数器计数所述接收数据缓冲器读入的每组数据的字节长度,当所述字节计数器计数至所述字节长度选择寄存器配置的与所述组计数器当前计数值匹配的一组数据的数据长度时,控制所述组计数器的计数值加一,且清零所述字节计数器,然后进入步骤S5,使得所述状态调度控制模块控制所述接收数据缓冲器结束读取外部的待读取存储器的当前一组数据,开始读取外部的待读取存储器的下一组数据;步骤S5、判断所述组计数器的计数值是否达到所述最大组数寄存器配置的当前一轮被读取数据的最大组数,是则将所述组计数器的计数值清零,再进入步骤S6;否则控制所述组间隔计数器启动计数,并判断所述组间隔计数器的计数值是否达到所述组延时参数,是则返回步骤S2,以准备读取外部的待读取存储器的下一组数据,否则控制组间隔计数器保持计数;步骤S6、启动所述再次读取等待计数器计数,以延时等待当前一轮的外部的待读取存储器的数据读取操作的结束,当所述再次读取等待计数器的计数值达到所述再次读延时参数时,将所述再次读取等待计数器清零,返回步骤S1,以开始下一轮的外部的待读取存储器的数据读取操作,同时,将中断请求信号auto_read_int置1,通知CPU已完成当前一轮的所有组传感器数据的读取。
值得说明的是,本实施例公开的所述自动读取控制方法是基于前述的状态机工作状态的跳转逻辑而实施的串行方法步骤,至于具体的定时计数参数及信号流向的技术效果可参考前述系统的实施例,在此不再赘述,但本实施例公开的方法流程是可以用软件代码实现的。同时,前述的步骤S2至步骤S6、步骤C在某一实施例中加载在硬件逻辑电路中是可以并行执行操作的。
所述自动读取控制方法,还包括:当所述地址选择寄存器最先送出的寻址地址被所述发送数据缓冲器最先存放时,所述发送数据缓冲器的队头存放的寻址地址最先发送给外部的待读取存储器;当所述接收数据缓冲器最先存放外部的待读取存储器最先被读取的数据时,所述接收数据缓冲器的队头存放的数据在通用的DMA控制器的控制作用下最先发送给外部的数据存储器。
优选地,在执行每一轮所述外部的待读取存储器的数据读取访问过程中,支持寻址3组不同的目的地址。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (11)
1.一种基于硬件加速的SPI接口的自动读取控制系统,自动读取控制系统分别与CPU和外部的待读取存储器相连,自动读取控制系统包括SPI接口模块、APB接口模块、中断产生模块和DMA控制器,其特征在于,该自动读取控制系统还包括状态机控制器、发送数据缓冲器和接收数据缓冲器;
SPI接口模块,用于按照SPI总线时序完成自动读取控制系统与其外部的待读取存储器的数据通信,并分别为发送数据缓冲器和接收数据缓冲器提供其与外部的待读取存储器之间的传输通道;
APB接口模块,用于按照APB总线时序给寄存器组模块配置CPU发过来的配置信息;
状态机控制器用于接收APB接口模块传输过来的配置信息,状态机控制器内部包括产生计数信号的驱动源,状态机控制器在内部驱动源的计数信号驱动下,结合配置信息调度出相应的工作状态,控制接收数据缓冲器在每一轮读取操作中,按照一定的读取频率,成批量地读出外部的待读取存储器内的数据;
发送数据缓冲器,用于接收寄存器组模块配置的用于访问读取外部的待读取存储器数据的寻址地址,使得每一轮访问读操作中,所述自动读取控制系统支持寻址外部的待读取存储器内不同组数据的目的地址和/或源地址;
接收数据缓冲器,用于在DMA控制器的控制作用下,根据状态机控制器调度出的工作状态自动存放从外部的待读取存储器读取的数据,并自动将内部存储的数据传输给外部的数据存储器,以供软件调用,其中,这个DMA控制器,用于通过SPI接口模块将外部的待读取存储器中的数据读出并存放到接收数据缓冲器,或者从接收数据缓冲器读取数据存到外部的数据存储器;
中断产生模块,用于在自动读取控制系统完成一轮外部的待读取存储器的数据的读取后,产生中断信号,通知CPU已完成数据读取;
其中,每一轮读取外部的待读取存储器的一批数据,都按照寄存器组模块配置信息划分为不同组,每一组数据都匹配上对应的组号。
2.根据权利要求1所述自动读取控制系统,其特征在于,所述状态机控制器包括寄存器组模块、计数信号产生模块和状态调度控制模块;
寄存器组模块,用于接收所述APB接口模块传输过来的配置信息,包括延时配置信息和数据长度配置信息,并对状态调度控制模块、计数信号产生模块、发送数据缓冲器和接收数据缓冲器进行配置;
计数信号产生模块,包括定时器和计数器,定时器用于以寄存器组模块的延时配置信息为定时临界参数,计数产生出确定外部的待读取存储器内每组数据的读取频率的定时信号;
所述计数器用于以寄存器组模块的数据长度配置信息为数据长度临界参数,计数出确定外部的待读取存储器内每组数据的数据长度的计数信号;
状态调度控制模块,用于根据寄存器组模块的配置信息和计数信号产生模块的计数信息及定时信息,产生所述自动读取控制系统自动读取外部的待读取存储器的数据的调度动作和工作状态,使得所述自动读取控制系统按照一定时间间隔去自动读取外部的待读取存储器中不同组数据。
3.根据权利要求2所述自动读取控制系统,其特征在于,所述寄存器组模块包括使能控制寄存器、地址长度选择寄存器、地址选择寄存器、读等待时间寄存器、字节长度选择寄存器、组间隔时间寄存器、最大组数寄存器和再次读取等待时间寄存器;
使能控制寄存器,用于为所述自动读取控制系统配置复位信息;
地址选择寄存器,用于为所述状态调度控制模块和所述发送数据缓冲器配置寻址地址,该寻址地址与外部的待读取存储器的一批数据所属划分组的组号相匹配;
地址长度选择寄存器,用于为所述状态调度控制模块和所述发送数据缓冲器配置寻址地址长度,该寻址地址长度与外部的待读取存储器的一批数据所属划分组的组号相匹配;
读等待时间寄存器,用于为所述状态调度控制模块和所述接收数据缓冲器配置读延时参数,该读延时参数为:从所述发送数据缓冲器发送完寻址地址后,至所述接收数据缓冲器开始接收外部的待读取存储器中的数据之前所设置的定时参数;
字节长度选择寄存器,用于为所述状态调度控制模块和所述接收数据缓冲器配置读取外部的待读取存储器的数据的数据长度,该数据长度与外部的待读取存储器的一批数据所属划分组的组号相匹配;
组间隔时间寄存器,用于为所述状态调度控制模块和所述接收数据缓冲器配置组延时参数,该组延时参数为:读取外部的待读取存储器中的相邻两组数据的时间间隔参数;
最大组数寄存器,用于为所述自动读取控制系统配置外部的待读取存储器每轮被读取数据的最大组数;
再次读取等待时间寄存器,用于为所述自动读取控制系统配置再次读延时参数,该再次读延时参数为:从所述接收数据缓冲器当前一轮接收完外部的待读取存储器的数据之后,至所述接收数据缓冲器开始下一轮接收外部的待读取存储器中的数据之前所设置的定时参数;
其中,所述定时临界参数包括读等待时间寄存器配置的读延时参数、组间隔时间寄存器配置的组延时参数和再次读取等待时间寄存器配置的再次读延时参数;所述数据长度临界参数包括字节长度选择寄存器配置的数据长度和最大组数寄存器配置的最大组数。
4.根据权利要求3所述自动读取控制系统,其特征在于,所述计数信号产生模块包括组计数器、读等待计数器、字节计数器、组间隔计数器和再次读取等待计数器;
组计数器,用于计数输出所述接收数据缓冲器当前读取外部的待读取存储器的数据所属的组号;
读等待计数器,用于在所述发送数据缓冲器发送完寻址地址后,所述接收数据缓冲器开始接收数据之前,保持计数操作直至其计数值达到所述读延时参数,再清零;
字节计数器,用于计数所述接收数据缓冲器读入数据的字节长度,每当计数值达到所述字节长度选择寄存器配置的组号匹配的数据长度时,清零,其中,一组数据的数据长度是该组数据的字节长度之和;
组间隔计数器,用于在所述接收数据缓冲器相继读取相邻两组数据之间保持计数操作,直至其计数值达到所述组延时参数,再清零;
再次读取等待计数器,用于在所述自动读取控制系统当前一轮读取完外部的待读取存储器的数据之后,开始下一轮读取外部的待读取存储器的数据之前,保持计数操作直到其计数值达到所述再次读延时参数,再清零;
其中,读等待计数器、组间隔计数器和再次读取等待计数器的计数值之和,形成用于确定外部的待读取存储器内每组数据的读取频率的定时信号;
所述定时器包括读等待计数器、组间隔计数器和再次读取等待计数器;所述计数器包括组计数器和字节计数器。
5.根据权利要求4所述自动读取控制系统,其特征在于,所述状态调度控制模块包括复位工作子模块、寻址地址配置发送子模块、读等待控制子模块、数据读取控制子模块、组间读取控制子模块和数据读取完成控制子模块;
复位工作子模块,用于在所述自动读取控制系统上电复位时,控制所述使能控制寄存器配置复位信息,并启动寻址地址配置发送子模块开始工作;
寻址地址配置发送子模块,用于从所述地址长度选择寄存器选择与所述组计数器当前计数值匹配的一组数据的寻址地址长度,同时从所述地址选择寄存器中选择组号相匹配的寻址地址,在所述地址长度选择寄存器和所述地址选择寄存器完成配置更新后,将所述地址选择寄存器中的寻址地址送给所述发送数据缓冲器,使得所述发送数据缓冲器通过所述SPI接口模块发送用于读取外部的待读取存储器的寻址地址;在所述发送数据缓冲器发送完这些寻址地址后,启动读等待控制子模块开始工作;
读等待控制子模块,用于启动所述读等待计数器计数所述自动读取控制系统从发送完寻址地址至接收数据的时间延时,当所述读等待计数器的计数值达到所述读延时参数时,将所述读等待计数器清零,再控制数据读取控制子模块启动工作;在所述读等待计数器的计数值达到所述读延时参数之前,从所述字节长度选择寄存器选择组号相匹配的数据长度;
数据读取控制子模块,用于启动所述字节计数器计数所述接收数据缓冲器读入的每组数据的字节长度,当所述字节计数器计数至所述字节长度选择寄存器配置的组号匹配的数据长度时,控制所述组计数器的计数值加一,且清零所述字节计数器,使得所述状态调度控制模块控制所述接收数据缓冲器结束读取外部的待读取存储器的当前一组数据,开始读取外部的待读取存储器的下一组数据,然后启动组间读取控制子模块工作;
组间读取控制子模块,用于当所述组计数器的计数值达到所述最大组数寄存器配置的当前一轮被读取数据的最大组数时,将所述组计数器的计数值清零,再控制数据读取完成控制子模块启动工作,同时向CPU发出中断信号;否则,控制所述组间隔计数器启动计数,当所述组间隔计数器的计数值达到所述组延时参数时,调度寻址地址配置发送子模块重新进入工作状态,以准备读取外部的待读取存储器的下一组数据;
数据读取完成控制子模块,用于启动所述再次读取等待计数器计数,以延时等待当前一轮的外部的待读取存储器的数据读取操作的结束,当所述再次读取等待计数器的计数值达到所述再次读延时参数时,将所述再次读取等待计数器清零,调度复位工作子模块重新进入工作状态,以开始下一轮的外部的待读取存储器的数据读取操作。
6.根据权利要求2至5任一项所述自动读取控制系统,其特征在于,所述发送数据缓冲器和所述接收数据缓冲器都是先进先出队列;
所述地址选择寄存器最先送出的寻址地址被所述发送数据缓冲器最先存放,所述发送数据缓冲器的队头存放的寻址地址最先发送给外部的待读取存储器;
所述接收数据缓冲器最先存放外部的待读取存储器最先被读取的数据,所述接收数据缓冲器的队头存放的数据在DMA控制器的控制作用下最先发送给外部的数据存储器。
7.根据权利要求1至5任一项所述自动读取控制系统,其特征在于,所述自动读取控制系统在一轮所述外部的待读取存储器的数据读取访问过程中,支持寻址3组不同的目的地址。
8.一种基于硬件加速的SPI接口的自动读取控制方法,其特征在于,该自动读取控制方法适用于一种基于硬件加速的SPI接口的自动读取控制系统,该自动读取控制系统分别与CPU和外部的待读取存储器相连,自动读取控制系统包括SPI接口模块、APB接口模块、DMA控制器、状态机控制器、发送数据缓冲器和接收数据缓冲器;
该自动读取控制方法包括:
步骤A、按照APB总线时序接收CPU传输过来的配置信息;
步骤B、在状态机控制器内部驱动源的计数信号驱动下,结合配置信息调度出相应的工作状态,控制接收数据缓冲器在每一轮读取操作中,先向发送数据缓冲器发送外部的待读取存储器内不同组数据的寻址地址,然后结合调度出的对应的工作状态,控制接收数据缓冲器按照一定的读取频率,通过DMA控制器成批量地读出外部的待读取存储器内的数据;
步骤C、完成一轮外部的待读取存储器的数据的读取后,产生中断信号,通知CPU已完成数据读取;
其中,每一轮读取外部的待读取存储器的一批数据,都按照寄存器组模块配置信息划分为不同组,每一组数据配置的目的地址和源地址都不同。
9.根据权利要求8所述自动读取控制方法,其特征在于,所述步骤B具体包括:
步骤S1、当使能控制寄存器置高电平时进入步骤S2,否则保持复位状态;
步骤S2、从地址长度选择寄存器选择与组计数器当前计数值匹配的寻址地址长度,同时从地址选择寄存器中选择与组计数器当前计数值匹配的寻址地址,在地址长度选择寄存器和地址选择寄存器完成配置更新后,将地址选择寄存器中的寻址地址送给所述发送数据缓冲器,所述发送数据缓冲器发送完这些寻址地址后,进入步骤S3;
步骤S3、启动读等待计数器计数所述自动读取控制系统从发送完寻址地址至接收数据的时间延时,同时,从字节长度选择寄存器选择与组计数器当前计数值匹配的数据长度,当读等待计数器的计数值达到读等待时间寄存器配置的读延时参数时,将读等待计数器清零,再进入步骤S4;
步骤S4、启动字节计数器计数所述接收数据缓冲器读入的每组数据的字节长度,当字节计数器计数至字节长度选择寄存器配置的与组计数器当前计数值匹配的数据长度时,控制组计数器的计数值加一,且清零字节计数器,然后进入步骤S5;
步骤S5、判断组计数器的计数值是否达到最大组数寄存器配置的当前一轮被读取数据的最大组数,是则将组计数器的计数值清零,再进入步骤S6;否则控制组间隔计数器启动计数,并判断组间隔计数器的计数值是否达到组间隔时间寄存器配置的组延时参数,是则返回步骤S2,否则控制组间隔计数器保持计数;
步骤S6、启动再次读取等待计数器计数,当再次读取等待计数器的计数值达到再次读取等待时间寄存器配置的再次读延时参数时,将再次读取等待计数器清零,返回步骤S1;
其中,所述状态机控制器内部的寄存器包括:使能控制寄存器、地址长度选择寄存器、地址选择寄存器、字节长度选择寄存器、最大组数寄存器、读等待时间寄存器、组间隔时间寄存器和再次读取等待时间寄存器;
所述状态机控制器内部的计数器包括:所述组计数器、所述读等待计数器、所述字节计数器、所述最大组数寄存器、所述组间隔计数器和所述再次读取等待计数器。
10.根据权利要求9所述自动读取控制方法,其特征在于,还包括:
当所述地址选择寄存器最先送出的寻址地址被所述发送数据缓冲器最先存放时,所述发送数据缓冲器的队头存放的寻址地址最先发送给外部的待读取存储器;
当所述接收数据缓冲器最先存放外部的待读取存储器最先被读取的数据时,所述接收数据缓冲器的队头存放的数据在所述DMA控制器的控制作用下最先发送给外部的数据存储器。
11.根据权利要求9所述自动读取控制方法,其特征在于,在执行每一轮所述外部的待读取存储器的数据读取访问过程中,支持寻址3组不同的目的地址。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010232675.4A CN111444123B (zh) | 2020-03-28 | 2020-03-28 | 基于硬件加速的spi接口的自动读取控制系统及方法 |
US17/631,476 US11734219B2 (en) | 2020-03-28 | 2020-08-24 | Automatic read control system based on a hardware accelerated SPI and automatic read control method |
EP20928137.7A EP4002135A4 (en) | 2020-03-28 | 2020-08-24 | HARDWARE ACCELERATION-BASED AUTOMATIC SPI PLAYBACK CONTROL SYSTEM AND METHOD |
PCT/CN2020/110685 WO2021196507A1 (zh) | 2020-03-28 | 2020-08-24 | 基于硬件加速的 spi 接口的自动读取控制系统及方法 |
JP2022507470A JP7326586B2 (ja) | 2020-03-28 | 2020-08-24 | ハードウェアアクセラレーションによるspiインターフェースの自動読み取り制御システム及び方法 |
KR1020227004006A KR20220028120A (ko) | 2020-03-28 | 2020-08-24 | 하드웨어 가속 기반의 spi 인터페이스의 자동 판독 제어 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010232675.4A CN111444123B (zh) | 2020-03-28 | 2020-03-28 | 基于硬件加速的spi接口的自动读取控制系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444123A true CN111444123A (zh) | 2020-07-24 |
CN111444123B CN111444123B (zh) | 2021-01-15 |
Family
ID=71649058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010232675.4A Active CN111444123B (zh) | 2020-03-28 | 2020-03-28 | 基于硬件加速的spi接口的自动读取控制系统及方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11734219B2 (zh) |
EP (1) | EP4002135A4 (zh) |
JP (1) | JP7326586B2 (zh) |
KR (1) | KR20220028120A (zh) |
CN (1) | CN111444123B (zh) |
WO (1) | WO2021196507A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
CN112131164A (zh) * | 2020-09-23 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
CN113419985A (zh) * | 2021-06-15 | 2021-09-21 | 珠海市一微半导体有限公司 | Spi系统自动读取数据的控制方法及spi系统 |
WO2021196507A1 (zh) * | 2020-03-28 | 2021-10-07 | 珠海一微半导体股份有限公司 | 基于硬件加速的 spi 接口的自动读取控制系统及方法 |
CN114265561A (zh) * | 2021-12-24 | 2022-04-01 | 上海集成电路装备材料产业创新中心有限公司 | 一种数据读取控制方法、芯片和介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858431B (zh) * | 2023-02-21 | 2023-05-30 | 北京国科环宇科技股份有限公司 | 数据传输控制方法、控制器及电子设备 |
CN116962112B (zh) * | 2023-09-20 | 2023-12-15 | 中国船舶集团有限公司第七〇七研究所 | 基于标准spi总线连接的双机全双工数据透明传输方法 |
CN117453288A (zh) * | 2023-10-31 | 2024-01-26 | 扬州宇安电子科技有限公司 | 一种基于秒脉冲的多设备同步反演系统及方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1187027A2 (en) * | 2000-09-08 | 2002-03-13 | Texas Instruments Inc. | Micro-controller DMA operation with adjustable word size transfers and address alignment/incrementing |
CN102231143A (zh) * | 2011-07-04 | 2011-11-02 | 浙江大学 | 一种安全可复用spi外围接口电路 |
CN103064805A (zh) * | 2012-12-25 | 2013-04-24 | 深圳先进技术研究院 | Spi控制器及通信方法 |
CN104021102A (zh) * | 2014-05-26 | 2014-09-03 | 北京佳讯飞鸿电气股份有限公司 | 基于状态机和片内总线的cpci串口板及其工作方法 |
CN104809094A (zh) * | 2015-05-25 | 2015-07-29 | 中国电子科技集团公司第四十七研究所 | Spi控制器及其通信方法 |
CN207008602U (zh) * | 2017-08-08 | 2018-02-13 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制装置 |
CN109117396A (zh) * | 2018-08-30 | 2019-01-01 | 山东经安纬固消防科技有限公司 | 存储器访问方法及系统 |
CN109564556A (zh) * | 2016-07-15 | 2019-04-02 | 超威半导体公司 | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 |
CN109656850A (zh) * | 2018-11-13 | 2019-04-19 | 河北汉光重工有限责任公司 | 采用单片cpld扩展的dsp串口通信电路 |
CN109933546A (zh) * | 2019-01-29 | 2019-06-25 | 山东华芯半导体有限公司 | 一种ssd主控中的raid主动加速装置和加速方法 |
CN110209613A (zh) * | 2019-06-05 | 2019-09-06 | 哈尔滨工业大学 | 一种NVMe SSD读取速度与光纤接口速度自适应匹配方法 |
CN110456980A (zh) * | 2019-08-15 | 2019-11-15 | 睦星科技(北京)有限公司 | 一种用于读取数据的电路、系统及其方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8456517B2 (en) * | 2008-07-09 | 2013-06-04 | Primesense Ltd. | Integrated processor for 3D mapping |
US9734102B2 (en) * | 2014-11-04 | 2017-08-15 | Atmel Corporation | Data transfer |
US10482045B2 (en) * | 2016-02-17 | 2019-11-19 | Analog Devices Global Unlimited Company | Data communication interface for processing data in low power systems |
CN107589289A (zh) * | 2017-09-04 | 2018-01-16 | 中国电子科技集团公司第四十研究所 | 一种基于示波器的spi总线硬件触发与解码方法 |
CN112540795A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 指令处理装置和指令处理方法 |
CN111444123B (zh) | 2020-03-28 | 2021-01-15 | 珠海市一微半导体有限公司 | 基于硬件加速的spi接口的自动读取控制系统及方法 |
-
2020
- 2020-03-28 CN CN202010232675.4A patent/CN111444123B/zh active Active
- 2020-08-24 EP EP20928137.7A patent/EP4002135A4/en active Pending
- 2020-08-24 WO PCT/CN2020/110685 patent/WO2021196507A1/zh unknown
- 2020-08-24 JP JP2022507470A patent/JP7326586B2/ja active Active
- 2020-08-24 US US17/631,476 patent/US11734219B2/en active Active
- 2020-08-24 KR KR1020227004006A patent/KR20220028120A/ko unknown
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1187027A2 (en) * | 2000-09-08 | 2002-03-13 | Texas Instruments Inc. | Micro-controller DMA operation with adjustable word size transfers and address alignment/incrementing |
CN102231143A (zh) * | 2011-07-04 | 2011-11-02 | 浙江大学 | 一种安全可复用spi外围接口电路 |
CN103064805A (zh) * | 2012-12-25 | 2013-04-24 | 深圳先进技术研究院 | Spi控制器及通信方法 |
CN104021102A (zh) * | 2014-05-26 | 2014-09-03 | 北京佳讯飞鸿电气股份有限公司 | 基于状态机和片内总线的cpci串口板及其工作方法 |
CN104809094A (zh) * | 2015-05-25 | 2015-07-29 | 中国电子科技集团公司第四十七研究所 | Spi控制器及其通信方法 |
CN109564556A (zh) * | 2016-07-15 | 2019-04-02 | 超威半导体公司 | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 |
CN207008602U (zh) * | 2017-08-08 | 2018-02-13 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制装置 |
CN109117396A (zh) * | 2018-08-30 | 2019-01-01 | 山东经安纬固消防科技有限公司 | 存储器访问方法及系统 |
CN109656850A (zh) * | 2018-11-13 | 2019-04-19 | 河北汉光重工有限责任公司 | 采用单片cpld扩展的dsp串口通信电路 |
CN109933546A (zh) * | 2019-01-29 | 2019-06-25 | 山东华芯半导体有限公司 | 一种ssd主控中的raid主动加速装置和加速方法 |
CN110209613A (zh) * | 2019-06-05 | 2019-09-06 | 哈尔滨工业大学 | 一种NVMe SSD读取速度与光纤接口速度自适应匹配方法 |
CN110456980A (zh) * | 2019-08-15 | 2019-11-15 | 睦星科技(北京)有限公司 | 一种用于读取数据的电路、系统及其方法 |
Non-Patent Citations (5)
Title |
---|
WEILONG ZHANG: "A security coprocessor embedded system-on-chip architecture for smart metering, control and communication in power grid", 《2014 12TH IEEE INTERNATIONAL CONFERENCE ON SOLID-STATE AND INTEGRATED CIRCUIT TECHNOLOGY (ICSICT)》 * |
孙永坚: "基于无线传感器网络的智能家居远程监控系统研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
樊龙: "基于STM32的智能仪表数据采集系统的设计", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
潘胜民: "基于AMBA总线协议的增强型DMA控制器的设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
秦宇: "基于APB总线的SPI接口IP核的设计与验证", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021196507A1 (zh) * | 2020-03-28 | 2021-10-07 | 珠海一微半导体股份有限公司 | 基于硬件加速的 spi 接口的自动读取控制系统及方法 |
US11734219B2 (en) | 2020-03-28 | 2023-08-22 | Amicro Semiconductor Co., Ltd | Automatic read control system based on a hardware accelerated SPI and automatic read control method |
CN112131164A (zh) * | 2020-09-23 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
CN112131164B (zh) * | 2020-09-23 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
CN112052213B (zh) * | 2020-10-10 | 2022-12-02 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
CN113419985A (zh) * | 2021-06-15 | 2021-09-21 | 珠海市一微半导体有限公司 | Spi系统自动读取数据的控制方法及spi系统 |
CN114265561A (zh) * | 2021-12-24 | 2022-04-01 | 上海集成电路装备材料产业创新中心有限公司 | 一种数据读取控制方法、芯片和介质 |
Also Published As
Publication number | Publication date |
---|---|
US11734219B2 (en) | 2023-08-22 |
CN111444123B (zh) | 2021-01-15 |
EP4002135A4 (en) | 2022-11-02 |
JP7326586B2 (ja) | 2023-08-15 |
EP4002135A1 (en) | 2022-05-25 |
WO2021196507A1 (zh) | 2021-10-07 |
JP2022546216A (ja) | 2022-11-04 |
US20230004517A1 (en) | 2023-01-05 |
KR20220028120A (ko) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444123B (zh) | 基于硬件加速的spi接口的自动读取控制系统及方法 | |
KR0161101B1 (ko) | 호스트 인터럽트 및 지시운용을 가지는 네트워크 어댑터 | |
EP2097828B1 (en) | Dmac to handle transfers of unknown lengths | |
CN1570907B (zh) | 多处理器系统 | |
US20170329632A1 (en) | Device scheduling method, task manager and storage medium | |
US20100161834A1 (en) | User interface between a microcontroller and a flexray communications module; flexray user; and method for transmitting messages via such an interface | |
JPH0962563A (ja) | 共有メモリシステム、並列型処理装置並びにメモリlsi | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
US5640602A (en) | Transferring digital data in units of 2 bytes to increase utilization of a 2-byte-wide bus | |
US6806872B2 (en) | Video signal processing system | |
WO2005119465A1 (en) | Data processing unit and bus arbitration unit | |
US20030084255A1 (en) | Memory control circuit and method for arbitrating memory bus | |
JPH1021184A (ja) | Dma内蔵シングルチップマイクロコンピュータ | |
US7308686B1 (en) | Software input/output using hard real time threads | |
US10521382B2 (en) | Method of scheduling system-on-chip including real-time shared interface | |
US20060184708A1 (en) | Host controller device and method | |
CN112799723A (zh) | 一种数据读取方法、装置及电子设备 | |
CN109426562B (zh) | 优先级加权轮转调度器 | |
JP2003036169A (ja) | 複数の小規模プロセッサによって並列処理を行なうシングルチップマイクロプロセッサ | |
JP2000194683A (ja) | 共有メモリの調停回路およびその調停方法 | |
CN101145139A (zh) | 资源管理装置 | |
JP2009163531A (ja) | 割り込み管理機構およびマイクロコンピュータ | |
US11797421B2 (en) | Semiconductor apparatus and debug system | |
WO2002093392A1 (fr) | Processeur de donnees | |
US20140379945A1 (en) | Apparatus and method for vector-based signal routing |
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 |