0 引言
目前的汽车电子领域中,倒车雷达普遍采用超声波测距原理,通过单片机计算出障碍物与车的距离并显示和报警。但大多数这类产品都是独立的控制单元,无法与CAN总线接轨,所以只能作为一种倒车安全辅助装置。用PIC18F258单片机设计一个倒车雷达单元使其与车载CAN网络接轨,这样可以将实测的车与障碍物的距离信息以报文形式发送给车载CAN总线上的其他控制单元,以实现其必要的功能。当车与障碍物距离小于某一值时,通过制动单元实现自动制动功能,保证车辆倒车安全;CAN总线上仪表控制单元接收到车与障碍物距离信息后,可将其距离显示出来;CAN总线上语音设备接收到信息后,可根据距离大小实现不同频率分级语音报警。这样实现了倒车雷达单元在CAN总线上与其相关单元的数据共享,扩展了倒车雷达的功能,同时也提高了倒车的安全性。
1 CAN总线与车载CAN网络通信
1.1 CAN总线
CAN总线是一种保密性很高的现场总线,是德国Bosch公司在20世纪80年代初为解决现代汽车中众多的控制和测试仪器之间的数据交换而开发的一种有效支持分布式控制或实时控制的串行通信网络。它具有以下特点:
(1)总线以多主方式工作,系统柔性好,通信方式灵活,且不用占地址等单元信息;
(2)CAN总线网络上的单元信息分不同的优先级,可满足不同的实时要求,所有的信息发送都以固定格式发送;
(3)采用非破坏性总线仲裁技术,在网络负载很重的情况下也不会出现网络瘫痪状况;
(4)只通过报文滤波可以实现点对点、一对多点及全局广播等几种方式接收传送数据;
(5)通信速率与距离成反比,5 Kb/s以下速率直接通信可达10 km,40 m内通信最高速率可达1 Mb/s;
(6)具有错误检测功能、错误通知功能、错误恢复功能;
(7)CAN总线单元在出现严重错误情况下会自动关闭输出功能,以便总路线上其他单元的操作不受影响;
(8)CAN总线单元数理论上可以是无数个,但一般受通信速率限制,单元越多,通信速率越低,所以单元数还是有限的。
1.2 车载CAN网络通信
现代汽车内部的主要控制单元有:发动机控制单元、ABS控制单元、安全气囊控制单元、自动变速器控制单元、仪表管理单元、车窗控制单元、牵引力控制单元、故障诊断单元、中控门锁单元、座椅调节单元、照明控制单元、空调控制单元、雨括控制单元、后视镜控制单元等。这些控制单元通过CAN总线构成一个实时通信控制网络,如图1所示。
网络中各控制单元发出的控制指令必须迅速、可靠、及时地得到响应,否则轻则就有可能使车辆局部控制失灵,重则就有可能发生车毁人亡的重大事故。若整辆汽车的所有控制单元都连接在一个CAN总线网络上,所有的控制单元都通过一对CAN网络线进行通信,很容易出现总线上工点过多,通信速率下降,系统实时响应速度下降,将导致关键控制部位的实时响应速度得不到保证。因此在对汽车上各控制单元的实时性分析之后,根据各控制单元对实时性的要求不同,设计了高、低两个速率不同的CAN通信网络。将实时性要求严格、可靠性要求高的发动机控制单元、倒车雷达控制单元(本课题设计部分)、ABS控制单元、自动变速器控制单元和安全气囊控制单元组成高速CAN通信网络,将实时性要求相对较低的中控门锁控制单元、电动座椅调节单元、电动车窗控制单元、后视镜控制单元、雨括控制单元和照明灯控制单元等组成低速CAN通信网络,并配置中央控制器(网关)将这两个速率不同的CAN通信网络连接起来,实现全部节点之间的数据共享。高速CAN网络的传输速率达到500 Kb/s,低速CAN网络的传输速率大约是10~125 Kb/s。图1中总线两端应接抑制反射的120 Ω的终端匹配电阻,如果不接终端电阻,会使得数据通信的抗干扰性及可靠性大大降低,甚至无法通信。
2 倒车雷达单元硬件设计
2.1 倒车雷达单元的整体设计
倒车雷达单元的整体结构如图2所示,本设计中倒车雷达以PIC18F258单片机为控制核心,控制超声波发射接收电路、温度修正电路工作。PIC18F258单片机本身带有CAN总线,这样可以减小电路的复杂性。超声波发射电路发出40 kHz的超声波,经障碍物反射后探头接收到反射波,单片机根据发射和接收时间差计算出障碍物与车的距离,并通过CAN总线以报文形式发送到仪表单元并显示,也可送到音响单元进行语音报警,当距离小于一定值时,相应的制动单元自动刹车。温度补偿电路采用数字温度传感器DS18B20,利用声速和温度之间的关系对声速进行校正,从而消除温度变化对声音的影响。
PIC18F258单片机有着先进的精简指令集构架、增强型内核,32级堆栈和多种内部、外部中断源,内部带有CAN总线控制器,并采用了程序和数据空间完全分开的“哈佛”结构,这种结构大大降低了总体成本,同时提高了运行效率和可靠性。
2.2 倒车雷达单元接口电路设计
CAN单元的硬件构成一般有两种形式。一种形式是内部集成CAN控制器的微控制器加上收发器;另外一种形式是通用微控制器加上独立CAN控制器再加上收发器。本设计采用前一种形式,不占用微控制器的端口资源,可以简化接口电路的设计。考虑到汽车是在非常特殊的环境下工作,所以选择了满足汽车温度变化范围且性价比较高的Mierochip公司的PIC18F258单片机,该芯片内部集成了CAN控制器,可以简化系统的硬件设计、提高系统的可靠性。倒车雷达单元与CAN总线接口硬件电路如图3所示,主要由PIC18F258单片机,6N137高速光电耦合器,PCA82 C250总线收发器三部分组成。
为了提高系统的抗干扰能力和传输信号的能力,采用6N137高速光电耦合电路可以很好地实现总线上单元之间的电气隔离。高速光电耦合器的两个电源Vcc和V'cc必须采用电源隔离电路进行完全隔离。
3 CAN总线通信软件设计
CAN总线上通信软件设计主要包括CAN单元初始化,报文发送和报文接收三部分。CAN接口的初始化程序设计非常重要,如果设计的不好,系统将不能正常工作其初始化首先要在配置模式下将控制寄存器、状态寄存器、波特率寄存器、I/O控制寄存器、接收掩码寄存器和几个滤波寄存器按照系统要求设置好,以保证CAN总线的畅通。
CAN总线通信主程序和中断服务程序框图如图4所示。
4 结语
本文应用PIC18F258单片机设计一种基于车载CAN总线倒车雷达单元,使其成为车载CAN网络的一个电气单元。给出了倒车雷达单元的总体结构,CAN总线接口电路及软件设计。倒车雷达单元主控芯片PIC18F258通过CAN总线能够向其他单元发送报文数据,其他控制器经过判别而实现相关的报警、显示、自动刹车等功能,提高了汽车的安全性。