当前位置:首页 >> 信息与通信 >>

CAN总线在轿车车身控制系统中的应用与研究


合肥工业大学 硕士学位论文 CAN总线在轿车车身控制系统中的应用与研究 姓名:张青林 申请学位级别:硕士 专业:电力系统及其自动化 指导教师:鲁照权 20090601

CAN总线在轿车车身控制系统中的应用与研究 摘要
汽车电子化被认为是汽车技术发展进程中的一次革命,汽车电子化的程度 被看作是衡量现代汽车技术水平的重要标志。新一代的汽车被称为电子化汽车, 是汽车工业和电子技术相结合的产物。为了给司乘人员提供更加舒适、便利和 安全的环境,需要对车身进行控制(又称车辆内部系统控制)。车身控制系统包
括如下的电子控制:车用空调控制,数字化仪表显示,挡风玻璃的雨刷控制,

车灯控制,车后障碍检测,安全保护系统,多路通讯系统,门锁控制,电动车 窗控制,‘安全带控制及空气袋控制等。在信息化时代,人们自然想到采用网络 化的控制系统。 CAN工业局域网也叫控制器局域网,它属于现场总线的范畴,是一种高速、 可靠、并且对分布式实时控制应用来说是低成本的串行总线,它被广泛用在分 布式处理系统和实时控制工业应用系统中。本文介绍CAN总线在轿车上的一种
控制应用方案。

论文从CAN总线车身控制系统的基本拓扑结构和工作原理入手,对系统的 硬件构成、参数选择、控制方案及软件实现等问题进行了分析、讨论。在此基 础上设计出了具有多种故障如过流、短路、断路等自诊断功能和自我保护功能 的CAN节点。不仅满足了车身控制的功能要求,降低了成本,舍去了繁杂的线 束,维护变得简单,而且实现汽车控制部件的汽车控制系统网络化的要求。

关键词:汽车电子;控制器局域网;现场总线;CAN总线;车身控制系统

The Application and Research of Can Bus in Car Body Control System Abstract
Electronic technology of automobile is and is
a a

revolution

on

the motor technical phylogeny,

important symbol which weigh modem motorcar

technique

level too.Electronic

technology of automobile is the production that traditional automobile industry combine

modem electron

technology.Inner

control

system of vehicle

can

offer comfortable,

convenient,secure condition for motorman and passenger.Inner control system of vehicle

include these facility:air-condition control for motorcar,digital dashboard,windshield
wiper control for windshield,dynamo control,obstacle detection of the security
rear

end of



car,

safeguard

system,multiplex

communication

system,door
sack

lock
SO

control, on.On

electromotion

window control,life belt control,air

control,and

informationization age,people spontaneously bethink of network control system.
CAN industrial local
area

networks,called controller

area

network,which is



serial bus with high speed,high reliability,and low cost for distributed real time control applications,are widely used in the framework of real—time industrial applications

distributed

and

distributed

processing systems.A
on

new controlling

method to the vehicle body control system based

the CAN-BUS is issued in the

paper,which is universal,programmable,maintainable and intelligentized.
At the beginning,the basic topology and working theory of the vehicle body control system based
on

the CAN—BUS is introduced.Following,the paper analyses of hardware composing,parameter choice,controlling
can

and discusses the issues

methods,and software implementing in the system.Every nodes in the system

get data from the network,at the same time,many kinds of faults auto-examing and auto—protecting functions
are

provided in the system,and its programmable design

iS adapted to many situations.

Key words:automobile electronics;controller Bus;Body Control System

area

networks;field buses;CAN

插图与表清单
图2一l轿车车身ECU分布情况……………………………………………8 图2—2轿车CAN总线拓扑结构……………………………………………9
图3一l报文格式整体布局…………………………………………………1 3

图3—2帧信息格式…………………………………………………………l
图3—3标识码l格式………………………………………………………1 图3—4标识码1所定义的报文类别………………………………………1 图3—5标识码2格式………………………………………………………l 图3.7标识码3格式………………………………………………………1 图3.8标识码4格式………………………………………………………l 图3.1 0命令类报文格式……………………………………………………l

3 3 4 4

图3—6标识码2定义的内容………………………………………………l 4
5 5

图3—9标识码格式概况图…………………………………………………l 5
6 6

图3.11工作类报文格式……………………………………………………1

图3.1 2调试类报文格式……………………………………………………1 6 图3.1 3下载类报文格式……………………………………………………l 6
图3—14验收滤波器逻辑图………………………………………………………17 图3.1 5主节点验收滤波器l………………………………………………1 图3.1 7接收命令类报文和工作类…………………………………………l 图3.1 8接收命令类报文和调试类报文………………………………………l 图3.1 9.接收命令类报文和下载类报文………………………………………l 图3.2 l仪表节点验收滤波器2………………………o……………………l


图3.1 6主节点验收滤波器2………………………………………………1 8
8 8 9

图3.20仪表节点验收滤波器1.……………………………………………??19
9 9

图3.22子节点验收滤波器l…………………………………………………l

图3.2 3子节点验收滤波器2…………………………………………………20 图3.24 CAN初始化流程图…………………………………………………20 图3—2 5 CAN发送消息流程图……………………………………………2 图4—1 图4—2 图4—3 图4--4 图4—5
P8xC5 9 1

图3—2 6中断处理流程图………………………………………………2 2

l单片机引脚排列图…………………………………………23

5V电源电路……………………………………………………………24 CAN驱动电路…………………………………………………………25 单片机串行通讯电路……………………………………………………25
P WM调光电路……………………………………………………26

图4—6?PWM调光简化电路……………………………………………………26 图4—7 pWM的电阻性负载波……………………………………………………26 图4—8 图4—9 图4一l


窗升降电机的驱动电路…………………………………………2 7

开关检测电路………………?………………………??…………………28 小功率双向电机驱动电路……………………………………………29 雨刮电机驱动电路……………………………………………………29
Vl

图4一11

继电器儿、J2位置情况………………………………………………29 图4一l 3 继电器驱动电路………………………………………………………30 图4—14小功率器件驱动电路……………………………………………………30
图4一12 图4一l


A/D转换参考电压电路…………………………………………………3 1 油位传感器和水温传感器检测电路…………………………………32

图4一l 6 图4一l 7 图4—1


水温传感器检测分压电路……………………………………………33

灯光调节和前雨刮间隙调节检测电路………………………………33 图4.1 9模拟量与工程量关系曲线…………………………………………3 4 图4.2 0模拟量线性化处理方法示意图一…………………………………3 5
图4—2 l模拟量线性化处理方法示意图二………………………………3 图4—2 2传输量由小向大变化时状态值确定示意图……………………3 图4.2 3传输量由大向小变化时状态值确定示意…………………………3 图4—25 表4一l
5 6 6

图4—24 A/D转换步骤流程……………………………………………………3 6

模拟量采集步骤流程…………………………………………………3 7
水温与基准电阻的关系…………………………………………………38

表4—2‘水温AD输出数值与AD电压的关系…………………………………38 表4—3.油位与基准电压的关系…………………………………………………39

表4—4油位AD输出数值与AD电压的关系……………………………………39
图4—26脉冲采集电路……………………………………………………………40

表4—5工作模式与PCA节拍时间的关系………………………………………41 表4—6脉冲信号与发动机转速的关系……………………?…………………”42 表4—7脉冲信号与车速的关系…………………………………………………43 图5—1车身电控系统软件架构图………………………………………………44 图5.2驱动层的输入驱动模块流程………………………………………………45 图5—3转换层的逻辑量转换处理任务流………………………………………46
图5—4转换层的模拟量转换处理任务流程……………………………………47 图5.5规则层的规则处理任务流程……………………………………………48

图5—6驱动层的输出驱动模块流程…………………………………………49
图5—7 SJAl000内部结构…………………………………………………………50 表5.1 图5-9

SJAl000的寄存器结构及地址分配表……………………………………5l
CAN总线接口框图…………………………………………………………52

图5.8数据帧结构…………………………………………………………………5l

图5.10CAN控制器初始化流程图…………………………………………………53 图5.11接收数据的中断服务子程序流程图………………………………………54
图5.1 2发送数据中断服务子程序流程图………………………………………55 图5一l 3转换消息队列中消息来源流程图…………………………………5 7 图5一l 4规则消息队列中消息来源流程见图………………………………5 图5—15 图5一l
6 8

CAN发送消息队列的应用示意图………………………………………58

输出驱动邮箱的应用示意图……………………………………5 9 图5一17延时数组的应用示意图……………………………………一……………60

VII

独创性声明

本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得 他教育机构的学位或证书而使用过的材料。 金月曼王些太堂或其

学位论文作者签名:

签字日期:。夕

年/月弓





学位论文版权使用授权书
本学位论文作者完全了解佥月巴王些太堂有关保留、使用学位论文的规
定,有权保留并向国家有关部门或机构送交论文的复印件和电子文档,允许论

文被查阅和借阅。本人授权.金胆王些太堂.可以将学位论文的全部或部分内容
编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编
学位论文。

(保密的学位论文在解密后适用本授权书)

学位论文作者潞嬲讯
签字日期:


签字日期:D


6’年占月9日

7年厶月/D日

工作单位:安徽经济管理学院计算机工程系 通讯地址:合肥市东流路l号安徽经济管理学院(东区)

电话:3627040

邮编:23005l





值此论文完成之际,谨向在整个读硕期间给予我大力支持和帮助的老师和

同学表示诚挚的谢意!向导师一一鲁照权教授给予我的启发、引导和培养致以
崇高的敬意!

本文是在导师鲁照权教授的悉心指导下完成的,在攻读硕士学位的三年时间里, 导师严谨的治学态度、渊博的知识、执着的科研精神、精湛的专业知识、活跃的学
术思想及高尚的品德,深深地感染和激励着我,给我留下了深刻的印象。从课题的选

择到论文的最终完成,鲁老师都始终给予我悉心指导和不懈支持。我是一名在职硕士
生,既要顾及工作,又要挤出时间完成学业,加上我的专业基础与全日制硕士生有一

定的差距,我深知,鲁老师为了我需要付出更多的时间和精力来解惑释疑。每当想起 这些,总感到歉疚和不安。可敬的是,鲁老师不惜放弃休息时间,循循善诱,耐心指 导,诲人不倦,使我难以忘怀,深受感动。所有这一切都将成为我在攻读硕士学位的 同时,收获的另一份宝贵精神财富!在此,学生谨向导师表示衷心的感谢! 在论文的写作阶段,鲁老师给我提出许多宝贵的意见,指导我应学习的相 关专业书籍、重点查阅的资料,使我获益匪浅。在论文的初稿和定稿阶段,鲁 老师对论文进行了数次审阅,仔细地帮助我修改,付出了大量的时间、精力和 心血,在此表示我发自内心由衷的感谢! 真诚地感谢合肥工业大学电气与自动化工程学院的刘春副教授、孟祥发副研究员 等老师。通过他们的精心指导与有益研讨,使我拓展了思路,开阔了视野,在研究思 想、方法上得到了许多有益的启迪和提升,并在研究工作中采用他们的部分研究成果
与资料。

感谢合肥工业大学同学王文兵和校友李旭军的支持与帮助,谨向各位同仁表示诚 挚的敬意和谢忱!

作者:张青林
2009年5月

第一章绪论
1.1

现代汽车电子的定义及其发展概况 1.汽车电子的定义 汽车电子是指应用于汽车中的有利于增加汽车驾驶安全性、减少燃料消耗、

减少废气排放以及增加驾乘舒适性和便捷性的电子装置。汽车电子技术是一个 技术复杂、门类多、知识密集的高技术领域,涉及电子、机械、计算机等多个 学科。汽车电子化被认为是汽车技术发展进程中的一次革命,汽车电子化的程 度被看作是衡量现代汽车技术水平的重要标志,是用来开发新车型,改进汽车 性能最重要的技术措施。新一代的汽车被称为电子化汽车,是汽车工业和电子
技术相结合的产物。

2.汽车电子控制技术的发展简史 世界上第一辆汽车中,所谓的“电气系统"仅仅是由卡尔?本茨设计的由点火线 圈和蓄电池所组成的点火装置。在随后生产的汽车中又增设了前灯和发动机起动电机 这类的电器设备。汽车电子技术的第一次出现是20世纪30年代早期安装在轿车内 的真空电子管收音机。由于电子管收音机不抗震、体积大、耗电多等弊病,成为在汽 车上推广应用的主要障碍,但是在汽车中安装收音机的设想始终没有消失。1948年晶 体管的发明及1958年第一块集成电路(IC)的出现才真正开创了汽车电子技术的新纪
元。

20世纪60年代是汽车电子化的活跃时代,但标志着汽车电子控制技术真正发展 的是在1967年首次将集成电路元件应用到汽车中,其结果是电子技术与汽车发动机 电气系统相结合,开发出如车用发电机集成电路调压器、集成电路点火器等汽车电子 产品。在那个年代,美国的克莱斯勒公司在其生产的汽车中配置电子控制的点火装置, 而德国的波许(Bosch)公司则开发出电子控制的燃油喷射装置。1975年日本汽车也装 上了这种装置,可以说是当今汽车电子燃油喷射控制的雏型。 80年代是高科技迅速发展的年代,随之而来的是消费者对汽车多种多样的需求, 这就要求汽车生产厂家生产出一种能提高汽车总体价值并能满足用户各种要求的高 档汽车。目前世界上各大汽车制造厂商竞相研制新一代由微电脑控制的各种车用电子 产品,并迅速地将己开发出的电子产品运用于汽车中,使汽车的档次得以提高,以满
足各用户对汽车的要求。

此后,汽车电子产品的研制与开发的竞争愈加激烈,采用电子技术有利于汽车性 能的提高和各种功能的完备,并避免汽车重量的增加。因此,新型汽车电子产品不断 推出,其中有代表性的体现在以下几个方面:
(1)辅助驾驶装置

包括车速自动控制,变速器自动控制,动力转向控制等。 (2)信号装置

包括数字显示仪表,故障诊断系统,各种报警装置及各种监视器等。 (3)安全装置

包括防滑装置,汽车高速感应门锁,防撞空气袋,防锁死制动系统(ABS)等。 (4)舒适、方便装置 包括自动空调系统,自动车窗和座椅调节系统,立体声音响,导航系统,汽车电
话等。


3.汽车电子控制技术的分类
(1)动力牵引系统控制

所谓动力牵引系统是用来产生驱动汽车的原动力,并把这一动力转换成可 直接驱动车轮的扭矩。动力牵引系统控制包括发动机控制和传输系统控制。发 动机控制系统一般分为燃油喷射控制、点火时间控制、怠速运转控制、发动机 爆燃控制和其它相应的控制。对于汽油机的电子控制系统具有诸如燃油喷射控 制、点火时间控制、怠速运转控制和故障诊断等功能。通过这些功能的执行可 使汽油机处于最佳的工作状态。 (2)车辆行驶姿态控制 车辆行驶姿态控制系统可以看作这样一种电子控制系统,即采用电子技术 来控制车辆运行中的三种基本的运行特征:行驶、转弯和停车。采用电子技术 给车辆行驶姿态控制系统带来了相当大的改进,尤其是在汽车驾驶灵敏性、行 驶稳定性及司乘人员的舒适性等方面更为突出。车辆行驶姿态控制系统可分为: 悬挂系统控制、驾驶系统控制、防锁死刹车系统控制(ABS)、行驶控制、轮胎/ 地面附着力(防滑)控制和四轮转向系统控制。 (3)车身(车辆内部系统)控制 设计车身控制(又称车辆内部系统控制)的目的是为司乘人员提供更为舒 适、更为便利及更为安全的环境,并能够提高整车的市场竞争力。车身控制系 统包括如下的电子控制:车用空调控制,数字化仪表显示,挡风玻璃的雨刷控
制,车灯控制,车后障碍检测,安全保护系统,多路通讯系统,门锁控制,电

动车窗控制,电动坐椅控制,安全带控制及空气袋控制等。 由于以上这些控制系统给汽车制造业带来十分明显的效益,因此目前在高、中 档轿车中已广泛采用。 4.国际、国内汽车市场现状与汽车电子发展前景 汽车是一种集机械、电子、自动化、皮革等多种技术在一起的高科技产品,国外 专家预测未来2至4年内汽车上装用的电子装置成本将占汽车整车成本的25%以上。 一些豪华轿车的汽车电子产品甚至占整车成本的50%以上。 据美国市场调研isuppli预计,到2009年全球汽车电子的产值将达到1154.7亿 美元,是在计算机、产业电子、数字家电、通信设备四大产业中惟一年平均增长率7.5% 的产业。而在中国,2008年汽车电子产品市场总规模达到139亿美元,预计201 1年 更是达到了184亿美元。专家预测,汽车电子技术将朝着功能多样化、技术~体化、


系统集成化、通讯网络化这四大方向发展。人们普遍认为,通讯网络化汽车已经促使 汽车进入网络化、数字化的时代,且开发商还不断把这些技术融入到诸如电子煞车和 驾驶系统及新兴的混合驱动等领域的创新,使得汽车的可靠性和结构复杂性已经退居 其位。现在我们可以看见,很多汽车的控制系统、驾驶系统、信息系统、传感执行系 统、娱乐系统、GPS都通过如CAN总线联系在一起,使汽车是一个智能平台。 以上事实充分说明,汽车电子正在迎来新的机遇,同时也不断革新人们对汽车的
认识,汽车将由“会走的一堆钢铁"转变成的“会走的计算机"。那么,汽车电子未

