×
汽车电子 > 汽车分类 > 详情

车身中央控制器的设计与实现

发布时间:2020-07-09 发布时间:
|

  汽车电子已经进入大规模应用阶段,总线技术、智能传感、近距无线、射频通信等技术大大提升了汽车的智能水平,拓展了汽车的使用空间。根据其使用领域的不同,一般把汽车电子划分为车身控制系统、动力系统、行驶控制系统、信息娱乐系统四大部分,其中对于车身控制系统,一般采取集中式控制、分布式控制两种方案进行设计。

  对于成本敏感的低端汽车而言,集中式控制能更好地控制成本,而对于有一定功能升级要求的中高端汽车,采用分布式系统便于功能的扩展和升级。现在汽车厂商一般会针对汽车配置级别的不同采用不同的方案,对某一车系的低配,其车身中央控制器的集中度更高一些,而对于高配,则把车身中央控制器的部分功能以单节点的形式实现,并添加部分智能化的功能,节点和车身中央控制器之间采用CAN总线或LIN总线进行通信[1],比如可以把中央控制器中的车窗升降功能分离出来,以单节点形式实现并实现智能化的车窗防夹手功能。

  图1是某车型采用LIN总线设计实现的分布式车身控制系统,包括车身中央控制器(以下简称BCM)、四个车窗节点和两个传感器节点,其中BCM作为LIN主节点,接收来自车窗节点和传感器节点的状态信号并实现对车窗节点的控制,它是车身控制系统最主要的单元。以下结合为该车型开发的BCM的经验,详细介绍BCM的系统结构及其软硬件实现。

  BCM系统结构

  BCM是个典型的控制系统,其输入接口包括一系列开关信号和脉冲信号,控制对象包括门锁、灯光、雨刷、车窗、报警器,通过RF信号和遥控车钥匙通信,通过LIN总线和传感器节点及车窗节点进行通信,其系统结构如图2所示。

  从图2可以看出,输出控制是BCM的核心模块,输入信号检测、通讯、防盗报警状态管理都是为输出控制服务的。以下就输入信号检测、输出控制、LIN通讯三方面描述其硬件设计及软件开发。[page]

  输入信号检测

  根据输入信号的性质及其检测方式,BCM输入信号包括开关信号和脉冲信号。在电气特性上,这些信号都表现为高低电平形式的单根物理连线,其中车速信号和碰撞信号为有周期特性的脉冲信号,开关信号则时间离散,由外部输入(一般是人的操作)决定。

  输入检测在硬件设计上比较简单,进行简单的限流和滤波[2],分压后直接接在单片机的IO引脚上即可,如图3所示。

  在以组合逻辑形式出现的输出控制逻辑中,在条件A满足的情况下,激励B会触发控制C。开关信号的状态及其变化经常作为某个控制逻辑的条件和激励,所以对于这种在物理上表示为单根连线的开关量信号,在逻辑上则对应三个变量,分别表示该开关信号的当前状态及变化。如左转向灯开关对应于外部连接端口D3这个物理信号,在程序内部逻辑上对应的三个变量为:

  Bool LeTurnSwitch;

  Bool LeTurnSw_close_event;

  Bool LeTurnSw_open_event;


  LeTurnSwitch表示左转向灯开关的“当前状态”,LeftTurnSw_close_event表示该开关“从开启到关闭”的变化,LeftTurnSw_open_event则表示该开关“从闭合到开启”的变化。

  设计一10ms的周期定时器,周期性读取IO状态,如果三次取值相同,则认为该状态稳定。如果发生沿跳变,同样也是三次取值相同才认为是有效的沿跳变,否则认为是一次抖动。这样既实现了软件消抖,又确定了开关信号所对应的三个变量的值。

[page]

  输入信号检测

  根据输入信号的性质及其检测方式,BCM输入信号包括开关信号和脉冲信号。在电气特性上,这些信号都表现为高低电平形式的单根物理连线,其中车速信号和碰撞信号为有周期特性的脉冲信号,开关信号则时间离散,由外部输入(一般是人的操作)决定。

  输入检测在硬件设计上比较简单,进行简单的限流和滤波[2],分压后直接接在单片机的IO引脚上即可,如图3所示。

  在以组合逻辑形式出现的输出控制逻辑中,在条件A满足的情况下,激励B会触发控制C。开关信号的状态及其变化经常作为某个控制逻辑的条件和激励,所以对于这种在物理上表示为单根连线的开关量信号,在逻辑上则对应三个变量,分别表示该开关信号的当前状态及变化。如左转向灯开关对应于外部连接端口D3这个物理信号,在程序内部逻辑上对应的三个变量为:

  Bool LeTurnSwitch;

  Bool LeTurnSw_close_event;

  Bool LeTurnSw_open_event;


  LeTurnSwitch表示左转向灯开关的“当前状态”,LeftTurnSw_close_event表示该开关“从开启到关闭”的变化,LeftTurnSw_open_event则表示该开关“从闭合到开启”的变化。

  设计一10ms的周期定时器,周期性读取IO状态,如果三次取值相同,则认为该状态稳定。如果发生沿跳变,同样也是三次取值相同才认为是有效的沿跳变,否则认为是一次抖动。这样既实现了软件消抖,又确定了开关信号所对应的三个变量的值。

[page]

  LIN总线数据采取SCI格式,将TJA1021的TXD和RXD连接到MCU的UART发送和接收引脚上,便可以在UART上以软件的形式实现LIN的数据链路层。由于LIN在物理上为单线形式,发送和接收都是在LIN线上进行的,所以发送也会触发接收,这样便可以将其数据链路层的实现统一到UART的接收处理函数中来。该部分可以根据LIN帧的格式以状态机的形式实现[4]。

  BCM做为车身控制系统的LIN主节点,以时间片轮转的方式调度着LIN报文的传输,当时间片到达时,BCM发送包括间隔场、同步场和PID在内的帧头[5],然后由各个节点根据该PID决定接收数据场还是发送数据场。时间片的轮转是基于调度表实现的,定义如下形式的结构体实现对调度表条目的管理。

  typedef struct

  {

  uchar handle;

  uchar pid;

  uchar mode;

  uchar *data;

  uchar datalen;

  uchar ticks;

  }l_sch_table_item;

  其中handle为调度表条目索引,每次时间片轮转时加一,轮转到调度表表尾时切换到调度表表头继续轮转,pid为LIN报文的Protected ID,mode表示该帧数据场是由BCM发送还是由其他节点发送,data为数据场,datalen为数据场长度,ticks定义时间片长度即该帧和下一帧的时间间隔。

  LIN帧调度表为l_sch_table_item结构体数组,根据当前调度表条目的ticks决定时间片计时时间,超时发生时,切换当前时间片,同时切换调度表条目,这样便实现了LIN报文的轮转调度。

  结语

  本文针对某车型分析了其车身控制系统结构,从输入信号检测、输出控制和LIN通讯三个方面,描述了其车身中央控制器的设计实现,该控制器经装车试验,运行良好,功能稳定,有很高的实用价值。

 

  


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
自动驾驶与V2X趋势将推动OTA形成汽车行业基础平台