基于CAN总线技术的汽车车灯电动车窗雨刮的控制系统方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CAN 总线技术的汽车车灯、电动车窗、雨刮的控制系统
简介
随着现代汽车的迅猛发展和电子技术的日新月异,汽车电子设备不断增多,从发动机控制到传动系统控制,从行驶、制动、转向系统控制到安全保证系统及仪表报警系统,从电源管理到为提高舒适性而作的各种努力,使汽车综合控制系统越来越复杂。
目前.以微控制器为代表的汽车电子在整车电子系统中应用广泛,汽车控制正由机电控制系统转向以分布式网络为基础的智能化系统。
CAN 总线是一种支持分布式和实时控制的串行通信网络,以其高性能和高可靠性在自动控制领域广泛应用。
本设计主要针对基于CAN 总线的汽车电子系统的设计,包括汽车车灯和汽车车窗和汽车雨刮等控制系统的总体设计思想、方法和硬件设计,介绍如何实现用CAN 总线完成汽车控制系统的控制。
目录
CAN 总线-------------------------------------------------------- 3
1.1 CAN 简介- ------------------------------------------------------------------------------ 3
1.2 CAN 总线协议的报文帧结构形式 ------------------------------------- 3
CAN 总线在奥迪A6 汽车车灯上的应用------------------------------------- 4
2.1 灯光控制系统的网络硬件设计。
- -------------------------------------------------------- 5
2.2 MCU 的选择-------------------------------------------------- 6
2.3 CAN 通讯控制器------------------------------------------------ 6
2.4 CAN 总线收发器------------------------------------------------ 6
2.5 系统的软件设计------------------------------------------------- 7
2.6 CAN 控制初始化程序-------------------------------------------- 7
2.7 中央处理器程序设计--------------------------------------------- 8
2.8 车灯控制程序--------------------------------------------------- 11
CAN 总线在奥迪A6 汽车电动车窗上的应用 --------------------------------- 15
3.1 -------------------------------------------------------------- 系统的总体设计15 3.2 -------------------------------------------------------------- 硬件接口电路设计15
3.3 -------------------------------------------------------------- 系统软件设计17 3.3.1 CAN 控制初始化 ------------------------------------- 17
3.3.2 节点发送/接收报文
------------------------------------------------------------------------------------ --17
3.3.3 主控程序
----- 18
3.4 电动车窗系统主要技术参数和功能--------------------------------------- 19
CAN 总线在奥迪A6 汽车雨刮上的应用------------------------------------- 19
4.1 系统的总体设计-------------------------------------------------- 19
4.2 系统硬件电路设计----------------------------------------------- 20
4.2.1 雨量检测模块-------------------------------------------------- 20
4.2.2 开关控制模块------------------------------------------------- 21
4.2.3 ECU 和CAN 通信模块----------------------------------------- 21
4.2.4 输出驱动模块------------------------------------------------- 22
4.2.5 雨刮电动机--------------------------------------------------- 22
4.3 系统软件设计---------------------------------------------------- 24
结语
32
CAN 总线
1.1 CAN 简介
CAN(ControllerAreaNewtork) 即控制器局域网,是一种先进的串行通信协议,属于现场总线范围。
CAN 总线是最初由德国Bosch 公司在80 年代初期,为了解决现代汽车中众多的控制与测试一起之间的数据交换而开发的一种串行数据通信协议,目的是通过较少的信号线将汽车上的各种电子设备通过网络连接起来,并提高数据在网络中传输的可靠性,CAN 总线具有较强纠错能力,支持差分收发,因而适合高噪声环境,并具有较远的传输距离,特别适合于中小型分布式测控系统,目前己在工业自动化、建筑物环境控制、机床、医疗设备等领域得到广泛应用。
CAN 总线具有以下几个重要特点:
1) 结构简单,只有两根线与外部相连,且内部含有错误探测和管理模块。
2) 通信方式灵活。
可以多种方式工作,网络上任意一个节点均可在任意时刻主动的向网络上的其他节点发送信息,而不分主从。
3) 可以点对点、点对多点及全局广播方式发送和接受数据。
4) 网络上的节点信息可分成不同的优先级,可以满足不同的实时要求。
5) CAN 通讯格式采用短帧格式,每帧字节数最多为8 个,可满足通常工业领域中控制命令、工作状态和测试数据的一般要求。
同时,8 个字节也不会占用总线时间过长,从而保证了通讯的实时性。
6) 采用非破坏性总线仲裁技术。
当两个节点同时向总线上发送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可以不受影响继续传输数据,这大大地节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。
7) 直接通讯距离最大可达1kOm(速率在5kb / S以下),最高通讯速率可达1Mb / s(此
时距离最长为40m) 。
节点数可达110 个,通信介质可以是双绞线、同轴电缆或光导纤维。
8) CAN 总线通讯接口中集成了CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
9) CAN 总线采用CRC 检验并可提供相应的错误处理功能,保证了数据通信的可靠性。
1.2 CAN 总线协议的报文帧结构形式
在报文传输时,不同的帧具有不同的传输结构,下面将分别介绍四种传输帧的结构,只有严格按照该结构进行帧的传输,才能被节点正确接收和发送。
(1) 数据帧由七种不同的位域(Bit Field) 组成:帧起始(Start of ) 、仲裁域(Arbitration Field) 、控制域(Control Field)、数据域(DataField) 、CRC 域(CRC Field)、应答域(ACK Field)和帧结尾(End
of )。
数据域的长度可以为0〜8个字节。
1)帧起始(SOF):帧起始(SOF)标志着数据帧和远程帧的起始,仅由一个“显性”位组成。
在CAN 的同步规则中,当总线空闲时(处于隐性状态),才允许站点开始发送(信号)。
所有的站点必须同步于首先开始发送报文的站点的帧起始前沿(该方式称为“硬同步” )。
2)仲裁域:仲裁域由标识符和RTR 位组成,标准帧格式与扩展帧格式的仲裁域格式不同。
标准格式里,仲裁域由11位标识符和RTR位组成。
标识符位有ID28〜IDI8。
扩展帧格式
里,仲裁域包括29位标识符、SRR位、IDE(ldentifier Extension ,标志符扩展)位、RTR 位。
其标识符有ID28〜IDO。
为了区别标准帧格式和扩展帧格式,CANI . 0〜1 . 2版本
协议的保留位r1 现表示为IDE 位。
IDE 位为显性,表示数据帧为标准格式;IDE 位为隐性,表示数据帧为扩展帧格式。
在扩展帧中,替代远程请求(Substitute Remote Request ,SRR)位为隐性。
仲裁域传输顺序为从最高位到最低位,其中最高7 位不能全为零。
RTR 的全称为“远程发送请求(Remote TransmissionRequest)”。
RTR 位在数据帧里必须为“显性”,而在远程帧里必须为“隐性” 。
它是区别数据帧和远程帧的标志。
3)控制域:控制域由6位组成,包括2个保留位(r0、r1同于CAN总线协议扩展)及4 位数据长度码,允许的数据长度值为0 〜8 字节。
4)数据域:发送缓冲区中的数据按照长度代码指示长度发送。
对于接收的数据,同样如此。
它可为0〜8 字节,每个字节包含8 位,首先发送的是MSB(最高位)。
5)CRC校验码域:它由CRC域(15位)及CRC边界符(一个隐性位)组成。
CRC计算中,被除的多项式包括帧的起始域、仲裁域、控制域、数据域及15 位为0 的解除填充的位流给定。
此多项式被下列多项式X15+X14+X10+X8+X7+X4+X3+1 除(系数按模 2 计算),相除的
余数即为发至总线的CRC 序列。
发送时,CRC 序列的最高有效位被首先发送/接收。
之所以选用这种帧校验方式,是由于这种CRC 校验码对于少于127 位的帧是最佳的。
6)应答域:应答域由发送方发出的两个(应答间隙及应答界定)隐性位组成,所有接收到正确
的CRC 序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。
因此,发送节点将一直监视总线信号已确认网络中至少一个节点正确地接收到所发信息。
应答界定
符是应答域中第二个隐性位,由此可见,应答间隙两边有两个隐性位:CRC 域和应答界定位。
7)帧结束域:每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。
可
这样,接收节点以正确检测到一个帧的传输结束。
CAN总线在奥迪A6汽车车灯上的应用
摘要:以汽车控制局域网CAN总线为基础,结合89C51单片机,对奥迪汽车的的车灯进行控制。
关键词:89C51 ,sja1000,CAN 总线,82c250
正文:
灯光控制系统是保证汽车安全行驶的一个重要系统。
传统的灯光控制系统多采用继电器
和独立模式控制,这使得车内线束过多且布线复杂,会引起严重的电磁干扰,使系统的可靠
性下降。
CAN (Controller Area Network )数据总线是一种适用汽车环境的汽车局域网。
它能够很好的解决这个问题,它具有较高的传输速度,主要是针对汽车中对实时性要求很高
的动力系统而设计的。
利用CAN总线,不仅能简化线束,而且还能大大降低车辆的故障率。
基于
CAN总线的灯光控制系统,就很好用利用CAN总线的优势,发挥车灯的最大性能。
本设计利用CAN总线通信协议建立汽车灯光(前照灯)控制系统的局域网(对于汽车其他灯光可以按照同样道理设计而成,只需要多加几个通信的节点),控制的灯光有:远光灯、近光灯、示宽灯、雾灯、转向灯。
通过CAN总线实现上述灯光的开和闭的控制。
2.1 灯光控制系统的网络硬件设计。
对于传统的灯光控制系统如图一所示。
关,开关置于驾驶员旁,由驾驶员控制开关通断,控制灯(或其他用电器)工作。
这种结构
缺点是若用电设备越多,电力线就越多,这无疑是加大了汽车的负担而且容易收到干扰,导致器件不能正常运行。
对于CAN总线的灯光控制系统如图二所示。
它利用CAN总线,能够有效的减小电力线的数量,减少干扰,实现优化控制。
I 车灯1
(图二)
我们可以直接在(图二)中增加CAN总线收发器,及其MCU控制电路,这样就能实现更多的车灯控制系统。
2.2 MCU的选择
本设计选用AT89C51单片机作为灯光控制节点MCU。
P89C51单片机是一个8位高性能微控制器。
AT89C51 是一种带4K字节闪烁可编程可擦除只读存储器
(FPEROM —Falsh Programmable and Erasable Read Only Memory )的低电压,高性能CMOS8位的单片机。
AT89C2051 是一种带2K字节闪烁可编程可擦除只读存储器
的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度
非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多
功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制
器,AT89C2051 是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2.3 CAN通讯控制器
本设计采用SAJ1000 独立CAN控制器。
PHILIPS 公司的PCA82C200 是符合
CAN2.0A协议的总线控制器,SJA1000 是它的替代产品,它是应用于汽车和一般工业环境的独立CAN总线控制器。
具有完成CAN通信协议所要求的全部特性。
经过简单总线连
接的SJA1000 可完成CAN总线的物理和数据链路层的所有功能。
其硬件与软件设计和PCA82C200 的基本CAN模式(BesicCAN )兼容。
同时,新增加的增强CAN模式(PeliCAN)还可支持
CAN2.0B 协议。
2.4 CAN总线收发器
本文世纪采用CAN总线收发器82C250 。
PCA82C250 是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动接收能力。
如在
ISO11898 标准中描述的,它们可以用高达1Mbit/s 的位速率在两条有差动电压的总线电
缆上传输数据。
这是全世界使用最广泛的CAN收发器之一。
图三为车灯控制系统硬件电路图,它的工作原理为:CAN总线控制器与单片机连通,
由单片机的程序给予初始化,并选通控制器,当单片机 P1.0~P1.4 其中一个管脚开关按下
时,立刻把数据传送到 CAN 控制器SJA1000,利用CAN 总线收发器82C250将信号发 出,通过CANH,CANL 两个管脚传输数据,当控制对象(车灯)系统中的收发器收到信号 时,其系统中的 CAN 总线控制器发出中断,使车灯系统的 MCU 执行相关程序,控制车灯
驱动电路,使其相应的车灯完成控制目的。
(注意图中的发光二极管为车灯的驱动电路,驱
动车灯的亮和灭)
(图三)
微处理器AT89C51负责SJA1000的初始化,通过控制SJA1000 实现数据的接受和 发送等通讯
任务。
SJA1000 的AD0~AD7 连接到单片机的 P0.0~P0.7 口,SJA1000 的
CS 连接到89C51的P2.0,P2.0 为0时片外存储器地址可选中 SJA1000,CPU 通过这些地
址可对SJA1000执行相应的读/写操作。
SJA1000 的RD,WR,ALE 分别与89c51的引脚 相连,INT
接INT0。
82C250 与CAN 总线的接口采用了一定的完全和抗干扰措施。
一般情况下,若
CAN
总线系统干扰很强烈,为了增强 CAN 总线节点的抗干扰能力, SJA1000 的TX0和RX0 并不是直接与82C250的TXD 和RXD 相连,而是通过高速光耦 6N137后与82c250 相 连,且光耦部分电路 VCC 和VDD 完全隔离,这样就可以实现总线上各节点间的电气隔离。
2.5系统的软件设计
系统软件设计的关键是通讯程序的设计。
本设计的通讯软件程序主要由 3部分组成:
初始化程序、中央处理器程序、 车灯控制程序。
编写主要运用 KEIL 的C 语言对AT89C51 进行软件
程序设计。
2.6 CAN 控制初始化程序
初始化程序主要是通过对 CAN 控制器控制段中的寄存器写入控制字,从而确定
CAN
控制器的工作方式等。
有
3种方式进入初始化程序:一是上电复位;二是硬件复位;三是
软件复位,即运行期间通过给 CAN 控制器发一个复位请求,
置复位请求为1。
在复位期间,
必须初始化的寄存器有:MR 模式寄存器、CDR 时分寄存器、ACR 接收代码寄存器、AMR
4
亠“[ZH-
亘主
至荃
」 sils-
Hsgp
『丁
u
H
U1 1
LT
^r -MdiiJ
3JKCT
l 二冠 =IT —
Hr-En
肝
XT'"s.
I
-I 4 J I- 4 K.HK 吃HK.略
K
FA
™
fT
屏蔽寄存器、BTR 总线定时定时器及 OCR 输出控制寄存器等。
需要注意的是,这些寄存 器仅能在复位期间写访问。
因此,在对这些寄存器初始化前, 必须确保系统进入了复位状态。
流程图如下:
设胃输出拎制奇存器
图浜5 SJA1000初始化流利图
2.7中央处理器程序设计
中央处理器程序包括初始 MCU ,以及初始化 CAN 控制器。
通过查询,判断是否有开 关信号发出。
若有,将此信号发送到 CAN 控制器,CAN 控制器经处理后发送到 CAN 收发
器。
程序流程图如下:
初始化MCU ,初始 化CAN 控制器
(\ AT89C511'关 晰CAN 的屮
断源
设代总线定吋寄〃器 复位请如位=1|
—— kd 匸亠亠 -------- 设置时钟芬誠寄存器’ K 基本CAN 或增强CAN 2、 时钟输出4脚
CLKOUT 使能及频率选择 3、 CAN 输出比较器选择
I. b:l 1 ■ J I-
进入代常运行模式
W ____________
打 JfCANfpWr
对开左控制器的CAN' |1断
图1. 中央MCU控制程序中央处理器程序如下
#in clude<reg52.h>
#defi ne uchar un sig ned char
#defi ne uint un sig ned int
uchar sj[8];
#defi ne TIMO -50000
sbit cs=P2A0;
#defi ne MyAddr 1
#defi ne CAN_DATA
P0
#defi ne CAN_CR 0
#defi ne CAN_CMR1 #defi ne CAN_SR2 #defi ne CAN_IR
3 #defi ne CAN_ACR
4 #defi ne CAN_AMR
5 #defi ne CAN_BTR0 6
#defi ne CAN_BTR1 7
#defi ne CAN_OCR8 #defi ne CAN_TXB10 #defi ne CAN_RXB20//控制
//命令
//状态
//中断
//验收
//屏蔽
//时序0
//时序1
//输出
//发送缓冲//接收缓冲
1。
#define CAN_CDR 31 // 分频 uchar pdata CAN[32] _at_(0); void
CAN_INI() {
CAN[CAN_CR]=0x01; CAN[CAN_ACR]=MyAddr; CAN[CAN_AMR]=0x00; CAN[CAN_BTR0]=0x07; CAN[CAN_BTR1]=0xff; CAN[CAN_OCR]=0x1A; CAN[CAN_CR]=0x02;
}
void delay(uint x) // 延时部分 { uint y;
{
p=CAN_TXB; /*p 指向发送缓存首址 */ for(i=0;i<8;i++) CAN[p++]=sj[i];
CAN[CAN_CMR]=0x01; /* 请求发送 */ }
}
void main()
{
P0=0xff; EA=0; cs=0; EX0=0; PX0=0; ET0=0; CAN_INI();
IT0=1;// 外中断请求信号方式控制位 :1 脉冲方式(后沿负跳有效) 有效) TH0=TIM0&0XFF; TL0=TIM0>>8; TR0=1; // 启 动 器,-50000equsFFFF3CB0;TH0==B0,TL0==3C EX0=1;
for(y=x;y>0;y--);
}
void CAN_SEND() /* { uchar i,p; p=CAN[CAN_SR]; if (p&0x04) 报文
发送数据部分 */
// 状态寄存器的内容给 p
// 检查第三位即发送缓冲器的状态, 为 1 CPU
可以向发送缓冲器写
/* 初始化部分 */
// 进入复位模式,允许访问各个寄存器 // 验收,表示接收的数据中第一位为 // 屏蔽 ;00 表示不屏蔽, 8 位全有效。
// 总线时序 0 // 总线时序 1
//0xaa,0xd2,0xfa 输出控制 // 接收中断使能,否则不能接收
0 电平方式(低电平
0 号 计 数
ET0=1;
EA=1;
PX0=1;
while(1)
{
if((P O&O xff)!=Oxff)
{
delay(IOOOO);
if((P O&O xff)!=0xff)
{
sj[O]=PO A O;
sj[1]=PO A1;
sj[2]=P0A2;
sj[3]=P0A3;
sj[4]=POA4;
sj[5]=1;
sj[6]=1;
sj[7]=1;
CAN_SEND();
} } } } void Timer1() in terrupt 1 using 1 {
TH0=TIM O&OXFF; TL0=TIM0>>8; TR0=1;
}
2.8车灯控制程序
当CANH,和CNAL,有数据传来时,经过CAN总线数据接受器接受到的数据,发送给SJA1000 控制器,控制器接受完毕后发出中断请求,MCU接受中断请求,发生中断随之处理中断程序。
程序框图如下:
车灯控制程序如下
#in clude<reg52.h>
#defi ne uchar un sig ned char
#defi ne uint un sig ned int
#defi ne TIMO -50000 uchar sj[8]; uchar CANBUS=0;
sbit cs=P2A0;
sbit qd 1= P0A1;
sbit qd0=P0A0;
sbit qd2=P0A2;
sbit qd3=P0A3;
sbit qd4=P0A4;
sbit qd5=P0A5;
sbit qd6=P0A6;
sbit qd7=P0A7;
#define MyAddr 1 #define CAN_DATA P0
#define CAN_CR 0 // 控制 #define CAN_CMR 1 // 命令 #define CAN_SR 2 // 状态 #define CAN_IR 3 // 中 断
#define CAN_ACR 4 // 验收 #define CAN_AMR
5
// 屏蔽 #define CAN_BTR0 6
// 时序 0 #define CAN_BTR1 7
// 时序 1 #define CAN_OCR 8 // 输出 #define CAN_TXB 10 //
发送缓冲 #define CAN_RXB
20 // 接收缓冲
#define CAN_CDR 31 // 分频 uchar pdata CAN[32] _at_(0);
void CAN_INI() /* 初始化部分 */
// 进入复位模式,允许访问各个寄存器 // 验收,表示接收的数据中第一位为 1 。
// 屏蔽 ;00 表示不屏蔽, 8 位全有效。
// 总线时序 0 // 总线时序 1
//0xaa,0xd2,0xfa 输出控制 // 接收中断使能,否则不能接收
void main()
{
P0=0xff; EA=0; cs=0; EX0=0; PX0=0; ET0=0; CAN_INI();
IT0=1;// 外中断请求信号方式控制位 :1 脉冲方式(后沿负跳有效) ,0 电平方式(低电平 有效) TH0=TIM0&0XFF; TL0=TIM0>>8; TR0=1; // 启 动 0 号 计 数 器,-50000equsFFFF3CB0;TH0==B0,TL0==3C EX0=1; ET0=1; EA=1; PX0=1; while(1);
}
void CAN_INT() interrupt 0 using 1/* 接收中断 */
{
CAN[CAN_CR]=0x01; CAN[CAN_ACR]=MyAddr; CAN[CAN_AMR]=0x00; CAN[CAN_BTR0]=0x07; CAN[CAN_BTR1]=0xff; CAN[CAN_OCR]=0x1A; CAN[CAN_CR]=0x02;
{
uchar i,p;
p=CAN[CAN_IR];
if(p&0x01) // 中断寄存器的低一位为一:RXFIFO 不空且中断寄存器的RIE (接收中断使能)位置1
{
p=CAN_RXB;// 接收数据的首地址给p
for(i=0;i<8;i++)
{
sj[i]=CAN[p++];// 读接收的数据
}
CAN[CAN_CMR]=0x04; /* 释放接收缓存*/
CANBUS=1;
}
if(CANBUS==1)
{
qd0=sj[0];
qd1=sj[1];
qd2=sj[2];
qd3=sj[3];
qd4=sj[4];
qd5=sj[5];
qd6=sj[6];
qd7=sj[7];
}
}
void Timer1() interrupt 1 using 1
{
TH0=TIM0&0XFF; TL0=TIM0>>8; TR0=1;
}
CAN 总线在奥迪A6汽车电动车窗上的应用 3.1系统的总体设计
现在各中高档轿车都安装有电动车窗,
按钮控制车窗玻璃的升降。
如果车窗无智能,司
机在没有注意到乘客的手或物体伸出窗口的情况下按下按钮, 乘客容易被车窗夹伤。
为了安
全,很多乘车都采用电动防夹车窗。
在充分研究有关
CAN 总线在汽车电子系统中的应用和
电动车窗防夹方案的基础上,提出一种基于CAN 总线的轿车车窗智能控制系统的设计方案, 实现车窗在正常工作模式下防夹控制功能和紧急情况下 (异常工作模式)快速升降车窗控制
功能。
CAN 总线系统节点分为不带微控制器的非智能节点和带微控制器的智能节点。
该系 统采用智能
节点设计,轿车车窗按 CAN 总线结构和电器元件在汽车中的物理位置划分为左
前、右前、左后和右后 4个节点单元。
其中左前节点为主控制单元,除负责本地
(左前)车
窗
的升降,还可以远程控制其他车窗。
各节点采用独立的带 CAN 功能的微控制器设计,其
CAN 网络结构如图所示。
图1 CAN 总线网络结构
3.2硬件接口电路设计
该系统采用片内含有 CAN 控制器的P8XC591作为节点单元主控制器。
P8XC591采用 强大的80C51指令集;内部集成有 SJAIOOO CAN 控制器的PeliCAN 功能;全静态内核
左前节点
外围电路
CAN
收
右后模块
JAN
收发
器
提供了扩展的节电方式:振荡器停止和恢复而不丢失数据;改进的 12 MHz 外部时钟频率时实现 500ns 指令周期。
控制器P8XC2591 读取按键信息,驱动车窗电机按预先编制的软件指令运行, 同时监
测传感器的输出电压和负载电流,作为车窗在上升
(下降)过程中与障碍物夹持时的逻辑判
断,然后驱动电机。
为了防止车窗玻璃上升到顶部或下降到底部时,
电动机受到冲击堵转而
降低电动车窗机械的使用寿命, 该系统设计具有软停止功能, 并且手动或自动上升、 下降时 都有此功能。
当玻璃上升(下降)快到顶(底)部时,在上升软停止点切断电动机的电源使其停 止工作,通过电动机的惯性使玻璃上升 (下降)到顶(底)部。
各节点单元相关命令和状态通过
CAN 控制器以报文格式由 CAN 总线完成与其他节点单元信息间的传输和共享。
系统节点 单元硬件设
计框图如图所示。
车窗控制系统CAN 总线硬件原理图
1:1内部时钟分频器在
XTAL
XT 心 TOD X7AU RXD C SST TXDC
P1.0 AO
P1.2 AJD
P13
PI? vss
C551
比电罟芭亂
II-音
唱梯于TT 电
系统左前节点单元除具有全局控制外,其余节点单元只负责控制本地车窗,硬件设计仅 多一个按键K4,主要在于软件设计。
该系统设计的控制电路不仅支持节点单元间的
CAN
总线通信,还要检测压电传感器和负载电流等模拟量, 判断各种逻辑,通过驱动器实现控制 功能。
3.3系统软件设计
系统软设计目主包括 CAN 控制器始化、节点发送接收报文主控程序
3个模块。
COcan 控制器初始化
CAN 控制器电或硬复位必须始化,包括操作模式、验收滤波器、总线位定时、断配置 TXDC 输出引脚。
②节点发送/接收报文
报文发送由CAN 控制器遵循CAN 协议规范自动完成。
首先 CPU 必须待发送数据按特 定格式组合成帧报文,进入 CAN 控制发送缓冲器,并置位命令寄存器发送求标志,发送处 理通过断求或查询状态标志进行控制。
其发送程序分发送远程帧数据帧两种, 远程帧无数据
场。
报文接收程序责节点报文接收以及总线关闭、误报警、接收溢出等其处理。
报文收发主 有断接收方式查询接收方式。
软设计采报文接收查询断控制方式报文发送断控制方式。
报文
发送/接收程序流程如下图所示。
CAN 位定时配M
(1)
验收滤波鶴配
—
1
选择掾饨实退出
「
与CAN 相关的中断配■
结束
CAN 初媳化流程
送缓冲3是否粋放? 匿位标志^还有报文
置位X-iifS 位
T )[服务
Y
X
置位发送滴求位
CWS)
系统初蜡化
临时缓冲区用于 发送其他报文 ⑹中断眾存程7T ;応中断裡矿的“发送报
b 制的。
发送报
使能匸灯的发送J 反文是否亦 首优关瓏
将报文从临时缓冲区复制捌发 送缓冲区错除标吉箕还有撮 菠送完成伏
③主控程序
各车窗节点单元,左节点单元功能最复杂,具有最控制优先权。
这里以左节点单元例, 详细介绍其主控程序设计。
首先始化系统,包括 P8XC591 控制器CAN 模块始化、断、I
/0端口、定时模块、看门狗模块、
A /D 转换器模块设置全局变量,还电机堵转时最电流
车窗顶(底)时传感器电压阈值入 EPROM 。
P8XC591实测电流EPROM 标定值比较,实现
4 Y [将报文写处发氓绫方
区
防夹功能,比较电压阈值测得传感器电路电压值判断车窗达极限位置。
始化完成,读组合按键信息,根据按键动作实施具体操作,同时发送CAN 报文,完成各节点单元间CAN 通信智能化控制。
图 5 左节点单元主控程序流程。
设计流程图
3.4 电动车窗系统主要技术参数和功能
①防夹功能初始化后,手动和自动上升时都具有防夹功能,防夹次数不受限制;从车窗上极限下沿40mm 往下,车窗上极限上沿40 mm 往上的区间为防夹区间
②省电模式在输入信号消失120 ms后。
且电动机温度接近室温25 C时,系统自动进入省电模式•静态电流小于300卩A。
当电动机控制单元一旦得到输入指令就被唤醒。
③软停止功能上升软停止点为上极限位置约 2 mm 处,下降软停止点为下极限位置上约
12 mm 处。
④电动机保护功能对电动机采取保护措施,提高电动机和电动车窗系统的使用寿命。
⑤自诊断保护功能为保证系统的可靠性,同时提高系统的平均无故障时间,采用自诊断保护措施:如果电源电压超过16 V ± 0 . 5 V,关闭自动上升功能。
⑥系统抗干扰设计技术软件抗干扰以其设计灵活、节省硬件资源、成本低等优势得到广泛应用。
CAN 总线在奥迪A6 汽车雨刮上的应用
4.1 系统的总体设计
本设计为奥迪A6 汽车雨刮控制系统,由左右节点构成。
左节点主控制单元,两节点基本相同,区别仅在于左节点多出开关命令模块。
以左节点为介绍内容,它包括雨量检测模块、电源模块、开关控制模块、CAN 通信模块、处理器模块。
可实现停止、低速、高速、点动、
间歇、自动五种刮水模式。
左节点工作时,开关控制命令输入到控制器模块,雨量检测模块将雨量信息输入控制模块供自动模式使用,控制器由开关信号和雨量信号作出判断,输出命令到输出驱动模块和CAN通信模块。
右节点经CAN通信模块获得动作命令,输出驱动命令到输出驱动模块。
电源模块为左右节点供电。
左节点右节点
系统整体电路图
4-g-l
■■
■'
Z
=k
4=^开关控制模块雨量检测模块
电源ECU
CA
N
通
信
输出驱动模块
CA
N
通
信
EC
U
电源
输出驱动模块
4.2系统硬件电路设计
4.2.1雨量检测模块
图4-1雨量检测电路图
图4-2红外传感器检测原理图
雨量检测采用红外雨水传感器,红外光受外界环境影响小,且易于检测。
把半导体发光
元件和感光元件配成一对,从发光元件发出的光信号,如果在光路途中遇到雨滴落下,由于
光的散射,光强减弱,可利用检测光强的衰减信号来控制雨刮器的动作。
由此雨量检测部分
由红外光发射电路和红外光接收电路组成,如图4-1所示。
图中左半部分为红外发射电路,红外发射管采用硅光电二极管,它具有暗电流小、噪声
低、受温度影响小、价格便宜等优点。
红外发射管三个并联,三极管驱动,利用单片机定时器定时中断在P5.0 口产生38 kHz的频率脉冲控制发射管的通断,采用这种方式可以减少发射电路的功耗。
电路中D1用来指示红外发射管是否在正常工作中。
右半部分为红外接收
电路,采用Vishay 公司的红外专用集成接收芯片TK1838,该芯片将光接收二极管、放
大电路、带通滤波器、检波电路封装在一起,以实现接收脉冲编码信号调制的红外光信号,塑料封装可滤除可见光,使得电路简单,体积也比较小。
TK1838芯片共有3个引脚:I脚
为输出,2脚为接地,3脚电源接+5 V ,内部集成了放大、滤波、解调及其控制电路,1
脚直接输出高低电平。
TK1838只有接收到38 kHz的脉冲信号才会工作。
当接收不到38
kHz的脉冲信号时,1脚输出高电平;当接收到38 kHz的脉冲信号时,1脚输出低电平。
当有雨滴落在挡风玻璃的“敏感区域”时,1脚输出一串脉冲波,脉冲波的数量则与雨量的
大小成正比。
4.2.2开关控制模块
汽车上使用的电源系统是12V系统,控制输入信号也为12V,而89C51是5V系统供电。
开关的控制信号不能直接输入到MCU管脚,必须进行电平转换,使输入的12V雨。