CAN总线技术在北奔仪表中的应用

更新时间:2024-06-20 14:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

CAN总线技术在北奔仪表中的应用

一、 摘要 关键词 二、 绪论

2.1课题研究的目的及意义 2.2国内外汽车仪表的发展现状 三、 仪表主要功能

四、 CAN总线及SAE J1939协议分析 4.1 汽车CAN总线技术

4.1.1 CAN 总线的概念及特点 4.1.2 CAN 的分层结构 4.2 SAE J1939通信协议介绍

4.2.1 J1939与CAN 4.2.2数据传转协议 4.2.3 J1939的参数格式

4.2.4 SAE J1939报文帧格式 4.2.5 SAE J1939应用层协议 五、总线技术在仪表中的应用 5.1系统整体方案概述

5.1.1汽车仪表的设计目标 5.2汽车仪表的显示原理

5.2.1步进电机表头控制策略 5.2.2 LCD液晶显示控制 5.2.3报警指示符号灯 六、结束语 七、参考文献

一、 摘要 关键词

汽车仪表是驾驶员与汽车进行信息交流的重要接口和界面。传统的汽车仪表连接方式需要大量线束,这样的设计方案会增加布线的难度,线束之间也会存在相互的电磁干扰,从而导致系统可靠性能不高。随着总线技术的迅速发展和汽车上电子设备的增加,传统的汽车仪表受到巨大的挑战,取而代之的是基于CAN总线的数字汽车仪表。CAN总线能够很好地支持汽车设备之间的数据交互,其通信速率高、可靠性好、连接方便、通信协议简单和性价比高的众多优点使得CAN总线已成为汽车电子控制装置之间通信的标准总线,在汽车分布式控制系统中得到广泛应用。

本文深入分析了当前国内外汽车网络技术的应用和发展状况,研究了CAN网络协议的技术规范,简要介绍了CAN总线的一些基本概念和基本组织规则,详细阐述了CAN总线的报文、帧格式。并基于CAN总线协议的原理,结合汽车仪表的有关特点,对CAN总线汽车仪表的相关技术进行了详细分析。

关键词:汽车仪表、CAN总线、SAE J1939、应用

二、 绪论

2.1课题研究的目的及意义

驾驶员在驾驶过程中,需要及时掌握汽车的多种状态数据,比如当前行驶速度、累计行驶里程、发动机转速、当前燃油量、冷却液的温度、当前储气罐压力值、制动系统和电控系统状况等等,对于更先进的汽车甚至还包括车辆的当前位置、当前行驶路线等导航信息。所有这一切信息都需要通过汽车仪表系统展现给驾驶员,可以说汽车仪表是现代汽车中一项不可或缺的关键零部件。

一方面,随着科技的不断进步,现代汽车的功能越来越多,如发动机电控功能、车载多媒体功能和自动导航功能。这些新功能中所应用的电子控制系统和通讯系统也越来越多。可以想象,如果这些系统之间、系统和汽车显示仪表之间、系统和汽车故障诊断系统之间需要进行数据交换,数据交换量会是多么巨大。如果仍然采用传统数据交换的方法,用导线进行点对点连接的传输方式将是复杂的工程,据统计,如果一个中级轿车需要线束插头 300个以上,插针总数 1800~2200个,线束总长超过 1.5~2.0km,电线的重量可达“40~60”公斤,装配复杂而且故障率很高,增加了维修的难度;使车身自重增加,不利于节能减排;过长的导线容易造成严重的电磁干扰,导致系统的可靠性下降。

另一方面,随着汽车仪表显示的信息种类和内容的增加,传统的电气式仪表越来越不适应这些变化。而且传统的电气式仪表由于存在原理误差和工艺误差,在显示精度上也难以满足越来越高的精度要求。庆幸的是,信息技术的飞速发展使得这一难题得以解决,基于现代先进的信息技术,汽车仪表已从传统的模拟信号转变为数字信号,已从单个仪表电子化迈向集成化和系统化。

2.2国内外汽车仪表的发展现状

我国汽车仪表工业与国外相比,技术上还有很大的差距。国内中高档汽车的仪表市场基本上被国外公司和国内大的合资公司占据,而本土的仪表厂商大都因资金、技术、市场短缺等原因发展缓慢,大都集中在中低端车市场。