来的发展趋势究竟如何,中国在汽车电子的市场占有率有多少?企业在研发汽车电子 的投入是多少?等等都是值得我们来关注和探讨的。 我们要谈汽车电子,首先必须知道汽车电子可以应用在汽车上那个部位,可以说, 汽车电子技术在汽车上各个部分都有应用,诸如电子点火装置(ESA)、车声控制、仪
表盘、照明系统、电子控制喷油装置、电控自动变速器(ECAT)、防抱死制动系统(ABS)、

适时调节的自适应悬挂系统、常速巡行自动控制系统(ccs)、无钥进入、以及汽车上
的娱乐系统等都要有电子装置的。

同时,随着中国自主品牌汽车厂商整合速度的加快,汽车厂商的实力将大大增强, 汽车电子厂商须尽早布局,以便在市场上获得更多的话语权。 2007年,包括外资企业在内的本地研发增长速度为31.8%,比整个汽车电子市场 增幅高出4.3%。到2012年,这个差距将扩大为6.5%。本地研发特别是外资企业本地 研发的增长速度要明显快于整个市场的发展,尽早加大本土研发投入对于汽车电子设 备和半导体供应商来说都是有必要的,也是有回报的。尽管当前宏观经济状态存在较 多不确定因素,但汽车电子研发周期相对较长,因而业界对整个行业的稳定增长态势
还是谨慎乐观。

为了降低开发成本、关税成本,国际汽车电子厂商纷纷加快本土化步伐。预计到 2012年,中国本土制造的汽车电子产品将占整个市场的50.1%。iSuppli预计,到2012 年,在中国本土生产的汽车电子销售额将会达到117.4亿美元,首次超过中国市场全 部销售额的一半,达到50.1%。其中,中外合资和外商独资公司中的本地研发将占据 26.8%,而本土企业的研发部门占据的市场份额是23.3%。 5.汽车电子常见研究内容和分类 目前汽车电子学汽车三个重要要求是:舒适、环保和安全。. 舒适性。汽车有三个基本功能:行进、转弯和停止。这些功能应该平滑、 舒适和安全地完成。同时,发动机应该寂静、平滑地工作,并能快速反应。另 外,驾驶盘应能稳定操作,司机在驾驶时不应感到有任何担心。更重要的是, 制动器必须能使车辆安全即时地停止。这些要求都将延续到将来,并成为汽车 电子学工程技术人员的长远课题。 安全性。ABS和气囊(airbag)是有效的电子安全措施。ABS作为事故的预 防措施是很有用的,而气囊作为事故发生后的应急措施是有效的。这两种系统



在技术上都已完善,目前要做的工作是在传感器和控制方法上再加以提高。如 果再进一步简化和缩小体积,在越来越多的车辆(或全部车辆)中都将安装这些 系统。汽车报警系统也是很必要的,它能在超速和车辆之间间距不足时向司机
发出警告。由于司机的判断力在避免事故发生中起了很大的作用,因此仍需作

大量工作使报警系统更加完善。针对司机长时期驾驶后产生的眼疲劳,还提出
了一种仪器读数显示方法,并已证实了它们的显著作用。

环保性。环境问题涉及到很广泛的领域,包括前面提到的空气污染和资源 问题(燃料经济效益)以及地球温室效应、酸雨、臭氧层的破坏和噪声等。首要 的问题是废气排放应该进一步减少。目前已经引入了一个基于氧气传感器的空 气一燃料比例反馈系统以得到理想的燃烧条件。另外还需要提高燃烧的精度。 应该开发一种新的能精确测量和预报发动机状态的系统,使得对于特殊的发动 机状态能正确地控制燃料供应和点火定时。这就需要有很强的微机运算能力和 高级的传感器和传动机构。还需要将车辆驱动的任何损耗降低至最低。这里所 说的“损耗”,首先是指机械损耗,如发动机转动损耗、传动和差动齿轮损耗及 车体产生的空气动力损耗等。而电气损耗是指由辅助装置(马达、传动机构和其 他部件)所产生的损耗。因此,改善电气辅助装置的控制也是必要的。这就涉及 到从燃料泵马达开关控制到工作状态控制的转化及引入无级变速控制型的空调 压缩机马达等。这些措施将减轻大部分的发动机负载,因此也提高了燃料的经 济效益。馀提高机械和电气效率外,其他的有效措施就是减轻重量,这些改进 自然涉及到结构设计、材料选择和其他方法。 6.现今汽车电子中存在的问题及相应解决方案 通过以上的介绍可见汽车正在增加着越来越多的功能。各种不同的功能, 需要众多独立的控制单元来实现。如现代典型的控制单元有电控燃油喷射系统、 电控传动系统、防抱死制动系统、防滑控制系统、废气再循环控制、巡航系统 和空调系统等等。为了满足各子系统的实时性要求,有必要对汽车公共数据实 行共享。现代豪华车辆上可有多至80个电子控制单元(ECU),以满足对其对舒 适性、环保性和安全性越来越高的要求。在传统电控系统设计中,难以实现系
统信息共享及信息处理的智能化,每增加一项功能都要为新的子系统建立相应

的一对_.的电缆连接,使得分布车体各处的电缆尤其是主电缆束趋于庞大、沉 重和昂贵.,并进而导致设计、安装、调试和维护的困难。因此汽车电气控制系 统的传统结构已成为制约汽车功能增加、性能提高和降低综合成本的瓶颈。 为了解决汽车测控系统中越来越多的数据交换问题,现场总线技术应运而 生了。现场总线(Fi el dBus)技术将网络技术引入装置和系统,在装置和系统内 部的多个智能化的测控部件之间实现双向数字通信、共同协调地完成装置或系 统既定的测控任务,在车辆工程、制造工业、流程工业、楼宇建筑等自动化系
统中具有广泛的应用前景。



控制器局域网(CAN—Controller

Area

Network)的现场总线标准是现在运用

的最广泛的汽车现场总线标准。它是80年代初由德国Bosch公司开发的。目前 奔驰、奥迪、BMW、雷诺和大众等公司均基于CAN技术实现了轿车和卡车的发动 机管理(如电喷控制)、车体电子、乃至娱乐设备的控制等功能。 为应对产品市场开拓的需要和入关带来的影响,国内业界已注意到这项技术的 潜在价值,有预见地开发具有自主知识产权的车辆总线式测控技术,占领车辆设计和
测控技术的高地显得尤其重要。

1.2汽车CAN总线技术及特点 科学技术的发展使得汽车新增功能越来越多,如何使这些众多的独立功能 协调一致地工作,即如何对整个车身进行控制,已经成为整个汽车电子研究领 域中非常重要的课题,高科技时代呼唤汽车总线(flO汽车网络技术)早日诞生。 1.控制器局域网CAN 控带|f器局域网CAN起初是BOSCH公司为解决现代汽车中众多控制单元、测试 仪器之间的实时数据交换而开发的一种串行通信协议,经多次修订,于1991年9月
形成技术规范2.0版本。该版本包括2.0A和2.0B两部分。2.0A给出了曾在CAN技

术规范版本1.2中定义的CAN报文格式,而2.0B给出T标准(11位)an扩展(29位)两 种报文格式。1 993年11月iso正式颁布了道路交通运输工具——数据信息交换—— 高速通信控制器局域网(CAN)国际标准ISO 11898,为控制器的标准化、规范化铺平 了道路。此后,越来越多的美国汽车公司采用CAN网络。在1994年美国汽车工程师 协会卡车和巴士控制和通信子协会选择CAN作为J1939标准(在卡车和巴士中应用的 C类网络)的基础。作为汽车网络协议CAN的国际标准有:ISO 11898.2(高速CAN),
IS011898.3(具有容错功能的CAN)aft IS011898.4(TrCAN)。目前CAN己经成为B、C 类网络的世界标准。

2.汽车总线系统与传统汽车电器控制系统比较 汽车总线网络系统和传统汽车电器控制相比较有如下区别:
传统汽车电器控制 汽车总线网络系统

常规继电器控制,保险丝保
护,需安装配电盒

采用智能功率器件,具有多重保护,
故障自恢复

传统线束与车内结构复杂 传统电器集成度低,故障高 安装繁琐 须专业人员维护
增加功能困难

仅需一根通讯电缆线,降低车内设
计复杂性

系统产品集成度高,比常规电器系 统的可靠性大大提高,降低了功耗 安装极为简便 信息屏直接给出故障位置,无须专 业人员维护 在一定范围内,可任意增、减功能 而不影响其它部分的工作

3.汽车总线的主要特点


(1)运用国际上先进的CAN总线技术。 (2)面向汽车车身控制系统研制开发的总线网络电子产品。 (3)提高司乘人员的舒适程度,同时解决复杂的线束问题。 (4)构成汽车车身网络系统,易于实现整车的信息系统。
(5)以满足人.汽车.环境和谐发展为基础。

(6)该技术能够应用于其他车型。如客车、商务车、载重货车、特种车辆等。 4.汽车总线的主要优点 目前应用总线的国产车中大多采用两套独立的CAN总线:一套是动力CAN数据传 输系统,另一套是舒适CAN数据传输系统。使用CAN总线后,总结其优点主要有: (1)网络总线式结构,只需一根通讯电缆连接,由软件逻辑控制替代传统的
直接线束控制。

(2)线路简化,减少线束连接复杂性,使传感器信号线减至最少,控制单元可 做到高速数据传输。 (3)无需专用配电盒,部件数量减少,可靠性能增加,总线节点控制器(ECU) 具有很高的可靠性,使用小型控制单元及小型控制单元插孔可节省空间。 (4)可实现实时诊断、测试和报警功能,控制单元对所传输的信息进行实时检 测,检测到故障后存储故障码。 (5)一般情况下,系统节点可任意扩展,增加新功能。如果数据扩展欲增加
新的信息,只需升级软件即可。

(6)人性化设计功能更加贴近汽车制造商与客户,易于赢得市场。 (7)CAN总线符合国际标准,因此可应用不同型号控制单元间的数据传输,搭建 通用信息平台,为客户提供方便,为企业创造价值。 (8)汽车总线提供更完善的车况信息,用户自我服务变为可能,降低了制造 厂与服务成本1)集中显示;2)历史查询;3)诊断与测试;4)语音提示等。
(9)准黑匣子功能。

1.3本选题的研究内容 本课题利用现场总线技术的目的是为了实现轿车控制系统的网络化。所谓 网络化就是在节点化的基础上,采用属于网络技术的现场总线将所有轿车测控 部件连接起来,在网络测控软件的支持下形成一个有机结合的网络控制系统。 本课题的技术意义在于为轿车性能的高档次提供技术平台,并为开发新产 品作技术储备;其经济意义是废除主电缆柬系统,从而有利于降低系统的综合 成本,并以提高技术档次保障售价。 本课题的主要研究内容: 1.搭建轿车总线平台,分块解决相关控制问题,按模块增加方式不断扩充 至整车电气系统,并把系统信息集成、融合起来,且预留电脑珍断仪的故障诊
断接口。


2.实现部分轿车测控部件接口的节点化。其中有前节点、后节点、主节点、 仪表节点、左前门节点,右前门节点,左后门节点,右后门节点等八个节点,
它们之间通过CAN网络交换各种信息。 3.完成轿车测控系统的网络化。以PHILIPS公司的P8xC591核心设计信号检测

电路、被控负载驱动电路和采用SJ^1000的CAN总线接口电路等。同时进行软件设计, 采用汇编语言编写CAN通讯程序、检测程序、被控负载的驱动程序等。



第二章轿车车身控制系统
科学技术的发展给现代汽车增加越来越多的功能。按照电气控制系统设计 方法,每增加一项功能都要增加相应的电缆连接.使得分布车体各处的电缆趋 于庞大且不经济,并导致设计、安装、调试和维护困难。因此,传统的电气控 制系统设计已不能满足汽车对可靠性、安全性和便利性的要求。这就促使工程 技术人员攻克“堡垒”.充分利用现代微电子技术的成果,改进设计,扬利除弊。 就技术和设计这两个层面上来说,现场总线技术的应用是电子和电气技术的有 机结合。是一种划时代的突破。 随着现代汽车新技术的飞速发展。车辆安全系统和舒适系统的不断完善, 用于车辆中的电气设备越来越多。为了更好地监控这些电气设备,有必要对轿 车车身电控系统进行重新布置,并加装车载网络控制单元。使其承担以前由单 独的继电器和控制单元所执行的功能,还具有车载网络控制单元中数据总接口, 实现CAN总线系统内的数据交换。在轿车整车上,仅用八个通讯节点就代替繁 杂的线柬,轻松实现了全车数据共事,现就轿车的车载网络系统作一简要介绍。 2.I轿车身控制系统的拓扑结构与介绍 轿车车身系统的控制对象有:4扇门锁、四个车窗玻璃升降器、行李箱锁、除霜 加热器、电动后视镜.前后大灯、小灯、转向灯、危险灯、雾灯、牌照灯、车内阅读 灯、车厢顶灯等.轿车车身ECU分布情况见图2--I。在具备遥控功能的情况下,还
左、右门ECU

\Yg.:RECU
图2-l轿车车身Ecu分布情R

包括对遥控信号的接收处理和肪盗系统的控制。 车身系统控制单元按位置采用八个控制单元组成了车身CAN总线控制网络


(图中虚线为待扩展ECU),为左前门节点,右前门节点,左后门节点,右后门 节点,车身前节点,车身后节点,仪表节点,主节点。CAN总线拓扑结构下图
2—2所示。

图2—2轿车CAN总线拓扑结构

2.2轿车车身控制系统的各节点的功能概述
左/右门节点检测与控制对象有:集控锁的位置检测与控制,电动后视镜上

/T、左/右电机的正反向驱动控制,电动车窗玻璃上/下电机的正反向驱动控制, 侧方向灯闪烁驱动控制,各自门锁控制开关及玻璃升降开关位置检测,除以上 左右门均‘有的检测与控制对象外,左前门上还有右前门车窗玻璃点动/自动控制 开关、左右电动后视镜上/下、左/右控制开关位置检测。各个控制对象的故障
检测和处理。

前节点对前大灯、前小灯、前雾灯、前转向灯、冷却风扇电机、前雨刮器 电机等对象的控制、驱动、故障检测及对少量开关量的检测和处理。
后节点对后小灯,后雾灯,后转向灯,制动灯,倒车灯,牌照灯,车厢顶 各灯、行李箱锁以及除霜加热器等对象的控制、驱动、故障检测及少量开关量 的检测和处理。

主节点是整个车身控制系统的中枢,负责和其它各个节点进行数据通讯并 作消息处理。各子节点将检测到的各种量如开关量和模拟量,处理后打包成含 有各种所需信息的报文即消息发送给主节点,主节点根据报文所含的信息作 相应处理包括逻辑关系处理后再打包成消息发送给子节点执行。CAN总线通讯
采用广播模式,即子节点的报文只有主节点接收(点对点模式),主节点的报文

所有子节点均接收,通讯协议就是根据这个机制定义的。主节点除了作为系统 的中枢功能外,还和其他节点一样负责对汽车驾驶台前所有开关的状态进行检 测,并对驾驶台的所有背光灯(如开关、仪表等)进行PWM调光驱动。 仪表节点:该节点不参与汽车车身控制但它是人与车交流的界面,可记录
车辆基本信息、测量运行数据。具体功能如下:

1.数字仪表可以直观地指示方向灯,前后雾灯的运行情况,还可以清楚地 看到用步进电机驱动的各传感器产生的脉冲量(由发动机转速传感器、车轮转速


传感器产生)和模拟量(由油量传感器、水温传感器产生)所对应的物理量如转
速、行程、水温、油量等变化情况。

2.数字仪表的液晶显示屏可中文显示整个车身控制系统运行的相关信息 及各种提示和故障报警信息。 3.仪表节点可记录车辆基本信息、车辆运行数据,对汽车总体运行情况统 计记录,还起到汽车行驶记录仪的作用。 4.故障诊断和保护功能。及时反映各负载的故障信息(包括保险丝断路、负 载断路短路故障等),提醒用户及时处理故障部件,并对故障部件进行保护,减 小事故发生率。
5.具有语音提示功能,及时提醒用户车辆行驶状况,提高车辆行驶安全性而且语音提示根据

情况可关闭。

10

第三章CAN总线的应用
3.1现场总线控制在技术层面上的特点和优点 现场总线是80年代诞生,90年代兴起的一种先进的控制技术,它将当今网络通 讯与管理概念引入工业控制领域,从本质上说它是指在生产现场的测量控制设备之间 实现双向串行多节点数字通信、完成测量控制任务的系统。这种开放型的工厂底层控 制网络构造了新一代的网络集成式全分布控制系统,因而又被誉为自控领域的局域 网。它在制造业、流程工业、交通等处的自动化系统中具有广泛的应用前景。 1、传统的模拟式单回路系统的缺陷 70年代中期,工业过程控制仪表由原来的四线制,发展到采用统一的两线制4~ 20mA标准信号,这一标准化工作在一定程度上促进了工业过程控制系统的发展。 4.-一20mA模拟直流回路,只能在一根两芯电缆中单向传输一个参数,不能支持更 高层次的计算机之间的功能操作。随着工业现场控制分布范围日益增广,现场设备与
基于微处理器的控制室自动化设备间待传输的信息量急剧增加。系统中大量的传感

器、执行器和控制器所采用的4"--20mA信号传输标准导致系统中庞大的电缆系统,已 成为控制系统发展的负担和瓶颈。汽车由于其传感器、执行器和控制器的安装空间有
限,加上运动、震动等原因,扩展控制点将变得更加困难。

2、现场总线控制系统优点
现场总线控制系统优点FCS(Fieldbus Control System)是目前世界上最新型的

控制系统,是目前自动化技术中的一个热点。现场总线控制系统的出现,将给自动化 领域带来又一次革命,其深度和广度将超过历史的任何一次,从而开创自动化的新纪
元。

