在很多的场合,我们往往需要测量较高精度的角度和位置,例如汽车的油门,节气门位置以及转向扭矩感应等。由此,用于传输磁感应强度的SPC应运而生,下面我们来了解一下此协议的内容。
SPC概述
SPC(Short PWM Code)协议,是基于SENT(Single Edge Nibble Tranmission)协议的增强版,通过两个相邻周期的下降沿之间的脉冲实现数据传输,相对于模拟输出和PWM输出,具有很好的EMC特性,具有较高的传输速度,较强的可靠性和抗干扰能力。此协议广泛应用于精确的转动角度测量和位置检测,汽车应用包括踏板、油门或变速杆位置检测,悬架控制或电动助力转向系统直接扭矩检测等。
SPC协议以单线半双工传输的方式进行数据传输,最多可以同时控制4个传感器。与SENT不同,SPC新增了触发字段,可表示三种模式:同步模式,ID选择与范围选择。SPC各个字段的值根据两个下降沿之间的时间来表示一个四位的值,根据下降沿时间除以一个固定的值所得的结果减去12就是所代表的值,这个固定的值成为单位时间(UT)。
SPC帧格式介绍
图1 SPC帧格式
触发字段(master Trigger Pulse):由主机发送,根据模式的不同,长度也不同。
同步字段(Sync frame):由从机发送,表示从机开始采集数据。
状态字段(status Nibble):表示从机当前的状态,当触发字段的模式为ID选择或范围选择时,还表示从机的ID或当前范围值。
数据字段(DataNibble):表示从机采集到的数据,根据从机的设置,数据字段的数量可以是3到6个不等。其数据可包含霍尔值与温度值。
校验字段(CRC Nibble):提供校验值,用于校验此帧是否正确。
实例应用-解码实例
模拟SPC通信协议,对数据进行解码,如下图2所示:
图2 SPC解码配置参数
如上图所示,为SPC解码所需配置参数,其中时间片宽度是指主机设置的单位时间。根据帧的数据字段的性质,设定数据字段的个数,如下图所示:
图3 数据字段个数含义
如上图,当数据字段的数量为3或者4时,表示数据仅有霍尔值。数量为5或6时,传感器除了测量霍尔值还会测量并传输温度值。
图4 SPC解码
图5 SPC解码
如上图所示,此帧代表触发字段为范围选择,且选择的范围为100mT,状态字段表示传感器当前状态为Normal且当前的磁通范围为200mT。