基于LIN 总线的香氛空气净化设备的设计

2023-11-08 20:54高碧松
汽车与驾驶维修(维修版) 2023年9期
关键词:香氛通信总线

摘要:为了实现车载中控系统控制整车中新增加的香氛空气净化设备进行香氛弹识别、通道切换、风机的风档控制,并回传状态信息,引进了LIN总线技术来解决这个车载设备间的通信问题。本文围绕为实现车载中控设备通过LIN 通信控制香氛空气净化设备工作,对LIN 总线架构、硬件电路设计及软件通信协议的实现方案展开论述。

关键词:LIN 总线;香氛;空气净化设备;通信

中图分类号:U462 文献标识码:A

0 引言

随着汽车消费者对车内环境的要求不断提升,除了要满足内外饰造型的视觉、触觉舒适感,还要求改善嗅觉的愉悦感。因此车内气味设计成为汽车行业的一大热点,车载香氛应运而生。为了实现车载中控系统控制整车中新增加的香氛空气净化设备进行香氛弹识别、通道切换及风机的风挡控制,并回传新的状态信息,在实际应用中,通过引进LIN 总线技术来解决这个车载设备间的通信问题。

中控系统和香氛设备接入到同一条LIN 总线上,中控系统设备为主机,往总线上发送控制命令[1];香氛空氣净化设备作为从机,从LIN 总线上接收控制命令,根据命令进行相应的操作,并把操作结果响应给中控系统。本文围绕车载中控设备通过LIN 通信控制香氛空气净化设备工作,对LIN 总线架构、硬件电路设计及软件通信协议的实现方案展开论述。

1 基于LIN 通信的香氛空气净化设备设计分析

香氛空气净化设备主要包含LIN 通信控制功能模块、通道切换模块、香氛识别模块、风机控制模块和单片机等(图1)。

1.1 处理器设计

香氛空气净化设备中的控制中枢是一个型号为N32A455CEL7的单片机(MCU),它通过LIN 通信模块与中控系统连接。MCU 通过LIN 通信模块接收中控系统发送来的通道切换命令和风机的挡位控制命令,并发出香氛识别模块对香氛弹的ID 识别、生产日期和剩余有效时间信息,以及风机的转速等相关响应信息。

1.2 通道切换模块设计

该功能模块主要由一个DRV8824 的芯片来驱动步进电机开始工作,带动通道转换。同时,由一个光电开关管来检测电机的转动位置,并反馈给MCU 检测信号。当检测电机转到目标通道位置后,MCU 控制DRV8824 停止工作,通道切换操作完成。

1.3 风机控制模块设计

该功能模块通过GPIO 口控制风机的电源通路或者断路,并输出指定占控比PWM 信号驱动风机工作。同时,MCU 通过检测风机的输出脉冲来检测其转速,并把数值通过LIN 总线响应给中控系统。

1.4 香氛识别模块设计

当香氛空气净化设备把通道切换到目标位置后,MCU 就会去读取香氛弹上FM4442 的EEPROM 数据,其中包含每个通道上对应香氛弹上的ID 标识符、生产日期和剩余使用时间等信息。如果读取香氛弹上的信息失败,则香氛空气净化设备停止工作;如果信息读取成功,则判断剩余时间是否为零。不为零,则设备正常工作;否则停止工作。

1.5 LIN 通信模块设计

在硬件电路上,用型号为N32A455CEL7 的国产MCU 通过串口控制型号为TJA1028T3V3 的LIN 总线收发器,来实现LIN 总线数据通信。软件上,后文将对LIN 通信的协议及软件实现逻辑展开详细叙述和讨论。

2 LIN 总线架构

LIN 总线采用单主机多从机的框架模式[2],且节点之间采用的是单线传输方式(图2)。总线上的电平一般是12.0 V,网络中的导线长度应少于或者等于40 m,传输速率最高限制为20 kb/s。由于每增加一个网络节点,会导致减少约3% 的网络阻抗(1 ~ 30 kΩ),这样会导致环境条件变差,因此LIN 网络节点数量受到总线的物理特性限制,最大数量不超过16 个。

主机任务负责生成帧头,并根据进度表决定和维持哪个帧应该被正确定时发送。从机任务负责发布或者接听帧的应答状态,它包括2 个状态:帧处理器以及同步间隔段与同步段检查器。

3 LIN 通信的硬件电路设计

