【技术实现步骤摘要】
基于硬件加速的SPI接口的自动读取控制系统及方法
本专利技术涉及数据传输处理领域,特别涉及一种基于硬件加速的SPI接口的自动读取控制系统及其自动读取控制系统。
技术介绍
SPI接口最早由Motorola公司提出的一种全双工、同步串行传输总线。SPI具有电路结构简单、传输速度快、通信可靠等优点,主要用于微控制器与外围设备之间的通信。现在,越来越多的高速传感器接口采用SPI接口。机器人智能化发展离不开各种传感器的应用支持,其中陀螺仪和光流仪等传感器广泛应用于机器人运动控制等领域。机器人微控制器需要通过SPI接口,实时获取陀螺仪和光流仪等外围传感器的数据信息。因为从陀螺仪和光流仪读取数据较为频繁,需要一个精准的定时器来控制。如果通过用触发软件中断的方式来实现的话,频繁的中断会影响软件执行的流畅性,降低软件效率,对实时处理有一定的影响。
技术实现思路
针对以上问题,本专利技术提供了一种硬件实现SPI接口传感器数据的自动读取控制系统,因为从陀螺仪和光流仪等传感器读取回来的数据需要一个精准的定时来计算,用软件 ...
【技术保护点】
1.一种基于硬件加速的SPI接口的自动读取控制系统,自动读取控制系统分别与CPU和外部的待读取存储器相连,自动读取控制系统包括SPI接口模块、APB接口模块、中断产生模块和DMA控制器,其特征在于,该自动读取控制系统还包括状态机控制器、发送数据缓冲器和接收数据缓冲器;/nSPI接口模块,用于按照SPI总线时序完成自动读取控制系统与其外部的待读取存储器的数据通信,并分别为发送数据缓冲器和接收数据缓冲器提供其与外部的待读取存储器之间的传输通道;/nAPB接口模块,用于按照APB总线时序给寄存器组模块配置CPU发过来的配置信息;/n状态机控制器用于接收APB接口模块传输过来的配置 ...
【技术特征摘要】
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所述自动读取控制系统,其特征在于,所述状态调度控制模块包括复位工作子模块、寻址地址配置发送子模块、读等待控制子模块、数据读取控制子模块、组间读取控制子模块和数据读取完成控制子模块;
复位工作子模块,用于在所述自动读取控制系统上电复位时,控制所述使能控制寄存器配置复位信息,并启动寻址地址配置发送子...
【专利技术属性】
技术研发人员:赵旺,
申请(专利权)人:珠海市一微半导体有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。