FCS是由集散控制系统DCS(Distributed

Control

System)与可编程逻辑控制

PLC(Programmable Logic Contr01)发展而来,FCS不仅具备DCS与PLC的特点,而且

跨出了革命性的一步。目前,新型的DCS与新型的PLC,都有向对方靠拢的趋势。新 型的DCS已有很强的顺序控制功能;而新型的PLC,在处理闭环控制方面也不差,并
且两者都能组成大型网络,DCS与PLC的适用范围,已有很大的交叉。其功能及特点:

(1)FCS功能下放彻底,信息处理现场化,FCS系统投资起点低,可以边用、边扩、
边投运。

(2)FCS系统是开放式系统,用户可以选择不同厂商、不同品牌的各种设备连入 现场总线。达到最佳的系统集成。 (3)FCS系统是全数字化,就免去了D/A与A/D变换,高集成化高性能,使精度 可以从±0.5%提高到±O.1%。由于通信电缆(双绞线)是所有的节点之间的唯一连接, 在节省大量的电缆(50%-80%)的同时避免了模拟信号传输过程中的干扰,降低了对环 境如接地和电磁干扰的要求,并保证了数据的一致性。 (4)FCS系统可以将PID闭环控制功能装入变送器或执行器中,缩短了控制周期, 目前可以从DCS的每秒2~5次,提高到FCS的每秒10"--20次,从而改善调节性能。

(5)FCS采用全数字化技术,数字智能现场装置发送多变量信息,并且还具备检 测信息差错的功能。FCS采用的是双向数字通信现场总线信号制。因此,它可以对现
场装置(含变送器、执行机构等)进行远方诊断、维护和组态。

(6)FCS由于信息处理现场化,与DCS相比可以省去相当数量的隔离器、端子柜、 I/O终端、I/O卡件、I/O文件及I/O柜,同时也节省了I/O装置及装置室的空间与占
地面积,降低成本。

(7)FCS相对于DCS组态简单,由于结构、性能标准化,便于安装、运行、维护。 目前,国际上较为流行的现场总线产品主要有:CAN、Profibus、LonWorks、FF 等。国际电工技术委员会(IEC)从1985年即开始着手制订国际性的智能化现场设备和

控制室自动化设备之间的通信标准,并将其命名为“Fieldbus”——现场总线。对于
汽车来说,现场总线就是汽车总线。具体到汽车总线的主要优点已在绪论中述及。
3.2

P8xC5.91内置CAN叙述

为使不同厂家生产的零部件能自在同一辆汽车中进行有效、协调的工作, 就必须指定标准。按照ISO有关标准,CAN的网络结构可分为数据链路层和物 理层这两个层次。其拓扑结构则为总线形式,因此也更多地称CAN总线。CAN 总线一般采用双绞线,差分驱动。总线上有两种互补的逻辑:主控电平和隐性 电平。采用时钟同步的方法,如果总线上的两个控制器同时向总线上发送主控 电平和隐性电平,则总线上始终是主控电平。例如采用“线与"方式时,主控 电平可用逻辑“0’’表示,隐性电平则为“l”。
现系统采用的单片机是PHILIPS公司的PSxC591,它组合了P87C554(微控制

器)和SJAl000(独立的CAN控制器)的功能。以其构成汽车环境中强大的本地网络,
这极大地减少了线束并增强了诊断和监控能力。由于拥有内部的CAN控制器,可以

减少因外扩CAN控制器带来的干扰问题。PHILIPS单片机中共有21个CAN寄存 器,其内置CAN的基本特征如下。


CAN2.0B控制器,支持11位标准和29位扩展标识符。 能处理各种类型的帧格式,如数据帧,远程帧,出错帧,过载帧。
通信位速率可达IMbps。

_

?

_

CAN控制器可由单片机直接通过特殊功能寄存器SFR进行寻址访问。 可以分别捕捉每帧消息发送的开始时间或结束时间,也可以捕捉每帧消 息发送成功或接收成功的时间。



_4个中断优先级,15个中断源,可以分别设置对应的标识码和屏蔽码,并
让其分别运行在发送,接收或接收缓存方式并先进先出(FIFO)。
_

功能强大的中断管理系统,有发送中断,接收中断,接收缓存满中断和错误中 断检测。其中错误中断检测包括位填充错误、错误中断、循环冗余码校验CRC
(Cyclic Redundancy Check)错误中断、格式错误中断等。

12

3.3系统的CAN协议

本系统CAN通讯选用CAN2.0B协议的PeliCAN模式,通信位速率为500Kbps, 采用双验收滤波器机制。为使用及修改方便,通讯协议中标识码设计兼容点对点、一 对多及广播通讯模式,如逻辑量消息通讯时,子节点的报文只有主节点接收即点对点 模式,主节点的报文所有子节点均接收即广播模式:模拟量消息通讯时各节点间采用 无主结构,模拟量发送节点发送模拟量消息报文,模拟量接收节点接收即一对多模式, 主节点和仪表节点接收:提示消息通讯采用点对点模式,由主节点或子节点向仪表
节点发送。
3.3.1

CAN通讯的报文格式定义

CAN2。0B协议的PeliCAN模式(EFF)的发送/接收缓冲器(TXB/RXB)被分为
描述符区和数据区,整体布局见图3.1。

.,.—————————,~————————、.,————————————————√、——————————————、
帧 信 息

描述符区


数据区 数 据 字 节


标 识






识 码


数 据 字 节


数 据 字 节


数 据 字 节


数 据 字 节


数 据 字 节


数 据 字 节


数 据 字 节












图3—1报文格式整体布局

1.帧信息’ 说明帧格式SFF(standarded
file

format)或EFF(extended

file

format)、远程帧或数据

帧的数据字节的长度。其中RTR(Remote Transmit Request)J丞程发送请求位,“l”表示 为远程帧;DLC.3"--DLC.0数据长度代码位,“0000"---1000’’表示数据区长度为O~8
个字节,息帧信格式见图3—2。

I BIT7 I 1
2.标识码

BIT6 RTR

BIT5 0

BIT4 0

BIT3 DLC.3

BIT2 DLC.2

BITl DLC.1

BITO DLC.0

图3—2帧信息格式

标识码有29位(ID28----ID0),ID28是最高位,在总线仲裁过程中最先发送 到总线上。标识码就象报文的名字一样,在接收器的验收滤波器中被用到,也 在仲裁过程中决定总线访问的优先级,标识码的值越低,其优先级越高。 标识码l:其格式见图3—3。
I I
BIT7 ID28

l l

BIT6 ID27

l I

BIT5 ID26

l l

BIT4 ID25

I I

BIT3 ID24

I I

BIT2 ID23

I l

BITl ID22

I I

BIT0 ID21

l I

图3—3标识码1格式

标识码l字段在本协议中定义为类名,用以表明此报文为何类消息,见图
3—4。
?


ID27 O O O 0 ID26 O O 0 0 ID25 0 0 0 0 1 l 1 1


ID24 0 0 0 l


ID23 O 0 l 0 ID22 O 1 O 0 ID2l 1 0 O O

ID28

报文意义
命令报文 工作报文 调试报文

下载报文

图3—4标识码1所定义的报文类别

在标识码l字段中,为了今后的扩展方便,ID28设置为l,并且四类报文 的优先级由高到低分别为命令类报文、工作类报文、调试类报文及下载类报文。
标识码2:其格式见图3.5所示。

传送方向设定位
BIT7 ID20 BIT6 IDl 9 BIT5 IDl 8


BIT4 ID l 7

的地址
BIT3 IDl 6 BIT2 ID l 5 BITl IDl4 BIT0 IDl 3

图3—5标识码2格式

标识码2字段在本协议中表明此报文的传送方向(一对多模式),及报文传 送的目的地址(点对点模
式),见图3-5。

标识位
ID20 O l

‘表明传送方向 下行 上行

在标识码2字段中,下 行表明报文的传送方向是 由主节点向其它节点发送;
上行表明报文的传送方向 是由子节点向主节点或仪

图3—6标识码2定义的内容

表节点发送;子节点发送的报文是发送给主节点或仪表节点的,即上行报文, 故子节点发送的报文的1020位为l。子节点只接收主节点或仪表节点发送的报 文,即下行报文,故接收滤波时,过滤器相应位与ID20位与O相关;主节点发 送的报文’是发送给子节点或仪表节点的,即为下行报文,故主节点发送的报文 的ID20位为0。主节点接收子节点或仪表节点发送的报文,即上行报文,故接 收滤波时,过滤器相应位与ID20位与1相关;仪表节点发送的报文是发送给主 节点或子节点的,向主节点发送的报文为上行报文,故发送的报文的1020位为 1。仪表节点向子节点发送的报文为下行报文,故发送的报文的ID20位为0。 仪表节点接收主节点或子节点的报文,即既接收上行报文,也接收下行报文, 故接收滤波时,过滤器相应位与ID20位与无关;节点地址用7位二进制数表示,
11 11 11

l用于广播模式通讯,故系统中最多可扩展1 27个节点,地址为0000000"一

1111110。

标识码3:其格式见图3.7。

标识码3字段在本协议中表明此报文的源地址,即表明此报文是由哪个节
BIT7 IDl2 BIT6 IDl l BIT5 IDl 0 BIT4 ID9 BIT3 ID8 BIT2 lD7 BITl ID6 0 BITO ID5 0







图3—7标识码3格式

点发送的,主要用于故障诊断及处理。

l l

BIT7 ID4

BIT6 lD3

BIT5 ID2

BIT4 IDl

BIT3 lDO

BIT2 0

BITl 0

BITO O

幽3—8标识码4格式

标识码4:其格式见图3.8。
在本协议中,标识码4字段中的ID4"--'ID0五位保留,暂不用。

综上所述,标识码即可用图3-9来反映它的概况。

.塑燧

堡耋穸空.薹孳垡旦墼樊堑
保留

广Jb.,————————————入一一—————————、、.,———————/\—————弋
保留 源地址


图3—9标识码格式概况图

3.数据区

每一帧报文数据区的数据字节数取决于帧信息字段中的数据长度代码(见
帧信息)。数据字节数范围是O~8,编码形式如下: 数据字节数=8XDLC.3+4×DLC.2+2XDLC.1+1
XDLC.0

3.3.2报文的发送与分类 根据系统的实际需要可以把报文分为命令类报文、工作类报文、调试类报 文、下载类报文。现对这四类报文作具体描述。 1.命令类报文 其报文格式图3.10。
命令字节表明此报文的命令内容,其值定义为:00H'"01 H一一保留,02H

一一故障命令,03H一一同步命令,04H一一同步应答命令,05H一一调试操作 命令,06H一一下载操作命令,07H一一工作操作命令。
调试操作命令、下载操作命令和工作操作命令由主控节点(如主节点)根据 当前工作状态确定并发送,用以改变各节点的状态;同步命令由仪表节点以广 播模式向各节点发送,用以实现系统时钟同步及系统自检:同步应答命令用于

系统自检时各节点的应答,由除仪表节点外的其它节点以点对点模式向仪表节
点发送;故障命令表明某节点产生故障,由产生故障的节点向仪表节点和主节 点发送。

2.工作类报文 工作类报文即车身控制报文用以传送状态因子编码,由各子节点以点对点

黟絮警箩警氅登隆类报:义释掌警警臀哩
帧信息(10000110) 标识码1(10000010)

雾篡鬟篡漪褥龚报黧篡塞鬈篡鬟
帧信息(10000011) 标识码l(10000001) 标识码2(传送方向及目的地址) 标识码3(源地址) 标识码4(00000000) 命令字节 命令字节 命令字节
图3—10命令类报文格式

标识码2(传送方向及目的地址) 标识码3(源地址)
标识码4(00000000) 状态因子编码高位字节 状态因子编码低位字节

状态因子编码高位字节
状念因子编码低位字节

状态因子编码高位字节 状态因子编码低位字节
图3—11-r作类报文格式

模式向主节点或由主节点以广播模式向各子节点发送。车身控制报文格式见图
3.11。

3.调试类报文

戴i鬈鬟巍黼群麟篡㈥
帧信息(1000xxxx) 标识码1(10000100)
标识码2(传送方向及目的地址) 标识码3(源地址) 标识码4(00000000)

调试类报文由调试节点如PC 以一对多模式向各节点发送或各节点以点对 点模式向调试节点发送,用以联机对各节点 的在线调试运行。调试类报文格式见图 3.12,其中“X”为任意值,下同。 调试任务可分为:读寄存器、读端口、 读内存、读版本号、写寄存器、写端口、写 内存和车身控制8种操作。 4.下载类报文

1~8个调试数据字节
辨t4拜‘%:∥-、妒,莩K:●。考蛾≯;镑”彰,I伫‘移r“0馈:净oi《孑一o


t’.铣

向各节点发送,用以联机对各节点的在线下 载运行。下载类报文格式见图3.13。 为了确保系统通讯工作的正确,需要对 CAN通讯消息进行确认控制。在系统初始化时
和正常工作期间定时由仪表节点以一对多模式

釜谚赫套巍孤载类报文?i癣≈移节%殇
帧信。g(1 000xxxx)
标识码1(10001000)

标识码2(传送方向及目的地址)
标识码3(源地址)

向主节点和各子节点发送同步命令报文。主节
点和各子节点接收后均以点对点模式向仪表节
16

标识码4(00000000)
1~8个下载数据字节
图3-13下载类报文格式

点发送同步应答命令报文。若在规定时间(20ms)内,若仪表节点没有接收到主节点和 所有子节点的同步应答命令报文,或接收到的应答为故障命令报文,则置系统出错, 报警。同时为了确保系统正常工作时通讯的正确运行,命令类报文和工作类报文中数 据的发送采用在数据区内连续发送三次,而接收采用三取二的原则判断,在下载时采 用和校验。但为了提高下载传送速度,不是在每个报文中均传送和校验,而是分段发
送。

3.3.3验收滤波器的结构与使用 验收滤波器由验收代码寄存器ACRn(Acceptance 屏蔽寄存器AMRn(Acceptance
Mask Register

Code Register n)和验收

n)定义,要接收的报文的位模式在

验收代码寄存器中定义,相应的验收屏蔽寄存器允许定义某些位为“无关"(即 可为任意值)。在验收滤波器的作用下,只有当接收报文中的标识位和验收滤波 器预定义的位值相等时,CAN控制器才允许将已接收的报文存入RXFIFO。 在本协议中,采用双验收滤波器机制。这种配置可以定义两个短滤波器,
寄存器ACRl、ACRO和AMRl、AMRO组成滤波器1,寄存器ACR3、ACR2和AMR3、

AMR2组成滤波器2,两个滤波器都只比较标识码的前两个字节(即标识码1和标 识码2)。一条接收的报文要和两个短滤波器比较来决定是否放入接收缓冲器 中,至少要有一个滤波器表示为“接收",接收的报文才有效,见图3—14。滤



图3一t4验收滤波器逻辑图

波器由验收码寄存器和屏蔽寄存器根据下式来控制:
(ID28~IDI 3)曼(ACRO.7~ACRO.0 ACRl.7~ACRI.0)V(AMRO.7~AMRO.0 AMRl.7~AMRl.0)兰11 1l
1 ll 1l 11 l 1 11 1

接收到的数据会和验收代码寄存器中的值进行逐位比较,接收屏蔽寄存器 定义与比较相关的位的位置,只有收到报文的相应的位与验收代码寄存器相应 的位相同报文才会被接收。 1.主节点验收滤波器
17

滤波器1:


0 1 0 l
xXXxXXx x X x x x X x x X x X Xx X

l l l 00 00 00 00 0O 00 O0 l l 0 0 0O OO

ACRn

AMRn

接收的报文fID28~IDl31

图3一15主节点验收滤波器l

主节。点的滤波器l验收目的地址为主节点地址(1000000)的报文,用于与主 节点进行点对点模式的通讯,见图3.15。
滤波器2:

此字段用于对类名的验收滤波,见图3.16。报文可分为命令类报文、工作 类报文、调试类报文及下载类报文四种,节点允许同时接收命令类报文和工作


2‘洼】 l
xxxxxxx

3 l l l l 1 l l l 00 00 0 000 l l l l l l l 1

ACRn

AMRn

0XXXxXXx l
xxx X XX X

接收的报文(ID28,~IDl 3)

【注】:主节点的滤波器2用于进行广播模式的通讯。
图3—16主节点验收滤波器2

类、调试类、下载类中任一类报文。 当允许同时接收命令类报文和工作类报文时,如图3.1 7所示。


0或2
l 00000xx OO 00 0O 1 l l 0 00 00 0 l

ACRn

报文类型

AMRn

命令类报文 工作类报文

接收的报文(ID28~ID21)

l O 00 00 l 0

图3—17接收命令类报文和工作类报文

当允许同时接收命令类报文和调试类报文时,如图3.1 8所示。




0或2
1 0000xOx

ACRn

报文类型

AMRn

O OO O0 1 O 1
1 00 00 00 l

接收的报文(ID28----.ID21)

命令类报文 调试类报文

l 0O OO l O O

图3.18接收命令类报文和调试类报文

当允许同时接收命令类报文和下载类报文时,如图3.1 9所示。



0或2
l 000xOOx O O00 l 0 0 l 1 000 O0 0 l



ACRn

报文类型

AMRn

命令类报文 下载类报文

接收的报文(ID28,--,ID21)

l 00 0 1 0 OO

图3.19接收命令类报文和下载类报文

2.仪表节点验收滤波器 滤波器l:如图3.20所示。


0注 l
XXxXXxX x

1 l 00 000 l

ACRn

AMRn

0xxxxxxx

