薛淑发,冯国胜,李 昶
摘 要:CAN总线的数据通信具有突出的可靠性、实时性和灵活性,其总线规范已经成为国际标准,被公认为几种最有前途的总线之一。本文介绍基于CAN总线的柴油机电控系统的组成、工作原理及应用,并构建了以Motorola的DSP56F807芯片及三纯科技的SC2102型CAN总线PCI转接卡为基础的试验平台。
关键词:柴油机;CAN总线;电控;DSP56F807芯片
中图分类号:464.172 文献标识码:B
随着环境污染及能源危机问题的日益严峻,对柴油机动力性、经济性、排放和噪声提出了越来越高的要求,尤其是近年来对有害排放物的苛刻要求,使得电控技术在柴油机上的应用十分迅速,已成为当今柴油机技术的发展趋势。各种传感器及ECU单元的大量应用,使得传统的点对点的分散式控制系统因可靠性差和控制管理落后等原因,已不适应柴油机技术发展的需要。现场总线(Fieldbus)系统的引入打破了传统控制系统的结构形式,把单个分散的测量控制设备变成网络节点,为内部各种复杂的电子设备、控制器、测量仪器提供了统一的数据交换渠道,各部件间可以相互沟通信息,共同完成控制任务,大大提高了系统可靠性和控制管理技术水平。在国外,CAN总线协议已经成为汽车、计算机控制系统和嵌入式工业控制局域网的标准总线。
按照ISO有关标准,CAN的拓扑结构为总线式,因此也称为CAN总线。与其它现场总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,主要表现为以下几点:(1)多主工作方式。每一节点都可以主动向网络发送数据,不分主从;(2)可编程数据传输速率最大可达1M位/S,是一个真正的高速网络;(3)通过短帧的方式传送,每帧数据最多为八个字节,传输时间短,受干扰概率小,可靠性高;(4)强有力的错误控制和错误重发功能,保证了数据通信的可靠性;(5)节点在错误严重的情况下,具有自动关闭的功能,以使总线上的其它操作不受影响;(6)在总线访问中,采用非破坏性总线竞争裁决技术,保证优先权较高的信息实时传递。
一、系统组成及工作原理
结合本实验室在柴油机电控方面的研究,选用了16位的Motorola DSP56F807芯片作为MCU,选用三纯科技的SC2102CAN卡组建了具有三个CAN节点的试验平台,可以简单模拟电控系统的运行过程。总线首末端需要并入终端匹配电阻,以抑制反射,改善信号完整性。
图1为系统总体结构示意图。节点1和2单元使用了Motorola DSP56F807芯片。其关键部分采用双哈佛结构,支持并行处理,在80MHz时钟频率下可达到40M条/s指令(MIPS)的指令执行速度,可以很好地完成柴油机电控系统的复杂计算;具有丰富的I/O口和多种外围设备。DSP芯片上集成了通用I/O模块GPIO、异步串行通信模块SCI、同步串行外设模块SPI、控制器局域网CAN 2.0B模块、多路A/D变换模块、用于各类电机控制的多路脉冲宽度调制PWM模块、定时器模块Timer等多种外设模块,实现了完全的单片化。

1.节点1主要完成进气温度、齿杆位移、油门位置等传感器信号的采集工作,信号经A/D转换后通过内嵌的CAN控制器模块发送到CAN总线上。CAN接口由PCA82C250及高速光耦6N137组成。采用高速光耦6N 137可实现收发器与控制器之间的电气隔离,保护控制系统电路。PCA82C250为总线控制器与物理总线之间的接口芯片(见图2)。

2.节点2从CAN总线上截取进气温度、齿杆位移、油门位置等信号,经计算后通过输出PWM信号控制柴油机的喷油系统工作(见图3)。

3.节点3为上位机单元,CAN卡SC2102是双路隔离CAN总线PCI插卡,PCI总线采用直接内存映射方式访问CAN控制器,支持CAN2.0B协议。该卡为用户提供打包的控件编程支持,具有编程简单、控制灵活的特点,极大地降低了开发难度和成本。本系统采用PC机作为上位机,使用VB语言设计的监控程序,通过CAN转接卡可以从总线上截取所需要的各种信息,并将其存储在Access数据库中,可以方便地进行系统调试,观察采集的数据及查看程序的执行情况等。
二、系统软件设计
DSP56800系列产品提供了两个在线开发工具:Codewarrior和Embedded SDK,Codewarrior集成开发环境带有一个C源码级的调试器,提供了基于Windows的代码调试功能,可大大加快系统开发速度。Embedded SDK提供了大部分外设模块的驱动程序、库函数和接口函数,允许程序员创建自己的C应用程序代码,而不用考虑硬件结构。
本系统中软件设计完成的主要工作有:(1)针对A/D数据采集模块的编程;(2)控制算法程序的应用;(3) PWM模块功率放大后驱动电磁执行器的编程;(4) CAN总线驱动模块的编程;(5)系统监控程序的编程。
MSCAN总线驱动程序采用DSP56800汇编指令与C语言混合编程。程序的主要部分有各寄存器的初始化、接收和发送缓冲区的配置、可编程访问MSCAN模块各寄存器的C函数接口、封装读写中断、提供API函数。在使用CAN控制器之前必须初始化MSCAN模块,对内部寄存器进行设置。CAN模块的初始化流程如图4所示,发送和接收流程如图5所示。


三、结语
本文介绍参照图1所示的网络拓扑结构,组建了具有三个CAN节点的试验平台。利用Motorola DSP的EVM板进行了CAN通信模块的自环实验,使用PC机上的系统监控程序通过CAN卡SC2102与DSP的CAN通信模块相连采集总线数据,并存储到数据库中,实现了上位机对下位机的监测。最后把节点2连接到CAN总线上,实现三个节点间的自动收发。还需进一步进行各种参数的实验,给出各种工况下的MAP图并进一步完善控制程序。
现代车辆是一个智能化的网络计算平台,CAN总线将贯穿整车的每个单元即控制系统、信息系统、驾驶系统、传感执行系统及故障诊断系统,并且随着控制系统数目的不断增加,必定会得到更加广泛的应用。
参考文献:
[1]王尚勇,杨青.柴油机电子控制技术[M].机械工业出版社,2005.
[2]邬宽明.CAN总线原理和应用系统设计[M].北京航空航天大学出版社,1996.
[3]邵贝贝等.Motorola DSP型16位单片机原理与实践[M].北京航空航天大学出版社,2003.
[4]Motorola INC. DSP56F801/803/805/807 16-Bit Digital Signal Processor User′s Manual[K],2001.
[5]北京三纯科技发展有限公司.SC2102 CAN总线PC插卡说明书[K],2003.