3.1 国产MCN32A455CEL 特性

香氛设备的MCU 芯片MCN32A455CEL 采用32 位ARMCortex-M4F 内核, 最高工作主频为144 MHz。它集成多达512 kB 加密存储Flash,最大144 kB SRAM,具备7 个LIN/U(S)ART 接口,最高速率达4.5 Mb/s。它还具有相应的LIN 通信控制功能接口,运行速度能够满足设计需求。

3.2 LIN 数据收发器TJA1028TV3V 特性

TJA1028T 是荷兰的半导体公司恩智浦(NXPI)公司的产品(图3),该产品专门用于LIN 总线数据通信。它内部集成了具有低压降压的LIN 2.0/2.1/SAE J2602 收发调节器。电源输入端具备3.3 V 和5.0 V 变体,稳压器可提供高达70 mA 电流。它还支持LIN 收发器休眠模式电压调节器掉,同时具备LIN 总线唤醒功能等特性。

3.3 国产MCU 控制LIN 收发器与外界通信电路原理

MCU 通过带有LIN 功能的串口模块与LIN 总线收发器TJA1028 连接,并间接通过TJA1028 的LIN 管脚与外部LIN 总线相连。MCU 通过控制该收发器通与其他电控单元相连。这样的连接可以实现香氛设备通过LIN 总线与带有LIN 总线的中控系统连接,实现2 个设备间的硬件电路连接。这样,中控系统可以通过LIN 总线把命令传输给香氛设备(图4)。

4 LIN 通信的软件实现逻辑

因为LIN 总线不具备OSI 协议中详细定义的有载波侦听多路访问/ 冲突检测(CSMA/CD) 通信协议,无法实现所有节点以主机方式接入总线,也不具备报文冲突监测以及“无损的逐位仲裁”决定报文发送优先权。因此,LIN 报文帧传输任务必须由主机统一调度。这些任务的调度有严格的时间限制,因此也可称之为时间表,时间表在LDF(LIN 描述文件)有详细的定义。该文件中还包含有适用的LIN 协议版本、LIN 总线的数据传输速度、主机和从机设备名称、诊断信号、帧和时间表的定义等信息(图5)。

在此,以图莫斯替代中控系统作为主机,控制LIN 通信加载LDF 文件来控制LIN 通信任务的调度(图6)。图6 中上面的列表中可以清楚地看到当前选中的报文具有哪些信号,这些信号的名称等信息。下面的列表中显示了报文的别名,由哪个节点发送;发送当前帧后,需要等待多长时间才能发送下一帧。

综上可知,主机与从机通信必须严格根据LDF 文件中的时间表来调度报文的传输任务。报文必须根据文件中定义的帧和信号格式来组成,以及从机反馈给主机状态信息的诊断报文格式定义。进度表在执行的时候,从其入口处开始执行,直至该表的最后一个帧。如果没有新的进度表启动,则返回当前进度表的开头,从第一个帧开始执行。

4.1 LIN 通信协议

LIN 总线上的报文传输任务,不仅其调度需要根据LDF 文件的定义来执行,而且主机端的报文从应用层到LIN 总线物理层的整个过程数据包组成,以及从机端从LIN 物理层到应用层的整个数据包拆包过程,也都必须遵守LIN 通信协议层来完成(图7)。

LIN 总线通过LIN 通信协议规范节点间的数据通信。该协议主要分为:应用层、API 接口层、协议层和物理层。物理层已在硬件电路设计中详细体现。协议层主要涉及在主机节点,数据如何从应用层往底层物理层传递;传递过程中经过那些协议层;在每个协议层怎样把应用层数据逐层打包处理,并最终在物理层,以位的数据格式逐位发送。

同理在从机节点,如何在物理层逐位接收数据,并把接收到的数据根据协议从物理层往应用层传递;在传递过程中怎样逐层拆包,并把拆包后的数据传递给应用程序使用。

4.2 LIN 报文结构

在LIN 通信协议中,主机节点和从机节点之间以完整的报文交互来传递数据。一个完整的报文包含同步间隔段、同步段、受保护ID 段、数据段、校验和段等相关信息(图8)。

同步间隔段:它是每个帧里唯一用来标识帧的起始点。它由主机节点产生,1 个同步间隔段至少有13 bit 的显性值,包括起始位和间隔定界符,其中间隔定界符的长度至少为1 bit。

