基于CAN 总线的汽车空调控制系统开发

摘 要:本文首先对汽车空调控制系统的网络化进行了研究,参照SAE J1939 协议制定了系统的整套通信协议,并
结合CAN 总线技术要求,设计出了基于CAN 控制器SJA1000 和CAN 收发器PCA82C250 的分布式的汽车空调
控制系统。
1 引 言
随着汽车工业的高速发展,传统的手动机械式空调难以满足乘坐舒适性的需求和提升整车技术含量的要求。本文首先对汽车空调控制系统的网络化进行研究,结合CAN 总线技术,采用CAN 控制器SJA1000 和收发器PCA82C250 设计了汽车空调系统的各节点,并参照汽车领域中广泛应用的SAEJ 1939 协议制定了系统通讯协议,在此基础上完成了基于CAN 总线的汽车空调控制系统的构建。
2 系统总体设计
2.1 汽车空调控制系统网络化
传统的汽车空调控制方法是直接控制:简单功能通过控制开关直接实现,复杂功能由控制器完成。实现汽车空调控制系统的网络化,就是从根本上改变控制对象和被控信号间的直接控制关系。模块之间通过总线网络建立连接并交互数据。在总线网络
系统中,负责控制信号采集的模块把采集到的控制信号发送到网络上;负责执行控制功能的模块则侦听总线消息并接收与本模块相关的数据,最后完成对相关器件的控制功能[1 ] 。
2.1 空调控制系统网络
图1 是汽车空调的混合式配气系统的风道结构,图[2 ] ,其工作过程如下:车外新鲜空气+ 车内循环空气→进入鼓风机→空气进入蒸发器冷却→由风门调节部分空气进入加热器加热→进入各风口。
图1 空调系统结构图
根据系统结构图抽象出基于CAN 总线的分布式网络模型,在此基础上添加主控节点、显示节点和温度采集节点。图2 为抽象出来的分布式总线网络模型。
图2 空调控制系统网络模型
3 系统通信协议设计
总线网络系统通信协议是为保证数据信息能在网络各功能模块间可靠传输而定义的一系列规则、标准和惯例[3 ] 。CAN 总线网络协议主要包括物理层、数据链路层[4 ] 。本系统参照SAE J 1939 协议设计,增加了网络层和应用层。对于CAN 总线网络,物理层和网络层协议基本确定,因此本文主要进行数据链路层和应用层协议的设计。
3.1 数据链路层协议设计
数据链路层报文格式参考“CAN2. 0B”规范,将CAN 扩展帧的29 位标识符重新分组定义。本文数据链路层与标准CAN 协议的区别:信息帧的路由部分包含了节点地址,实现了点对点的数据传输。CAN 扩展帧格式如图3 所示,其中数据场是要传送
的信息,其余场均为保证数据可靠传输的控制信息。
将数据帧的29 位标识符(11 位标识符和18 位标识符扩展) 定义为协议数据单元( PDU , ProtocolData Unit) , PDU 包含7 个域:优先级、保留位、数据页、协议数据单元格式( PDU Format ,简称PF) 、特定PDU (PDU Specific ,简称PS) 、源地址和数据域,如表1 所示。PDU 和数据域被分组封装在一个或多个数据帧中传输到其它网络设备。
3.2应用层协议设计
在网络应用层协议的设计中,定义PS 域为目的地址(DA) 。网络节点的地址分配如表2 所示。
4 CAN 接口电路设计
汽车空调控制系统主要由主控模块、温度采集模块、显示模块、温度调节模块、送风模块、内外循环模块和驾驶室出风口模块等功能模块构成。本系统硬件设计的主体部分是CAN 接口电路。本系统的CAN 节点是由三部分构成的:微处理器89S51 、独立CAN 控制器SJA1000 和总线收发器82C250 ,具体电路如图4 所示。
4.1微处理器与CAN 控制器的接口设计
89S51 与SJA1000 分别采用独立的复位电路和独立的时钟信号源,如图4 所示,当P2. 7 为0 时,CPU 片外存储器地址可选中SJA1000 ,CPU 通过地址对SJA1000 执行相应的读写操作。SJA1000的/ IN T 与89S51 的/ IN T0 相连, 89S51 也可以通
过中断方式访问SJA1000 。
4.2CAN 控制器与CAN 收发器的接口设计
SJA1000 通过引脚TX0/ RX0 或TX1/ RX1 与82C250 的引脚TXD/ RXD 相连。82C250 通过引脚CAN H 和CANL 与CAN 总线的CAN - H 和CAN - L 相连。
5 软件设计
由于各节点都是分布在CAN 网络的独立功能模块,因此CAN 通信模块的软件设计是系统的主体。CAN 通信包括:CAN 初始化、CAN 数据发送和CAN 数据接收。
(1) CAN 初始化。主要完成SJA1000 的初始化并设置相应的通信参数。SJA1000 的初始化在复位模式下进行;然后设置验收滤波方式和波特率参数;只有当控制寄存器(CR) 中的复位要求位(CR.0) 置高时,初始化相关的寄存器才能被访问。CAN
协议物理层中的同步跳转宽度和通信波特率的大小由总线定时器B TR0 和B TR1 决定。对系统中的所有节点,这两个寄存器的内容必须相同,否则无法通信。初始化流程如图5 所示。
(2) CAN 数据发送。发送报文时,发送缓冲区对写操作是锁定的,微控制器89S51 必须查询状态寄存器的发送缓冲区状态标志TBS ,以确定是否可以将新的报文写入发送缓冲区,程序流程图如图6所示。
(3) CAN 数据接收。读接收缓冲区内容后,微控制器89S51 必须通过将释放接收缓冲位置高来释放缓冲区,使得下一报文可以被接收,程序流程图如图7 所示。
6 结束语
本文成功地将汽车空调控制系统网络化,使得分散在不同位置的节点可以共享信息。基于CAN总线的汽车空调控制系统的开发不仅提高了汽车空调的舒适性,而且还使得空调子网与其它车载网络进行互连,从而加速了车身一体化的进程。
参考文献
[1 ] 张蕾. 汽车空调[M] . 机械工业出版社,2006.
[2 ] 陈立辉,等. 汽车空调[M] . 人民交通出版社,2004.
[3 ] 宋雪桦,等. 汽车发动机电控单元CAN 通信模块研制
[J ] . 计算机工程与设计,2006.
[4 ] 邬宽明. CAN 总线原理和应用系统设计[M] . 北京:北京航空航天大学出版社,1996.

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
