CN108415859B - 一种激光陀螺仪数据的硬件加速电路 - Google Patents
一种激光陀螺仪数据的硬件加速电路 Download PDFInfo
- Publication number
- CN108415859B CN108415859B CN201810402891.1A CN201810402891A CN108415859B CN 108415859 B CN108415859 B CN 108415859B CN 201810402891 A CN201810402891 A CN 201810402891A CN 108415859 B CN108415859 B CN 108415859B
- Authority
- CN
- China
- Prior art keywords
- state machine
- module
- data
- interface
- point cloud
- 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.)
- Active
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 31
- 238000009825 accumulation Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 27
- 230000004044 response Effects 0.000 description 7
- 241001417527 Pempheridae Species 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Optical Communication System (AREA)
- Numerical Control (AREA)
Abstract
本发明涉及一种激光陀螺仪数据的硬件加速电路。该硬件加速电路包括主机状态机模块,用于控制激光陀螺仪采集的激光点云数据和参考栅格数据的匹配运算过程,并实现在不同的状态之间进行切换;主机接口模块基于主机接口控制状态机完成总线上的数据命令收发;从机接口模块包括配置子模块和中断子模块,CPU通过配置子模块预先配置该硬件加速电路外围的接口存储模块中的基地址和数据信息,中断子模块通知CPU从所述接口存储模块提取运算结果,然后进行软件处理得出激光陀螺仪感测到的位置信息。激光点云数据的读取,处理以及写出都不用CPU的参与,也不需要CPU进行查询等待,节省CPU带宽,适用于大量复杂高速的数据传输。
Description
技术领域
本发明涉及数字电路领域,具体涉及一种激光陀螺仪数据的硬件加速电路。
背景技术
扫地机在采用激光陀螺仪进行地图构建和定位时,由于激光陀螺仪是360度旋转的,扫地机也是在不断运动的,所以激光陀螺仪每旋转一圈就得到一批激光点的云数据,然后采取软件算法完成激光点云数据与栅格地图之间的匹配,从而得到扫地机的当前位置信息。其中所述软件算法的基本流程是:CPU读取激光点的云数据,然后将云数据与栅格地图进行一一匹配,得到有效的匹配结果,然后将结果写入到存储介质,软件通过对匹配结果进行处理,从而得到当前扫地机的位置信息。
现有的 SOC中的CPU在访问存储器时的基本流程为:CPU发出访问指令,经过AHB总线,查找到存储器所在的空间,对存储器进行访问。访问成功则存储器会对AHB总线发出成功响应的信号,同时送出其他CPU希望得到的数据,AHB总线将这些信号传导回CPU完成一次指令的操作。由于CPU的工作频率往往高于存储器的频率 ,以至于CPU每发出一条指令对存储器进行操作时都要等待好几个时钟周期才能获得存储器的响应,大大降低了CPU的运行效率。所以上述对激光云数据反复读写、比对的过程中通过CPU干预完成数据处理和传输是非常消耗软件资源的,并抢占了其他模块的CPU工作时间,影响其他模块的工作速度,尤其在大量的数据通信的时候会大大增加CPU的工作负担,严重影响整体芯片的性能。
发明内容
在扫地机利用激光陀螺仪进行地图组建和定位时,为了克服已有的硬件电路占用大量CPU资源的不足,适应大量复杂数据的传输,本发明提供一种激光陀螺仪数据的硬件加速电路实现激光点云数据的运算,本发明的技术方案如下:
一种激光陀螺仪数据的硬件加速电路,它包括主机接口模块,用于基于接口总线读写硬件加速电路外围的接口存储模块中的数据,该硬件加速电路包括:
主机状态机模块,用于实现对接口存储模块中数据的读写,控制输入的所述激光陀螺仪数据的运算过程,并在不同的读写模式切换到相应的状态,其中主机状态机模块中包括五个状态机,即主状态机、突发读模式状态机、单次读模式状态机、单次写模式状态机和主机接口控制状态机,所述读写模式包括突发读模式、单次读模式和单次写模式;所述激光陀螺仪数据是所述激光陀螺仪采集的激光点云数据,激光点云数据是二维坐标数据,包括X轴和Y轴方向上的数据。
进一步地,所述硬件加速电路还包括,从机接口模块,用于接受所述主机状态机模块的工作状态信息和CPU的配置信息,并发出中断通知CPU去处理所述硬件加速电路的运算结果,其中从机接口模块包括配置子模块和中断子模块。
进一步地,所述主状态机包括初始状态、突发读模式状态机工作状态、单次读模式状态机工作状态、单次读等待状态、单次写模式状态机工作状态、单次写等待状态和结束状态;
所述主状态机用于突发读模式状态机工作状态下从所述接口存储模块获取所述激光点云数据;
所述主状态机用于单次读模式状态机工作状态下从所述接口存储模块获取参考栅格数据;
所述主状态机用于控制状态转换过程中所述激光点云数据的判断和所述参考栅格数据的运算;
所述主状态机用于单次写模式状态机工作状态下将上述获取的数据的运算结果写入所述接口存储模块中;
其中,所述参考栅格数据是根据预先构建的栅格地图而配置在所述接口存储模块内的二维数组。
进一步地,所述突发读模式状态机在所述突发读模式状态机工作状态下被激活,用于突发读模式下读取所述接口存储模块中采集的所述激光点云数据的地址单元以获取所述接口存储模块传输向所述主机状态机模块的所述激光点云数据;
所述单次读模式状态机在所述单次读模式状态机工作状态下被激活,用于单次读模式下读取所述接口存储模块中预先配置的所述参考栅格数据的地址单元以获取所述接口存储模块传输向所述主机状态机模块的所述参考栅格数据;
所述单次写模式状态机在所述单次写模式状态机工作状态下被激活,用于向所述接口存储模块中写入所述运算结果以提供给CPU进行软件处理使用。
进一步地,所述突发读模式是所述主机状态机模块一次操作中连续读取所述接口存储模块的所述激光点云数据表的同一行内框定的所有地址单元;而所述单次读模式是所述主机状态机模块一次操作中读取所述接口存储模块的所述参考栅格数据表内框定的预定数量的地址单元;
其中,所述激光点云数据表和所述参考栅格数据表都是所述接口存储模块的存储阵列。
进一步地,所述配置子模块,用来告知CPU配置所述接口存储模块中所述参考栅格数据表的基地址、传输入所述硬件加速电路中参与运算的所述激光点云数据的个数、所述激光点云数据表的基地址、运算结果表的基地址和循环次数;
其中,所述运算结果表是所述运算结果从所述硬件加速电路写入所述接口存储模块的存储阵列,所述循环次数与所述激光陀螺仪定位目标点的个数相关,所述激光陀螺仪的一个定位目标点确定所述突发读模式下传输入所述硬件加速电路中的所述激光点云数据的个数。
进一步地,所述中断子模块用于告知CPU从所述运算结果表的对应地址单元提取所述运算结果,CPU将所述运算结果进行软件处理,得到所述激光陀螺仪感测的位置信息。
进一步地,所述运算过程包括,首先判断所述突发读模式下输入所述主机状态机模块的所述激光点云数据是否与所述参考栅格数据表中预先配置的所述参考栅格数据匹配,是则将所述单次读模式下获取的匹配的所述参考栅格数据进行累加,得出累加结果,否则加一运算作为累加结果;
当判断完基于所述激光陀螺仪的一个所述定位目标点而传输入所述硬件加速电路中的所述激光点云数据的匹配情况,并完成所述参考栅格数据的运算后,计算所述累加结果的平均值,即所述运算结果,然后将所述累加结果清零再进行下一个所述定位目标点的处理。
进一步地,所述主机接口控制状态机,用于控制总线上进行的数据传输类型。
相比于现有技术,本发明通过在CPU与存储器之间增加所述硬件加速电路,激光点云数据的读取,处理以及写出完全由所述硬件加速电路完成,不需要CPU的参与,节省CPU的软件资源消耗,可大大节省CPU带宽,减小耗时;同时所述硬件加速电路通过中断的方式告知CPU匹配处理的结果,节省系统指令开销。
附图说明
图1为本发明的硬件加速电路的电路结构框图;
图2为本发明的接口存储模块的框图;
图3为本发明中的状态机的转换流程图;
图4为本发明的主机接口控制状态机。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
本发明实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本发明实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本发明实施方式中不存在其它的单元。
图1为本发明实施提供的一种激光陀螺仪数据的硬件加速电路的电路结构框图,它包括主机接口模块,用于基于接口总线来读写硬件加速电路外围的接口存储模块中的数据,该硬件加速电路还包括:主机状态机模块,被配置为实现对接口存储模块中数据的读写,控制输入的所述激光陀螺仪数据的运算过程,并在不同的读写模式切换到相应的状态,其中主机状态机模块中包括五个状态机,即主状态机、突发读模式状态机、单次读模式状态机、单次写模式状态机和主机接口状态机,所述读写模式包括突发读模式、单次读模式和单次写模式;所述激光陀螺仪数据是所述激光陀螺仪采集的激光点云数据,激光点云数据是二维坐标数据,包括X轴和Y轴方向上的数据。本发明实施中,从所述接口存储模块往所述主机状态机模块传输的数据都是先暂存在所述主机状态机模块的缓冲区中,等待相应状态机的控制调用。
所述主机接口模块,用于解析总线协议指令,将总线传送的数据信号和地址信号进行转化,按照总线地址信号从所述接口存储模块送入所述主机状态机模块;本发明实施中使用的总线协议是AHB总线协议,但不排除按照判断匹配和运算要求使用其他总线协议来完成数据的传输。从机接口模块,用于接受所述主机状态机模块的工作状态信息和CPU的配置信息,并发出中断通知CPU去处理所述硬件加速电路的运算结果,其中从机接口模块包括配置子模块和中断子模块。
作为本发明的一个具体实施例,如图2所示,与所述主机接口模块进行数据交互的所述接口存储模块,在所述接口存储器模块中内部是一个存储阵列,将数据“填”进去,和表格的检索原理一样,先指定一个行,再指定一个列,就准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑 Bank(Logical Bank,下面简称Bank)。本发明实施在所述接口存储模块中,使用3个Bank分别作为激光点云数据表、参考栅格数据表和运算结果表。具体地,在所述主机状态机模块通过所述主机接口模块与所述接口存储模块进行数据交互的过程中,发出的地址都是对齐的,所述对齐地址是对所述接口存储模块的存储空间(逻辑 Bank)的一种划分,在外部访问读取或者存储数据时,要以这种划分为前提进行,对齐地址是由每拍传输的数据的宽度来决定的。
本发明实施中,所述硬件加速电路共处理激光陀螺仪为了实现定位采样9个定位目标点,针对每一个定位目标点采集的320个激光点云数据(2的倍数),对应320个二维坐标点,每个坐标点包括x轴方向的32位数据和y轴方向的32位数据,所述激光点云数据经过激光陀螺仪采集后存储在所述激光点云数据表中。所述参考栅格数据表的位宽定义为16位,并以map[MAP_H][MAP_W]的二维数组的形式保存在每个存储单元中,使得所述参考栅格数据表中具体的存储单元有相对应的索引号,方便外部的访问,其中变量MAP_H和变量MAP_W分别代表所述参考栅格数据表的长和宽,它们的数值大小都设置为801。其中,所述参考栅格数据是根据预先构建的栅格地图而配置在所述接口存储模块内,并以二维数组的形式保存,用来判断所述激光点云数据与构建的栅格地图的匹配性,有利于提高激光陀螺仪定位的准确性。所述运算结果表是所述运算结果从所述硬件加速电路写入所述接口存储模块的存储阵列。
所述主机状态机模块中,本发明实施设计采用5个状态机来控制输入的所述激光点云数据和对应的匹配所述参考栅格数据的读写运算转换,其中所述主状态机用来控制所述突发读模式状态机、所述单次读模式状态机和所述单次写模式状态机的转换过程,并对所述主机接口控制状态机与主机状态机模块外部的数据交互产生影响,整个状态转换过程需CPU预先配置数据存取地址和接收运算结果的中断通知,无需CPU的其他干预来完成数据交互。
作为本发明的一个具体实施例,所述主从机接口模块所使用的总线是基于AHB总线协议的,根据AHB的时序规定,地址与控制信号要先于数据发送,地址和数据传输发生在不同的周期,与这笔传输的地址段传输的同时发生的是上一笔传输的数据段传输。这种地址与数据的交叠是AHB总线流水线的特征,允许高速传输,并为从机响应一笔传输留出充裕的时间。AHB是采用流水线技术,分为地址阶段和数据阶段。所以当控制信号和地址信号切换的时候,数据信号并不能切换,而是要保证最后一个控制信号要读或者写的数据完成才可以。它会监测主机和从机的情况,及时切换总线使用权,保证效率的最大化。
作为本发明的一个具体实施例,如图3所示,所述主状态机包括初始状态、突发读模式状态机工作状态、单次读模式状态机工作状态、单次读等待状态、单次写模式状态机工作状态、单次写等待状态和结束状态;所述主状态机在突发读模式状态机工作状态中从所述接口存储模块获取所述激光点云数据;所述主状态机在单次读模式状态机工作状态中从所述接口存储模块获取参考栅格数据;所述主状态机用于控制状态转换过程中所述激光点云数据的判断和所述参考栅格数据的运算;所述主状态机处理运算完上述获取的数据后,在单次写模式状态机工作状态下将运算结果写入所述接口存储模块中;其中,所述参考栅格数据是所述参考栅格数据是根据预先构建的栅格地图而配置在所述接口存储模块内的二维数组。
作为本发明的实施方式,CPU发出中断使能指令,开始标志位置1,所述主状态机开始从所述初始状态跳至所述突发读模式状态机工作状态,进入所述突发读模式。在本发明实施中,所述激光陀螺仪基于第一个定位目标点采集了320个所述激光点云数据(2的倍数),即640个数据。在所述突发读模式下,所述硬件加速电路从CPU配置的所述激光点云数据表的基地址开始,在一次操作中连续读取所述接口存储模块内的所述激光点云数据表中当前一行中框定的16个地址单元,并且判断所述激光点云数据是否与所述参考栅格数据表中预先配置的所述参考栅格数据匹配,即落入所述参考栅格数据表中预先配置的坐标范围内,以决定后续所述单次读模式状态机工作状态下的操作。
当完成一次突发读操作时,控制所述主状态机进入所述单次读模式状态机工作状态。在所述单次读模式下,由于每个所述激光点云数据(包括X轴方向和Y轴方向上的数据)是32位数据,本发明实施使用的读写总线是32位宽的,而所述参考栅格数据表内的代表所述参考栅格数据的二维数组是16位数据,故一个单次读操作所述主机状态机模块从CPU配置的所述参考栅格数据表的基地址开始,根据所述激光点云数据的匹配情况,从所述接口存储模块内的所述参考栅格数据表连续读取相应的所述预定数量的地址单元,具体地所述预定数量为2。
具体地,由于所述突发读操作过程中,所述接口存储模块一次传输16个数据,而所述单次读模式一次传输2个数据,所以对于一次所述突发读操作,相应地需要进行所述预定次数的栅格地图匹配性判断,本实施例中所述预定次数数值设为8。
可以理解地,进行所述突发读操作过程中,判断所述接口存储模块传输过来的所述激光点云数据是否落入所述参考栅格数据表中预先配置的坐标范围内,是则将所述单次读操作下所述接口存储模块传输过来的所述参考栅格数据进行累加,得到累加结果;否则进行加一运算,作为累加结果。比如,一次突发读操作传输来16个32位数据,经过判断操作其中只有6个数据落入所述参考栅格数据表中预先配置的坐标范围内,则在单次读操作过程中,将传输来的所述参考栅格数据进行累加运算;而所述突发读操作中判断到其余10个数据未落入所述参考栅格数据表中预先配置的坐标范围内,则结合上述累加运算的结果,在单次读操作过程中进行加一运算,得到所述累加结果。
在所述单次读模式状态机工作状态下,处理完传输过来的所述激光点云数据表中当前行框定的16个地址单元上的数据,所述主状态机由所述单次读等待状态返回所述突发读模式状态机工作状态,再一次进入所述突发读模式,连续读取所述激光点云数据表中下一行内框定的16个地址单元,并对所述激光点云数据进行匹配判断,然后进入所述单次读模式状态机工作状态中获取相匹配的所述参考栅格数据进行累加运算,根据所述激光点云数据的匹配情况累加8次。如此重复循环上述状态转换过程40次,直到处理完所述激光点云数据表上640个数据(对应320个所述激光点云数据)以及相匹配的所述参考栅格数据的累加运算,然后从所述单次读等待状态转换到所述单次写模式状态机工作状态。
在所述单次写模式状态机工作状态中,将所述累加结果对640求平均值,得到所述运算结果。每一次所述单次写操作都要将所述参考栅格数据的运算结果,通过所述主机接口单元写入所述接口存储模块的所述运算结果表中。所述运算结果写入所述接口存储模块后,当判断到进入所述突发读模式状态机工作状态的次数未达到CPU预先配置好所述循环次数时,所述主状态机由所述单次写模式状态机工作状态返回所述突发读模式状态机工作状态,然后将所述累加结果清零,接着处理基于第二个定位目标点采集的所述激光点云数据。后续状态中,每次循环后,将当前运算得到的所述累加结果清零,才能开始下一次的循环。当处理完所述循环次数的定位目标点时,所述单次写模式状态机工作状态转换到所述单次写等待状态,待到所有写入数据的传输过程完成,跳至所述结束状态。
在所述结束状态下,如果从机准备信号置高,表示写入总线的所述运算结果有效,然后所述主机状态机模块通过从机接口模块发出中断通知CPU去处理所述硬件加速电路的运算结果,所述结束状态跳至所述初始状态,将相关标志位清零。
作为本发明的具体实施方式,所述突发读模式状态机在所述突发读模式状态机工作状态下被激活,使用突发读模式来读取所述接口存储模块中采集的所述激光点云数据的地址单元以获取所述接口存储模块传输向所述主机状态机模块的所述激光点云数据;所述单次读模式状态机在所述单次读模式状态机工作状态下被激活,使用单次读模式来读取所述接口存储模块中预先存放的所述参考栅格数据的地址单元以获取所述接口存储模块传输向所述主机状态机模块的所述参考栅格数据;所述单次写模式状态机在所述单次写模式状态机工作状态下被激活,用来向所述接口存储模块中写入的所述运算结果以提供给CPU进行软件处理使用。
具体地,在所述主机状态机模块中,对于主机状态机模块中的状态机访问采用三级结构访问模式,即访问请求、访问应答、访问结束。状态机访问采用先到先得原则,一旦占用其它访问将会被屏蔽。所述主状态机控制其他4个状态机,所以访问请求由所述主状态机发出,当其中一个状态机检测到访问请求时,并且自己处于访问初始状态时,给出访问应答,如果所述主状态机检测到访问应答握手信号后,上述状态机激活自己状态,进入相应的状态中,并根据自己状态占用的时钟周期,给出访问结束命令到所述主状态机。所述主状态机检测到访问结束后,结束本次访问,跳至下一个状态,并访问下一个状态机。
作为本发明的具体实施例,如图3所示,所述突发读模式状态机包括初始状态、突发读模式状态、突发完成状态和突发等待状态。所述主状态机进入到所述突发读模式状态机工作状态时,所述突发读模式状态机被激活,由所述初始状态进入所述突发读模式状态,所述突发读模式下CPU指定所述激光点云数据表的基地址与突发长度,本发明实施中指定突发长度为16个数据,在同一行内对框定的16个地址单元连续读取操作,所述存储接口模块向所述主机状态机模块传输相应地址上的所述激光点云数据。当突发读取16个地址单元后,进入所述突发完成状态,这些输入的数据临时保存在所述硬件加速电路的缓冲区内,
通过判断缓冲区内的数据是否落入所述参考栅格数据表中预先配置的坐标范围内以决定后续的运算操作。处理完上述16个数据后,进入所述突发等待状态,等待从机准备信号置高后,所述突发读模式状态机跳至所述初始状态。
作为本发明的具体实施例,如图3所示,所述单次读模式状态机包括初始状态、单次读模式状态和单次读完成状态,所述主状态机进入到所述单次读模式状态机工作状态时,所述单次读模式状态机被激活,由所述初始状态进入所述单次读模式状态,从初始状态进入单次读模式状态后,所述主机状态机单元向所述存储单元发送单次读模式的控制和地址信号,若所述存储单元满足通信要求,则根据突发读模式状态下读取的激光点云数据,在所述存储单元的所述栅格坐标表内框定本次读取的地址单元。由于所述突发读操作过程中传输给所述主机状态机模块的所述激光点云数据是32位数据,而所述参考栅格数据表内的二维数组是16位数据。故在所述单次读操作下,根据输入的所述激光点云数据判断的结果,相应地从所述接口存储模块的所述参考栅格数据表中连续读取2个地址单元,并将对应地址单元上的所述参考栅格数据传输到所述主机状态机控制模块的缓冲区内中,控制所述参考栅格数据进行运算。所述主机状态机模块的缓冲区内所述参考栅格数据被提取出来完成累加运算后,得到所述累加结果,所述单次读模式状态跳至所述单次读完成状态,当从机准备信号置高时,所述单次读模式状态机跳回所述初始状态。
作为本发明的具体实施例,如图3所示,所述单次写模式状态机包括初始状态、单次写模式状态和单次写完成状态,所述主状态机进入到所述单次写模式状态机工作状态时,所述单次写模式状态机被激活,由所述初始状态进入所述单次写模式状态,在这一状态跳变过程中,首先将所述单次读模式状态机得到的所述累加结果求平均值得到所述运算结果,再将所述运算结果通过所述主机接口单元写入所述接口存储模块的所述运算结果表中,然后所述单次写模式状态跳至所述单次写完成状态,在所述单次写完成状态下,从机准备信号置高时,所述单次写完成状态跳回所述初始状态,所述主状态机对所述单次写模式状态机的访问结束。
具体地,所述突发读模式是所述主机状态机模块一次操作中连续读取所述接口存储模块的所述激光点云数据表的同一行内框定的所有地址单元;所述突发读操作是状态机在突发读模式下的进行的具体操作;所述突发读模式下CPU指定所述激光点云数据表的基地址与突发长度。本发明实施中指定突发长度为16个数据,每进行一次突发读操作,传输16个数据,传输数据宽度为32位,每个激光点云数据对应存储单元的地址值都是4(以字节为单位)的整数倍,即所述对齐地址,每传输完一个所述激光点云数据则按照所述对齐地址去读取下一个地址单元。如果读取到所述激光点云数据表的当前行中的地址边界(即第16个所述对齐地址)时,由当前行切换到下一行继续读取。
而所述单次读模式是所述主机状态机模块一次操作中读取所述接口存储模块的所述参考栅格数据表的框定的地址单元中预定数量的地址单元;所述单次读操作是状态机在单次读模式下的进行的具体操作;所述预定数量根据总线的位宽与传输数据位宽的关系确定其数值为2。本发明实施在单次读模式状态机中传输的所述参考栅格数据是16位数据,而 AHB总线的位宽也设置为32位,故为了满足AHB总线位宽的传输要求,每进行一次单次读操作,需要根据所述激光点云数据的匹配性判断从所述接口存储模块内的所述参考栅格数据表连续读取2个地址单元,并通过所述主机接口模块往所述主机状态机模块传输两个所述参考栅格数据。
本发明实施中,如图1所示,所述从机接口模块包括配置子模块和中断子模块,所述配置子模块,用来告知CPU配置所述接口存储模块中所述参考栅格数据表的基地址、传输入所述硬件加速电路中参与运算的所述激光点云数据的个数、所述激光点云数据表的基地址、运算结果表的基地址和所述循环次数;其中,所述参考栅格数据表的基地址是刚进入所述单次读模式状态机工作状态时,在所述单次读模式下首先读取的地址;所述激光点云数据表的基地址是刚进入所述突发读模式状态机工作状态时,在所述突发读模式下首先读取的地址;所述运算结果表的基地址是刚进入所述单次写模式状态机工作状态时,所述运算结果从所述主机状态机模块首先写入所述接口存储模块的所述运算结果表的地址。
对于所述循环次数,本发明实施为了实现所述激光陀螺仪定位而采集9个定位目标点。基于每一个定位目标点处理320个所述激光点云数据,即传输入所述硬件加速电路中参与运算的所述激光点云数据的个数。每一次所述单次写操作中将所述单次读操作中上述640个数据(对应320个所述激光点云数据)匹配运算得到的所述运算结果写入所述接口存储模块。当处理完9个定位目标点的所述激光点云数据后,得到9个所述运算结果,移交CPU进行软件处理,从而得到位置信息,其中每处理一个定位目标点需要将前一次所述累加结果清零,再开始对该定位目标点匹配的所述参考栅格数据进行累加运算。其中,所述循环次数与所述激光陀螺仪定位目标点的个数相关,在这里数值设置为9。
具体地,所述中断子模块用于告知CPU从所述运算结果表的对应地址单元提取所述运算结果,CPU将所述运算结果进行软件处理,得到所述激光陀螺仪感测的位置信息。当主机状态机模块处理完所述激光点云数据后,主机状态机模块将从机接口模块发出的相应中断通知给CPU,不需要CPU重复查询等待每一次状态转换的结果,节省软件指令开销,减小整个过程的耗时。
作为一种发明实施方式,所述运算过程是,首先判断所述突发读模式下输入所述主机状态机模块的所述激光点云数据是否落入所述参考栅格数据表中预先配置的坐标范围内,是则与所述单次读模式下获取的所述参考栅格数据累加,得出所述累加结果,否则进行加一运算作为所述累加结果,所述累加结果初始值为0;比如,所述激光陀螺仪基于一个定位目标点而采集320个所述激光点云数据(即640个数据),一次突发读操作下连续获取16个所述激光点云数据,再根据判断的结果进行匹配运算处理,当所述激光点云数据落入所述参考栅格数据表中预先配置的坐标范围内则将所述单次读模式下获取的所述参考栅格数据累加;否则对所述累加结果加一处理。
当判断完基于所述激光陀螺仪的一个所述定位目标点而传输入所述硬件加速电路中的所述激光点云数据的匹配情况,并在所述单次读操作中完成所述参考栅格数据的运算后,在单次写操作中计算所述累加结果的平均值,即所述运算结果。在结束所述单次写操作后,将所述累加结果清零再进行下一个所述定位目标点的处理。处理一个所述定位目标点需完成1次单次写操作,40次突发读操作,320次累加运算,在单次写操作过程中计算所述累加结果的平均值,得到所述运算结果。相比CPU的读写运算控制,减少了许多响应和请求,所述硬件加速电路处理这一过程的效率更高。
作为本发明实施例,如图4所示,所述主机接口控制状态机,包括初始状态、非连续传输状态和连续传输状态,用于控制总线上进行的数据传输类型,反映所述主机状态机模块进行的数据传输类型,并由所述主状态机中的各个工作状态决定所述主机接口控制状态机的状态跳转条件。所述主机接口控制状态机由所述初始状态跳至所述非连续传输状态,表示在当前进行一个所述单次读操作或者所述突发读操作下的16个数据中的第一个数据传输,所述非连续传输状态是所述单次读模式状态机和所述突发读模式状态机激活的必要条件;当所述主机状态机模块正在进行所述单次读模式或所述单次写模式下的数据传输时,所述主机接口控制状态机由所述非连续传输状态跳至所述初始状态;当所述主机状态机模块正在进行突发传输,即所述主机状态机模块正在处于所述突发读模式状态下,所述主机接口控制状态机由所述非连续传输状态跳至所述连续传输状态,再由所述连续传输状态跳至所述初始状态。
可以理解地,为了提高存储器的访问速度,所有对存储器访问的接口命令由状态机控制。命令访问采用三步法完成,包括访问请求、访问响应、访问结束,通过状态机控制,可以有效地避免访问冲突,只有当前访问结束,状态机运行到正确状态,其它的访问命令才能有效。所述主机接口模块根据所述主机接口控制状态机确定的数据传输状态,接收所述主机接口控制状态机的接口命令,完成所述硬件加速电路与所述接口存储模块的数据传输。
以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、未经创造性劳动的等效技术特征的替换,应当视为本申请揭露的范围。
Claims (8)
1.一种激光陀螺仪数据的硬件加速电路,它包括主机接口模块,用于基于接口总线读写硬件加速电路外围的接口存储模块中的数据,其特征在于,该硬件加速电路包括:
主机状态机模块,用于实现对接口存储模块中数据的读写,控制输入的所述激光陀螺仪数据的运算过程,并在不同的读写模式切换到相应的状态,其中主机状态机模块中包括五个状态机,即主状态机、突发读模式状态机、单次读模式状态机、单次写模式状态机和主机接口控制状态机,所述读写模式包括突发读模式、单次读模式和单次写模式;所述激光陀螺仪数据是所述激光陀螺仪采集的激光点云数据,激光点云数据是二维坐标数据,包括X轴和Y轴方向上的数据;
所述主状态机包括初始状态、突发读模式状态机工作状态、单次读模式状态机工作状态、单次读等待状态、单次写模式状态机工作状态、单次写等待状态和结束状态;
所述主状态机用于突发读模式状态机工作状态下从所述接口存储模块获取所述激光点云数据;
所述主状态机用于单次读模式状态机工作状态下从所述接口存储模块获取参考栅格数据;
所述主状态机用于控制状态转换过程中所述激光点云数据的判断和所述参考栅格数据的运算;
所述主状态机处理运算完上述获取的数据后,用于单次写模式状态机工作状态中将所述参考栅格数据的运算结果写入所述接口存储模块中;
其中,所述参考栅格数据是根据预先构建的栅格地图而配置在所述接口存储模块内的二维数组。
2.根据权利要求1所述硬件加速电路,其特征在于,所述硬件加速电路还包括,从机接口模块,用于接受所述主机状态机模块的工作状态信息和CPU的配置信息,并发出中断通知CPU去处理所述硬件加速电路的运算结果,其中从机接口模块包括配置子模块和中断子模块。
3.根据权利要求1所述硬件加速电路,其特征在于,所述突发读模式状态机在所述突发读模式状态机工作状态下被激活,用于突发读模式下读取所述接口存储模块中采集的所述激光点云数据的地址单元以获取所述接口存储模块传输向所述主机状态机模块的所述激光点云数据;
所述单次读模式状态机在所述单次读模式状态机工作状态下被激活,用于单次读模式下读取所述接口存储模块中预先配置的所述参考栅格数据的地址单元以获取所述接口存储模块传输向所述主机状态机模块的所述参考栅格数据;
所述单次写模式状态机在所述单次写模式状态机工作状态下被激活,用于向所述接口存储模块中写入所述运算结果以提供给CPU进行软件处理使用。
4.根据权利要求2所述硬件加速电路,其特征在于,所述突发读模式是所述主机状态机模块一次操作中连续读取所述接口存储模块的激光点云数据表的同一行内框定的所有地址单元;而所述单次读模式是所述主机状态机模块一次操作中读取所述接口存储模块的参考栅格数据表内框定的预定数量的地址单元;
其中,激光点云数据表和参考栅格数据表都是所述接口存储模块的存储阵列。
5.根据权利要求4所述硬件加速电路,其特征在于,所述配置子模块,用来告知CPU配置所述接口存储模块中所述参考栅格数据表的基地址、传输入所述硬件加速电路中的所述激光点云数据的个数、所述激光点云数据表的基地址、运算结果表的基地址和循环次数;
其中,所述运算结果表是所述运算结果从所述硬件加速电路写入所述接口存储模块的存储阵列,所述循环次数与所述激光陀螺仪定位目标点的个数相关,所述激光陀螺仪的一个定位目标点确定所述突发读模式下传输入所述硬件加速电路中的所述激光点云数据的个数。
6.根据权利要求2所述硬件加速电路,其特征在于,所述中断子模块用于告知CPU从所述运算结果表的对应地址单元提取所述运算结果,CPU将所述运算结果进行软件处理,得到所述激光陀螺仪感测的位置信息。
7.根据权利要求5所述硬件加速电路,其特征在于,所述运算过程包括,首先判断所述突发读模式下输入所述主机状态机模块的所述激光点云数据是否与所述参考栅格数据表中预先配置的所述参考栅格数据匹配,是则将所述单次读模式下获取的匹配的所述参考栅格数据进行累加,得出累加结果,否则加一运算作为累加结果;
当判断完基于所述激光陀螺仪的一个所述定位目标点而传输入所述硬件加速电路中的所述激光点云数据的匹配情况,并完成所述参考栅格数据的运算后,计算所述累加结果的平均值,作为所述运算结果,然后所述累加结果清零再进行下一个所述定位目标点的处理。
8.根据权利要求1所述硬件加速电路,其特征在于,所述主机接口控制状态机,用于控制总线上进行的数据传输类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810402891.1A CN108415859B (zh) | 2018-04-28 | 2018-04-28 | 一种激光陀螺仪数据的硬件加速电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810402891.1A CN108415859B (zh) | 2018-04-28 | 2018-04-28 | 一种激光陀螺仪数据的硬件加速电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108415859A CN108415859A (zh) | 2018-08-17 |
CN108415859B true CN108415859B (zh) | 2023-10-27 |
Family
ID=63137274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810402891.1A Active CN108415859B (zh) | 2018-04-28 | 2018-04-28 | 一种激光陀螺仪数据的硬件加速电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108415859B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857702B (zh) * | 2019-04-18 | 2023-02-17 | 珠海一微半导体股份有限公司 | 一种基于机器人的激光雷达数据读写控制系统及芯片 |
CN111679286B (zh) * | 2020-05-12 | 2022-10-14 | 珠海一微半导体股份有限公司 | 一种基于硬件加速的激光定位系统及芯片 |
CN114442908B (zh) * | 2020-11-05 | 2023-08-11 | 珠海一微半导体股份有限公司 | 一种用于数据处理的硬件加速系统及芯片 |
CN114443264B (zh) * | 2020-11-05 | 2023-06-09 | 珠海一微半导体股份有限公司 | 一种基于硬件加速的激光重定位系统及芯片 |
CN112416823B (zh) * | 2020-11-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种突发模式下的传感器数据读写控制方法、系统及芯片 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664114A (en) * | 1995-05-16 | 1997-09-02 | Hewlett-Packard Company | Asynchronous FIFO queuing system operating with minimal queue status |
US6122690A (en) * | 1997-06-05 | 2000-09-19 | Mentor Graphics Corporation | On-chip bus architecture that is both processor independent and scalable |
CN101382927A (zh) * | 2008-09-25 | 2009-03-11 | 杭州爱威芯科技有限公司 | 集成在芯片内的高速串行外围接口电路 |
CN102007539A (zh) * | 2007-08-29 | 2011-04-06 | 马维尔国际贸易有限公司 | 用于具有单元间干扰的闪存的序列检测 |
CN102099801A (zh) * | 2008-03-26 | 2011-06-15 | 高通股份有限公司 | 实现多个空中接口标准的可重新配置的无线调制解调器子电路 |
CN102207920A (zh) * | 2010-03-30 | 2011-10-05 | 比亚迪股份有限公司 | 一种bvci总线到ahb总线的转换桥 |
CN102841871A (zh) * | 2012-08-10 | 2012-12-26 | 无锡众志和达存储技术股份有限公司 | 基于高速串行总线的DMA结构的pipeline读写方法 |
CN106772434A (zh) * | 2016-11-18 | 2017-05-31 | 北京联合大学 | 一种基于TegraX1雷达数据的无人车障碍物检测方法 |
CN107577636A (zh) * | 2017-09-12 | 2018-01-12 | 天津津航技术物理研究所 | 一种基于soc的axi总线接口数据传输系统及传输方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034132A1 (en) * | 2006-08-01 | 2008-02-07 | Nec Electronics Corporation | Memory interface for controlling burst memory access, and method for controlling the same |
US8099737B2 (en) * | 2007-06-05 | 2012-01-17 | Oracle International Corporation | Event processing finite state engine and language |
-
2018
- 2018-04-28 CN CN201810402891.1A patent/CN108415859B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664114A (en) * | 1995-05-16 | 1997-09-02 | Hewlett-Packard Company | Asynchronous FIFO queuing system operating with minimal queue status |
US6122690A (en) * | 1997-06-05 | 2000-09-19 | Mentor Graphics Corporation | On-chip bus architecture that is both processor independent and scalable |
CN102007539A (zh) * | 2007-08-29 | 2011-04-06 | 马维尔国际贸易有限公司 | 用于具有单元间干扰的闪存的序列检测 |
CN102099801A (zh) * | 2008-03-26 | 2011-06-15 | 高通股份有限公司 | 实现多个空中接口标准的可重新配置的无线调制解调器子电路 |
CN101382927A (zh) * | 2008-09-25 | 2009-03-11 | 杭州爱威芯科技有限公司 | 集成在芯片内的高速串行外围接口电路 |
CN102207920A (zh) * | 2010-03-30 | 2011-10-05 | 比亚迪股份有限公司 | 一种bvci总线到ahb总线的转换桥 |
CN102841871A (zh) * | 2012-08-10 | 2012-12-26 | 无锡众志和达存储技术股份有限公司 | 基于高速串行总线的DMA结构的pipeline读写方法 |
CN106772434A (zh) * | 2016-11-18 | 2017-05-31 | 北京联合大学 | 一种基于TegraX1雷达数据的无人车障碍物检测方法 |
CN107577636A (zh) * | 2017-09-12 | 2018-01-12 | 天津津航技术物理研究所 | 一种基于soc的axi总线接口数据传输系统及传输方法 |
Non-Patent Citations (4)
Title |
---|
Scaling point set registration in 3D across thread counts on multicore and hardware accelerator platforms through autotuning for large scale analysis of scientific point clouds;Piotr Luszczek;2017 IEEE International Conference on Big Data (Big Data);全文 * |
云计算环境下海量激光点云数据的高密度存储器逻辑结构设计;刘辉;;激光杂志(第09期);全文 * |
支持流水传输的AXI4主机转换接口设计;易清明;曾杰麟;石敏;;计算机工程(第04期);全文 * |
机载激光点云与CCD影像数据的融合技术研究及实现;徐勇;中国优秀硕士学位论文全文数据库信息科技辑(第2015 年 第01期期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108415859A (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415859B (zh) | 一种激光陀螺仪数据的硬件加速电路 | |
CN108984442B (zh) | 一种基于二值化算法的加速控制系统、芯片及机器人 | |
CN110109847B (zh) | Apb总线多个主设备的仲裁方法、系统及存储介质 | |
CN106951379B (zh) | 一种基于axi协议的高性能ddr控制器及数据传输方法 | |
CN112035388B (zh) | 一种基于PCI-e通道的高性能加解密方法 | |
CN105068951B (zh) | 一种具有非等时传输结构的片上系统总线 | |
CN109857702B (zh) | 一种基于机器人的激光雷达数据读写控制系统及芯片 | |
CN102446158A (zh) | 多核处理器及多核处理器组 | |
CN111679286B (zh) | 一种基于硬件加速的激光定位系统及芯片 | |
CN105912492A (zh) | Axi互联总线的扩展方法 | |
CN117082078A (zh) | 设备间数据同步方法、系统以及设备 | |
CN211403419U (zh) | 基于二值化算法的加速控制系统、芯片及机器人 | |
CN117033275B (zh) | 加速卡间的dma方法、装置、加速卡、加速平台及介质 | |
CN109992539B (zh) | 双主机协同工作装置 | |
CN102708079B (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
CN117009266A (zh) | 一种握手协议总线仲裁模块及片上系统 | |
CN104572519A (zh) | 一种用于多处理器的多端口访存控制器及其控制方法 | |
CN116719764A (zh) | 数据同步方法、系统以及相关装置 | |
CN113918497A (zh) | 一种优化ahb总线数据传输性能的系统、方法及服务器 | |
CN113721989A (zh) | 一种多处理器并行操作系统及计算机架构 | |
US20200327091A1 (en) | Device communication control module and device communication control method | |
JPH08212178A (ja) | 並列計算機 | |
CN112416834A (zh) | 一种兼容PCIe结构的设备间互联方法及相关设备 | |
CN115033186B (zh) | 双端口NVMe控制器及读写命令处理方法 | |
CN111045974A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong Applicant after: Zhuhai Yiwei Semiconductor Co.,Ltd. Address before: Room 105-514, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant before: AMICRO SEMICONDUCTOR Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |