A1335 角度传感器 IC 中的高级片内线性化
作者 Alihusain Sirohiwala 与 Wade Bussing,
Allegro MicroSystems, LLC
介绍
无论是工业自动化和机器人技术,还是电动助力转向和电机位置传感,许多应用都需要监测旋转轴(以轴上或离轴排列形式)的角度。
要设计一种可满足上述应用需求的成功的角度测量系统,必须以特定应用为基础。这些要求包括:排列(离轴或轴上)、气隙、精度和温度范围等。
磁性角度测量系统主要有两个误差源。
传感器 IC 相关误差:
- 固有非线性;
- 参数温度漂移;
- 噪声。
磁性输入相关误差:
- 磁场强度变化;
- 磁场非线性。
Allegro 角度传感器 IC 在 Allegro 生产过程中使用同质磁场进行测试和校准。因此,可以在角度传感器 IC 发送给客户前尽量降低 IC 固有的非线性和温度漂移。温度漂移信息,请参阅产品数据表。
在设计中使用磁体时,磁场输入在整个旋转范围内可能并不均匀:它存在固有误差。这些磁性输入误差会导致系统中出现测量误差。
当考虑固有磁致误差更高的侧轴或离轴设计时,这尤为重要。如果误差主要是由磁场输入导致的,即使校准最精确的角度传感器 IC 也会产生错误的测量结果。在多数情况下,即使是离轴磁场
设计,也会受到较大偏移的影响,在生产线上组装客户模块时,常常会出现这种偏移。这些磁致误差源是不可避免的,它们几乎无法消除,而且往往需要付出高昂的代价,才能有效缓解。
Allegro A1335 角度传感器 IC 使用高级线性化技术解决这种问题,补偿在客户的生产线终端产生的此类误差。
本文介绍了 A1335 如何通过线性化,将超过 ±20° 的磁场输入误差降至 ±0.3°(大约提升了 65 倍)。
根据目标磁体在角度传感器 IC 周围的单旋转产生的数据可完成这种线性化。使用这种旋转产生的角度读数可生成线性化系数,然后将其存入片内 EEPROM,从而对用于相应磁系统的角度传感器 IC 进行优化。Allegro 可以提供必备的软件和/或 DLL,帮助客户在终端对设备进行编程。
线性化选项
A1335 角度传感器 IC 采用了两种线性化技术。第一种是“分段线性化”,第二种是“谐波线性化”。
分段线性化是一种可编程功能,它允许调节角度传感器 IC 的转移特性,这样角度传感器 IC 就能将施加磁场矢量角内的线性变化,输出为对应的线性角增量。这是利用磁体在角度传感器 IC 周围的一次旋转产生的数据完成的。
另一方面,谐波线性化以 11 种修正谐波的形式进行线性化,利用快速傅立叶变换 (FFT) 可确定它们的相位和振幅,根据磁体在角度传感器 IC 周围的一次旋转产生的数据可完成 FFT。通过使用 Allegro 提供的软件计算系数,并对片内 EEPROM 进行编程,可使用这种两种技术。请联系您当地的Allegro 销售代表,获取最新的 DLL、软件 GUI 和编程硬件。
定义
气隙
谈到磁场传感器时,可以使用两种不同的气隙定义:封装气隙和晶体气隙。
封装气隙
封装气隙是传感器壳体的最近边缘与磁体的最近表面/切面之间的距离。
晶体封装气隙
晶体气隙定义为传感器中的感应元件到最近的磁体表面的距离。
为阐释这种区别,图 2 显示了采用侧轴或离轴配置的 A1335 角度传感器 IC 和磁体的晶体气隙 (4.0 mm) 和封装气隙 (2.407 mm)。
在本文件中,除非另有规定,否则“气隙”一词专指封装气隙。感应元件比封装顶部表面以下 0.36 mm。传感元件中心与封装的最近短边之间的距离是 1.593 mm。
角度误差
角度误差是磁体的实际位置与角度传感器 IC 测量的磁体位置之间的差异。要完成这种测量,需要先读取角度传感器 IC 的输出,然后将其与高分辨率编码器进行对比(请参阅图 3)。
精度误差
在下文中,角度误差显示为偏移的函数。为此,需要为全程旋转引入一个单独的角度误差定义。全程旋转的“总”角度误差定义为角度精确度误差,按照下述公式计算:
换言之,偏离理想直线的幅度在 0 度和 360 度之间。
区分与角度传感器 IC 和磁场输入有关的误差很重要。本文件重点介绍了如何使用 A1335 角度传感器 IC 中 的高级功能来补偿与磁场输入有关的误差。
对于和角度传感器 IC 有关的误差,Allegro 会在生产线终端测试点对每个角度传感器 IC 的固有非线性和参数温度漂移(参阅数据表规范查看这些参数)进行优化,然后再向客户交付。根据客户应用的要求,可使用片内滤波技术优化
噪声性能(参阅《A1335 编程手册》中的 ORATE 设置)。
磁铁
为对比分段线性化和谐波线性化的性能,两种线性化都是在相同磁体上完成的。使用的磁体是 Super Magnets 提供的 N45 钕双极环形磁体。图 4 和图 5 显示了磁体尺寸。
表 1:离轴(左图)和轴上(右图)
磁体名称 | 制造商 | 内径 |
外径 |
高度 | 材料 |
R1 | Super Magnets | 7 mm | 10 mm | 3 mm | N45 镀镍 |
R2 | Super Magnets |
5 mm | 10 mm | 3 mm | N45 镀镍 |
平均磁场和气隙依赖关系
系统设计的第一步是为应用气隙选择适当的磁体。通常,气隙范围通常在 2 - 4 mm 之间。图 5 显示了随磁体 R1 和 R2 的气隙变化的磁场。
在默认情况下,多数 Allegro 角度传感器 IC 已经过预校,所以能在 300 G (30 mT) 条件下发挥数据表中的性能。A1335 可提供磁场强度自动调节功能,通过动态调节内部增益来补偿气隙内的动态变化。但在设计磁场时必须谨慎,确保气隙变化不会使磁场强度过低(信噪比不够)或过强(信号链块饱和)。通常,磁场强度在 300 G 到 1000 G 之间是理想的情况,磁场水平越高,噪音性能越好。
磁体误差分析
使用磁体 R1 和 R2 分析在测量角度时从磁场信号中观测到的固有非线性。测量使用 A1332 (A1335 的前一代产品)在理想对齐条件下进行校准,如图 7 和图 8 所示。
根据在等距角点对角度传感器 IC 输出的一次旋转取样,我们可以总结如图 9 所示的转移特性。
利用 FFT 在频域内分析上述角度误差,我们可以总结如图 10 所示的误差和谐波的对比。
图 11 显示了在磁体 R2 上进行的类似分析。
FFT 数据表明,磁体 R1 和 R2 中的大多数固有误差都是二次谐波产生的,而一次谐波、四次谐波、三次谐波以及高次谐波是产生其他误差的原因。产生此误差的根本原因是径向分量 (Br) 和切向分量 (Bt) 的振幅失配。其相位或角度由角度传感器 IC 测量的磁场矢量可表述为两个正交分量,即 Br 和 Bt,如图 12 所示。
在理想情况下,这些分量的振幅应相同,相位应垂直。任何与这种理想情况的偏差,都会在角度测量结果中引入误差。在用于侧轴传感的环形磁体中,径向分量和切向分量的振幅失配是磁体设计固有的缺陷,而且它们会随制造商和生成方法的不同而变化。如果是圆柱形磁体,增加角度传感器 IC 和磁体之间的离心率或偏移也会引入径向分量和切向分量的振幅失配。
这些失配会在多谐波中产生误差项。因此,只纠正二次谐波误差项显然不够,特别是在需要高精度性能时。
分段线性化
A1335 分段线性化是一种可编程功能,它允许调节器件的转移特性,这样就能将施加磁场的变化输出为对应的线性增量。
图 15 显示了已完成和未进行分段线性化的 A1332 的角度输出。
为实现此目的,需要创建一组初始线性化系数。用户需提取 15 个角度样本:在 0° 和 360° 的全程旋转范围内,按 1/16 的间隔取样。0 参考点由 LIN_OFFSET EEPROM 字段设定。它会成为零误差点,所以不会在
系数表内体现。同样,360° 点与 0 参考点相同,所以也不在系数表中体现。在分段边界测量的其余角度位于LIN_COEFF1 ...LIN_COEFF15 EEPROM 字段。下列操作说明介绍了应用这些线性化系数的基本算法。这种方法的样本实现以 Allegro 客户评估软件工具的形式提供。图 15 显示了已完成和未进行分段线性化的角度
输出与编码器基准。图 16 显示了减去基准编码器数值后得到的已完成和未进行分段线性化的角度误差。图 17 显示了已完成分段的角度误差曲线的放大视图。
实现分段线性化的步骤
- 收集数据
,关闭所有后线性化算法处理;这包括零点偏移、后线性化旋转 (RO)、短行程反转 (IV) 和旋转晶片位元 (RD)。预线性化调节可保持开启,如 ORATE 设置、IIR 过滤器 (FI) 和预线性化旋转 (LR)。
将 SL 设置为 1 (CFG_2 中的 SL 位元、词语 6、EEPROM 位元 16、SRAM 位元 20)激活分段线性化。打开分段线性化的旁路位元(SB 位元、词语 6、EEPROM 位元 21、SRAM 位元 25)。这就可以在不应用线性化系数的情况下取得测量值。
寻找所需的零参考点,从该参考点开始,以 +22.5、+45.0(以此类推)的形式设置线性分布区段。对于侧轴配置,最好是在误差的峰谷位置选择一个点。在下一步中,需要将角度传感器 IC 在该点的读数输入 LIN_OFFSET 系数。
沿增大角位置的方向移动编码器。如果传感器的角度输出未相应增大,可设置 LR 位元以反转角度传感器 IC 的反向,或在此校准步骤中,沿反方向转动编码器,在此情况下,当校准结束后,可能需要设置线性化之后的旋转位元 (RO)。参阅《A1335 编程参考》了解更多详情。
按 22.5° 的步数移动编码器,并读取 15 个角度设定值。该过程将产生 15 个 LIN_COEFF 系数。
- 编程系数
在乘以 * (4096/360) 之后,对 LIN_OFFSET 进行编程,并在重新调节后以十六进制 (HEX) 编写。
在乘以 * (4096/360) 之后,对每个 LIN_OFFSET 进行编程,并在重新调节后以十六进制 (HEX) 编写。
- 启用线性化
设置 EEPROM 位元 SB=0,因为不再需要绕过线性化功能,数据收集在第 1 步中已经完成。设置 EEPROM 位元 SL = 1(注意:在第 1 步中就已应设为 1),启用分段线性化。现在,角度传感器 IC 的输出应沿每个区段呈线性分布,并产生正确的角度输出。
结果
图 16 以角度误差的形式,阐释了与已知正常编码器的角度参考相比的分段线性化性能。
虽然显示准确,但图 16 并不能深度剖析真正的角度误差性能。它只显示了分段线性化后误差最少的传递函数点的角度误差。如果在样本之间以更小的角度步数再次测量相同的器件,我们就会看到如图 17 所示的结果。注意连续线性化点之间的误差“凸角”。这些是意料之中的,因为在每个区段中,实际上是正弦的误差会近似为直线误差。考虑到这种正弦输入误差类型,图 17 显示了通过分段线性化(使用 16 个区段)能取得的最佳性能。
在 A1335 中实现的分段线性化只允许进行这种 16 区段线性化。可以想象,通过增加区段数量或使区段长度可变,能提高这种方法的性能,这样就能将更精确的区段用于高曲率区域。
但这两种优化方法都会增加处理时间和复杂性。
谐波线性化
由磁体 R1 和 R2 的误差分析可以看出,误差本质上是正弦的,也就是说,通过组成相位和振幅适当的谐波能准确描述它们。谐波线性化利用了这种特性,它以 11 种修正谐波的形式进行线性化,利用快速傅立叶变换 (FFT) 可确定它们的相位和振幅,在客户的生产线终端,根据磁体在角度传感器 IC 周围的一次旋转产生的数据可完成 FFT。
谐波线性化功能具有很大的灵活性。单独谐波振幅和相位的数值储存在用于 11 种谐波的 12 位 EEPROM 字段中。
用户可以使用 4 位 HAR_MAX EEPROM 字段指定需要在线性化中应用的谐波数量。此设置可确定计算谐波线性化所需的单独谐波分量(1 - 11)的数量(使用“Adv”字段可确定用于每个分量的谐波)。
2 位字段“Adv”字段可在应用谐波分量的时序对之间设置增量。输入数值 n(0 - 3 之间)表示从前一分量到当前分量已略过的谐波数量。计算方法为 1 + n。例如,第一分量 (0x0C) 最小 (n = 0) 是一次谐波, 最大 (n = 3) 是四次 谐波。这会产生累积效应:当所有分量均设置为 n = 3 时,在第 15 分量 (0x16) 可获得 44 次谐波。例如,我们使用具有侧轴配置的磁体 R1 对传感器进行线性化。
除了支持侧轴应用外,这种线性化方法中融入的灵活性,还有助于在客户的生产线终端消除静态偏移误差。
实现分段线性化的步骤
- 收集数据
,关闭所有后线性化算法处理;这包括零点偏移、后线性化旋转 (RO)、短行程反转 (IV) 和旋转晶片位元 (RD)。预线性化调节可保持开启,如 ORATE 设置、IIR 过滤器 (FI) 和预线性化旋转 (LR)。
沿增大角位置的方向移动编码器。如果传感器的角度输出未相应增大,可设置 LR 位元以反转角度传感器 IC 的反向,或在此校准步骤中,沿反方向转动编码器,在此情况下,可能需要设置线性化之后的旋转位元 (RO)。参阅《A1335 编程参考》了解更多详情。
按编码器的步数移动,使产生的数据为 2 的幂数。通常,32 或 64 个均匀分布的数据点就足够了。
- 编程系数
根据测量的数据进行 FFT,然后根据首选的实现,对 HARMONIC_AMPLITUDE、HARMONIC_PHASE、ADV和 HAR_MAX 字段进行编程。您的 Allegro 销售代表可提供这些功能的样本实现。 - 启用线性化
设置 EEPROM 位元 HL=1,启用谐波线性化。现在,传感器输出应产生正确的角度输出。
结果
图 19 显示了磁体 R1 的谐波线性化性能,其中 HARMAX = 1 - 11(所有 ADV 字段 = 0),与 A1332 测量方式相同。(所有 ADV 字段 = 0)换言之,这显示了在一次谐波和十一次谐波之间以增量形式进行谐波修正时的性能。
图 20 总结了相同的结果,它显示了峰峰值 (pk-pk) 角度误差与应用修正谐波数量的对比。二次谐波修正后,角度误差的急剧减小在意料之中,因为大部分频谱误差含量都位于二次谐波中(参阅“分析磁致误差”部分)。
为利用谐波线性化深入研究误差性能,特别是在使用更小的角度步数时,可在每次旋转时,采用更精确的步数(更高的分辨率)对相同的器件进行多次重复测量。数据不会显示底层的高误差区。线性化之后的误差是 0.3°。
角度延迟考虑因素
分段线性化和谐波线性化技术都非常适合轴上和离轴磁场应用。分段线性化将磁场范围分为若干个更小的部分,然后以分段形式对它们进行线性化,谐波线性化允许对误差信号进行基于正弦的补偿,这有助于消除偏移和侧轴排列中的高谐波误差含量。谐波线性化的性能提升是以延长计算时间为代价的。图 22 说明了对谐波线性化每次增加的谐波进行角度测量时的附加延迟。例如,根据图 20 中的数据,要保证小于 1°,至少需要 7 次修正谐波。现在,查看与图 20 中的 7 次谐波相关的处理时间中的附加延迟,附加延迟为 35 μs。这意味着每次角度取样都会使处理时间增加 35 μs 的延迟。相反,分段线性化另外还需要 22 μs 的计算数据。因此,对这种特定的磁体而言,提升谐波线性化的误差性能
需要再增加 13 μs 的延迟。附加延迟对许多应用而言并不是一个问题。例如,在典型的电动助力转向系统 (EPS) 的方向盘角度传感器 IC 中,需要每 1 ms 提供一个新的角度值,也就是说,即使进行 11 次谐波线性化,时间也足够了。此外,许多系统都能通过 A1335 的 ORATE 功能获益,所以能利用过采样减少角度测量的噪声基底。这还能为执行线性化功能提供足够的时间,而不会增加延迟,因为额外的平均预算能为线性化运行提供更多的时间。
线性化的角度传感器 IC 上的 XYZ 轴偏移的影响
在本节中,我们分析了已针对磁体 R1 和 R2 完成线性化的角度传感器 IC 的性能,然后将偏移误差映射到 X、Y 和 Z 轴中,如图 23 所示。如果同时使用磁体 R1 和 R2,我们分别采用 X 轴(气隙)的的起始位置 = 2.75 mm 和 4 mm,其中 Y、Z 轴 = 0 mm,这样角度传感器 IC 就会处于磁体高度的中间位置。我们将该位置作为笛卡尔原点,并根据表 2 从该参考点开始,映射偏移性能。下面的数据使用 Allegro A1332 角度传感器收集,A1335 的性能与之类似或更胜一筹。
表 2:磁体 R1 和 R2 的映射范围与线性化点
磁体 R1 轴 |
最小值 (mm) |
线性化 点 (mm) |
最大值 (mm) |
X(气隙) | 2.0 | 2.75 | 4.5 |
Y(横向) | -2.0 | 0.0 | 2.0 |
Z(纵向) | -2.0 | 0.0 | 3.0 |
磁体 R2 轴 |
最小值 (mm) |
线性化 点 (mm) |
最大值 (mm) |
X(气隙) | 4.0 | 4.0 | 8.0 |
Y(横向) | -2.0 | 0.0 | 2.0 |
Z(纵向) | -2.0 | 0.0 | 3.0 |
图 24 显示了磁体 R1 和 R2 的角度误差性能随气隙(X 轴)的变化而变化。
通过研究图 24 中的图表可得到一些分析结果。根据线性化点(红圈所示)的角度误差值,角度传感器 IC 显然能使两个磁体在线性化之后具有非常相似的性能。由此可见,使用这两种磁体能获得相同的性能。但通过研究图 24 中的误差曲线的形状和气隙,我们不难看出,与磁体 R2(红色轨迹)相比,磁体 R1(黑色轨迹)的误差急剧增加,因为角度传感器 IC 偏离线性化点(红圈)。
例如,使角度传感器 IC 和磁体 R1 之间的气隙增大 1 mm,以及使相同的角度传感器 IC 和磁体 R2 之间的气隙增大 4 mm 会产生相同的性能退化。与磁体 R1(3 mm 厚)相比,要想提高磁体 R2 的气隙性能需要更厚的环形磁体(5 mm 厚)。
通过对比磁体 R1 和 R2 的两个填色绘图,我们能以类似的方式分析横轴和纵轴(Y 和 Z 轴)中的偏移性能,如图 25 和 26 所示。使用实验室测量产生的数据,并映射每个空间点的性能,可生成这些绘图。在两个绘图中,原点 (Y = 0, Z = 0) 位置表示线性化点(与图 24 中的红点相同)的性能。由于角度传感器 IC 偏离此原点,根据显示的图例,在每个点观察到的角度误差会归入彩色“容器”内。图例上的数字表示峰值误差的角度。例如,每个绘图中间的白色区域表示角度误差性能低于 ±1° 的区域。同样,每个绘图中的棕色区域表示角度误差大于 ±7° 的区域。
通过观察两个轮廓图,我们不难看出,对于 Y 轴 和 Z 轴中的相同偏移,角度传感器 IC + 磁体 R2 的组合结果能减少角度误差,这与角度传感器 IC + 磁体 R1 形成鲜明对比。例如,在磁体 R1 中,误差小于 ±1° 的白色区域是 0.669 mm2,而磁体 R2 的此类区域是 1.10 mm2。此外,与磁体 R1 相比,使用磁体 R2 时,白色区域明显会纵向“拉长”。由于环形磁体 R2 (5 mm) 的垂直高度大于环形磁体 R1 (3 mm) 的垂直高度,所以这在情理之中。这些轮廓显示了角度误差性能对磁体几何形状的依赖性。
结论
角度感应应用能否成功,取决于很多因素。其中一项关键的因素是最大限度减少随温度变化的角度误差、位置偏移和气隙。这些变量与系统级的设计选项有关,如磁体几何形状、磁体排列(轴上或离轴)、磁性材料和机械公差。同样,为确保在这些潜在的误差源周围正常工作,同时又不增加系统级设计的复杂性和成本,必须使角度传感器 IC 具有一定的灵活性。即使最好的磁性角度传感器 IC 也要受到其感应的磁场的影响。
在 A1335 角度传感器 IC 中实现的片内可编程和可定制的线性化,可确保系统设计人员实现上述精度目标,而不会增加系统设计的复杂性和成本。
A1335 提供两个线性化选项,即分段线性化和谐波线性化。这两个选项都使用参考磁体 R1 和 R2 进行研究。结果表明,虽然分段线性化的处理时间更快,但它纠正正弦误差项的能力有限。就此而言,谐波线性化能发挥更好的作用。此外,谐波线性化方法的灵活性,特别是它能修改所用的修正谐波的数量,可确保用户在计算时间和误差性能之间实现最佳平衡。在磁体 R1 和 R2 中可以看出,在应用线性化时,能将 ±20° 的角度误差控制在 ±0.3° 范围内。
最后,使用映射技术可研究线性化的角度传感器 IC 的机械偏移影响。可以看出,较高的环形磁体能将更好地耐受垂直偏移,而较厚的环形磁体能更好地耐受气隙变化。
无论系统级设计人员面临何种角度传感应用的挑战,利用 Allegro A1335 中介绍的适用的磁体设计和高级片内线性化的组合,不仅能获得所需的性能,还能最大限度减少复杂性和成本。