l 0000000

1 X X xX XX X X1 O 0 O O O 1 接收的报3:[(ID28"-'IDl3) 注:仪表节点的滤波器l验收目的地址为仪表节点地址 (1 000001)的报文,用于与仪表节点进行点对点模式的通讯。 图3-20仪表节点验收滤波器I

滤波器2:如图3-2所示。


2注 l 0 l
xxxxxxx x

3 l l l l 1 l l

ACRn

AMRn

XxxXXXx X X XX X X X

l 0000000


接收的报文(ID28--一IDl 3)

l l 1 l l l l l

注:仪表节点的滤波器2用于进行广播模式的通讯。具体设置同主 节点验收滤波器。
图3-2l仪表节点验收滤波器2

3.子节点验收滤波器(左前门节点、右前门节点、左后门节点、右后门节点、
前节点、’后节点)

子节点只接收主节点或仪表节点发送的报文,即下行报文,故接收滤波时, 子节点的过滤器相应位与ID20位与0相关。
滤波器1:


0注 l
XXXXXXX



ACRn

0节点地址
00000000

AMRn 接收的报文(ID28-~IDl3、

0xXXxXXX 1
xX x XxX X

0节点地址

图3-22子节点验收滤波器I

注:子节点的滤波器l验收目的地址为子节点地址(分别为1 0001
1001 00、‘1 001 01、1 001 1 0、l 001 1

0、l 0001 l、

1)的报文,用于与主节点或仪表节点进行点对

点模式的通讯,见图3.22。

19

滤波器2:


2注 1
xxxxxxx

3 0 l 1 1 l 1 l l 0 O 0 0 O O 0 0 l l l l l l l

ACRn

AMRn

0xxxxxxx l
xx xx xX x

接收的报文(ID28"-IDl31

图3.23子节点验收滤波器2

子节点的滤波器2用于进行广播模式的通讯,见图3.23。具体设置同主节点验收
滤波器。‘
3.4

PHILIPS的CAN通讯流程 CAN通讯程序分为三部分,第一部分为初始化部分,第二部分为发送驱动

波特率设置 关闭CAN系统中断和定时器中断 CAN进入运行模式



、、—、—/



15消息邮箱初始化完? 是 配置8接收通道完? 否 ①CANPAGE=j<<4(j<8)

(DCANPAGE=i<<4(i<1 5)

②清状态CANCONCH=00h ③CANSTCH;OOh

②设置CANIEI与CANIEI,
使能各通道中断 ①标识符CANIDTI--CANIDT4设置为0 ③清状态CANSTCH=Ox00 (至)CANCONCH=Ox00

②屏蔽码CANIDMI--CANIDM4设置为0

否 初始化八字节CANMSG消息为0 主节点?


CANIDT2最高位是I接受上行数据

CAN|DT3=0x00;CAN[DT4=Ox00

CANIDM I=0x00;CANIDM2=0x80(和

本节点无关的不管)
CANIDM3=0x00,CANIDM4=0x80

娄≮
其它情况I
结束 CAN初始化流程图

—jr_—1、、、丫一一

I是

CANCONCH=0Xd8即设置接收为缓 存模式,扩展帧。8字节数据 CANIDT2最高位是0。接受下行

开系统CAN中断和接收中断使能

图3-24

部分,第三部分为接收报文部分。下面分别是这三者的流程。
CAN初始化流程图如图3-24所示。 其基本思路先让CAN进入初始化模式,分别对15个消息对象通道分别进行

初始化,再进入运行模式,对作为接收的前八个消息通道寄存器按照协议的要 求按节点分别初始化如接收码和屏蔽码,比如可以单独设置哪一或者哪几个通
道接收命令类报文、工作类报文、调试类报文、下载类报文等。考虑到可能一

次性接收的数据可能比较多,防止数据的丢失,因此这8个通道设置为接收缓 存方式,当设置为接收缓存方式,对应的几个通道必须设置相同的标识符和屏
蔽码。

发送消息流程图如图3-25所示。

图3—25

CAN发送消息流程图

主要是对发送数据的通道进行设置,发送主要考虑的是要按照本章第二节 CAN通讯协议规定的要求设置报文的标识符和屏蔽码。在主节点发送给子节点
的消息应是下行消息,各个子节点和仪表节点都要能接收,而子节点发送给主

节点的消息应是上行消息,要能使主节点和仪表节点接收而其它子节点不可接

2l

收。

由于PHILIPS公司的P8xC591的内置CAN具有多种中断珍断功能,因此中 断处理程序要考虑各种中断的处理,但现最关心的是接收中断的处理,而发送
中断也可不予以考虑,在中断处理之前首先考虑是哪个消息对象发出的中断,

再判断是该消息对象的何种类型中断如是接收中断、发送中断还是其它的CAN 中断,并作相应的中断处理。图3-26是这接收中断处理的流程。

图3—26

中断处理流程图

第四章CAN节点的硬件结构和控制电路
4.1

以P8xC591单片机为核心的外围电路 1.P8xC591主要技术参数
车身控制系统的MCU采用PHILIPS公司的P8xC591单片机,其QFP封装的

引脚排列。图如4-1所示。它是一种低功耗、高性能的8位微处理器,它与80C51

图4-1 P8xC591单片机I弓I脚排列豳

单片机的指令集完全兼容。现将其具体特征罗列如下:.
(1)P8xC591的80C51相关特性

?全静态80C51中央处理单元,可提供OTPROM(一次可编程只读存储器One
Time Programmable Read Only

Memory)和无ROM型;

?16K字节内部程序存储器,可外部扩展到64K字节; ?512字节片内数据RAM,可外部扩展到64K字节; ?3个16位定时/计数器TO,TI(标准80c51)署n附加的T2(捕获&比较); ?带6路模拟输入的10位ADC,可选择快速8位ADC: ?2个8位分辨率的脉宽调制输出(PWM): ?作为标准80C51引脚时有32个I/O口;

?带字节方式主和从功能的I 2C(Inter ?片内看门狗定时器T3;
?4个中断优先级,15个中断源; ?全双工增强型UART(Universal

IC

Bus)总线串行I/0口;

Asynchronous Receiver

Transmitter最P通用

异步收发器)串口,带有可编程波特率发生器。
(2)8xC591与CAN相关的特性

△CAN2.0B控制器,支持ll位标准和29位扩展标识符:
△8MHz时钟可实现1Mbit/sCAN总线速率; △64字节接收FIFO; △13字节发送缓冲区:

△增强型PeliCAN内核(取自SJAl000独立CAN2.0B控制器)。 (3)PeliCAN特性


4个独立可配置的筛选器(验收滤波器);

O每个筛选器有32位区分符(32位匹配、32位屏蔽); O每个筛选器的32位屏蔽允许唯一的组寻址; o更高层的协议支持标准CAN格式:最多4个l l位ID筛选器可筛选两个 数据字节,即数据流可通过CAN ID和数据字节内容进行筛选;
o最多8个11位ID筛选器其中半数可筛选第一个数据字节:

O错误代码捕获,仲裁丢失捕获,可读的错误计数器;
O具有内部的CAN控制器,可以减少因外扩CAN控制器带来的干扰问题。 2.外围电路

(1)单片机5V电源电路
CPU的5V电源采用DC/DC转换模块LM2575把12V的蓄电池电源转换为 5V的MCU控制的电源。LM2575的ON/OFF用来和MC33993的WAKE引脚

相连,当外部开关动作时WAKE引脚为低,使LM2575恢复正常工作,当无 开关动作时,LM2575停止工作,从而减少整个节点的损耗,见图4—2。

?

图4—2

5V电源电路

(2)P8xC591单片机的外围CAN驱动器电路图

CAN驱动器采用PHILIP公司的驱动芯片SJAl000,其芯片和高速CAN收发器
24

82C250相兼容,其电路如图4-3所示。 信号在长通讯线中传播时,由于传输线的分布电容和分布电感的影响,信号会在
传输线内部产生正向前进 的电压波和电流波即入射 波;另外,如果传输线的 终端阻抗与传输线的波阻 抗不匹配,那么当入射波

到达终端时,便会引起反
射;同样,反射波到达传

输线始端时,如果始端阻 抗也不匹配,还会引起新 的反射。这种信号的多次
反射现象,使信号波形严
图4—3 CAN驱动电路

重失真和畸变,并且引起干扰脉冲。因此在本系统中为了避免外界干扰的影响,采 用双绞线作为信号线。因双绞线的波阻抗一般在100Q~200Q之间,且绞花越密,波
阻抗越低。在此选择的终端和始端匹配电阻为124Q即R,+凡。 (3)P.8xC591与上位机通讯的电路图
舻5



图4—4单J|.机串行通讯电路

芯片MAX202和MAX232性能一样,用来实现和上位机的串行通讯,在本系 统中主要用来实现ISP在线下载程序的功能,如图4—4所示。
4.2

驱动电路的构成

4.2.1调光和车窗升降电机的驱动的实现 在汽车中需要调光的有背景灯(开关指示灯和仪表盘背景灯)和驾驶室顶 灯,PWM电路采用Motorola功能强大的智能驱动器件MC33486来实现。MC33486
具有以下特征: >其正常时的单路驱动电流为10A,最大峰值电流可达到35A:

>具有过压保护功能,当直流电压超过28V时,可自行关断:
>具有PWM功能,并且其PWM的输入频率可为0~30KHZ:

>对短路,断路,过温具有自动检测功能,并把状态引脚ST拉为低电平:
1)PWM调光电路如图4—5所示。

1r

图4—5

PWM调光电路

因汽车中需要调光的有背景灯(开关指示灯和仪表盘背景灯)和驾驶室顶 灯,其中所有背景灯 负载大约50瓦,驾驶
室顶灯负载也约为
,,

50瓦,其两种驱动负 载的电流各为3安培 左右,设计时考虑裕
量,设输出,。为5安

蔷巾 _丁一t001J.‘I

DS0086S0—18 图4—6

培,上述电路可简化
为图4-6所示电路。 电阻性负载波形如图

PWM调光简化电路

4—7所示。输出电压为:

…”??……?………?(4一1)

%≈‰撬)=‰㈩
设计时.结合式(4—1)

IL

Io



\/

>/K




/\






14n

1.v

Io




选择如下:


璺三宝.巴电感和电容的参数vA


印等,
l≯咐f

卜T一
26

图4—7 P删的电阻性负载波形

D1二极管选用快速恢复二极管:PS600R(6A,50r)或UF600(6A,50V)。其
中厶为要求的输出电流,形。为输入电压,%为输出电压的要求,△%为输出纹 波电压,一般为2~10mV。

c。=锗,‰=呸乎=赞

MC33486对两路具有断路诊断功能,且共用一个状态输出引脚ST,其任何 一路故障都将影响另一路的工作。一方面当第一路的输入控制IN一1为PWM信号, 其输出驱动OUTl作为PWM调光时,若电路中没有电阻R獬和二极管D:m此时相 当于MC33486中的MOSFET驱动一会儿导通一会儿断,其状态引脚ST表现出来 的也是不间断的高低电平交替,同时即使第二路的输入控制IN一2恒为高电平并 且没有断路故障,第一路的PWM也影响其输出,第一路的输出若为灯则光线较 暗,当加上电阻R:。。和二极管D。。时,MC33486则检测出其两路都未开路则正常 工作。另一方面OUTl的断路也影响OUT2的输出。总之,MC33486的输出都不 可断路,若只用一路则另一路要加电阻接地,防止其检测出故障不工作。 2)窗升降电机的驱动电路如图4.8所示。

图4—8

面升降l乜机的驱动电路

MC33486片中含有两个半桥,需外接两个N沟道的MOSFET管形成两个全桥 对车窗升降电机进行正反方向的驱动。 4.2.2‘开关量的检测 汽车中含有大量的开关状态,因此需要对开关量,包括外部开关输入状态、 电路内部驱动芯片的回测状态、继电器驱动回测进行提取和检测,现采用 Motorola公司的MC33993对开关量信号进行提取,见图4—9。现将贴片封装的 MC33993的具体特征罗列如下: >SPO-一SP7:8路可编程为高或低开关量输入检测;SGO---SGl3:14路不可编
27

程的低输入开关量检测; 具有串行外设接口SPI(Serial Peripheral Interface),SPI工作频率小于6MHZ;

可选择湿电流:2.OmA或16.OmA,并能有效地降低开关接触面的腐蚀; 可作为模拟信号的采集,其湿电流:2.OmA或16.OmA,可编程作为恒流源 提供给汽车水温和油位传感器,具体见模拟量电路。

图4--9开关检测电路



一方面,虽然MC33993的设计运行电压范围为5.5V≤VpWR≤26V,其开关 量输入设计的电压范围为一14V到VPwR,且最大为40V,实际此只在输入引脚 的电压和芯片的电压同时升高和下降的情况下才成立,而在引脚的电压高于芯 片的电压时并非如此。试验证明MC33993芯片在输入引脚和电压之间有一个正
向的二极管,当输入引脚的电压与电源的电压差高于此二极管的导通电压时, 将产生很大的短路电流,直至将此引脚烧坏,同时试验也证明在芯片地与输入

引脚之间没有正向二极管,因此当开关输入引脚电压比地低几伏,若编程湿电 流为2mA,则基本不会出现大电流现象。另一方面,为了防止开关触头的腐蚀, 在湿电流编程为2mA的情况下,若MC33993检测引脚上的开关闭合时,其恒流 源先提供16mA的湿电流,当达到16mA且20ms后才自动变为2mA,这就需要 在设计电路时既要考虑到MC33993能产生最大为16mA的湿电流,同时也要保证 其电阻上的压降不影响此芯片能在8V到16V的电压范围内对开关的高电平进行 可靠的检测,MC33993能检测到高电平的最低电压为4V,因而其电阻的阻值为
16mA*R<(8V一4V),得电阻为250 Q,考虑恒流源的内阻影响,其电阻最好取
200

Q。综上所述,为了防止输入引脚被冲击电压烧毁的可能,此电阻不能太小,

同时也要保证MC33993的可靠工作,此电阻不能太大,通过上面计算,在MC33993
的8路可编程开关量输入检测(SPO----SP7)编程为对电源检测时要求加100 Q~

28

200

Q之间的上拉电阻。对电感型负载(如喇叭)而言,除进行续流外,在输入

引脚检测侧还可加磁柱来防止冲击电压的影响和在检测引脚和电源之间再加一 个肖特基二极管与芯片内部的二极管并联防止内部的二极管烧毁。 4.2.3小功率双向电机的驱动 汽车中需要控制的小功率双向器件包括:左门后视镜(上/下;左/右)电机,
右门后视镜(上/下;左/右)电机,左门闭锁器电机,右门闭锁器电机,尾门闭 锁器电机。采用Infineon公司的TLE6208-3G驱动。TLE6208-3G也是一款智能

驱动芯片,具有以下特征:
>每路连续驱动电流为0.6h,峰值为1.2A; >内部有三个半桥,可控
+5V

+5V}12V

N-台电机(正反转): >具有串行外设接口SPI; >具有短路保护及诊断 的功能,同时也具有过
温保护和珍断的功能;

其控制电路如图4-10所示。 4.2.4.前雨刮电机的驱动 汽车控制中前雨刮电机的 驱动包括高速、低速和问隙的
驱动,在停止驱动时,为防止
圈4

影响驾驶员的驾驶,前雨刮电机必须要回位
到视线之外。

考虑到雨刮电机的电流高速时为7A,因此
采用二个继电器控制前雨刮器电机的高速绕

组和低速绕组,Jl控制低速绕组,J2控制高 速绕组,见图4—11;下表为雨刮电机在不同 情况下,继电器J1,J2触点的位置情况,见
图4一12。 状态
Jl J2

原 始 上 ‘上



速 下 下

低 速 下 上

停 止 上 上

不 止 上 下

尢基

图4--ll雨刮电机驱动电路

在低速时,继电器Jl带电动 作,J1常开触点闭合,继电器J2 不带电,J2常闭触点保持原样; 高速时继电器J1带电动作,Jl常

图4一12继电器Jl、J2位置情况

开触点闭合,继电器J2带电,J2常开触点闭合;在停止时继电器J1不带电, J1常闭触点闭合,继电器J2不带电,J2常闭触点保持原样,在没有回位的情

况下,继续运行,若回位时绕组两边都为+12V电压立刻停止。 4.2.5.继电器的驱动

汽车电子中需要控制的超过IOA的大电流驱动设备除前面介绍的前雨刮 电机外还有远光灯(55W,5A),近光灯(55W,5A),前雾灯(55W,5A),前左右水 箱风扇电机,喇叭,若采用大功率芯片驱动,势必会加大成本,且给检修造成 不方便,因此仍然采用继电器控制。继电器的驱动芯片采用Motorola公司的
MC33291,见图4—13。MC33291具有以下的显著优点:

>每片MC33291含有8路输出,每路500mA,峰值电流1.OA;因此不仅 可以驱动继电器也可以直接驱动小的负载。
>具有SPI接口; >具有省电模式,在睡眠

芝享i’其睡眠电流为厂——1二F
25|l A;



r—]5

MC33291当其工作电压较低或
驱动的继电器带大负载时,导致电 压将发生波动,工作会受到影响。

现象是驱动的继电器会乱动作,不 受控制。在图4.13中的限流电阻一 方面可以防止电感型负载(喇叭)在 断开时,其冲击电压造成对负载的
损坏;另一方面可以限制冲击电压
图4—13继电器驱动电路

对状态检测芯片MC33993的损坏。因为,当检测引脚的电压大于芯片的电压时其引 脚电流很大(前面已述及),二极管可起续流作用。电阻Rl和MC33993检测引脚之间
也可以另加一个磁柱防止电压的冲击。

4.2.6小功率器件的驱动 在汽车中有许多小功率器件需要 驱动,如:左右小灯(5W),左右牌照 灯(5W),前清洗电机(1A),后清洗电 机(1A),雨刮电机(1.2A),前后顶灯。
对于这些器件的驱动采用Motorola

公司的MC33286,它也是一款功能强 大的智能芯片,具体特征如下: >结点温度范围: 一40。C~1 50。C:
>运行电压范围: 8V~40V;
图4一14小功率器件驱动电路

?=


>单路输出电流为:6A,最大电流限制在30A; >低功耗,在电源电压为14V时,其持续电流109A; >具有开路检测功能; >具有反向电源保护,过温保护,对地短路保护功能;

其电路如图4.14所示。当MC33286正常工作时,其状态引脚为高电平且内部钳位 在6V,但当外部为开路、断路、短路、过温故障时,其对应的状态引脚变为低电平。
当驱动直流小功率单向电机如前后清洗电机、雨刮电机时,由于电刷的影响,实际上 其状态ST引脚为周期随负载变化而变化的脉冲信号。根据MC33286的资料,Vb砒与Vou。

之间场效应管的电阻Rdson为35mQ,两者电压差低于12mV即其电流约为12mV/35
mD=400mA时,芯片内部电路就会检测认为开路并把STl下拉为低电平。因STl在清 洗电机时工作的最大的低电平脉宽约为1509s,解决办法在电源和STl之间加滤波而不

可在STl和地之间加滤波,防止通电时的瞬间冲击产生低电平,并且检测STl引脚的 MC3393的SGl要去掉恒流源,最主要是考虑放电时间T=R2Cl>150ps耳P可。 4.3模拟量 在轿车中,经AD转换的模拟量共有四个量:水温、油位、灯光调节、间歇
调节。


4.3.1模拟量调理电路 1.P8xC591单片机模拟量参考电压的设计
vcc;+5V

+5V,可能带有高次谐波等干扰,通过相同的电阻

图五5

A/D转换参考电压电路

分压得到+2.5V的参考电压,此法可以用在对检 测要求不高的场合。第二种是考虑到若+5V电源发生波动,则吃,不为2.5V,
从而引起A/D转换误差,为了提高精度,我们采用TL431基准电压源提供A/D

转换所需的基准电压,其电路如图4-16所示。第三种方案通过MC33993实现, 在随后的水温和油位传感器调理电路中再进行阐述。 P8xC591的ADC分为普通(8位)和精密(10位),以精密档为例,当A/0输 入大于等于圪,时,转换值为3FF:当ADC。。小于等于OV时,转换值为000;两 者之间是线性对应关系即表达式为:

VAL=办exl(Voc,7’/yk盯)×1024]……一…?“……………………?…(4—2)

