APP下载

基于CAN总线的车灯控制系统设计与实现

2018-05-14徐硕繁戴飞吉爽

汽车零部件 2018年3期
关键词:微控制器实时性寄存器

徐硕繁,戴飞,吉爽

(长春理工大学光电信息学院, 吉林长春 130000)

0 引言

随着汽车电子工业的高速发展,汽车越来越向着电气化、智能化控制方向发展,带来了用户对于汽车的电子电器越来越苛刻的控制要求。传统的电子电器架构已经严重制约了其发展,需要引入网络化控制[1]。CAN总线技术广泛应用在工业领域,其高可靠性和强实时性[2]给汽车智能电气化带来了可能,在汽车控制系统中,CAN总线已经从动力总成控制系统中逐步延伸到汽车车身控制系统中,为汽车车身控制带来了方便。

1 CAN总线技术简介

CAN(Controller Area Network)即控制器局域网[3],是德国著名的Bosch 公司为了解决现代车辆中众多ECU之间的数据交换问题提出的一种现场总线结构的通信方式。该总线通信的最高速率可达1 Mb/s,总线通信的长度大约为40 m[4]。以多主控制方式工作,整个总线系统相连的各个单元没有类似于“地址”的信息即系统具有柔软性。与常用的通信总线相比(IIC、SPI总线等),CAN总线的通信方式具有突出的实时性、可靠性和柔软性,是目前使用最广泛的一种汽车网络通信[5]。

其主要特征为:

(1)多主控;

(2)固定格式发送消息;

(3)网络节点设置灵活,延迟时间必须保证;

(4)通信速度设置灵活,同一网络速度必须一致;

(5)每条消息都有优先级;

(6)错误检测功能、错误恢复功能和错误通知功能;

(7)只要总线处于空闲,根据报文优先级自动重新传输。

2 MCS08DZ60芯片介绍

MCS08DZ60微控制器[6]Freescale公司HCS08系列8位单片机中的一种,其内部结构主要由单片机基本部分和CAN功能块部分组成。基本结构包括:中央处理器单元HCS08(CPU)、1个24通道12位分辨率ADC、2个异步串行通信口SCI并支持LIN2.0和SAE J2602协议、2个同步串行通信口SPI和IIC、8通道输入捕捉/输出比较定时器、53个通用独立数字I/O口和1个专用输入I/O(其中24个具有外部中断及唤醒功能),在片内还拥有60 kB的Flash、4 kB的RAM和2 kB的EEPROM。其中CAN功能块包括两个兼容CAN2.0A/B协议的MSCAN控制器组成。这些丰富的内部资源和外部接口资源可以满足ECU对各种数据的处理、CAN网络数据的发送和接收。芯片集成了两个MSCAN12模块,能够实现高低速CAN网络的网关节点功能。

MSCAN控制器是Motorola Scaleable CAN的缩写[7],而HCS08系列MCU上的CAN控制器是通过MSCAN12模块实现的,其结构如图1所示,它遵循CAN2.0A/B协议,支持标准和扩展数据帧;并且集成了除收发器外CAN总线控制器的所有功能,此外它还采用了5个先进先出(FIFO)的缓冲器机制改善了实时性能,简化了应用软件的设计。其中还支持睡眠、关机和MSCAN使能3种低功耗模式。CAN报文在发送时,MCU首先将要发送的数据发送到数据缓冲区中,然后通过软件设置相关寄存器使其发出发送报文命令,数据通过固定格式组装成报文后通过发送引擎送到TxCAN,再经过外部的CAN收发器将数据送到CAN总线上。报文接收时,接收引擎通过外部CAN收发器将CAN总线上的数据流引入RxCAN,经过解码、错误和校验检查,再经由报文过滤器过滤后将数据送到接收缓冲区,并通过中断或标志通知CPU读取数据。

图1 MSCAN12 内部结构图

3 某车型汽车车灯控制系统设计

该车灯控制系统主要有左前车灯系统、左后车灯系统、右前车灯系统、右后车灯系统4个部分通过CAN总线连接组成。

考虑到整车网络的实时性和简化网络的连接,将这4个ECU单元连接到同一个CAN网络控制系统中,对于响应的实时性要求必须一致。由于车灯控制系统对实时性要求不高的特点,设计该车灯控制系统网络为传输速率为125 kb/s的低速CAN网。控制网络拓扑图如图2所示。

图2 车灯控制系统网络结构图

3.1 CAN网络硬件电路设计

每个ECU单元的基本CAN节点电路主要包括:带有CAN控制器的微控制器MCU和用于数据收发的CAN收发器TJA1050。设计中使用的是Freescale 8位微控制器MC9S08DZ60,它带有MSCAN的控制器,主要负责CAN的初始化和数据处理。CAN收发器的种类很多,主要有Philips的82C250、NXP的TJA1050以及Motorola的MC33388、33889、MC33989和MC33997等,这些CAN收发器之间很多都是可兼容的。此例中采用的是NXP的TJA1050 CAN收发器,它是一种CAN高速收发器[8]。CAN节点结构框图与部分实际电路图如图3所示。

图3 CAN基本节点的结构框图及部分实际电路图

3.2 车灯驱动控制电路设计

每个ECU单元的基本车灯驱动电路主要包括:微控制器MCU和用于驱动车灯的ULQ2003以及控制车灯通断电的继电器。通过微控制器的I/O口结合ULQ2003来控制继电器的通断,从而实现车灯的控制。图4为车灯驱动控制电路图。

图4 车灯驱动控制电路设计图

3.3 CAN网络软件设计

CAN模块软件设计部分主要实现的功能是各节点的数据收发。根据图2所示网络结构分布,对于实时性要求不高的车灯控制电路采用低速CAN网络,所设波特率为125 kb/s。CAN初始化程序如下所示:

void //初始化CAN;

init_can(void)

{

// 进入初始化模式;

CAN0CTL0=1;

//设置CANE=1,初始化模式确认;

CAN0CTL1=0xc1;

//SJW=0; 分频因子为4;

CAN0BTR0=0x03;

//SAMP=1;波特率=8/(4*16)=125k

CAN0BTR1=0xd8;

CAN0IDAC=0x10;

}

为了减少网络资源的占用率、提高网络通信实时性性能,在高低速的CAN网络之间除了必要的通信外,其余各自网络的报文是相互独立传输的,这就需要使用MSCAN中的标识符验收过滤器进行报文的过滤,通过对于过滤器寄存器的设置实现这一功能。以下是CAN寄存器的验收寄存器与屏蔽寄存器的设置:

CAN0CIDAR0=0x51; //CAN0验收寄存器设置

CAN0CIDAR1=0x00;

CAN0CIDAR2=0x51;

CAN0CIDAR3=0x00;

CAN0CIDMR0=0xdf; //CAN0屏蔽寄存器设置

CAN0CIDMR1=0xff;

CAN0CIDMR2=0xdf;

CAN0CIDMR3=0xff;

3.4 车灯系统控制设计

以左车灯ECU作为整个车灯控制系统的外部I/O输入检测节点,根据检测的I/O数据做出相应的动作以及发送相应的报文。当驾驶人员打开图5所示真值表的任意一个灯的开关时,左前车灯ECU会有两种执行状态:第一种直接I/O输出,且一直输出高电平该车灯常亮,直到该车灯开关关闭时,I/O输出低电平该车灯常灭;第二种通过CAN总线发送固定的报文,其他几个车灯ECU接收到报文后,通过解析报文,再通过相应的I/O输出高电平该车灯常亮。如图5所示为整个车灯系统常亮车灯的控制状态图及真值表。

图5 车灯系统常量车灯控制状态图

当驾驶人员打开图6所示真值表的任意一个灯的开关时,左前车灯ECU执行会有两种状态:第一种直接IO输出,且一直以固定频率输出高低电平,该车灯以固定频率闪烁,直到该车灯关闭时,IO输出低电平;第二种通过CAN总线发送固定的报文,其他几个车灯ECU接收到报文后,通过解析报文,再通过相应的IO输出固定频率高低电平。图6所示为整个车灯系统闪烁车灯的控制状态图及真值表。

图6 车灯系统闪烁车灯控制状态图

4 车灯控制系统测试

通过RTC定时器产生一个100 ms的时间基准,实现控制灯光的闪烁以及CAN报文发送的测试。

4.1 车灯功能测试

此系统通过一些本地的按钮模拟车身的车灯控制开关。

测试的具体过程是:给车灯控制系统上电,打开电源开关。当把按钮打到近光档时,近光灯点亮,继续把按钮打到远光灯时,近光灯、远光灯同时点亮;当按下刹车灯的开关时,刹车灯点亮;当按下倒车灯的开关时,倒车灯点亮;当把按钮打到左转档时,左转指示灯会出现周期性(闪烁频率10 Hz)的闪烁,把按钮打到右转档时,右转指示灯会出现周期性(闪烁频率10 Hz)的闪烁,把按钮打到中间档时,左转灯和右转灯全部熄灭;当按下警示灯开关时,左转向灯、右转向灯同时周期性(闪烁频率10 Hz)的闪烁,并且车身上的4个门灯全部打开。

4.2 车灯网络报文测试

为了监测车灯控制系统的CAN网络之间通信的准确性和实时性,给出了一个典型的CAN报文监测测试实例。通过这次测试,可以看到CAN报文在CAN网络之间传输。

测试的具体过程是:首先在本地上位机的CANOE软件中将仿真环境搭建好[9];其次将CANOE工具接入该网络中。给整个系统上电,最后通过按钮控制车灯节点的实际动作,并通过上位机观察CAN报文。测试结果界面如图7所示。

图7 CAN报文显示及其控制结果显示

5 结束语

文中给出了一个基于低速CAN网络的汽车车灯控制的网络设计方案,介绍了Freescale的8位单片机MC9S08DZ60在该CAN网络中作为控制节点的软硬件设计,以及上位机对其报文进行监测显示的结果。用此芯片设计的车灯控制电路具有结构简单、易于升级、成本低廉但功能强大的特点。该网络方案已经在某车型的车身上试验成功,控制网络及电路运行稳定,证明方案可行。采用CAN网络来控制汽车车灯电器具有结构简单、实时性好、可靠性高的优点,是现代汽车电器控制的发展趋势。

参考文献:

[1]路园.OSEK网络管理在汽车CAN系统中的研究[D].合肥:合肥工业大学,2011.

[2]袁昊昀.车载CAN网络管理策略研究[D].上海:同济大学,2008.

[3]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.

[4]翟跃.电动汽车网络管理系统的研究与实现[D].哈尔滨:哈尔滨工业大学,2010.

[5]陈纲.基于CAN总线的OSEK/VDX直接网络管理的研究与实现[D].南京:东南大学,2015.

[6]MC9S08DZ60 Device User Guide[Z/OL].http:www.nxp.com.

[7]杨国田,白焰.Motorola68HC12系列微控制器原理、应用与开发技术[M].北京:中国电力出版社,2003.

[8]黄忠能.基于OSEK标准的车载网络管理系统的研究与应用[D].太原:太原科技大学,2009.

[9]汤志强.汽车CAN网络中OSEK网络管理系统设计与优化[D].合肥:合肥工业大学,2014.

猜你喜欢

微控制器实时性寄存器
Lite寄存器模型的设计与实现
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
常用电子测速法在某数字信号处理器中的应用*
移位寄存器及算术运算应用
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
基于B/S的实时用户行为检测管理系统设计与实现
电磁导向智能车设计探讨
基于MC9S08QG8低端微控制器的无线控制器设计