APP下载

基于普通MCU 实现SENT 接口数据的采集

2021-05-07刘永春王秋花郭庆波高发廷

汽车电器 2021年4期
关键词:高电平校验字节

刘永春,王秋花,郭庆波,高发廷

(中国重汽集团汽车研究总院,山东 济南 250000)

随着汽车电控技术的发展,汽车中使用传感器的数量不可避免地逐步增加,而传感器的增加又会带来诸如系统成本的增加、传感器布线和电子控制单元复杂性等挑战。为了满足低成本先进传感器的需求,业界制定了使用数字接口的SENT (Single Edge Nibble Transmission,单边半字节传输)协议。SENT协议是美国机动车工程师学会SAE推出的一种点对点、单向传输方案,被用来在汽车中的传感器和电子控制单元之间传输高精度的传感器数据。目前已有不少内部集成SENT硬件模块的微处理器,可以直接与SENT传感器连接,实现软硬件解码,通过MCU直接读取SENT模块解码后的数据信息。但考虑到MCU价格、封装和项目延续性等方方面面的因素,有些项目可能短时期内无法选用内部集成SENT模块的MCU。本文正是在此背景下,基于普通MCU对实现SENT接口数据采集进行了深入研究,采用NXP的微处理器进行SENT硬件接口电路的设计及SENT协议数据帧的解析,实现正确接收SENT传感器传输的数据信息。

1 SENT总线工作原理

SENT总线在两个下降沿之间以4位半字节传输数据,故名为“单边半字节”。以时钟周期Tick作为节拍单位,其范围3~10μs,一般是3μs。每个半字节以至少5个时钟周期的逻辑低电平周期开始,然后是一个表示编码数据值的可变长度逻辑高电平周期,用总半字节的时间计算节拍单位中编码的数据。4位半字节值0000由12个时钟周期的逻辑高电平持续时间表示,0001由13个时钟周期的逻辑高电平持续时间表示,以此类推,直到数据值1111由27个时钟周期的逻辑高电平持续时间表示。SENT总线具有两种不同速率同时传输数据的独特能力。重要的信号通常用快速通道以实现高频率的更新,比如温度、压力等,对于非关键的信号,如诊断等可以放在慢速通道传输。快速通道是每一帧传输一个完整的信号,慢速通道需要多帧来传输一个完整的信号。快速通道通过4个数据位为一个单元来传输数据,其信号传输顺序如下。

1)同步信号:以一个同步脉冲开始,该脉冲与后续的下降沿之间的时间间隔等效于56个时钟节拍。图1为同步脉冲传输通道。

图1 同步脉冲

2)状态/通信信号:12~27个时钟节拍。

3)数据信号:含有传感器数据信息,12~27个时钟节拍。图2为数据脉冲传输通道。

图2 数据脉冲

4)CRC校验信号:CRC校验脉冲用于错误检测,12~27个时钟节拍。

5)可选暂停信号:每条报文的末尾可以选择插入一个12~768个节拍长度的暂停脉冲。图3为SENT快速通道数据传输。

图3 SENT快速通道数据传输

2 SENT硬件设计

图4给出了带有SENT接口传感器和控制器连接的硬件原理图。SENT接口的传感器由信号线、5V电源线和搭铁线组成,5V供电由控制器为传感器提供,SENT信号由上拉电阻上拉至电源电压,并经过EMC低通滤波器后,提供给单片机的定时器模块接口。

图4 SENT接口硬件电路

3 SENT解析功能软件设计

所使用的单片机MPC5644A内部没有集成SENT硬件模块,但具有通用定时器EMIOS和DMA。实现该功能涉及到的片内资源有:①SIU:System Integration Unit;②EMIOS:Enhanced Input/Output Subsystem;③EDMA:Enhanced Direct Memory Address engine。

SENT协议解析是使用定时器输入捕捉中断功能实现的,采集两次下降沿之间的时长来解析数据的大小。通过DMA将定时器每次捕捉的数据传递到指定RAM中,获得全部的SENT数据后,按照SENT标准协议的数据格式,将定时器捕捉的一组数据转换为SENT含义的数据,并进行CRC校验,确认数据的正确性。具体执行步骤如下。

1)设定定时器、DMA模块、SENT通信函数等基本参数。

2)判断帧的起始位,信号的下降沿触发定时器中断,在空闲状态下总线保持逻辑1,当两个低电平之间出现56个时钟节拍时,则判断为同步脉冲,暂时认为是一帧的开始,同时设定定时计数器实时监测输入信号的状态,将捕捉到的数据由DMA自动传输到RAM中指定数组变量。采集2次下降沿之间时间的长短来解析数据大小,将包括同步头、状态段、数据段、校验和等。

3)DMA中断。将定时器捕捉到的数值根据SENT协议转换为真正SENT含义的数据,对转换后的数据进行CRC校验。软件实现部分代码如图5所示。

4 试验验证

以某厂家SENT接口传感器为对象,对采集到的数据进行解析,并验证解析得到的数据的正确性。测试信号波形如图6所示,分别为SENT接口传感器发出的温度和压力信号,通过对数据帧的解析可以得到实时的温度和压力的数值。

图5 SENT数据代码

图6 SENT信号波形

5 结束语

SENT接口输出方式具有更高的数据传输速度、可靠性、抗干扰性,这些特性与未来的智能汽车是非常契合的,相信在汽车以及其它自动化领域,这种SENT协议输出的智能传感器的应用会越来越多。本文提供的基于普通微处理器实现SENT接口数据的采集方法,通过测试验证能够正确接收SENT传感器数据信息,完美解决处理器内部没有SENT模块接口的问题,这对于电子控制单元SENT功能的开发具有十分重要的参考意义。

猜你喜欢

高电平校验字节
No.11 字节跳动计划自研芯片:仅供内部使用
复杂多耦合仿真模型校验工具研究
使用Excel朗读功能校验工作表中的数据
电能表在线不停电校验技术
字节跳动瞄准教育等新业务
高电平MMC子模块电容电压控制策略研究
精通文件校验的“门道”
数字电子技术的应用
浅谈物理电路与数字电路
关于Multisim10.0的高电平调幅电路仿真研究