同步段:它是一个值为0x55 的字节场,其二进制值为0101 0101,在总线发送该数值时是以10101010 的顺序发送。在从机上必须能够探测到间隔/ 同步数据序列。如果发现了同步场,那么间隔/ 同步符号序列的总线将会终止正在进行的帧转移,重新启动新帧的处理。

受保护ID 段:它包含2 个子场,标识符和标识符的奇偶校验。0 ~ 5 bit 是标识符,6 ~ 7 bit 是奇偶校验。

5 LIN 通信的报文时序图介绍

在LIN 总线通信过程中,使用示波器抓取总线上传输的数据波形(图9)。首先,捕获的波形是同步间隔段,它是一个至少有13 bit 的显性值,包括起始位和间隔定界符组成。在LIN 总线中,显示值是低电平表示。其次,捕获的波形是同步段,其数值是0x55。

在总线上的传输波形序列是:一个起始位(显性值:低电平);数值序列为1010 1010 ;停止位(隐性位:高电平)。再次,捕获的波形是受保护ID 段,其值为0x3c,在总线上的传输波形序列:一个起始位(显性值:低电平);停止位(隐性位:高电平)。最后,捕获的数据段和校验和段的传输波形序列。

6 MCU 的LIN 通信软件流程

MCU 通过串口控制LIN 通信的软件流程[3] 如图10 所示,步骤如下。

(1)香氛设备上电后,系统先去使能USART 所在GPIO 口的时钟和USART 功能的时钟。

(2)对用作USART 的GPIO 端口及管脚进行配置。

(3)配置嵌套中断向量控制器。

(4)在USART/LIN 的串口接收中断时,监听LIN 总线,并读取从主机发送出来的报文帧或者是帧头。

(5)串口接收中断逐个字节读取数据。在本步骤中,根据接收到的数据字节结合当前报文状态变量,对数据进行解析。如果当前是IDLE 状态,那么串口在接收到数据时,主动把状态值切换到SYNC,并判断当前数据是否是0x55。如果不是,则状态值返回IDLE ;如果是,则把状态值修改为PID 状态,继续接收下一个字节数据。

再判断是否是完整报文帧,如果是,则获取数据段的数据长度,并把状态值切换到RCV,串口继续接收数据[4]。如果接收到的只是报文的帧头,那么立即发送报文的应答帧,同时把状态值修改为IDLE 状态。在RCV 状态下,如果接收到数据段的完整数据后,那么整个报文帧接收完成,报文状态值改为IDLE,进入下一个新报文的接收。

在实际工作中,主机通过LIN 通信控制香氛空气净化设备具体过程如下。以图莫斯替代中控系统作为主机,根据LDF 文件中定义的帧及任务调试时间表,向香氛空气净化设备发送0x36 报文控制其进行相关动作,再发送0x37 报文帧头。香氛设备在接收到0x36 报文后(图11),开始进行通道切换和風机换挡操作(发送数据窗口设置,切换到Taste1 通道,风机切换到Low 挡),并把结果以响应的方式通过0x37 的帧头返回给主机。

7 结束语

根据本项目需求搭建的LIN 总线框架,设计的硬件电路基础上,严格参照LIN2.0 通信协议编写软件控制报文传输。经试验验证及结果表明,该方案的设计满足项目要求,可适用于车载中控设备控制香氛设备工作的通信需求。

【参考文献】

[1] 阮耀梅. 基于LIN 通信的汽车玻璃升降控制器的设计[J]. 企业科技与发展,2018(06):46-48+51.

[2] 谢华兵. 凯迪拉克XTS 车LIN 通信故障2 例[J]. 汽车维护与修理,2017(09):51-52.

[3] 邓良松, 刘海岩, 陆丽娜. 软件工程[M]. 陕西: 西安电子科技大学出社,2004.

[4] 阎石. 数字电子技术基础[M]. 北京: 高等教育出版社,2006.

作者简介:

高碧松,本科,工程师,研究方向为自动化控制及嵌入式软件开发。

猜你喜欢
香氛通信总线
奔驰S级香氛功能介绍
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
简述计算机通信网络安全与防护策略
Android环境下主UI线程与子线程通信机制研究
无线自组网在野战防空通信系统中的应用
对数字微波通信技术的研究
高颜值香氛
Bikini的味道
圣诞的‘大好时光’