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

文档序号:9910177阅读:712来源:国知局
基于spi接口的多mems传感器快速数据存取系统及方法
【技术领域】
[0001]本发明涉及集成电路设计技术领域,尤其涉及一种基于SPI接口的多MEMS传感器快速数据存取系统及方法。
【背景技术】
[0002]当前MEMS传感器已广泛应用于设备终端,为人们的生活提供了多种体验和便利,如气压计、温度计、陀螺仪、加速度计等。
[0003 ]这些MEMS传感器大多采用SPI总线用于其数据的输入/输出,取其接口少、传输速度快、便于级联等优点。在实际的应用系统中,多个MEMS传感器的内容需要不定时地频繁读取,传统的做法是通过MCU控制SPI总线接口,在需要时对多个传感器内容进行读取。这给CPU带来了极大地开销,占用了相当多的CPU资源,尤其在一个复杂的应用系统下,多个MEMS传感器的数据传输已经成为制约系统性能的一个因素。
[0004]因此,本领域的技术人员致力于开发一种基于SPI接口的多MEMS传感器快速数据存取系统及方法,提高系统效率。

【发明内容】

[0005]为实现上述目的,本发明提供了一种基于SPI接口的多MEMS传感器快速数据存取系统,其特征在于,包括MCU、MEMS加速引擎、SPI总线控制器、发送缓存、接收缓存和系统总线,所述MCU、所述MEMS加速引擎、所述SPI总线控制器、所述发送缓存和所述接收缓存皆与所述系统总线通信,所述MCU和所述MEMS加速引擎是所述系统总线的主单元,所述SPI总线控制器是所述系统总线的从单元;
[0006]所述SPI总线控制器与SPI总线相连,所述SPI总线的SPI接口用于外部的N个MEMS传感器相连,所述SPI总线控制器是所述SPI总线的主单元;所述N为自然数且不小于2;
[0007]所述MEMS加速引擎包括——对应地相连的M个MEMS控制器和M个MEMS定时器,所述M个MEMS控制器中的N个MEMS控制器与所述N个MEMS传感器——对应,所述M为自然数且不小于所述N;
[0008]对于所述N个MEMS传感器中的第η个所述MEMS传感器,所述η为自然数且ne [I ,N],
[0009]所述M⑶发送给所述第η个MEMS传感器的第一数据,先存储到所述发送缓存中;
[0010]与所述第η个MEMS传感器对应的所述第η个MEMS控制器配置所述第η个MEMS传感器的配置信息,所述配置信息包括所述第η个MEMS传感器的发送缓存地址、接收缓存地址和传输数据个数;所述发送缓存地址是所述第一数据在所述发送缓存中的存储地址;
[0011]所述第η个MEMS控制器通过所述系统总线和所述SPI总线控制器将所述第一数据从所述发送缓存发送给所述第η个MEMS传感器;其中,所述第η个MEMS控制器在接收到与其相连的第η个所述MEMS定时器发出的第一定时信号后,或者在接收到所述MCU发出的第一使能信号后,将所述第一数据发送给所述第η个MEMS传感器;
[0012]所述第η个MEMS传感器输出的第二数据,先由所述第η个MEMS控制器通过所述系统总线和所述SPI总线控制器存储到所述接收缓存中,所述第二数据在所述接收缓存的存储地址是所述第η个MEMS传感器的所述接收缓存地址;再由所述MCU从所述接收缓存读取;其中,所述第η个MEMS控制器在接收到与其相连的第η个所述MEMS定时器发出的第二定时信号后,或者在接收到所述MCU发出的第二使能信号后,将所述第二数据存储到所述接收缓存中;
[0013]所述传输数据个数包括第一传输个数和第二传输个数,所述第一传输个数是需要传输的所述第一数据的个数,所述第二传输个数是需要传输的所述第二数据的个数。
[0014]进一步地,由所述N个MEMS控制器发送的多个所述第一数据是并行数据,所述SPI总线控制器将其转换成串行数据后再写入所述N个MEMS传感器的寄存器;所述N个MEMS传感器输出的多个所述第二数据是串行数据,所述SPI总线控制器将其转换成并行数据后再由所述N个MEMS控制器将其存储到所述接收缓存中。
[0015]进一步地,所述M⑶顺序地将其发送给所述N个MEMS传感器的所述第一数据存储到所述发送缓存中;所述MEMS加速引擎还包括优先级控制模块;所述优先级控制模块设置的所述N个MEMS传感器的顺序与所述MCU存储其发送给所述N个MEMS传感器的所述第一数据的顺序一致,所述N个MEMS控制器将所述N个MEMS传感器输出的所述第二数据按照所述顺序存储到所述接收缓存中。
[0016]进一步地,所述MEMS加速引擎还包括中断输出模块,当所述第η个所述MEMS传感器输出的所述第二数据的个数达到所述第η个MEMS传感器的所述配置信息中的所述第二传输个数时,所述中断输出模块发出中断信号给所述MCU,所述MCU从所述接收缓存读取所述第二数据。
[0017]进一步地,所述MEMS加速引擎还包括缓存地址自动累加控制模块;在所述第η个MEMS传感器配置所述第η个MEMS传感器的所述配置信息中的所述发送缓存地址和所述接收缓存地址时,
[0018]对于按照所述顺序的第一个所述MEMS传感器,配置其所述发送缓存地址和所述接收缓存地址;
[0019]对于按照所述顺序的第i个所述MEMS传感器,所述缓存地址自动累加控制模块根据照所述顺序的第1-Ι个所述MEMS传感器的所述发送缓存地址Au、所述第1-Ι个所述MEMS传感器的所述第一数据的大小SIh和所述第1-Ι个所述MEMS传感器的所述配置信息中的所述第一传输个数Nl^计算其所述发送缓存地址MzAh+SIhXNIh;所述缓存地址自动累加控制模块根据照所述顺序的所述第1-Ι个所述MEMS传感器的所述接收缓存地址Dh、所述第1-Ι个所述MEMS传感器的所述第二数据的大小S2i—jP所述第1-Ι个所述MEMS传感器的所述配置信息中的所述第二传输个数N2h计算其所述发送缓存地址D1 = D.-1+S2.-1 X N2.-1,所述i为自然数且ie[2,N]。
[0020]进一步地,所述MEMS加速引擎还包括冲突检测模块;当所述N个MEMS控制器中的两个以上的所述MEMS控制器同时接收到所述第二定时信号或所述第二使能信号时,所述冲突检测模块判断发生输出冲突,并使所述两个以上的所述MEMS控制器将其对应的所述MEMS传感器的第二数据按照所述顺序存储到所述接收缓存中。
[0021 ]进一步地,所述发送缓存和所述接收缓存是同一个内存的两个部分。
[0022]进一步地,各个所述MEMS传感器的所述第一数据的大小彼此相同或不同,各个所述MEMS传感器的所述第二数据的大小彼此相同或不同。
[0023]本发明还提供了一种基于SPI接口的多MEMS传感器快速数据存取方法,其特征在于,包括步骤:
[0024]将M⑶、MEMS加速引擎、SPI总线控制器、发送缓存和接收缓存与系统总线相连,其中,所述MCU和所述MEMS加速引擎是所述系统总线的主单元,所述SPI总线控制器是所述系统总线的从单元;
[0025]将所述SPI总线控制器通过SPI总线连接到外部的N个MEMS传感器,所述SPI总线的SPI接口与所述N个MEMS传感器相连,所述SPI总线控制器是所述SPI总线的主单元;所述N为自然数且不小于2;
[0026]使所述MEMS加速引擎中的M个MEMS控制器中的N个MEMS控制器与所述N个MEMS传感器——对应,所述M为自然数且不小于所述N;所述MEMS加速引擎中的M个MEMS定时器——对应地与所述M个MEMS控制器相连;
[0027]对于所述N个MEMS传感器中的第η个所述MEMS传感器,所述η
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1