目前数字式仪表在中国市场上应用份额比较大,我国合资或外商独资的企业,如德科、马瑞利、西门子、伟世通、博世等,都以生产数字式仪表为主。这几年随着国内自主车市场的兴起,发展自己的汽车配套零部件是必然趋势,拥有数10亿美元份额的汽车仪表市场,开始逐渐引起了国内整车企业以及仪器仪表厂商的注意,包括步进电机式、全液晶式。由于测试设备短缺、测试成本高、测试软件工程师缺乏等因素,以及国际大公司的产品垄断,使得国内在这方面的发展缓慢。

未来汽车仪表的发展,将会随着汽车电子控制技术的不断进步向全数字化的“综合信息系统”方向发展。

三、 仪表主要功能

小计里程累计里程油压信息故障代码

图3-1 北奔组合仪表功能框图

北奔AT3组合仪表是为北奔重卡开发的一款欧3仪表,主要包括:

1、车速表、转速表、油量表、水温表、前后桥两气压表,点阵双底色液晶屏(显示里程数、电压、油压、油温、瞬时油耗、油门开度、档位、故障信息),报警灯组成。

2、指针采用步进电机驱动,液晶屏采用点阵显示,仪表照明和报警图案背光采用发光二极管,仪表照明亮度可调。

转速表、水温表、发动机电控单元诊断故障代码(DTC,Diagnostic trouble code)、机油压力低等部分报警图案的输入信号从CAN 总线采集,仪表ECU 同时向CAN 总线发送车速(里程)、变速箱输出轴转速信息,与发动机电控单元EECU 进行数据交换,共享系统资源。

3、CAN 总线物理、数据链路层基于ISO11898 协议的CAN2.0B 标准,应用层协议采用SAE J1939,29 位ID 扩展帧报文格式,传输速率250kbps,提供终端电阻。CAN信道具有较强的抗干扰性能。

4、仪表采集到发动机超速、冷却水温过高、冷却水位过低(CAN 信号)、气压过低(模拟量)、变速箱发生故障(开关量)等信号时,同时启动蜂鸣器响、发光二极管亮、液晶显示故障代码等声光字形式的报警提示功能。

5、仪表具有电压监测和数据保存保护功能,点火电源掉电后指针可以回零。 6、仪表满足ISO7637、GB/T17619、GB/T18655 等电磁干扰、辐射标准的要求。

四、 CAN总线及SAE J1939协议分析 4.1 汽车CAN总线技术

4.1.1 CAN 总线的概念及特点 CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。CAN 最初出现在 80 年代末的汽车工业中,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络,比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入 CAN 控制装置。CAN 总线最先由德国 Bosch公司提出,当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出 CAN 总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件均可以被挂接在该总线上。1993 年,CAN 已成为国际标准 IS011898(高速应用)和 IS011519(低速应用)。CAN 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。由于 CAN 总线具有很高的实时性能,因此, CAN 已经在汽车工业、航空工业、工业控制等领域中得到了广泛应用。

CAN 总线属于总线式串行通信网络,由于采用了许多新技术以及独特的设计,与一般的通信总线相比,CAN 总线的数据通信具有突出的可靠性、实时性和灵活性。其特点可以概括如下:

(1)通信方式灵活。CAN 为多主方式工作,网络上任一节点均可在任意时刻主动的向网络上其他节点发送信息,而不分主从,且无需站地址等节点信息。利用这一特点可方便的构成多机备份系统。

(2)CAN 网络上的节点信息分成不同的优先级,可满足不同的实时要求。 (3)CAN 采用 4 种非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动的退出发送,而最高优先级的节点可不受影响的继续传输数据,从而大大节省了总线冲突仲裁时间,尤其是在网络负载很重的情况下也不会出现网络瘫痪情况。

(4)CAN 只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。

(5)CAN 的直接通信距离最远可达 10km(传输速率 5Kb/s 以下);通信速率最高可达 1Mb/s(此时通信距离最长为 40 米)。

(6)CAN 上的节点数主要取决于总线驱动电路,目前可达 110 个;报文标识符可达 2032 种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。

(7)CAN 总线通信格式采用短帧格式,传输时间短,受干扰概率低,具有极好的检错效果。每帧字节数最多为 8个,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8B 也不会占用过长的总线时间,从而保证了通信的实时性。

(8)CAN 的每帧信息都有 CRC 校验及其他检错措施,保证了数据通信的可靠性。 (9)CAN 总线通信接口中集成了 CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等多项工作。

(10)CAN 的通信介质可为双绞线、同轴电缆或光纤,选择灵活。 (11)CAN 节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。

CAN 协议也是建立在国际标准组织的开放系统互联模型基础上的。不过,其模型结构只有 3 层,即只取 OSI 底层的物理层、数据链路层和应用层。由于 CAN 的数据结构简单,又是范围较小的局域网,因此不需要其他中间层,应用层数据直接取自数据链路层或直接向链路层写数据,结构层次少,有利于系统中实时控制信号的传送。

4.1.2 CAN 的分层结构

为使设计透明和执行灵活,CAN 遵循工业 OSI 标准模型,按照 OSI 标准模型,CAN 结构分为两层:数据链路层(包括逻辑链路控制子层 LLC 和媒体访问子层 MAC)和物理层。而在 CAN 技术规范 2.OA 的版本中,数据链路层的 LLC和 MAC 子层的服务和功能被描述为“目标层”和“传送层”,CAN 的分层结构如图 4-1。逻辑链路子层(LLC):提供数据传输和远程数据请求服务,确认报文已接收,提供超载信息及恢复管理;介质访问控制子层(MAC):承担定时特性,每当新的通信开始前,MAC 子层要确定总线是否开放或是否马上开始接收。MAC 层规定了传输规则(控制帧结构、执行仲裁、错误检测、出错标志及故障界定);物理层则规定了结点的全部电气特性。

图 4-1 CAN 网络的分层模型

4.2 SAE J1939通信协议介绍

4.2.1 J1939与CAN

J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。图4-2介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。

图4-3则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。

图4-2 CAN2.0的标准和扩展格式及J1939协议所定义的格式

图4-3 J1939协议报文单元的具体格式

4.2.2数据传转协议

J1939通信中的核心是负责数据传输的传输协议。它的功能分为两部分:

(1)数据的拆分打包和重组。一个J1939的报文单元只有8个字节的数据场。因此如果所要发送的数据超过了8字节,就应该分成几个小的数据包分批发送。数据场的第一个字节从1开始作为报文的序号,后7个字节用来存放数据。所以可以发送255×7=1785个字节的数据。报文被接收以后按序号重新组合成原来的数据。

(2)连接管理。主要对节点之间连接的建立和关闭,数据的传送进行管理。其中定义了5种帧结构:发送请求帧、发送清除帧、结束应答帧、连接失败帧以及用来全局接收的广播帧。节点之间的连接通过一个节点向目的地址发送一个发送请求帧而建立。在接收发送请求帧以后,节点如果有足够的空间来接收数据并且数据有效,则发送一个发送清除帧,开始数据的传送。如果存储空间不够或者数据无效等原因,节点需要拒绝连接,则发送连接失败帧,连接关闭。如果数据接收全部完成。则节点发送一个结束应答帧,连接关闭。

4.2.3 J1939的参数格式

J1939中还定义了参数的具体格式,如标识符、优先级、数据长度、参数的范围等。参数又划分为状态参数和测量参数。状态参数表示具有多态信号的某一种状态,如发动机刹车使能/禁能、巡航控制激活/关闭,扭矩/速度控制超载模式、错误代码等。而测量参数则表示所接收到的信号的值的具体大小,如缸内爆发压力、最大巡航速度、发动机转速等。

4.2.4 SAE J1939报文帧格式

J1939的信息是以PDU(Protocol Data Unit协议数据单元)的形式进行传输的,PDU的封装在应用层中完成。PDU提供了组织信息的框架,这一点对于每一个要发送的CAN数据帧来说是至关重要的。如图4-4,j1939 PDU共由七个域组成,包括:优先权 (P)、保留位(R)、数据页(DP)、PDU格式(PF)、PDU细节(PS,可为目的地址、参数组扩展或私有)、源地址(SA)及数据域(Data Field)。由这些域被封装为一个CAN数据帧发送到网络上其他节点。每个CAN数据帧只能包含一个PDU。值得注意的是,对于某些参数组,必须使用两个以上的CAN数据帧发送。

