电动车车身网络CAN总线通讯实现

来源:王剑锋 王大方 张冠哲 作者:王剑锋 王大方 张冠2009年11月03日 16:01
[导读] 电动车车身网络CAN总线通讯实现 随着人们环保意识的增强和世界石油的短缺,纯电动车 [1]迎来了速发展的时期。对于电动汽车,除了要求有很好的动力性和里程续驶,
关键词:

电动车车身网络CAN总线通讯实现

随着人们环保意识的增强和世界石油的短缺,纯电动车 [1]迎来了速发展的时期。对于电动汽车,除了要求有很好的动力性和里程续驶,还要求具有普通汽车的各种性能,这就使得电动汽车中的电子设备越来越多[2],汽车线束也越来越复杂,需线束重量与需要的安装空间也越来越大,传统的汽车布线方式根本不能不了电动汽车的要求。因此,汽车网络应运而生,并成为汽车电子技术的一个重要的发展方向。汽车网络主要是指各个汽车电子设备和控制器之间通过总线技术建立通讯网络,这样可以大大简化布线,方便维修,提高导线利用率,同时也大大的较低了制造成本。 CAN总线[3]是现在汽车网络中广泛采用的一种总线型式,它具有结构简单,成本低廉和极高的可靠性等特点。但是对于电动汽车来说,还没有一种专门针对于电动汽车的 CAN总线通讯协议。本文在研究 CAN open协议的基础上,开发出一款针对于电动汽车车身的总线通讯协议,并通过 LABVIEW [4]实现网络的数据通讯。

1、引言
CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,其应用范围遍及从高速网络到低成本的多线路网络。CAN总线具有如下特点:
(1)CAN是到目前为止唯一有国际标准现场总线。
(2)CAN为多主方式工作,网络上任一个节点均可在任意时刻主动向网络上其它节点发送信息,而不分主从。
(3)在报文标志符上, CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在 134 us内得到传输。
(4)CAN采用非破坏性总线仲裁技术。
(5)CAN节点只需通过报文的标识符滤波即可实现点对点,一点对多点及全局广播等几种方式传送数据,无需专门的“调度”。
(6)CAN的直接通信距离最远可达 10 K米;通信速率最高可达 1 Mbps。
(7)CAN上的节点数主要取决与总线驱动电路,目前可达110多个。
(8)报文采用短帧结构,传输时间短,受干扰概率低,使数据的出错率降低。
(9)CAN的每帧信息都有 CRC校验及其他检错措施,具有极好的检错效果。
(10)CAN通信介质可为双绞线、同轴电缆或光纤。 
(11)CAN节点在严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。

(12)CAN总线具有较高的性能价格比。
2、车身网络的拓扑结构
对于电动车车身网络[5]来说,电子设备多,位置分布杂乱。为了便于对整个网络进行管理,可以把整个车身网络按找拓扑结构的不同划分为不同的节点。网络节点的划分按照分块划分的原则。节点中的电子设备可以相互间进行网络通讯,不同区域的电子设备通过不同的网路节点进行通讯。在分析电动车车身的设备的基础上,把车身网络分成仪表台节点、左前节点、右前节点、左后节点和右后节点等。
对于车身网络来说,电子设备对于通讯速度都没有很高的要求,所以,按照美国工程师协会 SAE车身网络定义,选择 B类总线,传输速率为 10-125 kbps,网络的拓扑结构如图 1所示: 
 


3、通讯协议报文设计
采用了 CAN总线通用的报文形式[6] 每帧最大的数据长度是 8 bytes。
   通讯协议的报文主要任务是发送报文和接收报文,报文以数据帧的格式接收和发送 [7]。数据帧的数据域能发送或接收 8个字节的报文内容。每个字节有 8个位,每次只能发送或接收1个位。通讯协议报文格式如表 1所示。

