基于spi接口的多mems传感器快速数据存取系统及方法_2

文档序号:9910177阅读:来源:国知局
为自然数且ne [I ,N],
[0028]所述M⑶发送给所述第η个MEMS传感器的第一数据,先存储到所述发送缓存中;
[0029]与所述第η个MEMS传感器对应的所述第η个MEMS控制器配置所述第η个MEMS传感器的配置信息,所述配置信息包括所述第η个MEMS传感器的发送缓存地址、接收缓存地址和传输数据个数;所述发送缓存地址是所述第一数据在所述发送缓存中的存储地址;
[0030]所述第η个MEMS控制器通过所述系统总线和所述SPI总线控制器将所述第一数据从所述发送缓存发送给所述第η个MEMS传感器;其中,所述第η个MEMS控制器在接收到与其相连的第η个所述MEMS定时器发出的第一定时信号后,或者在接收到所述MCU发出的第一使能信号后,将所述第一数据发送给所述第η个MEMS传感器;
[0031 ]所述第η个MEMS传感器输出的第二数据,先由所述第η个MEMS控制器通过所述系统总线和所述SPI总线控制器存储到所述接收缓存中,所述第二数据在所述接收缓存的存储地址是所述第η个MEMS传感器的所述接收缓存地址;再由所述MCU从所述接收缓存读取;其中,所述第η个MEMS控制器在接收到与其相连的第η个所述MEMS定时器发出的第二定时信号后,或者在接收到所述MCU发出的第二使能信号后,将所述第二数据存储到所述接收缓存中;
[0032]所述传输数据个数包括第一传输个数和第二传输个数,所述第一传输个数是需要传输的所述第一数据的个数,所述第二传输个数是需要传输的所述第二数据的个数
[0033]由此可见,本发明的基于SPI接口的多MEMS传感器快速数据存取系统和方法,使用了包括多个MEMS控制器和MEMS定时器的MEMS加速引擎,其行使DMA功能,对多个MEMS传感器的访问机制以及访问流程,发送和接收缓存进行读取控制。本发明通过MCU将需要写入多个MEMS传感器的数据先存入发送缓存,再由MEMS加速引擎通过SPI总线控制器将它们顺序地写入这些MEMS传感器;以及通过MEMS加速引擎将多个MEMS传感器输出的数据先存入接收缓存,待数据发送或接收完成以后,使用中断信号通知MCU可以对这些从多个MEMS传感器读取的数据进行处理,大大减少MCU的开销,使得MCU可以解放出来做更多的事情,从而提高了系统运行效率。
[0034]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
【附图说明】
[0035]图1是在一个较佳的实施例中,本发明的基于SPI接口的多MEMS传感器快速数据存取系统的结构框图。
[0036]图2是图1所示的系统中的MEMS加速引擎的结构框图。
[0037]图3是在一个较佳的实施例中,本发明的基于SPI接口的多MEMS传感器快速数据存取方法的流程图。
【具体实施方式】
[0038]如图1所示,在一个较佳的实施例中,本发明提供了一种基于SPI接口的多MEMS传感器快速数据存取系统,其包括MCU、MEMS加速引擎、SPI总线控制器、发送缓存、接收缓存和系统总线(图中表示为与MCU、MEMS加速引擎、SPI总线控制器、发送缓存和接收缓存皆相连的横向的黑线)。其中,MCU、MEMS加速引擎、SPI总线控制器、发送缓存和接收缓存皆与该系统总线通信,M⑶和MEMS加速引擎是系统总线的主单元,SPI总线控制器是系统总线的从单
J L ο
[0039]发送缓存和接收缓存同属于一个内存,即它们是同一个内存的两个部分,其中发送缓存用于存储MCU需要向MEMS传感器的寄存器写入的数据(第一数据,如MEMS传感器的初始化数据),接收缓存用于存储MEMS传感器输出数据(第二数据,即其检测结果KSPI总线控制器与SPI总线相连,用于连接外部的N个MEMS传感器MEMSl、MEMS2、…、MEMSN,以接收来自这些MEMS传感器的第二数据以及向它们发送第一数据,N为自然数且不小于2。这N个MEMS传感器MEMS1、MEMS2、…、MEMSN分别地连接在SPI总线的SPI接口上。
[0040]图2示出了MEMS加速引擎的结构,其包括——对应地相连的M个MEMS控制器和M个MEMS定时器,M为自然数且不小于N。这些MEMS控制器用于与N个MEMS传感器对应,以控制对这N个MEMS传感器的数据的读写。本实施例中M = N,这N个MEMS控制器与N个MEMS传感器——对应,由此这些MEMS控制器和MEMS定时器在图中表示为MEMSl控制器和MEMSl定时器、MEMS2控制器和MEMS2定时器、…、MEMSN控制器和MEMSN定时器,以表示它们是对应MEMS传感器MEMSl的控制器和定时器、对应MEMS传感器MEMS2的控制器和定时器、…、对应MEMS传感器MEMSN的控制器和定时器。
[0041 ] MEMS定时器用于设定对应的MEMS传感器输出第二数据的时间,一到设定的时间,就向相连的MEMS控制器发出第二定时信号,让其把第二数据读到接收缓存中去;MEMS定时器还可以用于设定向对应的MEMS传感器输入第一数据的时间,一到设定的时间,就向相连的MEMS控制器发出第一定时信号,让其把第一数据发送给对应的MEMS传感器。MEMS控制器用于配置其对应的MEMS传感器的配置信息,该配置信息包括该MEMS传感器的发送缓存地址、接收缓存地址和传输数据个数,其中发送缓存地址是需要写入该MEMS传感器的第一数据被存储在发送缓存中的地址,接收缓存地址是需要该MEMS传感器输出的第二数据被存储在接收缓存中的地址,传输数据个数包括第一传输个数和第二传输个数,第一传输个数是需要传输到该MEMS传感器的第一数据的个数,第二传输个数是该MEMS传感器需要传输的第二数据的个数。这样,MEMS控制器能够根据其对应的MEMS传感器的配置信息,从发送缓存中获取M⑶需要写入该MEMS传感器的第一数据,并将其发送给该MEMS传感器;并且MEMS控制器能够根据其对应的MEMS传感器的配置信息,将其对应的MEMS传感器输出的第二数据先存储到接收缓存中的相应的地址,以待MCU读取该数据。
[0042]除了在接收到与其相连的MEMS定时器发出第二定时信号后,MEMS控制器还可以在接收到MCU发给它的第二使能信号后,将其对应的MEMS传感器输出的第二数据读到接收缓存中去。另外,除了在接收到与其相连的MEMS定时器发出第一定时信号后,MEMS控制器还可以在接收到MCU发给它的第一使能信号后,从发送缓存将第一数据发送给对应的MEMS传感器。
[0043]如图2所示,MEMS加速引擎还包括优先级控制模块,其用于设置这N个MEMS传感器的顺序,这个顺序是与MCU将其要发送给这N个MEMS传感器的第一数据存储到发送缓存中的顺序一致的。通常,在系统启用的时候,首先需要对各个传感器进行初始化设置,即需要由MCU向它们发送第一数据。在本发明中,这些第一数据并非由M⑶直接写入这N个MEMS传感器的,而是先由MCU将这些数据通过系统总线顺序地写入发送缓存,这个顺序就是这N个MEMS传感器的顺序。本实施例中所用的MEMS加速引擎所包括的优先级控制模块即按这个顺序进行设置,例如按MEMS1、MEMS2、…、MEMSN这样排列的顺序。之后,在N个MEMS控制器将这N个MEMS传感器的第二数据存储到接收缓存中时,即按照该顺序操作。
[0044]MEMS加速引擎还包括中断输出模块,当一个MEMS传感器输出的第二数据的个数达到上述第二传输个数时,中断输出模块判断是哪一个MEMS传感器完成数据输出,并发出相应的中断信号给MCU,表示该MEMS传感器完成数据输出了,由此MCU可以从接收缓存读取
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1