基于C8051F040的纯电动车CAN通信系统设计
2017-02-25黄名云张成涛华磊朱永康
黄名云,张成涛,华磊,朱永康,3
(1.广西汽车零部件与整车技术重点实验室(广西科技大学),广西 柳州 545006;
2.广西科技大学汽车与交通学院,广西 柳州 545006;3.广东省佛山市高明区技工学校,广东 佛山 528500)
基于C8051F040的纯电动车CAN通信系统设计
黄名云1,2,张成涛1*,华磊2,朱永康2,3
(1.广西汽车零部件与整车技术重点实验室(广西科技大学),广西 柳州 545006;
2.广西科技大学汽车与交通学院,广西 柳州 545006;3.广东省佛山市高明区技工学校,广东 佛山 528500)
汽车网络化控制是未来汽车发展的必然趋势,而实行车内各电子单元之间的实时数据通信与共享则是进行控制的基础。文章基于C8051F040单片机设计了一个简单的4子节点纯电动车通信网络。文中分别对网络进行了系统设计,硬件设计,和软件设计,并通过简单试验进行了验证。实验结果显示所设计4子节点CAN总线网络无论是在数据准确性、数据丢帧率以及高低速下的通信实时性都有较好的性能。由此可见,CAN高速和CAN低速两条总线网络的设计以及时间片轮询多任务编程方式能有效缓解网络负担,保证系统的实时性。该系统设计为进一步进行更复杂、更高性能的电动车整车CAN网络打下了良好的基础。
纯电动车;C8051F040;CAN控制器;CAN收发器;CAN协议
CLC NO.:U462.1Document Code:AArticle ID:1671-7988 (2017)02-04-04
引言
CAN(Controller Area Network)即控制器局域网,是20世纪80年代初期,德国BOSCH公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种有效支持分布式控制或实时控制的串行通信协议[1]。由于CAN总线具有造价低廉,传输速率高,最高速率可高达1Mbps,安全性可靠性高,纠错能力强,实时性好等优点,越来越多的汽车制造厂家采用CAN协议,CAN已经成为一种国际标准(ISO-11898),是最有前途的现场总线之一[2]。国家“863计划”关于电动汽车课题中明确提出,新申报的电动车开发项目必须采用CAN总线通讯模式。本论文正是基于这一背景设计了一个基于CAN总线的4个节点的电动汽车车内网络。
1、系统设计
随着环境污染的日益严重以及石油危机的加剧,绿色节能的纯电动汽车越来越受到人们的欢迎,纯电动汽车成为汽车行业发展的必然趋势[3]。同时随着人们对汽车的舒适性,安全性等要求越来越高,汽车上的电子装置也越来越多,一辆纯电动汽车上就有诸如整车控制器(VCU)、电机控制器(MCU)、电池管理系统(BMS)、车载充电机(CCS)、DC/DC电源(DCDC)、ABS防抱死制动系统、安全气囊、仪表系统 、车身控制系统、娱乐舒适系统等等众多的电子ECU[4],用CAN总线把这些电子控制单元连接起来组成车内网络,不但可以减少因为点对点通信而造成的庞大的线束,节省车内空间,还可以提高汽车的实时性,稳定性和安全性。由于时间和精力的限制,本文只选取了其中的四个节点进行联网设计,以作为整车联网通信的一个前期探索。
由于各个节点对实时性的要求不同,像动力系统和安全系统对时间要求高,一般设为高速网络,而车身娱乐系统对实时性要求不高,一般设为低速网络,这样不但减轻了网络负担,也节省了资源,高速网络和低速网络之间需要网关连接[5]。本文设计的四个节点的通信网络拓扑结构如图1所示。
图1 CAN网络拓扑结构图
网络拓扑结构采用总线拓扑形式,这样有利于实现各节点的分布式控制。电机驱动控制器和电池管理系统作为动力系统 ,设为高速CAN网络,速度设为500Kbps;车身主控制器作为车身系统组成,设为低速CAN网络,速度设为125Kbps。高速CAN和低速CAN之间由整车控制器做为网关连接,整车控制器除了做为网关,最主要的是实行整车的控制,并外接一个液晶显示屏,以便对整车通信状态进行显示监控。电机控制器负责将电机转速、转矩、电机温度等信息通过CAN总线发送到整车控制器进行处理和显示,并接收来自整车控制器的控制信号。电池管理系统负责将电池电压、电流、温度、SOC、工作状态等信息通过CAN总线发送到整车控制器进行处理和显示,同时接收来自整车控制器的控制信号。车身主控制器负责将灯光、门窗、电动座椅等信息发送给整车控制器,同时接收来自整车控制器的控制信号。
2、硬件设计
2.1 硬件选择及结构设计
组成CAN通信的核心部件有单片机,CAN控制器,CAN收发器,电气隔离以及采集信号的传感器等其他一些外围部件[6]。单片机作为系统的大脑,直接对CAN控制器的相关寄存器进行操纵和控制;CAN控制器集成了CAN协议的物理层和数据链路层,将需要传送或接收的数据按照CAN的帧格式和编码方式转换成协议数据流;CAN收发器是将单片机TTL电平转换成CAN标准的差分电平,同时也实现总线的电气保护,过热保护等,它直接与总线物理实体相连;为了增强系统的抗干扰能力,通常在CAN控制器与收发器之间增加电气隔离部分。他们之间的原理连接框图如图2所示。
图2 CAN节点硬件连接框图
在这里单片机选用的是Cygnal公司的C8051F040微处理器,其内核采用CIP-51微控制器,它与MCS-51指令集完全兼容,芯片上有1个12位多通道ADC,2个12位DAC,2个电压比较器,1个电压基准,1个32kB的FLASH存储器,并且还有硬件实现的UART串行接口和完全支持CAN2.0A和CAN2.0B的CAN控制器,因而只需要增加CAN收发器和适当的抗干扰电路即可完成CAN节点的设计,比传统的单片机与CAN控制器共同组成的CAN节点更简单,可靠,易操作。CAN收发器采用的是PHILIP公司TJA1050T;电气隔离部分采用的是6N137高速光耦,他们之间的连接线路图如图3所示。
图3 CAN节点硬件原理图
C8051F040的TX0和RX0通过高速光耦6N137与CAN收发器TJA1050T的TXD和RXD相连,这样就很好地实现了总线上各节点的电气隔离,但要注意光耦电路的VA和VB需完全隔离。CANH和CANL管脚增设了阻容电路,以滤除总线上的干扰,提高系统的稳定性,同时在CAN总线接入端与地之间分别反接一个二极管,以便CAN总线有较高的负电压时,能起到过压保护作用。TJA1050T的第8脚接到C8051F040的一个管脚用于模式选择,有静音模式和高速模式,这里选择高速模式,因为在静音模式下,TJA1050T的发送器被禁能,执行只听功能。除整车控制器节点外,其他节点的硬件设计都如图2图3所示。
2.2 主控模块的硬件设计
整车控制器作为网关因为需要连接高速和低速两路CAN,所以需要至少两路CAN通信接口[7],这里主控芯片选用飞思卡尔公司的MC9S12DXP512,它的内部集成了5个CAN控制器,选用其中的两路CAN控制器与CAN收发器相连后可以组成两路CAN通信接口,分别用来连接高速CAN和低速CAN。主控芯片还需外接一个液晶显示屏,以显示整车通信状态。具体硬件框图如图4所示:
图4 整车控制器CAN通信结构框图
0路CAN控制器通过收发器与CAN高速相连,1路CAN控制器通过收发器与CAN低速相连,这样就实现了整车控制器做为网关的硬件条件,其各元件之间的连接线路图同其它节点。
3、软件设计
软件设计是CAN通信的重点及难点,CAN通信需要满足通信协议要求,CAN通信协议包括物理层,数据链路层及应用层。物理层和数据链路层是通过CAN接口完成的,包括硬件电路和通信协议两部分,由于CAN控制器中已经嵌入了底层协议,因此在发送时只需将相应的寄存器及数据信息设置好,直接启动发送即可[8],故系统的软件开发主要集中在应用层的设计上。按各节点在整车中的功能,分析出各节点需要通信的内容,制作成如表1所示。
表1 CAN网络各节点通信内容
由于本网络主要是研究各节点的相互通信,所以主要讨论信息的发送和接收函数。对于发送函数,所有接入网络的控制器以广播的形式向总线发送信息,为了满足系统的实时性要求,发送报文的周期为30ms,采用时分轮询的方式发送,具体方法为,所有控制器以接收到整车控制器发出控制帧(VCU)的时刻为对时基准,在相应的时间间隔内发送相关报文,具体的时间片轮询顺序如图5所示,每个控制器开始发送报文的相对时刻误差不应超过±2ms。若某时段未收到整车控制器控制帧,则相应节点控制器自动在上一消息发出后30ms继续发送。
图5 各节点时间片轮询顺序
软件实现过程如下:
而接收函数则采用滤波和中断的方式,以便只接收需要的信息帧并对接收到的信息及时进行处理。滤波的过程主要是通过设置验收滤波器和屏蔽寄存器来实现的,若屏蔽寄存器位设为0,则表示不关心,若为1,则表示接收报文的ID位必须与验收滤波寄存器的位一致,比如说验收滤波器的值为00010100101,屏蔽寄存器的值为111111111110,屏蔽滤波器最后一位为0,表示不关心,1和0都可以通过,则00010100100,00010100101这两种ID报文就可以被接收。这样就实现了通过设置验收屏蔽寄存器来接收自己想要的报文,减轻主网络的负担。
整个主程序流程图如图6所示。
图6 CAN网络主程序流程图
4、实验测试
根据硬件原理图搭建好试验平台,并根据软件设计的思路编写好程序,首先进行单个节点的通信测试,随后进行各个节点的通信联调。图6为蓝马电子的USB-CAN-A1+转换器对电池管理系统电池组温度报文的发送情况的监测输出窗口。该温度采用DS18B20温度传感器进行采集,并通过CAN控制器将数据按30ms周期间隔发送到CAN总线上。从监测窗口可以看到CAN通信波特率为500Kbps,接收帧数为189帧,通信速率为33帧/秒,总线占用率为0%等信息。这说明网络负载低,接收稍有延迟,延迟时间不超过1ms。窗口下方接收数据帧014E为十六进制,转换为十进制为334,此数值为温度值乘以10的结果,所以实际温度为33.4℃,与整车控制器上LCD显示温度一致,说明发送与接收到的数据一致,网络可靠性好。
图7 USB-CAN转换器监测高速CAN通信界面截图
图8 USB-CAN转换器监测低速CAN通信界面截图
为了检测数据有没有丢帧现象以及低速网络下的通信情况,特意编程设置只发送150帧报文,通信波特率设置为125Kbps,图7为低速网络下通信情况,由图可以看出,150帧报文全部接收,并没有丢帧,网络延迟时间跟高速网络差不多,但网络占用率要稍高一点为2%,通信正确率仍旧为100%。
通过实验验证,高速和低速网络都达到了较高的性能指标,可靠性较高,没有发生丢帧现象,在分周期30ms发送一次数据帧的情况下,高速网络占用率为0%,低速为2%。高低速两条网络的设计可以有效缓解网络负担,同时各节点采用时间片轮询的方式按周期发送消息可以有利于多任务的同时实现。
5、结束语
本文基于C8051F040单片机进行了纯电动车CAN通信系统设计,通过试验验证该系统设计方案可行,数据收发准确,实时性较好,网络通信顺畅。为进一步进行整车CAN网络通信以及设计高性能的CAN网络打下了基础。由于实车网络要更复杂,网络的性能要求更高,因此峰值负载、最大延迟时间、实时性调度算法等都是后续要考虑的问题[10]。
[1]Ronald G.Landman,Design and Analysis of CAN Networks for Vehicles.Society of Automotive Engineers.2000.(1).
[2]范仪绘.CAN总线在电动汽车充电机上的应用[J].农业装备与车辆工程.2010(11).
[3]葛林,周文华,徐航.CAN通信网络在汽车中的应用研究[J].汽车技术.2000(11):1-4.
[4]宫江海,唐厚君,孔俊.CAN总线在电动汽车上的应用研究[J].工业控制计算机.2004.17(3):23-24.
[5]迟瑞娟,曹止清.基于CAN总线的整车管理系统的硬件设计.中国农业大学学报.2002,7(4):91-94.
[6]王练,刘坚.控制器局域网络在大众汽车中的应用研究.汽车电器.2000.(2):7-10.
[7]李广鑫,秦贵和,刘文静等.CAN总线网关的设计与实现[J].吉林大学学报.2010,28(2):166-171.
[8]秦贵和,葛安林等.汽车网络技术.汽车工程.2003,25(2):151-155.
[9]蔡伟杰,陈文强,由毅等.整车CAN通信协议设计流程[J].汽车电器,2011,6:19-21
[10]曹万科.CAN协议车载网络若干关键理论研究[D].沈阳:东北大学,2008.
Design of CAN Communication System for Battery Electric Vehicle Based on C8051F040
Huang Mingyun1,2, Zhang Chengtao1*, Hua Lei2, Zhu Yongkang2,3
(1.Guangxi Key Laboratory of Automobile Components and Vehicle Technology, Guangxi Liuzhou 545006; 2.Guangxi University of Science and Technology, Department of Automotive Engineering, Guangxi Liuzhou 545006; 3. Gaoming Technical school, Guangdong Foshan 528500)
Automotive network control system is the inevitable trend of the future development of the car, while the real-time data communication between the electronic units is the basis to implement this control system. In this paper, I designed a simple four CAN nodes communication system for a battery electric vehicle based on the C8051F040 microcontroller, including system design, hardware design and software design, also I did some simple experiments to verify its feasibility. The experiments’ results show that the network has good performance, both in date accuracy, date loss rate and real-time communication in both low and high speed. Therefore, the design of two lines bus network of CAN high speed and CAN low speed and the time slice polling multi task programming can effectively alleviate the burden of the network and ensure the real-time performance of the system. This system has laid a good foundation for the further design of more complex and higher performance CAN network for battery electric vehicle.
Battery Electric Vehicle; C8051F040; Can Controller; CAN Transceiver; CAN Protocol
U462.1
A
1671-7988 (2017)02-04-04
黄名云(1982-),女,助理讲师,研究生,就读于广西科技大学汽车与交通学院。研究方向:车载网络技术。
※通讯作者:张成涛(1978-),男,副教授,博士,就职于广西汽车零部件与整车技术重点实验室(广西科技大学)。研究方向:车辆智能控制技术。
广西高校科学研究项目(重点),项目编号KY2015ZD070。
10.16638/j.cnki.1671-7988.2017.02.002