基于CAN总线通讯技术实现汽车四轮独立驱动控制系统的设计

时间:2021-04-06

      伴随着电动汽车的发展,CAN总线通讯技术应用越来越广泛,它可为纯电动汽车上四轮独立驱动控制,以及刹车防抱死系统(ABS)、电子稳定装置(ESP)等主动安全系统的实现提供便利。

    在设计CAN总线通信系统时,总要面临着CAN数据的诊断与分析问题,不能解决该问题,便不能完成设计。本文基于Kvaser Leaf Professional HS这一USB_CAN工具,借助于Visual Basic环境,在PC机上开发出数据分析系统,并在该分析系统与四轮独立驱动电动车电机控制板之间实现了CAN通信。通过对CAN总线数据进行诊断分析,能够更好地完成CAN总线系统的设计。

    四轮独立驱动电动车控制策略

    电动车实物模型中使用的分布式四轮电子差速系统由一个中央控制器、四个电动轮控制器及CAN总线网络三个部分组成,其在电动车实物模型上的布局如图1所示。

   

    图1 分布式四轮电子差速系统在车身上的布局

    在该分布式系统中,基于四轮独立控制的电子差速算法被分为整车差速算法与转速控制算法两个部分,其中转速控制算法是针对每个电动轮转速。中央控制器与四个电动轮控制器通过CAN总线连接成一个实时控制网络。

    在该系统控制过程中,中央控制器通过A/D采样获得来自转向传感器的车辆转向角度信号和来自手柄转把中的车速设定信号,经过整车差速算法,分别获得四个车轮当前各自应有的转速,并将这一结果作为当前时刻对应车轮的转速控制设定值,通过CAN总线发送给相应的电动轮控制器。四个车轮控制器以从CAN总线收到的转速设定值作为控制目标,使用电动转速控制算法对各自的电动轮进行控制,使各个电动轮的实际转速实时满足整车差速算法的要求,进而实现电动车辆的平顺转向。

    四轮独立驱动电动车CAN控制网络

    通过CAN总线,本四轮驱动电动车中央控制器将车轮的速度等设定值传送给每个车轮的控制器,同时,各电机控制器将实际转速等信息通过CAN总线反馈给中央控制器。CAN网络的拓扑结构如图2所示。

    图2 CAN控制网络拓扑结构

    整个网络中共含有五个CAN节点:四个电动轮电机控制器a、b、c、d,以及一个电动车中央控制器e。

    在设计应用层协议时,必须根据实际应用为总线消息编排一个合理的总线仲裁优先顺序,以改善CAN通讯的实时性。在本应用场合中,下行数据即中央控制器发给各电动轮电机控制器的控制命令,比上行数据即各电动轮电机控制器的反馈信息具有更高的优先级。此外,中央控制器发往四个车轮控制器的指令必须同步,才能为后续控制提供可靠的前提。

    综合考虑以上因素,本文设计了如表1所示的CAN数据报文ID体系。

    电机控制器a、b、c、d分别控制电动车左前轮、右前轮、左后轮和右后轮。中央控制器发出的CAN消息数据域结构如图3所示。

    图3 中央控制器CAN消息数据域结构

    中央控制器发出的ID为0x010和0x020的CAN数据,表示转速以及转矩的设定值,对应的实际值为模拟量,这里采用了16位长度的有限  定点数表示。16位数据中高9位表示整数,低7位表示小数,即9Q7格式的定点数。对于中央控制器发出的ID为0x00F的CAN数据,发给每一个电机控制器的命令也是16位的数据,低8位表示刹车命令,高8位表示控制模式选择命令。

    四个电机控制器向中央控制器反馈当前状态信息的CAN消息数据域结构如图4所示。

    图4 电机控制反馈状态信息结构

    CAN总线消息的触发方式有两种:事件触发与时间触发。前者适用于发送时间上离散变化的开关状态量,如刹车命令与控制模式选择命令;后者适用于发送时间上连续变化的模拟量,如转速设定值与转矩设定值。由于本控制系统中兼有上述两类总线信息,故采用事件触发与时间触发相结合的方式来进行发送。

    Kvaser Leaf Professional HS简介

    Kvaser Leaf Professional是用于CAN和LIN的单通道USB接口,该设备提供了把几个接口简单接入PC的可能性,可以方便地实现同一个USB Hub上连接多个Kvaser Leaf设备,并且无需额外的连接。此外,它还具有很好的EMC(Electro Magnetic Compatibility)性能以及即插即拔的特点。同时,由于一个USB Hub上可以连接多个设备,因此各个设备都可以由该Hub进行供电,具有很低的功耗。

    Kvaser提供的库函数非常丰富,用户可以根据自己的需要调用相应的库函数,灵活地处理CAN总线数据。

    PC机CAN数据分析系统设计

    该数据分析系统根据电轮独立驱动车中央控制器与四个电机控制器之间的CAN通信数据,动态地显示中央控制器发出的命令,以及各个电机的当前运转信息。同时,还可以显示各个电机转速的变化曲线,并具有数据保存功能,便于离线分析。

    该系统基于Visual Basic语言设计开发,应用了Measurement Studio软件中的CWGraph控件来显示转速曲线。通过Kvaser Leaf Professional HS,PC机与控制板之间的CAN通信得以实现。电机运转数据的保存则通过VB编程连接Microsoft Access数据库完成。这样,系统就可以由一个主窗体和五个显示电机转速曲线的子窗体组成,如图5所示。

    图5 窗体结构图

    这里,主窗体是启动窗体,子窗体A、B、C、D、E在主窗体启动时并不显示,通过主窗体上的相应按键可以控制子窗体的启动以及关闭,亦即显示和关闭各车轮转速曲线。

    系统运行时,  启动的是主窗体,通过主窗体上对相应按键的点击等操作,可以方便地与各控制板之间建立CAN通信,接收主控板与电机控制板之间的CAN消息,通过界面内部数据处理函数处理后,在相应显示区域加以显示。

    CAN通信正常后,五个显示区域便会根据CAN总线上的消息动态更新并显示相应信息。

    当需要进行数据保存时,单击Data_Record按键,便会弹出选择数据库的窗口,选择已经建立好的数据库后,电机的状态数据便可以保存在被选择的数据库中,还可以随时中止数据保存。需要注意的是,被保存的电机运转状态数据是在单击Data_Record按键并选择好数据库后界面收到的数据,这之前的数据并没有保存。也就是说,如果想把整个电机运转过程的数据都保存下来的话,在电机开始运转之前就要先单击Data_Record按键,并选择好数据库。

    在退出界面时,首先应该断开CAN总线的连接,单击Disconnect按键断开。然后单击Quit按键便可以正常退出界面。

    本系统的设计采用了在VB中使用ADO(ActiveX Data Object)对象模型的方法,连接Microsoft Access数据库,进行数据保存。只要在一个数据库中建立一系列的表,便可以将数据很方便地保存在相应的表中。比如,本设计中为四个电机分别建立了一个独立的表,用以存储其运转的状态信息,包括转速、转矩、电池电压以及控制模式等信息。利用Access数据库的数据处理功能可以很方便地进行离线的数据分析和处理。

    为了方便不同用户对系统的使用,在数据保存之前,系统提供了一个对话框让用户选择已有的数据库,便于用户自定义数据保存的路径。

    结语

    在本设计的软件方面,在VB环境下,MeasurementStudio提供了功能强大的控件;硬件方面,具有Kvaser Leaf Professional HS以及Peak_CAN等工具,使得本系统的实现变得容易,且效果也比常规的设计方法更好。经过联机调试证明,本系统能有效地对CAN总线的数据进行分析处理。

上一篇:可靠的车载电源管理设计抛负载和冷启动问题的解决方法
下一篇:基于MC68HC08单片机和L293D集成电路实现机器人追跑系统的设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料