4、基于 LABVIEW的协议实现
硬件采用 MC9S12DP51216单片机[7]。MC9S12DP51216单片机总线采用双绞线和台式上位机。
4.1定义数据结构
在 LABVIEW中,Virtual CAN Interface(VCI) 函数库是专门为 ZLGCAN设备在 PC上使用而提供的应用程序接口,可以从 LABVIEW中直接使用这些库函数。首先创建 VCI函数库德数据结构,定义数据类型为簇,并同时调用库函数[8]。
本系统的程序实现了数据的发送与接受,并通过 CAN总线将收发的数据在前面板上的列表中显示出来。该程序中含有3个主要的 While循环:主循环、发送数据循环和接受数据循环。这三个循环是并行运行的,互相独立。主循环处理处理与用户交互的界面,它使用了事件驱动机制来处理用户在前面板的操作,并通过用户事件与发送数据循环和接受数据循环通信。它包含以下功能:打开/关闭设备、超时、启动 CAN、复位 CAN、读取设备信息、读取 CAN状态、读取错误信息和清空缓冲区。

4.2数据发送和接收函数的实现 接受和发送数据通过控制面板的按钮,调用 VCI函数,并同时把数据实时显示出来。程序框图如图 2和图 3所示。


4.3 驱动模块设计

驱动模块包括超时模块、停止模块、OpenDevice模块的设计、StartCAN模块的设计、 ResetCAN模块的设计、Clear Buffer模块的设计、 GetBoradInfo模块的设计、 GetErrorInfo模块的设计、GetStatus模块的设计和 TREvent模块的设计等。各个模块都是通过在控制面板中设计控制键,并调用子函数,实现需要的功能。
其中 TREvent模块的程序框图如图 4所示。该模块主要用于显示发送和接收的数据。 
 

5、系统测试
5.1建立控制面板和显示面板
车身网络系统要正确地反映通讯状态,首先要采集汽车在工作状态下车身 CAN总线上的众多信号。这些信号可以分成二大类:开光信号和模拟信号。
开关信号也称为数字信号,主要有近光灯开关、远光灯开关、制动灯开关、雾灯开关、转向灯开关、空调开关、雨刮开关。还有一些指示信号亮,需要通过 CAN网络进行传输,在仪表中进行显示的量。这些量包括 CAN故障指示、安全带指示、远光指示、倒车指示、左转向指示、右转向指示、后雾灯指示、制动故障报警指示、驻车指示等。
车身网络中也有一些模拟信号,主要包括电机转速、车速、电池电量、电瓶电压、电池温度等。
通过 LABVIEW软件建立开关量模块的控制面板和显示面板。通过控制面板的按钮,可以发送相应的数据,并在显示面板显示相应的信号。



5.2数据接收和发送检测
检测数据的发送和接收,在LABVIEW中设定数据的收发类行为自发自收[9]。启动CAN,指示灯亮,点发送按钮,数据以自发自收的形式发送出去[10],如图 5所示。 6、结论
本文针对电动汽车的特点,建立电动车车身网络。在分析 CAN总线的基础上,建立应用层的通讯协议。应用 LABVIEW软件,编写 CAN网络通讯的上机位软件。为了验证通讯的数据传输和接收,在 LABVIEW软件中进行仿真,经过检测,该系统可以很好的实现电动车车身网络的通讯要求。
本文作者创新点:
应用 CAN总线技术建立了纯电动车车身网络,通过 LABVIEW软件实现了网络连接。并通过系统的通讯测试,验证了网络的可行性。

发表评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。

条评论

推荐阅读

每月人物

正面迎战智慧家庭:从称体重到“称”健康,芯海智慧测量全包了!

正面迎战智慧家庭:从称体重到“称”健康,芯海智慧测量全包
随着科技的发展,人们对生活质量的追求越来越高,传统的家庭生活方式已经无法满足现代人的家居生活,智慧家庭的新型生活理念成为很多人梦寐以求的...

依托AI平台,涂鸦智能开启全屋智能2.0时代!

依托AI平台,涂鸦智能开启全屋智能2.0时代!
随着物联网技术的突飞猛进,生活中越来越多的家庭设备将会联上网络,变得“智慧”起来,智慧家庭的概念成了这几年媒体、企业、用户关注的焦点,而...

每周排行

  • 型 号
  • 产品描述