• 正文
  • 相关推荐
申请入驻 产业图谱

扒开IMU看看,一颗芯片是怎么感知加速度的

6小时前
156
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

之前做平衡车、机器人的时候,IMU基本都是绕不开的一颗芯片。把它焊到板子上,配置几个寄存器,就可以从里面读出X、Y、Z三个方向的加速度和角速度。用起来确实方便,但我以前也一直有个疑问:一颗黑乎乎的芯片,又没有眼睛,也没有尺子,它到底怎么知道自己正在加速或者旋转?

如果只看数据手册,这件事很容易被几个英文缩写带过去。什么三轴加速度计三轴陀螺仪、六轴IMU,后面再跟上一堆量程、零偏和噪声参数,看起来很高大上。可把芯片真正扒开以后会发现,里面并不是什么玄学,而是一套被缩小到微米级别的机械结构。

这就是MEMS,Micro-Electro-Mechanical System,中文叫微机电系统

咱们这一篇聊加速度计。至于角速度是怎么测出来的,它用到的是另一套很有意思的振动结构,可以看陀螺仪传感器。

陀螺仪传感器是什么原理

电子系统只听得懂电信号

咱们熟悉的MCUDSP或者其他处理器,本质上只会处理数字。外面的温度、压力、声音和加速度,它们其实一个都不认识。想让处理器感知这些物理量,通常要先找一个办法把物理变化变成电压、电流或者电荷变化,再经过放大、滤波和模数转换,最后才得到处理器能够使用的数字。

比如热敏电阻把温度变化变成阻值变化,麦克风把空气振动变成电信号,应变片把材料形变变成电阻变化。加速度计干的也是同一件事,只不过它要解决的问题是:怎么把一个看不见、摸不着的加速度,变成芯片内部可以检测的电信号?

答案是先让加速度推动一个东西,再去测这个东西移动了多少。

先在芯片里面放一个会动的质量块

MEMS加速度计内部有一个非常小的质量块,也有人叫它惯性质量或者检测质量。这个质量块并不是悬空乱跑,而是通过几根很细的弹簧梁连接在固定框架上,因此它只能在限定方向上产生微小位移。

这个结构可以先想象成一个装在盒子里的小滑块,滑块两边用弹簧拉住。当盒子突然向右加速时,滑块由于惯性,不愿意立刻跟着盒子一起向右走。站在盒子的角度看,滑块就像向左偏了一点;当盒子停止加速,弹簧又会把它拉回中间。

这件事用高中物理就能解释。加速度带来的惯性作用与质量有关,可以写成:

F=ma

而弹簧被拉伸或者压缩以后,会产生一个与位移近似成正比的恢复力:

F=kx

当质量块达到新的平衡位置时,两边的力相互抵消,于是可以得到:

也就是说,只要质量块的质量m和弹簧结构的刚度k已经确定,测出它偏移了多少$x$,就能反推出外部加速度a。所以加速度计并不是直接抓住了“加速度”这个东西,它真正测量的是一块微小质量块的相对位移。

问题又来了,这个位移可能只有微米甚至更小,拿什么去量?

那一排“小梳子”,其实就是电容

MEMS工程师想了一个很巧妙的办法。他们把质量块的边缘做成一排排交错的梳齿,其中一组梳齿跟着质量块移动,另一组固定在芯片框架上。两组梳齿彼此不接触,但会交错插在一起。

相邻的两片导体,中间隔着空气或者其他介质,本身就是一个电容。最简单的平行板电容可以写成:

其中,ε是介质的介电常数,$A$是极片相对的有效面积,$d$是两个极片之间的距离。极片面积和材料已经由制造工艺固定下来,那么质量块一移动,极片之间的距离或者重叠面积发生变化,电容值也就跟着变化。

实际的MEMS加速度计一般不会只放一个电容,而是使用差分电容结构。质量块位于中间时,左右两边的电容大致相等;质量块向一侧偏移时,一边间距变小,电容增大,另一边间距变大,电容减小。

假设两边分别叫C1和C2,芯片真正关心的是它们之间的差值:

这样设计的好处很实在。同样一次位移,一边增大、一边减小,变化更容易被检测出来;温度、工艺以及外界干扰同时作用在两边时,其中一部分共模变化还可以相互抵消。说白了,一个电容自己变了一点,很难判断到底是质量块动了还是环境变了;两个电容一增一减,方向就清楚多了。

这里跟我们的应变片采样一模一样啊,什么是惠斯通电桥?为什么用惠斯通电桥测量应变片?

什么是惠斯通电桥?为什么用惠斯通电桥测量应变片?

芯片内部再用电荷放大器、解调电路ADC把这点极其微小的电容差转换成数字,最后通过I²C或者SPI送给处理器。我们在寄存器里读到的那个加速度数值,前面其实已经走过了“机械位移—电容变化—模拟电信号—数字量”这样一整条链路。

X、Y、Z三个方向又是怎么来的?

一个方向的结构只能感知一个方向的加速度。想检测X、Y、Z三个轴,芯片内部就要布置对不同方向敏感的机械结构。X轴和Y轴通常是在晶圆平面内运动,质量块可以左右或者前后移动;Z轴需要检测垂直于晶圆表面的运动,结构会稍微复杂一些,常见做法类似跷跷板或者上下可动的电极结构。

当然,并不是简单粗暴地塞进三套一模一样的“大梳子”。真正的芯片还要考虑三个轴之间的串扰、机械谐振频率、阻尼、噪声和抗冲击能力。手机跌到地上时,里面那块微型质量块不能直接撞坏;无人机电机高速振动时,它又不能把所有机械噪声都当成姿态变化。别看这个结构小,设计时要操心的事情一点都不少。

芯片放在桌上没动,为什么还能读到1g?

很多人第一次看加速度计数据都会遇到这个问题。板子明明安安静静放在桌面上,Z轴为什么不是0,反而接近1g?是不是零偏太大,或者芯片坏了?

其实这恰恰说明它大概率在正常工作。

桌面向上托着芯片,阻止它自由下落,芯片内部的质量块和弹簧因此承受了作用,检测电路就会得到大约1g的输出。把板子翻过来,对应轴的读数会变成大约-1g;将它侧放,重力分量又会落到另外两个轴上。这也是很多设备能够用加速度计估算静态倾角的原因。

严格来说,加速度计测到的并不是大家口语里那个简单的“速度变化率”,而是比力,也就是非引力作用造成的单位质量受力。这个概念刚接触时有点绕,但记住一个极端情况就好:加速度计在桌面上静止时会读到约1g,真正自由落体时反而接近0g。

这也是一个很容易被忽略的工程问题。你拿加速度数据去积分算速度和位移之前,必须先知道传感器姿态,把重力在三个轴上的分量扣掉。姿态稍微估错一点,残留的重力分量经过两次积分以后,位置就会很快飘走。很多人觉得买一颗精度更高的IMU就能解决,实际上算法、安装误差和振动往往一个都跑不掉。

小小的电容变化,后面全是工程问题

如果把IMU的加速度计晶圆放到显微镜下面,确实可以看到这些像梳子一样的微型结构。它们靠半导体工艺在硅片上加工出来,梳齿之间的距离非常小,因此质量块只需要移动一点点,就能产生可以检测的电容变化。

但“可以检测”和“准确测量”完全是两回事。温度变化会改变弹簧刚度和电路特性,封装应力会让零点偏移,三个敏感轴不可能做到绝对垂直,机械振动还可能碰上结构的谐振频率。数据手册里常见的零偏、噪声密度、灵敏度误差、轴间误差和温漂,背后基本都能在这套机械结构与检测电路中找到原因。

所以选IMU时不能只盯着量程。量程大,意味着它不容易在剧烈运动时顶格,但往往也意味着同样的数字位数要覆盖更宽的范围,分辨细小变化会更吃力。做姿态检测、计步和做碰撞检测,对带宽、噪声与量程的要求完全不同。器件参数从来不是越大越好,还是要看它放到系统里究竟准备干什么。

说到底,一颗MEMS加速度计做的事情很朴素:利用惯性让质量块移动,再利用差分电容把这点移动变成电信号。真正奇妙的地方,是工程师把质量块、弹簧、梳齿和检测电路都塞进了一颗几毫米见方的芯片里。

我们从寄存器里读出来的只是几个数字,但在数字出现之前,芯片里面那套微型机械已经实实在在地动了一下。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录