2.水温和油位传感器的调理电路

1)方案一:油位传感器的阻值上限为120 Q(油空实际在105 Q左右)。水温 传感器的阻值上限为2-2.5K Q:当V。。大于2.5V时A/D转换以满值处理。可以
用图4-1 6所示电路进行测量。

圈4一16油位传感器和水温传感器检测电鼯

计算公式:‰,=R。/(120+R。)×5V(油位)…………………………(4—3)
VoⅢ=R。/(2000+R。)×5V(水温)……………………“j…(4—4) 此电路R。,R:分压直接将得到的2.5V信号进入CPU的A/D参考端,传感器

的阻值变化通过R。转化的电压信号经过滤波进入CPU的A/D输入端,避免了电
源的干扰。Cl的计算如下:设传感器信号每秒钟变化10次,为了保持输出信 号的平滑(主要是考虑到很短时间的尖峰脉冲干扰),取时间常数(3~5),

乒1/10。而f.--(R

4+尺3)



l,带入数据得Cl=1徊。

2)方案二:多路开关量检测芯片MC33993是Motorola公司的一款功能强大
的芯片,除可作为22路开关量检测外,还可检测达22路的模拟量。如将上图

MC33993的SGl2和SGl3编程为高阻态,根据实际情况选择使用2.OmA或16.OmA 的上拉电流源,并根据不同单片机的参考电压不同,可适当地选择SGl 3输入端 的电阻(精密电阻)R:来固定作为MCU的A/D参考电压。如P8xC591的参考电压
为2.5V,选择精确电阻R:的值为1.2~1.5K Q,就可以把参考电压VⅢ固定在

2.4~3.OV,而Mororola单片机的参考电压为5V,选择精确电阻R。值为2.5K Q 左右,就可以把参考电压VⅢ固定在5V。模拟量SGl2输入端上传感器电阻R。 输出通过设置MC33993的寄存器进行选通,使得R。阻值信号的变化引起AMUX 端(22路选1)的电压信号的同步线性变化,在经RC滤波保护环节输入到MCU 的ADC转换引脚。 水温和油位传感器经过同一ECU接口引入前、后节点板,板上各有一片 MC33993,每个通道只能选择16或2mA的湿性电流,既不能湿性电流叠加,只 能二者选其一,也不能两路并联作模拟量,因为AMUX只能输出某一通道电压的 变化。水温传感器的电阻最大值2.5K Q,实际约在2.2K Q,因此将SGI 2上拉

32

电流编程为2mA则根据VM=O.002R。,AMUX端的 最大输出电压为5V,超过P8xC591的A/D参考电 压Vrer=2.4~3V,因此AMUX输出端要1/2分压,使

其最大值略小于2.5V;油位传感器电阻约为
120

Q,将SGl2上拉湿电流编程为1 6mA,则V。。,

=O.016R,,AMUX端的最大输出电压为1.92V。符合 要求,也就是两个传感器的电压信号接到CPU的 A/D口,一路分压,~路不分压,分别用来检测水温 和油位信号,其分压电路如图4—1 7所示。数据处
理方法如下:
图4一17水温传感器 检测分胝电路

油位传感器
水温传感器

%厅=0.016x R.(%.7单位为V,R。单位为Q)………………(4-5) 圪盯=0,002x R,xI/2(Vo。.单位为y,尺,单位为Q)…………(4-6)

两者均为R—V线性关系,其中自变量是电压,应变量是温度和油量。
3.灯光调节和前雨刮间歇调节的调理电路

油位传感器的信号采集的调理电路方案一,经改进后还可作为前 雨刮器间歇调节(其可变电阻为5lK)以及灯光调节(其可变电阻为10K)的模拟量采集 电路,其调理电路如图4.18所示。

上面进行水温、

爷扣
灯晃调节 需用分段线性法处理。

Dl

0.7v

擎#二
前雨刮向歇调节

D1

0’7丫

.==t=

图4一18灯光调节和前雨刮问隙调节检测电路

灯光调节和前雨刮间歇调节采用上述方法采集信号必然导致输入输出为非线性,

4.3.2模拟量检测与计算 模拟量信号的输入控制采用定时采样控制,根据输入模拟量的不同特性, 采用不同的采样周期。由于油位和水温等模拟量输入信号变化较缓,故采样周 期取ls,而前雨刮器间歇调节输入和调光开关输入信号等变化较快,故采样周 期取60ms。以下是模拟量检测的步骤。 1)采样一根据模拟量不同,选择不同方式读入该模拟量;采样是对模拟量 输入信号进行离散化操作。

2)滤波方式选择一数字滤波是为了滤除输入信号中混杂的干扰信号。每次 采样时,对采样值进行一次数字滤波。数字滤波的方法有算术平均值滤波法、
中值滤波法和中值平均滤波法。为了满足模拟量处理中数字滤波处理的需要,

程序控制中保存本次及前4次采样的5次采样值。算术平均值滤波法是将本次 及前4次采样的5次采样值x。、X。、…、X。的算术平均值作为本次采样的滤波

值,即滤波值=洳;中值滤波法是取本次及前4次采样的5次采样值x,、x。、…、
X。的中间值作为本次采样的滤波值;中值平均滤波法是将本次及前4次采样的 5次采样值X。、X:、…、X;中的最大的和最小的采样值去掉,用剩下的3次采样 值取算术平均值作为本次采样的滤波值。中值平均滤波法既能滤除脉冲干扰, 又能平滑滤波,即其对于快、慢干扰均有效果。模拟量不同,滤波方法也不同, 可以通过调用不同的函数来实现。在实际中对某输入模拟量进行处理过程中, 可通过查询预先设置在对应的输入模拟量参数配置表中相应参数,采用相应的
数字滤波方法。 3)数据修正

数据修正是为了修正由于元器件参数或特性的变化如传感器的更换、元器 件参数的差别等而引起的模拟量输入值的偏差。模拟量输入值的偏差可分为斜 率偏差和截距偏差,因此可通过斜率修正值和截距修正值进行数据修正,修正 值=输入模拟量滤波值X斜率修正值+截距修正值。斜率修正值和截距修正值 可以设置在对应的输入模拟量参数配置表中。高端表示时,斜率修正值和截距 修正值以相应的计算值表示。低端表示时,斜率修正值和截距修正值以实数型 的相应二进制数值表示,这是由PC机转换程序完成。 4)线性化处理(转换算法选择) 模拟量转换成工程量的方法,可以有线性映射(y=aX+b)、非线性均匀映射 (输入值X被等间隔分为8段,在每段内输出Y=kX)等,也可用其他函数实现, 用编号来选择。由于工程量可能是小数或大于255,而本系统的软件框架中规 定了模拟量数值只用一个字节表示。为此需把工程量除以一个值称为当量使得 其数在0~255之间。一般来说,对于输入,用检测值经转换后得到的数值除以 当量,得传输工程量;对于输出,用传输工程量乘当量,得输出工程量。 拐点在模拟量转换为工程量操作时使用。它是电压一工程量关系曲线的分段 逼近拐点。设X轴为检测到的电压v,.羽。 值,Y轴为对应的工程量,画出关 系曲线,见图4—19:把X轴平分
为8段,对应的Y坐标就是这9 个拐点值。由于拐点值有可能是小
图4-19模拟量与工程量关系曲线 拐点6 拐点l (检测值)

数或大于255,为此把工程值除以 当量值,以确保用8位(1个字节)表示工程量。高端填表时以工程值表示。低

34

端以工程值除以当量值后的传输工程值表示,这由PC机转换程序完成。 线性化处理是为了消除输入信号的非线性,输入模拟量可根据采样值和拐 点值及相.应的参数值线性化,并求出对应的模拟量的传输量值。 输入模拟量线性化算法采用8段线性逼近法,见图4-20。图中纵坐标为模 拟量的传输量值(8位二进制数0--一255),横坐标为模拟量的采样值(10位A/D 转换值0~1023),将纵坐标的传输量等间隔分为8段,对应的横坐标值为拐点
值。

Y(传输童
25

等分为8段12




3 0

拐点l

拐点2拐点3

拐点4…拐点9

x(采样值)

图4-20模拟量线性化处理方法示意图一

在每段内,采用直线对曲线进行线性化,见图4-21。 上图中蓝色线条为输入模拟量在j(j=1~8)段内的曲线,对应的拐点为i 和i+1点,红色线条为在此段内的线性化直线。

5)逻辑状态生成及处理
传输量 闭值n+1 变化 阈值n 状态 图4—22传输量由小向大变化时 状态值确定示意图 ~D转换流程 回滞


回滞

)回滞

)同滞 态n+l 图4-23传输量由大向小变化时 状态值确定示意

状态值处理是根据阈值
或阈值减回滞值确定模拟 量关联逻辑量的状态值。模 拟量在一定阈值范围内时

,’__。。。。。。。。。’。1。’’’’。‘‘、

I Nms定时中断I

查输入模拟量参数配置表 的U类、口号和位号值 根据所查的参数值启动相 应的通道A/D转换 启动限时定时


产生一个逻辑量状态值参 加逻辑运算,逻辑量状态值 最多为7个(1---7)。设定6 个阈值,将阈值按从大到小 的顺序与模拟量输入的输 出传输量进行比较,若输出 传输量高于某阈值(传输量
产生由小向大的变化)(见


~A/D转换结窭!二:>. —\_——,一

磊盖丽?竺


保存ⅣD采样值k—一
A/D通道的采样值处理


限时到?


图4.22)或低于某阈值一回 滞值(传输量产生由大向小 的变化)(见图4.23),则得到 相应的模拟量关联逻辑量 的状态值,否则状态值不 变,只要确定一个状态值就

\。/ l


故障处理

通道采样结束?

图4—24




A/D转换步骤流程

不再比较下面的阈值或阈值一回滞值。当得到一个状态值后,构造逻辑量引脚 因子,传到转换邮箱。构造的逻辑量与一般逻辑量一样参加逻辑运算。其步骤
及流程参,见图4.24和图4—25。。 6)状态值的转换和处理

状态值的转换和处理是指将得到的模拟量关联逻辑量的状态值,经转换层 得到对应韵逻辑量输出,并由相应的输出端口输出控制(输入输出同节点),或 经转换层得到输入逻辑量因子编码(输入输出不同节点),由CAN总线发送至相
应节点进行处理。

36

7)传输量的转换和处理传输量的转换和处理是指模拟量输入传输量经转换

层得模拟量输出传输量(输入输出同节点),或对模拟量输入传输量经转换层得 输入模拟量因子编码(输入输出不同节点)由CAN总线发送至相应节点进行处
理。 8)模拟量输出控制
A/D通道的采样处理流程

图4--25模拟量采集步骤流程

模拟量输出控制是根据输出当量和输出截距,将由转换层得到的模拟量输 出传输量转换成模拟量输出工程量,由相应的模拟量输出端口控制模拟量输出。 模拟量输出工程量=模拟量输出传输量×输出当量+输出截距 9)模拟量输出条件:当符合下述条件之一发送,即①工程量变化大于回滞:
37

②逻辑状态变化;③刷新时间到。逻辑状态的发送是通过生成的逻辑状态,作 为引脚因子交转换任务,是否发送由转换式确定。若在调试维护状态下,则转 换邮箱中的每一条消息不论是模拟量或逻辑量的都发送到CAN总线。 4.3.3各模拟量的计算 1)水温的算法
计算:水温传感器是一个热电阻,根据分析得到水温T(oC)与阻值RT的函 数表达式为:Rr=1300em0357’。调理电路采用MC33993的16mA的恒流源,则 AD转换器的输入电压V与电阻RT之间的关系是V=0.01 6幸RT?1/2(分压),

单位是伏特,即 V=10.4e-0.035T...…………??………………………….?…?.?…??f4.10)
’ ●

或T=一28.61n(V/1 0.4)……………………………………………(4.11) 其中e=2.71828,试验数据如表4.1。
表4--l水温与基准电阻的关系

水温(oC) 基准电阻(Q) AD输入电压
(V)
R'r

55 1 85 1.48 189.6

80 75.8 0.6064 79.05

120 23 0.184 29.5

l 35 l 5.6 O.1248 11.5

采样周期:lS,滤波方法选择中值平均滤波法。
当量与截距:因水温的测量范围为55~l 35℃,考虑一定余地取范围为50"-"
表4--2水温AD输…数值与AD电压的关系



纵坐标8 等分传输值
31 63 95 127 l 59 1 9l 223 255

温度值T(度)

传输值×当量
+截距
60.85 72.05 83.25 94.45 105.65 116.85 128.05 139.25

拐点 电阻值
l 55 1 04 70 48 32 22 15 lO

按公式计算的 参考电阻
Rt=G幸I 154.527109 104.4146032 70.55337697 47.67320707 32.21298214 2 1.76644456 14.70767613 9.93803727

AD输入 AD输出 电压 (阈值)
1.24 0.832 0.56 0.384 0.256 O.176 O.1 2 O.08 507 340 229 l 57 1 04 72 49 32

140℃,跨度90℃,用一个字节表示,当量为90/256=0.35 1 5625,取当量值为 O.35,截距为50"(2,55度的传输量为14,135度的传输量为242。误差在55 度时误差为.0.1℃,135度时误差为.O.3℃,参见表4-2。
拐点: AD输出数值与AD电压的关系:

FAL=hex(Fo泖/‰×1024)…………………………………………(4-12)
阈值、回滞与刷新:两个状态,状态l水温正常,状态2水温高,阈值设
38

定在135度,>1 35报警。回滞10度,约在1 25度上报水温正常。刷新间隔选 择为不刷新,当水温变化10度时上报。 2)油位的算法

计算:燃油表的指示只分为五档(空,二标,1/2,三标,满),所以只要提 供自空到满的幅值指标即可,即把传感器的104 Q~5 Q的阻值范围变化转换成

电压范围变化。油位h(mm)与阻值Rh(Q)的函数表达式为:R^=120.9em们7¨,调
理电路MC33993的16mA采用恒流源,AD转换器的输入电压与电阻之间的关系
是V=0.016*Rh单位是伏特。即 V=1.9344(-0?01746……………………………………………………(4.1 3') 或h=-57.5ln(V/1.9344)……………………………………………(4一14)
表4--3油位与基准电压的关系

油位(oC) 基准电阻 (Q)


l 04 1.664 8.6

l/4 80 1.28 23.7

1/2 32.5 0.52 75.5

3/4 l3 0.208 128.2


5 O.08 1 83

AD输入电压
(V) 油位(mm)

采样周期:1S,滤波方法选择中值平均滤波法。 当量与截距:油位测量范围8.6~183mm,留有一定余地取5~190mm,跨度 185,用一个字节表示,当量为185/256=0.72265,取当量值为0.72,截距为 5mm,8.6mm的传输量为5,183mm的传输量为247。误差在8.6mm时误差为0,
183mm时误差为一0.16mm,参见表4-4。

拐点:AD输出数值与AD电压的关系

VAL=hex(Vo沂/‰×1024)……………………………………e
表4—4油位AD输}1l数值与AD电压的关系







e(4-1 5)

纵坐标8 油位值T(mm) 等分 传输值×当量十 传输值 截距
31 63 95 1 27 l 59 1 9l 223 255 27.32 50.36 73.4 96.44 119.48 142.52 165.56 188.6

拐点 按公式计算的 AD输入电 AD输出 电阻值 参考电阻R=G*I 压 (阈值)
75 50 34 23 l5 10 7 5 75.15824 50.33495457 33.71031109 22.5764597l 15.1199000l 10.12609502 6.78 l 645405 4.541801582 1.2 0.8 0.544 0.368 0.24 O.1 6 0.112 0.08 491 327 222 l 50 98 65 45 32

阈值、回滞与刷新:两个状态,状态1油位低,状态2油位正常,阈值设
定在10.6mm,回滞2mm,当小于8.6mm报警,在10.6mm报油位正常。刷新I’白J隔

选择为不刷新,当油位变化2mm时上报。回滞的选择,希望能反映l升油的变
39

化。



3)灯光调节的算法 轿车车中,灯光调节电位器是一个10K的可变电阻,其调理测量电路上臂
电阻为10K的固定电阻。当可调电阻从0~10K调整时,电压0~2.5V,经10

位AD转换后,数值为0~3FF。灯光调节: %w=5


Rz/00+RⅣ)(圪沂单位为V,只J单位为K

Q)……………(4—1 6)

灯光调节的作用原理是,改变电位器的阻值,经转换式处理后,改变PWM
输出的占空比。目前由于不知道占空比与主观亮度感觉的关系,暂定占空比从 1/8到1可调。即电压0~2.5V,占空比1/8~1。 4)间歇调节

间歇调节电阻在0~51K间可变,按照设计,测量电路上臂电阻为51K固 定电阻,故AD转换的输入电压值为O~2.5V。间歇调节:
Vo£厅=51


Rx/(51+RⅣ)(%w单位为V,Rx单位为K

Q)…………(4—1 7)

间歇调节的原理是,改变电阻值,经过转换式处理后,改变转换式中的可 变延时时间,使得雨刷电机间隔一个可变的时间后,再次启动。因为没有确切 的数据说明在轿车车中前雨刮器在间歇档的速度或间隔,暂定间歇时间最快2
秒,最慢8秒。即电压0~2.5V,可变时间2~8秒。 5)电流回测 需要电流回测的设备包括车窗升降电机、方向灯、小灯、倒车灯,而其对

应的驱动芯片为BTS640和MC33486。BTS640的电流回测端的输出电流I S是输 出总电流的1/5000,MC33486的电流回测端的输出电流是输出总电流的1/3700。
MC33486其取样电阻R的选择,要求在J下常工作时I(normal)半R/3700≤lV,在 发生故障时要求I(max)水R/3700≥2V,其中I(normal)为负载电流的正常工作

值,I(ma-x)为负载发生短路或者过载时的设定电流。经过计算对车窗升降电机
而言,I(normal)=5A,R=750 Q,其余类推。

4.4脉冲量 脉冲量调理包括对发动机转速传感器和车速里程传感器信号的检测和处 理。在轿车中,需要测量的脉冲量有三个,一是转速,二是车速,三是里程。 4.4.1脉冲调理电路
常见的脉冲整形电路如图 4.26所示。其中IN4733A为稳压 管(4.7V,0.25W),考虑RC=10~S,
74HCl4

电路最大输入频率300Hz,因此 满足要求.,电容改为0.047uF或 0.022uF更好。IN4733A主要是

10K;1lu柝F
C 0.





l刈




||

oH4733A I



图4—26脉冲采集电路

防止强电压对非门的冲击。 4.4.2脉冲量测量 1)P8xC591单片机的PCA(可编程计数阵列)的使用’ 在P8xC59l单片机上的可编程计数器阵列是个特殊的1 6位定时器,有五个 16位捕捉/比较模块和定时器连接在一起,每个模块可被编程在下列四种模式 下工作:上升AND/OR下降沿捕捉、软件定时器、高速输出、脉冲调制,因此利用 PCA通道可以分别实现转速脉冲测量与PWbl调光功能,同时PCA五个模块是用公 用同一个计数源,并可编程为E例/6、E删/2、T0的溢出或由ECI管脚P1.2输

入的脉冲作为计数源,其中%。的频率由P8xC591单片机中的CKCON寄存器的X2
位、PCAX2位和CMOD寄存器中的CPSl、CPSO位共同决定,其关系见表4-5。因 此PCA定时器计数源的设定要综合考虑测量周期的准确性和PWM的输出频率限
制。
表4—5工作模式与PCA节拍时间的关系 CPS F呢A 12MHz l 0 0 0 CPS 0 0 O O 1 0 1

X2

PCAX2 O

晶振是否分频 否 是 是

PCA节拍时 间 1/2ps
1/6ps
1 gs

1(X2模 式) 0(STD 模式)



6MHz


O 0

l/31_Ls
1 gs

X(任 意值)

6MHZ

1/3ps

在系统上电初始化时X2为0,系统的CPU和所有外设包括定时器TO"--T2¥口PCA 定时/计数器等的时钟都运行在STD方式。 2)下面给出P8xC591的发动机转速脉冲、车速脉冲频率及精度计算方案 由于转速、车速其被测信号是O~267Hz间的信号频率,频率较低,实际发 动机转速脉冲的频率范围为0~267Hz,车速脉冲频率范围为0~120Hz,因此, 为获得较为准确的结果,可分别选用P8xC59l单片机PCA的一个模块工作在捕 捉模式下,采用测周期的方法,即通过计算两个输入脉冲上升沿或下降沿之间 的时间间隔得出其频率,同时在留有一定裕量考虑系统的脉冲的频率范围应为
0.1~300Hz外,在针对计算的正确性时,应让PCA定时器溢出的时间尽可能长。

综上所述系统应该工作在STD模式下并设置PCA定时器的计数源的频率为

矗.。/6,此时PCA定时器每递增或递减一次的节拍为lus,溢出最大时间间隔
为65536XlUS=65.536ms。无论是发动机转速脉冲还是车速脉冲,当其脉冲的 频率为0.1HZ时, 根据上述计数源的要求,PCA定时器最多有153次溢出,这 也是系统的最大溢出次数。当频率最高为300Hz时,PCA定时器在每个脉冲周 期中将产生3333±1个节拍,其测量误差为3/10000,这也是系统的最大测量 误差,可以满足系统的检测要求。在计算脉冲个数方面,主要对车速脉冲进行
4I

计数,然后根据脉冲个数计算里程.因此对于整形过后的车速脉冲信号,为了 计算其频率和里程,其程序要同时兼顾计数和计时两种方式,而对发动机转速
脉冲只要采用计时方式即可。

4.4.3脉冲信号算法


1.发动机转速传感器 计算;其传感器输出的转速脉冲信号幅值为8V左右,占空比约为50%,除

了频率外,幅值占空比基本不随转速变化。根据维修手册以及实测均得出,发 动机每转一圈传感器发出两个脉冲,所以转速(圪)与转速传感器脉冲频率(f)的 对应关系是线性关系即:脉冲频率f(Hz)=转速■(rpm)×2/60。在低速l 500rpm 对应50Hz,在高速6000rpm时对应200Hz。因为转速表的示值为O’8000rpm,也 就是说信号的频率变化范围约为0~270Hz。为了保证转速值转换误差<10rpm,
频率测量精度要达到小数后两位(266.66*30=7999.8)。当量取32rpm,则最大 255可表示8 160rpm。回滞取3个脉冲,转速变化约1 OOrpm。刷新问隔为中,
表4--6脉冲信号与发动机转速的关系

参数描述
测量方法 转换方法与公式 参数k=fosc*a/b/当量 转换参数c 阈值l 阈值2

转速(rpm) PCA测周期
l 1875000 0 900 2000 3000 6000 |

状态

原因

1 2 3 4

低于900发动机处于怠速态

阈值3
阈值4 阈值5 阈值6

低于2000,应减档 高于3000,应加档



参见表4-6。 2.车速传感器

计算.:其输出的脉冲信号幅值为1 2V左右,占空比50%。除了频率之外, 幅值占空比不随转速变化。根据维修手册只得出车速和频率是过零点的直线关 系,并且通过实际检测可得车速(v)与传感器信号频率(f)成正比关系即: v/f=3[2,面板的示值为O~180km/h,所以车速信号的频率变化范围:O~120Hz。 在频率测量精度达到小数后两位,车速转换误差<0.1km/h。当量取1Km,最大 可表示255km/h。回滞取5,即车速变化5Km。刷新间隔取其中间值,参见表4—7。
3.行驶里程

计算:可以根据车速换算得到,在测量车速时,30Km/h对应传感器输出频

42

率为20Hz,定速行驶-d,时里程为30Km,计数得到的脉冲数是3600(秒)*20(Hz,
每秒脉冲数)=72000个,可知每米会测得72000/30000=2.4个脉冲,每1 00 米计数得240个,即累计计数240个折合100米。当量取100米。回滞为10, 一公里发一次。刷新间隔为中。

处理:对于PCA中断,当中断源是车速脉冲时,除测量频率外,为了计算里 程还得对中断次数计数,当计数值240时,计数值清零,并且里程计数加1对 应于100米。车速与里程数据来自同一个数据,且里程量为累计量,采用数据 以250为模方式传送,收到的数据与前一次收到的数据的差值就是变化量,若 前一次收到的值200,本次收到的值245,则变化量为45,若前一次收到的值 为245,本次收到的值为255,则变化量为10。里程计数用一个字符型数,累 计到250时清零。在底层节点,对中断次数计数的计数器在关闭系统时,累计
表4--7脉冲信号与车速的关系

参数描述 测量方法 转换方法与公式 k=fosc*a/b*当量 转换参数c 阈值l 阂值2 阈值3 阈值4 阈值5 阈值6

车速:km/h PCA测量
1 3x106 O 20 80 l 20 l 60 1 80 |

状态

原因

1 2 3 4

低于20,低速状态
80经济速,一级公路限速 高速达高速公路速度限制 超高速 达到车速极限

的尾数及最后一次上传的值应该能自动保存。当汽车从运行到停车时要把RAM 中的计数脉冲值(定义在RAM中的变量)存入专用专用内存(如EEPROM),里程是 个累计量就需要有一个专用内存存放上次累计计数的余数和最后一次上传的 值,当汽车从停止到开始运行时,新的脉冲将在原存放的余数上开始累积计数, 达到120个,数码值增1并发送。从运行到停车的判断依据是节点的休眠。当 节点启动自检时,把EEPROM中的计数值取出存入RAM中。把转存功能写成两个 函数,供休眠和自检时调用。 注:上表中转换方法为0时,表示测量方法为计数方式,转换参数C表示 计数多少次相当于一个当量。转换方法为1时,表示测量方法为PCA测周期并 且转换公式Y=k/Count+C。

43

第五章系统的软件框架
CAN总线的三层结构模型为:物理层、数据链路层和应用层。其中物理层和数据
链路层的功能由SJAl000完成,系统的开发主要在应用层软件的设计上,它主要由三

个子程序:初始化子程序、发送数据和接收数据子程序。同时,还包括一些数据溢出
中断以及帧出错的处理。 在上一章CAN节点的硬件结构和控制分析研究的基础上,

本章就软件层次、CAN网络接口设计、汇编语言程序在车身控制系统中的应用作如下 分析研究。 5.1软件层次 1.软件层次的划分 根据逻辑表述的层面不同,软件分成三层,各层之间用消息实现联系,即
驱动层、转换层和规则处理层。 (1)驱动层

依据配置表实现实际引脚电平和引脚状态消息之间的对应。驱

动层又可以分为输入驱动模块和输出驱动模块两部分:①输入驱动模块负责把 该模块中与器件相连的MCU I/O口的输入引脚电平状态变化,转换成输入引脚 状态消息发送给转换层,该模块转换时调用输入配置库。②输出驱动模块负责 将该模块从转换层接收到的各输出引脚状态消息,转换成与器件实际相连MCU



嗡入电平变化 输入驱动模块I+——————1 捡△里篁壁

检测式库 输入器件状态消息 规则映射模块 规则式库

响应式库



上输出引脚状态消息

l输出电平变化


图5—1车身电控系统软件架构图

的I/o口引脚电平状态变化,该模块转换时调用输出配置库,该层在与引脚相 关的主单元或子单元运行,参见图5.1。

(2)转换层

依据检测式和响应式实现引脚状态消息与器件状态消息的转

换。转换层可以分为输入转换模块和输出转换模块两部分:①输入转换模块负 责将该模块从驱动层接收的各输入引脚的逻辑状态消息,转换为一个输入器件 状态消息发送给规则层再作进一步转换,或者转换为接口消息送交输出转换模 块进行转换输出,即完成事件的检测任务本模块转换时调用检测式库。②输出 转换模块负责将该模块从规则层接收的输出器件的状态消息或者直接由输入转
换模块来的接口消息转换成输出状态消息发送给驱动层,即完成事件响应任务,



图5-2驱动层的输入驱动模块流程

本模块转换时调用响应式库,该层在与引脚相关的主单元或子单元运行。
45

(3)规则层

依据规则式实现触发消息与响应消息间映射,即完成各种器件

的各种状态之间的转换。该模块也叫规则映射模块。具体而言,它把从输入转 换模块接收的输入器件状态消息映射为输出器件状态消息发送给输出转换模 块,即完成事件处理任务,转换时调用规则式库,该层仅在主单元运行。 系统软件架构图中共三种库表,其中输入配置库和输出配置库为同一种库
表,检测式库和响应式库为同一种库表,响应式库也是一种库表。在整个系统 中,运行规则处理层的节点只有一个,该节点称为主ECU,其它节点称为子

ECU,主ECU的转换层和规则处理层可以直接通讯,而子ECU的转换层和主 ECU规则处理层间的通讯通过CAN来实现,子ECU之间不直接进行消息的交
换,必须通过主ECU联络。 2.各子模块简单流程图

(1)驱动层的输入驱动模块流程(见图5—2) 驱动层的输入驱动模块流程主要是MC33993的中断服务程序,它对输入的
汽车上开关的状态、驱动芯片(MC33486、MC33286等)的工作状态以及继电器驱

动大功率负载(如:近光灯、远光灯、前雾灯等)的回测状态进行处理。在硬件

5—3转换层的逻辑量转换处理任务流程

上把MC33993的INT引脚连接到P8xC591的外部中断0(INT0)的输入引脚。

(2)转换层的转换处理任务流程
转换处理任务流程包括输入转换模块和输出转换模块的处理流程,实际上

就是对模拟量和逻辑量的处理过程,首先判断是否逻辑量并保存到变量中,再 调用相应的过程。 ①逻辑量的处理(见图5.3):基本思路是首先找到输入编号与消息编号相同 的规则,然后判断该规则是否满足,考虑篇幅有限,下面只给出搜索转换库处 理逻辑量的总流程图。 ②模拟量的处理(见图5.4):目前处理的主要是赋值,赋值前可能存在逻

图5—4转换层的模拟量转换处理任务流程

辑条件,基本思路是首先找到输入编号与消息编号相同的规则,然后判断该规 则的逻辑条件是否满足,如成立(无逻辑条件,也认为成立),则赋值。考虑篇 幅有限,下面只给出转换层的模拟量转换处理任务流程图。
(3)规则层的规则处理任务流程(见图5.5)

规则处理任务与转换处理认为类似,也是模拟量和逻辑量的处理定义成两
个过程,首先判断是否逻辑量(保存到变量中),再调用相应的过程。

①逻辑量的处理:基本思路是首先找到输入编号与消息编号相同的规则组,
47

然后对规则组进行处理,考虑篇幅有限,下面只给出搜索规则库处理逻辑量的 总流程图。

图5—5规则层的规则处理任务流程

②模拟量的处理其处理方法与转换部分完全相同,只不过不存在虚拟赋值
的情况。

4.驱动层的输出驱动模块流程(见图5.6) 驱动层的输出驱动模块主要是根据规则处理层发过来的输出引脚消息来 驱动车身控制系统中实际的器件。至于用何种芯片驱动和不仅和引脚消息的信 号类型有关,而且和引脚消息的端口类型相关。 5.2网络接口设计 5.2.1.CAN节点核心器件及其选择 本课题选取PHILIPS公司的P8xC59l单片机带内置SJAl000 CAN控制器,并选 用82C250总线收发器,主要是考虑到SJhl000支持CAN 2.OA/B规约。而82C250可 以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。
48

SJRl000的内部结构如图5-7所示。主要由接口管理逻辑IML、信息缓冲器(含发
送缓冲器TXB和接收缓冲器RXFIFO)、位流处理器BSP、接收过滤器ASP、位时序处理

臣口
图5—6驱动层的输iij驱动模块流程

逻辑BTL、错误管理逻辑EML、内部振荡器及复位电路等构成。IML接收来自CPU的命 令,控制CAN寄存器的寻址并向控制提供中断信息及状态信息。CPU的控制经IML把 要发送的数据写入TXB,TXB中的数据由BSP处理后经BTL输出到CAN BUS。BTL始终 监视CAN+BUS,当检测到有效的信息头“隐性电平一控制电平"的转换时启动接收过 程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤,只有当接收的信息的 识别码与ASP检验相符时,接收信息才最终被写入RXB或RXFIFO中。RXFIFO最多可
以缓存64字节的数据,该数据可被CPU读取。EML负责传递层中调制器的错误管制,

它接收BSP的出错报告,促使BSP和IML进行错误统计。

49

图5.7 SJAl000内部结构

5.2.2

SJAl000的寄存器结构及地址分配

表5—1是工作在BASIC CAN模式下的SJAl000的寄存器结构及地址分配表。CAN 控制器工作模式的设定、数据的发送和接收等都是通过这些寄存器来实现的。时钟分
频寄存器CDR用于设定SJAl000工作于BASIC CAN还是PeliCAN,还用于CLKOUT引脚

输出时钟频率的设定,在上电初始化控制器时必须首先设定;在工作模式下,控制寄
存器CR(Control Register)用于控制CAN控制器的行为,可读可写;命令寄存器CMR 只读写;状态寄存器SR只能读;而IR、验收码寄存器ACR(Acceptance
Code

Register)、

验收屏蔽寄存器AMR(AMR—Acceptance Mask Register)、总线定时寄存器BTR 0/1(Bus
Timing Register

o/1)、输出控制寄存器ocR(Output

Control Register)在工作模

式下读写无意义。通常,在系统初始化时,先使CR.0=1,SJAl000进入复位模式。在 此模式下IR、ACR、AMR、BTRO、BTRl及OCR均可读可写,此时设置相应的初值。当 退出复位模式时,SJAl000即按复位时设定的相应情况工作于工作模式,除非再次使 芯片复位,否则上次设定的值不变。当需要发送信息时,若发送缓冲器空闲,由CPU 控制信息写入TXB,再由CMR控制发送;当接收缓冲器RXFIFO未满且接收信息通过 ASP,则接收到的信息被写入RXFIFO。可通过两种方法读取接收到的信息。一种方法 是,在中断被使能的情况下,由SJAl000向CPU发中断信号,CPU通过SR及IR可以 识别该中断,并读取数据释放接收缓冲器;另一种方法是直接读取SR,查询RXFIFO 的状态,当有信息接收时,读取该信号自并释放接收缓冲器。当接收缓冲器中多条信 息时,当前的信息被读取后,接收缓冲器有效信号会再次有效,通过中断方式或查询

方式可以再次读取信息,查到RXFIFO中的信息被全部读出为止。当RXFIFO已满,如
还有信息被接收,此接收信息不被保存,且发出相应的缓冲器溢出信号供CPU读取处 理。 表5—1 SJAl000的寄存器结构及地址分配表 名 称 寄存器 控制寄存器CR 命令寄存器CMR 状态寄存器SR 地 址
0 1 2 3 4 5 6 7 8 9

名 称

寄存器
TXIDO TXIDI TXDATAl

地 址
10 1 l 12 13 14 15 16 17 18 19

名 称
RDIDO RDIDl

寄存器

地 址
20 21 22 23




RXDATAl RXDATA2

中断寄存器IR
控 制 段

发 送 缓 冲 区

TXDATA2

接收代码寄存器ASR
接收屏蔽寄存器AMR

TXDATA3
TXDATA4 TXDATA5 TXDATA6 TXDATA7 TXDATA8


冲 区
RXDATA7 RXDATA8 28 29
30

位定时寄存器BTRO
位定时寄存器BTRI 输出控制寄存器OCR

测试寄存器R

时钟分频寄 存器CDR

3l

5.2.3

CAN协议通信格式

CAN协议通信格式中有四种帧格式:数据帧、远程帧、出错帧和超载帧。其中数

据帧和远程帧的发送需要在CPU控制下进行,而出错帧和超载帧的发送则是在错误发 生或超载发生时自动进行的。因此人们更关心前两个帧的结构。数据帧结构如图5-8
所示。

。I蝗蕉堕l熊塾垣l蕉壹』堑l垂垂戛二[亟夏至二[药垂j匠]二遁匿嚣:[:

帧问空问—4卜—————————一数据帧——————————————,}?-帧间空间
图5-8数据帧结构





一个完整的数据帧格式,除仲裁场、控制场、数据场外都是CAN控制器发送数
据时自动加上去的,而仲裁场、控制场、数据场则必须由CPU控制给出。用SJAl000

时,写出发送缓冲器的TXIDO、TXIDI即设定了相应的仲裁场和控制场。TXIDO即为仲 裁场的高8位,TXIDI的高3位为仲裁场的低3位,仲裁场共1l位。TXIDl的第5位
是远程发送请求位RTR(Remote Transmit Request),在数据帧中为“0’’:TXIDl低四位

表示数据场所含字节数的多少,称为数据长度代码DLC。RTR与DLC共同构成控制场。 发送的数据组成数据场,最多不超过8个字节。远程帧与数据帧的形式差别在于没有 数据场。除此形式上的差别外,在远程帧中RTR位须置“l”,表示请求数据源节点
向它的目的点(即发送远程帧的节点)发送数据。源节点接收到该帧后,把要发送数据

用数据帧发给目的节点,完成数据请求。CRC场与ACK场都是在低层次上为提高传输 的可靠性而自动进行的。任何帧与帧之间是帧间空间。
5.2.4

CAN总线接口电路

SJAl000在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间 的数据通信。该电路的主要功能是通过CAN总线接收来自上位机的数据进行分析组态 然后下传给下位机的控制电路实现控制功能,当CAN总线接口接收到下位机的上传数 据,SJAl000就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一 帧信息并通过CAN总线上传给上位机进行分析。P8xC591是CAN总线接口电路的核心, 其承担CAN控制器的初始化、CAN的收发控制等任务。CAN总线接口框图见图5-9。

图5-9 5.2.5

CAN总线接口框图

CAN总线接口软件设计

CAN接口通信软件分为3部分:CAN初始化、数据发送、数据接收。CAN初始化主

要是设置CAN的通信参数。需要初始化的CAN控制寄存器有:模式寄存器、时分寄存 器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。值得注意 的是这些寄存器只能在CAN控制器处于复位状态下才可写访问。发送数据程序把数据 存储区中待发送的数据取出,组成信息帧,并将主机的ID地址,填入帧头,然后将 信息帧发送到CAN控制器的发送缓冲区。在接收到主机的发送请求后,发送程序启动 发送命令。信息从CAN控制器发送到总线是由CAN控制器自动完成的。信息从CAN总
线到CAN控制器的接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓

冲区读取信息,并将其存储在数据存储区。 1.CAN控制器SJAl000的初始化程序 SJAl000的初始化程序设计主要是通过对SJAl000的寄存器写入相应的控制字, 从而确定SJAl000的工作方式。有3种工作方式初始化程序:一是上电复位,二是硬 件复位,三是软件复位,即在运行期间给sjA 1000发一个复位请求,置复位请求位 为l。在复位期SJAl000需要初始化的寄存器有:控制寄存器CR或模式寄存器MOD、 时钟分频寄存器CDR、接受代码寄存器ACR、屏蔽寄存器AMR、中断使能寄存器IER、 总线定时寄存器BTR(确定总线速率)、输出控制寄存器OCR(确定TXO、TXl引脚的驱
52

动方式)等。因为这些寄存器仅能在SJAl000复位期间进行写访问,因此在对这些寄 存器初始化前,必须确保系统进入复位状态。在初始化后,须清复位请求位,使SJAl000
返回正常运行状态。SJAl000的初始化子程序设计的流程图如图5-10所示。

进入复位模式


’砹置STAl000为Basic CAN模式


设置节点号ACR及屏蔽寄存器AMR


设置BTR0;BTRl


设置输出控制寄存器OCR


返同当前T作模式

图5.IOCAN控制器初始化流程图

:SJAl000初始化子程序
MOV DPTr,#CR

:控制寄存器CR的地址送DPTR :进入复位模式 :CDR时钟分频寄存器
:选择BASIC CAN模式、时钟不输出

MOV A,#01H MOVX@DPTR,A
MOV DPTR.#CDR MOV A,#OOH MOVX@DPTR,A MOV A,#NODECODE MOVX@DPTR,A MOVX DPTR。#AMR

:节点号NODECODE写入ACR

MOV A,#OOH

MOV@DPTR,A
MOV DPTR,#BTRO MOV A,#85H MOVX@DPTR,A MOV DPTR,#BTRl

:AMR置为0,当且仅当RXIDO=ACR时接收数据。 :设定总线时序寄存器BTRO,系统采用12MHz晶振 ;分频后总线时钟频率为2MHz :同步跳转宽度为3tscl :设定总线时序寄存器BTRI :位同步时间为1个tscl,采样开始位置TSEGI=5tscl :TSEG2=4tscl,每一位时间lOtscl(200kHz),每位采样3次 :设置输出控制寄存器
53

MOV A,#OB4H MOVX@DPTR,A
MOV DPTR,#OCR

Mov A,#IAH MOV@DPTR,A MOV DPTR,#CR MOV A,#06H

:数据从TXO按正常输出模式同极性输出 ;TXI不用

:初始化完成,使控制器退出复位模式,进入工作模式工作。

MOV@DPTR,A

2.SJAl000接收数据子程序流程及程序 消息的接收是按照CAN协议规定由CAN控制器SJAl000自动完成的。接收到的消息放 在接收缓存中。准备传送到微处理器消息由状态寄存器的接收缓存状念标志(RBS)或
I入口l
I J


关中断




读中断寄存器

取描述符寄存器的数据信息





置新数标志


开中断


中断返回 图5-1.1接收数据的中断服务子程序流程图

接收中断标志(RI)告知。SJAl000的中断请求或查询SJAl000控制段的状态标志都可以
控制传送过程,子程序流程见图5—1l。 ;SJAl000接收数据子程序
MOV MOV MOVX RO,#RCV_DATA—BUFl DPTR。 #REG_STATUS

;微处理器接收首地址

A,@DPTR FO ACC.0,
FO BCAN—DR QUIT

SETB

JNB
CLR

:判断报文是否有效

MOV.DPTR,

#REG—RxBuffer2:接收报文的ID号的低

:3位\RTR位\数据长度DLC
MOVX MOV A,@DPTR DPTR, ACC.4,

#REG—RxBufferl:接收缓冲区的首地址
BCAN—RCVYB

JB

:接收到的是远程帧 :计算接收到的数据长度
:计算报文的长度

:数据帧
ANL ADD MOV A。 h。 R6。 #OFH #02H A

AJMP
MOV MOV

BCAN——RCVDATA R7。#04H h, h, R7 #01, BCAN CMDl

:释放接收缓冲区

CJNE

;发送请求命令
MOV MOVX CLR RET DPTR,

}}REG_COMMAND

:地址指向命令寄存器
;写入命令字

@DPTR,A FO

3.SJAl000发送数据子程序流程及程序 数据_的发送是按照CAN协议由SJAl000自动完成的。CPU把拟发送的数据送到 SJAl000的发送缓存并把命令寄存器的“发送请求”标志置l。SJAl000的中断请求或查
f入1:3 1





关中断


读中断寄存器


l写控制字允许CAN发送


置发送标志


开中断


.中断返回l
图5—12发送数据中断服务子程序流程图

询SJAl000控制段的状态标志都可以控制发送过程,予程序流程见图5—12。 :SJAl000发送数据子程序
55

MOV MOV INC MOV INC MOV。 MOV INC MOV MOV MOV MOVX SETB

RO, @RO, R0 @RO, R0 @RO,

#SEND—DATA—BUFl #02H

#08H

#05H

A,TEST—DATA R0

@R0,
RO, DPTR,


#SEND—DATA_BUFl #REG—STATUS

:读取状态寄存器 :判断上次发送是否完成

A,@DPTR F0 ACC.3, F0

JNB
CLR

BCAN—DW—QUIT:正在发送退出 :判断发送缓冲区是否锁定,

MOV)C SETB-

A,@DPTR
F0

JNB
CLR

ACC.2,
FO R0

BCAN—Dig—QUIT:锁定则跳出

INC
Mov DEC MOV

A,@RO RO DPTR,

:ID号的低3位\RTR位\数据长度DLC
:恢复指针指向发送数据的首地址

#REG_TxBufferl:发送缓冲区首地址
BCAN_igYB

JB :数据帧
ANL ADD‘ MOV.

ACC.4,

:远程帧

A, A, R7.

#OFH #02tt A

:计算发送数据的长度

AJMP
MOV MOV

BCAN—igRTXBUF R7。 A。 A, #01 R7 #01, BCAN_CMD 1

CJNE

:发送请求命令
MOV DPTR, #REG

COMMAND:地址指向命令寄存器
:写入命令字

MOVX@DPTR,h

CLR

FO
56

RET

5.3汇编语言程序在车身控制系统中的应用
5.3.1

汇编语言程序在车身控制中的任务划分

本软件系统共产生一个邮箱,三个消息队列和七个任务,同时管理两个中 断和五个数组。一个邮箱是指输出驱动邮箱;两个中断是指CAN中断和开关中 断;三个消息队列是指转换队列,规则队列和CAN发送队列;五个数组是指延 时数组,引脚状态数组,器件状态数组,赋值数组,CAN中断消息数组;七个 任务是指开关中断服务任务,输出驱动任务,CAN接收中断任务,CAN发送任务, 转换任务,规则处理任务和延时驱动任务,以后可能还有调试任务和下载任务。 考虑到转换任务,规则处理任务和CAN发送任务要处理的消息很大,而且运行 时间较长,为防止消息丢失,故这三个任务采用消息队列来存放数据。现按照 主节点和子节点的功能实现过程分别介绍这些中断、邮箱、队列、数组之间的 关系和任务的实现过程。
1.转换消息队列的应用

转换消息队列是用来存放供输入、输出转换层的转换任务处理的消息。转 换消息队列中消息来源的流程见图5.13。 ①开关中断服务任务是检测本节点的引脚电平是否有变化,若有变化,检 索配置库,把输入引脚电平的变化转换为输入引脚消息放到转换队列中供转换
任务处理。

②对子节点而言,其CAN中断服务程序只接收主节点发来的输出器件消息
(下行消息)发到转换队列中供转换任务处理。

图5--13转换消息队列中消息来源流程图

③对主节点而言,其规则处理任务把除虚拟器件因子之外的所有器件因子,主要 指关联输入的器件因子都放到转换队列中供转换任务处理。 ④转换任务给自身输出类引脚消息指虚拟引脚消息和关联输出引脚消息。 2.规则消息队列的应用

规则消息队列是用来存放供规则层的规则处理任务的消息,规则消息队列 和规则处理任务只有在主节点中有。规则消息队列中消息来源的流程见图5.14。
输出类器件消息

三i磊科竺兰竺!竺:g画燕
延时任务(主)L——————◆鏊辫删消鹄15人夕u.i ————————/§丕施巍乏盔蠡‘;耋;:笼 十

一输入类器件消息
转换任务(主)



图5—14规则消息队列中消息来源流程见图

①对主节点而言,其CAN中断服务程序只接收子节点发来的输入器件消息 (上行消息)即输入类器件消息消息发到转换消息队列中供转换任务处理。 ②在主节点中,规则处理任务发给自身的输出类器件消息指虚拟器件消息 和关联输出器件消息即输出类器件消息。 ③在主节点中,规则消息队列也接收转换任务的关联输入器件消息和独立 输入器件消息即输入类器件消息。 ④在主节点中,延时任务发给规则消息队列的输出类器件消息在延时数组
的应用中讨论。 3.CAN发送消息队列的应用

CAN发送消息队列用来存放CAN发送任务要处理的消息,它也是各个节点 得以联系的唯一渠道,参见图5一15。

图5—15

CAN发送消息队列的应用示意图

①主节点经过规则处理任务得到的输出类器件消息都要发送到CAN总线上去, 这是因为器件是整个系统统一编号,此器件不是在主节点上,而在子节点上。
58

②在子节点中,没有规则处理任务,因此其节点由引脚电平变化经处理得 到的输入器件因子必须通过CAN发送到主节点。 4.输出驱动邮箱的应用
\二.兹

]警换处理任务了m剡|脚消晕 爹输出壹埔
菱晌罐
涎。霭
一延时处理处理任务、乎出类引脚消皂


输出类引脚消息

.厂输}n鞭动仟辞1
7k

鬻邮箱:,凑





图5一16输出驱动邮箱的应用不蒽圈

输出驱动任务从输出驱动邮箱中取出输出引脚消息,检索输出配置库,把输出 引脚消息来触发硬件电平的变化从而实现本节点的控制,见图5.16。 5.延时数组的应用 规则式的右边,因而被延时的有虚拟引脚消息、独立输出引脚消息、关联 输出引脚消息、虚拟器件消息、独立输入/输出器件消息、关联输入/输出器件
消息。

①被延时的是器件且在主节点中:若被延时的是虚拟器件消息或关联输出 器件消息‘,则送到规则处理任务的规则消息队列:若被延时的是独立输出器件 消息或关联输出器件消息,则要同时发到CAN上和本身的转换处理任务的转换 消息队列中;若被延时的是关联/独立输入器件消息,则直接发送到规则处理任 务的规则消息队列;被延时的是器件且在子节点中,一律发送到CAN发送任务
的CAN消息队列。

②被延时时的是引脚,不论是在主节点还是在子节点,若被延时的是独立/ 关联输出引脚消息一律发送到输出驱动任务的输出驱动邮箱;若被延时的是虚 拟引脚消息和关联输出引脚消息则一律发送到转换处理任务的转换消息队列,
见图5—17。

系统中有四个重要的数组,现对此应用进行阐述: 引脚(接口)状态数组用来存放系统各子节点逻辑引脚类消息的状态,根据 各子节点弓l脚的编号存放对应的位置,因引脚状态值只有8种,故一个字节保 存两个引脚的状态。在转换处理任务中,若有引脚类消息来并且该引脚是虚拟 引脚、关联输出引脚、关联输入引脚之一时就保存其状态。这个数组不需清空。 器件(部件)状态数组用来存放整个系统器件类消息的状态,存放方法同引 脚状态数组。在规则处理任务中,若有器件类消息来时就保存其器件状态。这 个数组不需清空。 延时数组的处理由延时处理任务进行处理,并且在转换任务和规则处理任 务中,对于匹配的输出,在进行输出之前,对延时数组进行检查。其基本思路 如下:如果参数Time为0,则找到匹配项后将其删除,如果参数Time不为O,
59

