一、 前言
SENT 全称:Single Edge Nibble Transmission,中文名称为:单边半字传输协议,是 SAE 推出的一种点对点的、单向传输的方案,被用于车载传感器和电子控制单元(ECU)之间的数据传输。SENT(SAE J2716) 作为一种汽车传感器的新型接口标准,较 AD 和 PWM 输出相比,具有很好的 EMC 特性并节省线束和插针结头,且能传输故障代码从而使传感器系统具有很强的故障诊断能力。基于协议简单和上述优势,SENT 可作为 Analog Input 的替代品,并可在局部系统中取代 CAN 和 Lin。但却不能替代 CAN 或是 Lin 因为 SENT 是连续单向传输的,CAN 和 Lin 都是双向传输。
E3 SSDK 提供了专门 的 IAR 测试工程,用于对 Sent 信号的采集做测试,以下内容为该测试 demo 的原理与测试方法讲解。
二、测试环境
硬件: E3 Gateway A02 开发板,图(1)
图(1)
软件:E3 SSDK3.0 e3_ref_gateway 工程。
三、 demo说明
1. E3 SSDK Sent 的 IAR demo 工程位于 ssdk\boards\e3_gateway\driver_demo\sent\IAR\sent.eww,双击该文件即可 打开。
2. 配置文件 ssdk\boards\e3_gateway\driver_demo\sent\configs\sent_cfg.c 中定义了 2 路 Sent 信号,如图(2),这些 参数必须和 Sent 的信号源保持一致,在本次测试中,我们将采用 Sent 信号盒子,设置出和文件中的参数相匹配的信号。
图(2)
- main 函数中定义了一个数组 channel_recv_message,当上位机设置参数是,发送数据必须和该数组中的数据一致。当接收回调函数 sent_recv_callback ()从接收 Buffer 中读取到的数据和该数组中的数据一致时,认为 Sent 传输正确。函数原型见图(3)。
图(3)
- 代码运行流程在 main 函数中,依次初始化 E3,绑定 GPIO 到 etimer 的 capture 通道,启动etimer,等待捕获信号并触发解析函数将数据保存在 buf 中,停止捕获。图(4)所示为这些流程的具体代码实现。
图(4)
四、 测试方法
1. 根据原理图所示,按照图(5)的方法连接好开发板和 Sent 盒子(图莫斯 UTA0503)。
图(5)
2. 打开 sent 盒子上位机软件,按照第二章的代码中的参数设置,见图(6)
图(6)
数据设置方法见图(7)
图(7)
3. 启动开发板,并点击 Sent 上位机数据发送,观察log,见图(8)。
图(8)
五、 参考文献:
- E3400_E3600_MCU_Technical_Reference_Manual_Rev00.12.pdf
- SemiDrive_E3_SSDK_User_Guide_Rev1.0.pdf
登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑!