写在前面:

    本节课将介绍BMI088传感器的相关知识,BMI088传感器是一个六轴惯性测量单元 (IMU),能够应用于机器人上的姿态解算,将在本章节学习六轴惯性测量单元的内部结构——三轴陀螺仪和三轴加速度计,惯性测量单元的功能及其基本原理,同时我们将介绍一个重要的通信协议——SPI协议,以及BMI088传感器的使用方法,并编写工程进行BMI088传感器的驱动。 

1.知识要点

1.1 SPI协议简介

    SPI协议是摩托罗拉公司开发的一种高速的,全双工,同步的通信总线,使用四根线进行通信,具有简单易用,通讯速度高的特点。SPI总线上可以挂载多个设备,这些设备被区分成主设备(Master)和从设备(Slave),主设备通过时钟线和片选线对从设备进行控制。

1.2 SPI通信原理

SPI通信采用主从架构,由一个主设备(通常是微控制器)和一个或多个从设备组成。通信过程中,主设备负责控制时钟信号,并通过以下四个主要引脚与从设备进行数据交换:

  1. MISO(Master In Slave Out,主设备输入/从设备输出)
  2. MOSI(Master Out Slave In,主设备输出/从设备输入)
  3. SCK(Serial Clock,串行时钟)
  4. NSS(Slave Select,从设备选择)

Untitled

1.3 SPI通信特性

    SPI是单主设备(Single Master)通信协议,只有一支主设备能发起通信,当SPI主设备想读/写从设备时,它首先拉低从设备对应的SS线(SS是低电平有效)。接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,主设备把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”。如下图所示:

Untitled

1.4 SPI通信过程

使用SPI进行通信时,各个设备的时钟引脚一起挂载在SCK线上,主设备的输入和各个从设备的输出连接MISO/SDI,主设备的输出和各个从设备的输入连接MOSI/SDO,同时主设备的GPIO口连接各个从设备的CS。

Untitled

SPI的通讯过程开始时,如果一个主设备和一个从设备要进行通信,则主设备会通过CS信号线选中该从设备,其他未被选中的从设备不参与此次通信。

SPI的时序规定了不同的工作模式,如下表所示: