智能化汽⻋实训台架中CAN通信的选择和应⽤探讨
2022-06-24陈克乾
摘要:随着智能⽹联技术的进步,特别是适合智能⽹联技术应⽤的纯电动EV汽⻋平台发展快速,⼤量汽⻋搭载了智能化功能,如主动刹⻋、⾃适应巡航、⾃动泊⻋等。这些功能在提⾼驾驶⼈员使⽤感受的同时,也成为教学中的新领域。针对该新功能的教学需求,需要制作⼀个智能化汽⻋的实训台架,整个实训台架的各个部件需解决通信问题。因此,就通信的选择和应⽤做出讨论、选择,最后将CAN通信应⽤于该实训台架上。
关键词:智能⽹联;智能化汽⻋实训平台;CAN通信
中图分类号: U463.6 收稿⽇期:2022-04-29
DOI:10.19999/j.cnki.1004-0226.2022.06.025
1 智能化汽⻋实训台架的功能和硬件介绍
教学⽤的智能化汽⻋实训台架需要实现以下功能:a.能够⾃动前进和后退;b.能够沿所画的道路线⾏驶(含弯道);c.遇到所画道路线中的固定障碍物能够变道⾏驶,如果只有⼀个⻋道实训台架要能停⻋避让;d.⾏驶速度不能过快,要小于10 km/h。
针对实训台架要实现的功能,必须配备以下配置:a.⼀个带轮⼦的底盘,前轮可以实现转向;b.⼀个VCU,两个伺服电机和两个配套的伺服电机控制器,⼀个位置传感器。其中,⼀个伺服电机控制轮胎的前进和后退,由于⻋速慢底盘⾏驶系统未做优化,所以制动采⽤前进信号终⽌后,加⼀个短时间的后退信号实现制动功能,另⼀个伺服电机控制前轮的左右轉向,位置传感器控制左右转向的最⼤转向度,VCU整体控制协调线性底盘的⼯作情况;c.⼀个双⽬摄像头和上位机来识别道路线和障碍物,其中上位机内写⼊程序,处理摄像头、激光雷达、超声波雷达的信号,做出⾃动驾驶的具体指令,传送信号给VCU让线性底盘动作;d.⼀个激光雷达和四个超声波雷达,在光线不好的情况下识别障碍物;e.⼀个制动灯和两个转向灯,可视化线性底盘的动作;f.⼀块显⽰屏和⿏标键盘外接设备可以操作智能化的程序;g.⼀个48 V锂电池组作为实训台架动⼒,配套BMS电池管理系统。
综上智能化汽⻋所需零件主要为:⼀个线性底盘(包含两个伺服电机控制器和两个伺服电机、⼀套位置传感器、⼀个⻋架、⼀套可转向的轮胎);⼀套灯光系统(转向和制动灯光);⼀个双⽬摄像头;⼀个激光雷达;⼀套超声波雷达;⼀个显⽰器和⿏标键盘;⼀个上位机;⼀个VCU;⼀套电池模块。动⼒连线如图1所⽰。
2 各部件通信的实现
对于上述元器件,在动⼒电路搭建完毕后就要考虑各元器件通信的问题。除了灯光系统是单⽅⾯控制开闭没有通信的问题外,其他所有的元器件都是以上位机和VCU为核⼼进⾏通信。
激光雷达、双⽬摄像头、超声波雷达和上位机通信将信号通信给上位机,上位机内写有程序,根据这些程序算出实现实训台架执⾏器⼯作的指令信息。显⽰屏和⿏标键盘这些外设设备也和上位机通信,可以通过这些外设来运⾏、调整程序。
位置传感器、两个伺服电机控制器和VCU进⾏通信。VCU根据上位机计算的结果对伺服电机控制器进⾏控制驱动,伺服电机控制器和伺服电机的连接是配套的。位置传感器结构简单,只负责固定转向位置的信号发送。
上位机和VCU、电池的管理系统相互进⾏通信。通信的连接如图2所⽰。
双⽬摄像头、激光雷达、超声波雷达、显⽰屏、⿏标、键盘等,这些元器件由于预算原因都直接购买的标准件成品,其中摄像头、⿏标、键盘⾃带USB串口通信,激光雷达和超声波雷达⽤的是U S B 接口,通信协议为U S B 转RS232,显⽰屏有专⽤的显⽰屏连接线。连接过程中发现U S B接口⽐较多,因为部分元器件供电和通信都依靠USB接口,所以在上位机处加增⼀个USB扩展,来处理这部分元器件供电和通信的需求。
剩下的上位机、VCU、伺服电机控制器、BMS电池管理系统存在较⼤的选择空间。⼀⽅⾯这四个元器件在整个系统中⽐较重要,通信信息密度较⾼,另⼀⽅⾯这四个元器件的外接口多样,对多种通信协议兼容。
3 关键元器件通信选择的思路和实施
在上位机、VCU、伺服电机控制器、BMS电池管理系统的通信中,⼀般有LIN通信和CAN通信两种选择。由于对CAN通信具有以下优点,最终选择CAN通信应⽤于实训台架上。
3.1 ⽆主从节点之分,组⽹灵活⽅便
这四种元器件中除了伺服电机控制器是对VCU通信的以外,其他的VCU、上位机、BMS电池管理系统都很重要,相互之间没有明显的主从之分,但LIN通信是⼀主多从的搭建⽅式。
CAN通信仅设计了⼀条总线,上位机、VCU、BMS电池管理系统的收发器都连接在总线上,任何时刻任何节点都可以发送信息,当某⼀个收发器需要发送信息时就直接将信息发送到总线上,总线上所有的其他收发器都可以接收到该收发器发送的信息。而且CAN通信系统具有柔软性,在总线上增加新的元器件,已经在总线上的其他节点的软硬件都不需要做出改变,⽅便⽇后扩展。
3.2 通信速度快,延迟小
通信速度主要是受通信协议和配套的硬件影响,CAN通信拥有⼀套良好的协议来保证其通信速度。
在CAN通信中,元件发送的信息在硬件层⾯上是直接先发送到元件节点的CAN控制器上。在软件层⾯上,通过调取周期性的写⼊指令,将元器件发送的信息写⼊到CAN控制器中的寄存器上,再由CAN控制器上的寄存器暂时将这些信息存起来。在CAN控制器上寄存器中的信息是PDU(协议数据单元),PDU中间包含SUD(数据)、PCI(来⾃哪,要去哪的信息),这样每次信息到了要到达的地⽅会⾃动删除掉之前的信息,添加SUD要去哪的信息(不同层的PCI更新)。
将SUD通过CAN控制器中的数据链路层补全成协议帧。SUD经过逻辑链路⼦层(LLC)后由三个位段组成,分别为ID段、数据⻓度编码和数据。再经过介质访问控制⼦层(MAC)后数据要被打包的这个过程包括:LLC数据帧的接收、C R C序列计算、增加S O F位、S R R位、I D E位、RTR位、保留位、CRC位、ACK位和EOF位到LLC数据帧。数据打包过程包括;数据在数据链路层中逐步由SUD添加成CAN协议帧,然后发送介质访问管理,再通过总线发送给对⽅元器件节点的CAN收发器。整个协议定义如图3所⽰。
在任何时刻多个元器件的节点都可以发送信息。如果当总线上已经有节点在发送信息,其他元器件的节点就会等该节点发送完成后再发送,如果某两个元器件的节点同时向总线发送信息,就需要对⽐这两个信息的开头所显⽰的重要性等级,重要性⾼的节点先发送信息,这个过程叫仲裁。仲裁失败的节点转为接收,这个过程不破坏总线信息的发送。因LIN通信是主节点安排各个节点收发时间,并不利于信息的及时传递。
由于CAN通信协议的定义,CAN通信的最⼤传输速度为1 Mbit/s,遠⼤于LIN通信的最⼤传输速度20 Kbit/s。因为传输速度的快慢决定了⽹络系统最⼤的复杂度,所以在传输速度⽅⾯CAN通信更优秀。
3.3 信息传递准确,抗⼲扰能⼒强
C A N通信⼀共有两种状态,分别表⽰为1和0,但是CAN通信是⼀种双绞线,拥有CAN-H和CAN-L两种结构,直接信号表⽰为CAN-H和CAN-L发送的电压不同的差分信号,需要将差分信号通过定义转变为⽐特信号。⼀般定义如下:显性状态C A N-H信号电压3.5 V,C A N-L电压1.5 V,表⽰逻辑0;隐性状态CAN-H和CAN-L电压均为2.4 V,表⽰逻辑1。当总线上出现⼀个显性状态即逻辑0时,总线上其他隐性状态即逻辑1都会变为显性状态逻辑0,如图4所⽰。
由于CAN通信的双绞线为CAN-H、CAN-L结构,因此CAN通信的抗⼲扰能⼒强,优于LIN通信的单线结构。
CAN通信对于协议帧的设计,使得CAN通信的数据传递更为准确。CAN协议标准数据帧由帧起始(SOF)、仲裁段、控制段、数据段、CRC段、ACK段、帧结束段(EOF)组成。
a.帧起始段:CAN协议标准数据帧的帧起始段由⼀个位的显性位组成。由于总线在没有消息发送时候的空闲状态为隐性,帧起始的显性位表明开始发送CAN协议帧。
b.仲裁段:CAN协议标准数据帧的仲裁段由11位基本ID和⼀位RTR。仲裁段是各个信息同时向总线发送时谁能获得发送权的依据。
c.控制段:C A N协议标准数据帧的控制段,由⼀位I D E⼀位r 的保留位和四个位的D L C(数据⻓度编码) 0组成。
d.数据段:CAN协议标准数据帧的数据段,包含0~8个字节(byte),其中⼀个字节包含8个位(bit)。这⼀段是CAN协议标准帧需要传递的信息。
e.CRC段:CAN协议标准数据帧的CRC段(循环冗余校验段)由15个位的CRC序列(循环冗余校验序列),以及⼀个位的CRC分界(循环冗余校验分界)组成。
f.ACK段:CAN协议标准数据帧的ACK段(应答段),由⼀位ACK Sol(t 应答槽)和ACK Delimite(r 应答界定符)组成。
g.帧结束段(EOF):CAN协议标准数据帧的帧结束段,由七个位的隐性位构成,通知所有的接收节点发送信息结束。
经研究发现,协议帧中控制段的DLC(数据⻓度编码)的四个位表明数据段数据的⻓度。CRC段是根据多项式⽣成的CRC值(循环冗余校验值),在接收信息的节点接收到该条信息后,会在接收节点的CAN控制器中对该条信息的CRC序列(循环冗余校验序列)进⾏校验,确定该条信息的正确与否。ACK段接收信息的节点在接收到正确信息时,会反馈⼀个显性状态的ACK Sol(t 应答槽),发送节点接收到显性状态的ACK Sol(t 应答槽)后就知道信息被正常接收了。总计七个段的协议帧中有三个段来保证信息传递的准确。
LIN通信中的校验要明显少于CAN通信,因此CAN通信的数据传达更准确可靠。
3.4 具有可靠的通信错误检验和处理能⼒
在CAN通信中,当元器件的节点检测到信息错误时会发送错误帧。随着错误帧的累积,该节点会在三种错误状体中的⼀种中,即主动错误状态、被动错误状态、总线关闭状态。
主动错误状态:发送错误⼤于0小于127次,接收错误⼤于0小于127次,此时节点输出主动错误标识,处于主动错误状态。在主动错误状态下,节点还可以正常参加总线通信。
被动错误状态:当节点发送错误和接收错误⼤于127次但是小于255次时,节点被认为处于被动错误状态。由于该节点发送和接收到的错误过多会被怀疑整个节点损坏,所以发送和接收的信息不够可信。处于被动错误状态的单元即使检测到错误,如果其他处于主动错误状态的节点没有发现错误,整个总线也将认为没有错误,因此处于被动错误状态的节点检测到错误后不能⻢上发送下⼀条信息。在本次数据发送结束,下次数据发送之前的间隔期间必须插⼊⼋个隐性位的“延迟传送”,当处于被动错误状态的节点检测到错误时,将输出被动错误标识(连续六个隐性位,可以被其他节点信息的显性位覆盖)。
总线关闭状态:当节点发送错误和接收错误⼤于255次后就进⼊到总线关闭状态,信息的收发均被禁⽌。处于这个状态的节点需重启,在总线上检测到128次连续的11个隐形位后该节点状态变为主动错误状态,可以进⾏信息的收发,如图5所⽰。
以下五种情况节点会被认为检测到错误,并发送错误帧:
a.位错误:节点发送信息时,检测到当前总线的信号与发送的信号不⼀致,此时CAN线认为产⽣了位错误,这个过程不包含位填充。
b.填充错误:在需要位填充的段内,检测到连续六个相同的电平位。
c.循环冗余校验错误:从接收到的信息所计算出的循环冗余校验结果与接收到的循环冗余校验顺序不⼀致时,认为是循环冗余校验错误。
d.格式错误:当检测到对应的信息没有按照要求的格式编写时认定为格式错误。
e.ACK错误:发送节点在ACK Sol(t 应答槽)中检测到隐性电平时所检测到的错误(表明没有节点接收到刚发送的信息)。
在LIN报⽂中检测出错误时,将通过主任务、从任务丢弃数据。所以CAN通信在错误检测处理过程中⽐较优秀。
通过以上五点考虑,最后决定使⽤CAN通信。
4 结语
在新能源汽⻋越来越普及的今天,由于智能化功能被⼤量应⽤,整⻋元器件对⽐以前普通燃油汽⻋有所增加,导致通讯系统复杂度变⾼。各个元器件的通信问题和普通燃油⻋相⽐更加频繁,数据量更⼤,对于数据的抗⼲扰能⼒也有更严格的要求。
本⽂在制做教学⽤的智能化汽⻋实训台架过程中,通过对CAN通讯系统在各元器件通讯组⽹的灵活性、通讯速率、信息传抵抗⼲扰、检测信息错误和处理错误信息这四个⽅⾯与LIN通讯进⾏了⽐较,发现关键部件通信采⽤CAN通信连接,可使整个实训台架在操作过程中能够完成当初设计时所需实现的功能,且为今后的实训台架升级增加新的功能留有余地。
参考⽂献:
[1] CAN⼊⻔书.www.renesas.com.
[2] 邬宽明. CAN总线原理和应⽤系统设计[M].北京:北京航空航天⼤学出版社,1996.
[3] 崔胜⺠.智能⽹联汽⻋新技术[M].北京:化学⼯业出版社,2016.
作者简介:
陈克乾,男,1987年⽣,⼆级实习指导,研究⽅向为汽⻋维修、新能源汽⻋和汽⻋智能⽹联。