图4-4 J1939 PDU结构

CAN数据帧中的某些域并未在PDU中定义,这是因为这些域已经在CAN2.0规范中明确定义,并且对于数据链路层以上的OSI层,这些域是不可见的。这些域包括:SOF(帧起始)、SRR(替代远程请求)、IDE(识别符扩展)、RTR(远程请求),部分控制域、CRC(校验域)、ACK(应答域)及EOF(帧结束)等。对于这些域,]1939协议完全遵从CAN规范中的定义。

4.2.5 SAE J1939应用层协议

J1939应用层协议详细描述了用于J1939网络的每个参数,包括其数据长度、数据类型、分辨率、范围及参考标签,并为每个参数分配了一个编号 (SPN)。由于J1939协议是以协议数据单元(PDU) 的形式进行传输,而一个PDU包含8个字节数据,因此,需要对这些参数进行组合。在J1939应用层协议中还详细定义了参数组,包括每组参数的更新率、有效数据长度、数据页、PDU格式、PDU细节、默认优先权及参数组的内容,并为每个参数组分配一个参数组编号(PGN)。为最大程度地减小数据的重叠,协议按照以下原则对参数进行分组:

①按照ECU所属子系统分组(ECU用于测量和发送数据);②按照参数组中的参数更新率分组(减小不必要的数据重叠);③按照功能分组(机油、冷却液、燃油等等)。

五、 总线技术在仪表中的应用

5.1系统整体方案概述 随着汽车电子技术的发展,以及汽车CAN总线网络应用的逐渐成熟,作为车辆信息显示中心的汽车仪表,必将会随着新技术的发展而更新换代。本文基于CAN总线汽车仪表,即是对传统机械、模拟式汽车仪表的数字化改造,并且顺应当今汽车CAN总线网络快速发展这种趋势的设计研究。

5.1.1汽车仪表的设计目标 本文根据目前国内、外汽车仪表的发展现状和要求,并通过对汽车仪表系统基本功能的分析研究,完成了基于CAN总线和步进电机的一款汽车组合仪表的设计。该仪表能实时采集模拟信号、数字脉冲信号、数字开关信号,从CAN总线获取发动机电控单元的信号数据,通过步进电机带动指针显示气压、发动机转速、发动机冷却水温、车速和燃油量,为防止里程值的丢失,微控制器会及时将里程数据保存在片外数据存储器里。另外仪表还可以显示车辆的一些关键状态信号,包括远光灯指示灯、左转向、右转向指示灯、后雾灯指示灯、电源指示灯、驻车指示灯、空调指示灯,以及发动机自检灯、机油压力报警灯和制动盘报警灯。

该组合仪表外观结构简单、直观,并且仪表精度高、线性度好、重复性好、响应速度快、性能稳定抗干扰性强等优点。

该汽车组合仪表是采用传感器、CAN总线、单片机、步进电机、液晶屏,以及驱动电路等主要部件来实现汽车仪表的功能设计。由于我们采用了两套信号数据采集渠道,仪表盘由CAN总线接收到的数据报文,将直接由微控制器对数据进行解包处理,得到相应的数据,并进行处理,然后控制步进电机进行指示;仪表盘由传感器获得的模拟量信号和数字脉冲信号,

将先经过前期的滤波、整形、光隔处理,送由相应的单片机A/D转换模块、脉冲周期测量定时器模块进行数据采集处理,然后单片机发出指令控制步进电机进行指示;微控制器通过车速信号对时间的积分获得车辆的行驶里程值,由液晶显示屏进行动态显示,并且会及时更新数据存储器EEPROM里的里程值,防止数据的丢失。

仪表系统的结构原理图如下图5-1所示。

图5-1系统结构原理图

5. 2汽车仪表的显示原理

组合仪表主要包括:车速表、转速表、气压表、油量表、水温表、里程液晶显示屏和各种报警状态指示灯;组合仪表的输入信号包括,0-5V的电压模拟信号、幅值5V的频率脉冲信号、高低电平开关信号、CAN总线信号。

5.2.1步进电机表头控制策略 1)车速表

功能定义:采用步进电机驱动;车速最大量程140km/h,最小分度 5km/h。车速表指针响应及时,运转平稳。

信号来源:车速传感器的频率信号,PPK=8000(车型不同,PPK值不同,PPK是每公里对应的脉冲数);

显示原理:J1939协议是以协议数据单元(PDU) 的形式进行传输,而一个PDU包含8个字节数据,因此,车速信息以8字节数据进行显示。根据SAE J1939-71(车辆应用层)协议规定,基于车轮的车辆速度是指按车辆的车轮或尾轴的转速计算出来的车辆速度。其定义信息如下:

数据长度: 分辨率: 2字节 1/256 km/h/位递增,从0 km/h开始计算(1/412 mph/位递增,从0 mph开始计算) 高位字节分辨率=1.0 km/h/位(0.62 mph/位) 0到250.996 km/h(0到155.87 mph) 测量值 数据范围: 类型: 根据定义,当车速数据为 FF 00 3C FF FF FF FF FF 时,车速为60km/h;

当车速数据为

FF 00 64 FF FF FF FF FF 时,车速为100km/h;

当车速数据为

FF 00 8C FF FF FF FF FF 时,车速为140km/h;

车速表效果如图5-2所示:

图5-2 车速表

2)发动机转速表

功能定义:采用步进电机驱动;转速最大量程为3000r/min,最小分度为100r/min。 信号来源:发动机电控单元ESM发来的CAN信号。

显示原理:J1939协议是以协议数据单元(PDU) 的形式进行传输,而一个PDU包含8个字节数据,因此,转速信息以8字节数据进行显示。根据SAE J1939-71(车辆应用层)协议规定,电子发动机控制器#1:EEC1 传输循环率: 数据长度: 数据页面: PDU格式: PDU特定: 默认优先值: 字节 由发动机速度决定 8 字节 0 240 4 3 8-5 4-1 未定义 发动机/减速器扭矩模式 1 状态—EEC1 2 3 4-5 6 主动轮命令发动机—扭矩百分比 实际发动机—扭矩百分比 发动机速度 针对发动机控制的控制设备源地址 2字节 0.125 rpm/位递增,从0 rpm开始计算(高位字节分辨率=32 rpm/位) 0到8031.875 rpm 测量值 且发动机转速是指转过720度最小曲轴角的速度除以气缸的数目所得到的实际发动机转速。 数据长度: 分辨率: 数据范围: 类型:

故转速值=第4、5位数值*分辨率+偏移量 当转速数据为

FF FF FF 20 4E FF FF FF 时,转速=(4E20)H*0.125+0=20000*0.125=2500rpm;

当转速数据为

转速= (5DC0) H*0.125+0=24000*0.125=3000rpm;FF FF FF C0 5D FF FF FF 时,

当转速数据为

FF FF FF 40 1F FF FF FF 时,转速= (1F40)H*0.125+0=8000*0.125=1000rpm;

转速表效果图如图5-3所示:

图5-3 转速表

3)水温表

功能定义:采用步进电机驱动;指示发动机冷却水的温度,当温度过高时应及时停车检查问题的原因。

信号来源:发动机电控单元ESM发来的CAN信号。

显示原理:J1939协议是以协议数据单元(PDU) 的形式进行传输,而一个PDU包含8个字节数据,因此,水温信息以8字节数据进行显示。根据SAE J1939-71(车辆应用层)协议规定,发动机冷却系统的液体温度: 数据长度: 分辨率: 数据范围: 类型: 且字节规定如下所示: 字节: 1 2 3-4 5-6 7 8 1字节 1℃/位递增,从-40℃开始计算 -40到+210℃(-40到410℉) 测量值 发动机冷却剂温度 燃料温度 发动机油温 1 涡轮油温 冷热气自动调节机温度 发动机的冷热气自动调节机调节开放 故 水温=第8字节数据-40

例:当水温数据为 50 64 20 22 FF FF FF FF 时,水温=(50)H-40=80-40=40;

当水温数据为 8C 64 20 22 FF FF FF FF 时,水温=(8C)H-40=140-40=100;

当水温数据为

本文来源:https://www.bwwdw.com/article/pqm3.html

Top