如果找到匹配项,则将匹配项的Time以新值代替,否则填入新值。寻找匹配
转换处理任务 器件赋值消息,输入类器件消息 引脚赋值消息,输出类引脚消息 延时 数组 延时处理任务 规则处理任务 器件赋值消息,输出类器件消息 延时 数组 输入,输出器件类消息

CAN发送任务

输出驱动任务

输出类引脚消息

规则处理任务

输入/输flj类器件消息

转换处理任务

输}l:类引脚消息

5—17延时数组的应用示意图

项的过程:首先判断区分是模拟量还是逻辑量,再从头查找数组,若数组元素 非空,则判断其编号、类别(器件或引脚)是否相同。数组元素为空的条件:
Val=0x80。

赋值数组是用来存放要赋值的引脚状态或器件状态,即在赋值数组中查找 空元素,并对其进行赋值,同时将其下标返回。
5.3.2

汇编语言程序各任务的优先级分配

本软件中共有七个任务,加上系统必有的空闲任务,共八个。不过主节点 和子节点的情况略有不同,子节点中没有规则处理任务。在软件系统中,任务 并非是越多越好。因为系统需要为每个任务分配一个任务控制块,另外在软件 系统中,任务所占用的最大堆栈空间由最大的任务大小决定。因此,任务越多, 所需要的内存空间就越大,对于系统资源很紧张的嵌入式系统来说,任务太多,
造成的结果将是致命的。

经过多次讨论和仔细分析,由于开关中断服务任务和CAN中断接收任务是 直接由两个中断激发的服务程序,因此不需要由系统调度,即在实际代码中不 需要把它们作为专门的任务处理,而只需要作为两个函数即可。因此在实际系 统中,最终的结果是主节点六个任务,子节点五个任务。 每个任务都有优先级,任务越重要,优先级应该越高。任务优先级的分配 应该在任务刚开始创建时指定。如果需要,在程序运行过程中也可以动态改变 任务的优先级。不过本软件中任务的优先级不需要动态改变。


软件系统是抢占式实时操作系统,由中断激发的两个任务会在中断到来时

立刻执行,而且实际系统中也并没有把这两个任务作为完整的任务处理;而空

闲任务的优先级始终是最低的,因此这里我们着重讨论其他五个任务: 1)CAN发送任务负责将部件消息发往CAN上,由主节点或子节点接收到此 消息后尽快处理。为了能让其他节点尽快接到消息尽快处理,这个任务的优先 级应该是最高的。 2)输出驱动任务直接控制硬件,它负责将接口消息分解成引脚电平后让硬 件做出相应动作,因此其优先级也应该是相当高的。 3)延时任务是系统中某些动作需要延时一段时间后处理的任务,它的优先
级应该处于中间位置。

4)规则处理任务、转换任务负责部件与接口、部件与部件、接口与部件之 间的具体逻辑关系的转换,其任务优先级相对前几个任务来说是最低的。这两 个任务的优先级相当,由于涉及到数组清空的问题,转换任务的优先级应略高。 限于篇幅,这里不对数组清空问题详细讨论。

6l

第六章总结与展望
6.1论文工作总结 i.轿车车身控制系统的主要节点及功能的研究

随着现代汽车新技术不断涌现,车辆安全系统和舒适系统的不断完善,用 于车辆中的电气设备越来越多。为更好地监控这些电气设备,须对轿车车身电 控系统进行重新布置,并加装车载网络控制单元。使其承担以前由单独的继电 器和控制单元所执行的功能,还具有车载网络控制单元中数据总接口,实现CAN 总线系统内的数据交换。经调查分析,轿车车身系统的控制对象有:4扇门锁、四 个车窗玻璃升降器、行李箱锁、除霜加热器、电动后视镜,前后大灯、小灯、转向灯、 危险灯、雾灯、牌照灯、车内阅读灯、车厢顶灯等。
2.P8xC591内置CAN性能参数及应用


系统采用的单片机是PHILIPS公司的P8xC591,它组合了P87C554(微控制器) 和SJAl000(独立的CAN控制器)的功能。由于拥有内部的CAN控制器,可以减少 因外扩CAN控制器带来的干扰问题。根据系统的要求,对CAN通讯的报文格式,、 报文的发送与分类、PHILIPS的CAN通讯流程等作了分析归类。
3.以P8xC591单片机为核心的外围电路设计 主要有各外围驱动电路的构成,模拟量AD转换,脉冲调理电路设计等。

4.系统的软件框架构成及程序设计 CAN节点核心器件及其选择,CAN总线接口电路; 应用等。 6.2本研究工作的特色 前面基于CAN总线的车身控制系统具有以下特色: 1.免除了传统设计中的主电缆束,所有的装置和设备均并联到一根四芯电 缆(其中两根是电源,另外两根是用于数字通讯的双绞线),这根四芯电缆将取 代车内的主电缆束,任何汽车测控系统的改造和升级均无需更动这根电缆。 2.仪表检测信息和控制信息都是以高速数字通信的方式通过总线式网络在 系统中进行交换,而且这种数据交换是双向传输的,为汽车性能和功能的增强、 整车系统信息共享、信息的智能化处理、增强人机交互性能等,提供了良好的 条件。 3.本系统的研究成果除可以应用到汽车领域外,还可以运用到其它的系统 中如楼宇自动化系统等其它控制领域。 总之,利用现场总线技术实现了轿车部件控制系统的网络化这个目标。
6.3

CAN控制器SJAl000的初始化

子程序、接收数据子程序、发送数据子程序设计;汇编语言程序在车身控制系统中的

CAN网络系统的特点 CAN控制器局域网络的通信非常可靠,抗干扰的能力也很强。过去和现在的实践

都证明轿车的CAN网络系统具有下面的几个特点:
1.可扩展性

CAN网络是一个开放式的控制器局域网络,具有自己的技术规范,用户可以根据
需要方便的增加或删除某些节点,而不影响系统的工作。这种总线网络结构,任何两

个节点之间可以直接通信,网络接口相对比较简单,在总线型结构的局域网上,增删
节点十分方便容易。 2.实时性

实时性有两层含义,第一层含义是指基本控制器的实时性,每个控制器所承担的 任务不止一项,每项任务都有实时性的要求。设计中采用P8xC951单片机作为核心, 其8MHz时钟频率和高效的指令集,可以基本满足这个层次的实时性要求,及时地完 成各项控制任务。第二层是指通信网络的实时性。CAN控制器局域网的传输速率最大 可以达到1Mbps,在轿车系统中,我们使用的传输速率是500Kbps,完全可以满足轿
车的实时性的要求。 3.可靠性

CAN总线上的通信采用激励/响应协议,发送节点首先发送一条消息,接收节点 收到这条消息后,根据这条消息的类别,作出相应的应答信号。应答信号的类别与接 收的信号有关。系统的应答协议为:控制类消息用确认类消息应答;询问状态类信息 用状态类信息应答;询问参数和修改参数的消息用参数类信息应答。这样,发送节点 只有收到接收节点的应答信息后,才认为该条信息成功发送,否则将这条消息重新发 送。如果发送一定的次数后,都没有得到响应,则认为接收节点发生故障,不再向它
发送消息;同时还向其它的节点通报节点出现故障的信息。

6.4后续工作展望 CAN总线在轿车车身控制系统中,各方面设计尚未完善,试验或试用结果与理论 目标仍有一定距离,系统需要进一步优化。后续研究工作主要考虑以下几个方面: 1.在安全性和可靠性方面,还应对本系统的软硬件进行进一步测试,同时 虽然在设计时考虑到了在轿车复杂的恶劣环境中各器件工作时带来的电磁辐射 和干扰问题,但为了继续降低对系统通讯的干扰,应采用汽车级的PHILIPS单 片机。


2.在硬件方面必须考虑合理的供电,注意对各个CAN器件的电源、地之间的滤 波,以及复位电路的设计;同时在实际进行印刷电路板的设计时,合理布线,要加强 地线,增强系统的抗干扰性。 3.在.维护性方面,特别是考虑大批量生产时,对智能节点的检测与维护, 因此急需建立一套可供维护人员使用的软硬件测试平台。 4.由于本课题是最初将CAN控制器局域网应用于轿车车身控制系统,没有使所 有的信息都通过CAN网络进行交换,随着控制功能的增加、系统进一步地完善,可 以将所有的消息交换都在CAN网络内实现,可以进一步提升系统的性能。

63

参考文献
【1】中商情报网http://www.askci.com/freereports/,2009.1.28.

【2】李传鸿.AT89C51程序存储器不用I/O口的扩展技术【J】.单片机与嵌入式系统
应用.2009(2).P22-26. 【3】现场总线控制系统优点,http://www.gongkongworld.com/viewthread .php?t i d=4353工控世界,2008.7.22.

【4】蔡方.凯.单片机原理及基于单片机的嵌入式系统设计[M】.北京:中国水利水
电出版社,2007(4).

【5】杨治洁.单片机原理与应用[M】.北京:北京科海电子出版社,2009(1).
【6】CAN总线的特点与优点,http://hi.baidu.com/binkyozhb/blog/item/ 6eca26d3lc7dc732960a165a.html,成长空间2008(9).

【7】王庆得利,刘奎,袁建敏.单片机设计标准教程[M】.北京:北京邮电大学出版社,
2008(3).

【8】边春元,李文涛,江杰,杜平.C5l单片机典型模块设计与应用[M】.北京:机械 工业出版社,2008(4). 【9】罗克露.嵌入式软件调试技术【M】.北京:电子工业出版社,2009(1).
【1 0】王秋爽,曾昭龙.单片机开发基础与经典设计实例【M】.北京:机械工业出版

社,2008(3). [11】窦振中.基于单片机的嵌入式系统工程设计[M】.北京:中国电力出版社,2008(9). 【12】李伯成.单片机的嵌入式系统【M】_匕京:清华大学出版社,2008(9).

【13】何宗彬.8位单片机开发——技术、技巧与规范【M】.北京:机械工业出版社,2008(9).
【14】常喜茂,孔英会,付小宁.C51基础与应用实例[M】.北京:电子工业出版社,
2008(6). 【1 5】唐继贤.5 l单片机工程应用实例[M】.北京:北京航空航天大学出版社,2009(1).

【1 6】陈涛.单片机应用及C5 1程序设计[M】.北京:机械工业出版社,2008(1).
[1 7】楼然苗,李光飞.单片机课程设计指导[M】.北京:北京航空航天大学出版 社,2007(7). 【1 8】怯肇乾.嵌入式系统硬件体系设计【M】.北京:北京航空航天大学出版社,2007(7).

【19】国兵,刘静.单片机原理与应用[M】.天津:天津大学出版社,2008(2). 【20】兰吉昌.51单片机应用设计百例[M】.北京:化学工业出版社,2009(2). [2l】张幸儿.计算机编译原理[M】,科学出版社,1999(4). 【22】陈火旺,刘春林.程序设计语言编译原理[M】,北京:国防工业出版社,2000.

【23】李迎春.编译原理课程辅助教学系统——自顶向下语法分析、中间代码生
成【D】,硕士学位论文,鞍山科技大学,2003(7). 【24】中国汽车电子产业:现状分析与发展政策,http://www.chinainfo.gov.ca
/data/200410/1—20041019—92672.html,2004(10).

【25】李映.汽车电子:从喧嚣走向理性,中国电子报,2004.11.26.

【26】贾广余.Petri网运算及其性质研究【D】,硕士学位论文,山东科技大学,2003 (5).. 【27】李雪飞.规则Petri网及其应用研究【D】,硕士学位论文,东北大学,2001(2). 【28】斯传根.编译设计与开发技术【M】,清华大学出版社,2003(12). 【29】刘新亮,张建武等.汽车网络技术的分析研究【J】,汽车技术,1997(06):24.29. 【30】刘永木,李慧等.CAN总线系统节点模块的一种设计[J】,吉林工学院学 报,2002(9):3 8—42.
[3 1】沈长德,鲁照权,方敏.基于ucoslI的CAN总线在汽车车身控制系统中的应

用【J】,汽车电子世界,2004(6):48.52. 【32】卫星,吴晔等.CAN总线在汽车电子中的应用【J】,汽车电子世
界,2004(1 2):37—40. [3 3】Saeeial Sureerat,Matoshi Methods with
Saeki.Integration of Software Analysis&Design

Formal Description Techniques.IEEE,l 999.8.

[34】张广泉.关于软件形式化方法,重庆师范学院学报[J】,2002(6):17—21. 【35】吕映芝,张素琴等.编译原理【M】,清华大学出版社,1998(9).
【36】Kenneth C.Louden.编译原理及实践【M】,冯博琴、冯岚等译.机械工业出版

社,2000(2). 【37】黄全胜,韩曾晋.离散事件动态系统的扰动分析【J】,郑州大学学报,1997(3). 【38】蒋立源,康慕宁.编译原理[M】,西安:西北工业大学出版社,1999(5). 【39】Schamann


M.Automated Theorem

Proving in Software

Engineering[M],

Springer Verlag,200 1.

【40】陈文德.一类DEDS最优调度算法的改进[J】.控制与决策,2000,(5):15—22. [4l】韩江洪,陆阳,张维勇等.一种基于多值逻辑的开放式逻辑软件设计方法. 计算机学报【J】,1997(7):20-25. 【42]刘永木,李慧等.CAN总线系统节点模块的一种设计【J】,吉林工学院学报,2
002(9):46—5 1.

【43】张丽楠.智能电话购物系统流程语言编译器及编辑器的设计与实现[D】,硕 士学位论文,东北大学,2002. [44】冯渊.汽车电子控制技术【M】,机械工业出版社,2001(7).

【45】朱学俊.形式化技术在物流信息系统建模中的应用研究一EFSM建模与实
现,硕士学位论文【D】,中国科学技术大学,2002(10). 【46】李仕涌,等.多任务操作系统在嵌入式系统开发中的应用【J】.北方交通大
学学报,2002(4):26.32.

【47】王云峰.一种集成形式化方法与面向对象技术的软件开发方法,博士学位 论文【D】,南京大学,2000(6). [48】邵春光.汽车电子产业春光乍现,中国经济时报,2003.6.11.

65

【49】汽车电子千亿赌局谁主沉浮,ttp://www.sjzhc.eom/2004/4—7/154027—4.html,
2004(4).

【50】吕欣岩.动态协议一致性测试及其可靠性问题的研究[D】,博士学位论文,中 国科学技术大学,2004(5).
[5 l】李直,黄河.CAN总线在汽车电动车窗和集控门锁系统中的应用[J],微计算

机应用,2002(9):48—54. 【52】王丽亚,吴智铭,张钟俊.基于Petri网的离散事件系统控制理论【J】,上海交 通大学学报,1994(5):28.35.


赞助商链接
相关文章:
BCM论文:BCM CAN总线 汽车电子 车身控制系统
工作经验表明,基于 CAN 总线的车身控制系统将会逐渐的应用 于经济型轿车之中。...连接方便等显著优点,对进一步提高国产自主轿车车身控制系统理论 研究具有重要意义。...
基于CAN总线的汽车电动车窗控制系统设计
基于CAN总线的汽车电动车窗控制系统设计_信息与通信_工程科技_专业资料。目前,电动车窗是车身控制系统的一个研究热点。车窗控制系统主要是基于LIN和CAN总线。LIN以其...
CAN总线技术在汽车中的应用
传输原理,从而引出CAN总线研究的重点、关键技术及其在现代汽车上的应用现状和发展...整个系统有两个终端电阻,分别装在系统的两个控制 单元内,其作用是阻止CAN总线...
CAN总线在汽车车身控制中的应用
CAN 总线网络系统架构 现代汽车典刑的控制单元有发动机控制模块、变速器控制模块、多媒体控制模块、气囊 控制模块、 空调控制模块、 巡航控制模块、 车身控制模块 (...
汽车CAN总线车身控制系统
汽车CAN 总线车身控制系统 一、 CAN 总线简介 CAN 协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编 码,使网络内的节点个数在理论上...
CAN总线控制系统实例
Can 总线的发展过程 CAN 总线技术在汽车中的应用...国内在CAN总线方面的研究应用与国外相比还存在明显...主要运用在车身控制模块领域; 度为 10Kbps-125Kbps...
CAN总线在汽车车身控制中的应用
CAN总线在汽车车身控制中的应用_交通运输_工程科技_专业资料。CAN 总线在汽车车身...车身系统的 CAN 控制设计 CAN 总线网络系统架构 现代汽车典刑的控制单元有发动机...
CAN总线在汽车车身控制中的应用
CAN 总线在汽车车身控制中的应用吁苗 重庆交通大学机电学院 引言 20 世纪 80 ...CAN 节点的硬件架构 本系统中,CAN 节点采用: ECU(AT89C51)+CAN 控制器(SJA...
CAN总线在汽车电子的应用与实现
较晚,但随着现代 汽车电子的不断进步发展, 其研究应用正如火如荼的进行中...图 1 汽车 CAN 总线系统架构 现代汽车典型的控制单元有电控燃油喷射系统, 电控...
浅谈CAN总线在汽车上的应用
浅谈CAN总线在汽车上的应用_电子/电路_工程科技_专业...研究背景及意义 随着汽车技术的快速发展,汽车性能不...例如电子燃油喷射系统(EFI) 、汽车防滑 控制系统(...
更多相关标签: