基于CAN总线的多ECU通信平台设计

发布者:CreativeDreamer最新更新时间:2014-12-03 来源: 21ic关键字:CAN  ECU  SJA1000 手机看文章 扫描二维码
随时随地手机看文章

  引言

  随着集成电路和单片机在汽车上的广泛应用,现代汽车上的电子控制器的数量越来越多,常见的有发动机的电子燃油喷射装置、防抱死制动装置(ABS)、安全气囊装置、电动门窗装置、主动悬架等。电控系统的增加虽然提高了轿车的动力性、经济性和舒适性,但随之增加的复杂电路也降低了汽车的可靠性,增加了维修的难度。从布线角度分析,传统的电子气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然造成宠大的布线系统。因此,一种新的概念——汽车上电子控制器局域网络CAN,也就应运而生。为使不同厂家生产的零部件能在同一辆汽车上协调工作,必须制定标准。按照ISO有关标准,CAN的拓扑结构为总线式,因此称为CAN总线。 CAN总线被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECN之间交换信息,在车载各电子控制装置ECN之间交换信息,形成汽车电子控制网络。

  控制器局域网CAN(Controller Area Network)是一种多主方式的串行通信总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。CAN在汽车上的应用,具有很多行业标准或者是国际标准,比如国际标准化组织(ISO)的ISO11992、ISO11783以及汽车工程协会(Society of Automotive Engigeers)的SAE J1939。CAN总线已经作为汽车的一种标准设备列入汽车的整车设计中。

  1 CAN总线特点及其通信协议

  1.1 CAN总线简介

  CAN通信协议规定了4种不同的帧格式,即数据帧、远程帧、错误帧和超载帧。基于以下几条基本规则进行通信协调:总线访问、仲裁、编码/解码、出错标注和超裁标注。CAN 遵从OSI模型。按照OSI基准模型只有三层:物理层、数据链路层和哀告层,但应用层尚需用户自己定义。CAN总线作为一种有效支持分布式控制或实时控制的串行通信网络,应用范围遍及从高速网络到低成本的多线路网络。如:CAN在汽车中的发动机控制部件、ABS、抗滑系统等应用中的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电器系统中,例如电气窗口、灯光聚束、座椅调节等,以替代所需要的硬件连接。其传输介制裁为双绞线,通信速率最高可达1Mbps/40m,直接传输距离最远可达 10km/5kbps,挂接设备数最多可达110个。CAN为多主工作方式,通信方式灵活,无需站地址等节点信息,采用非破坏性总线仲裁技术,满足实时要求。另外,CAN采用短帧结构传输信号,传输时间短,具有较强的抗干扰能力。

can总线

  CAN总线与其它通信协议的不同之处主要有两方面:一是报文传送不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,其特点是可在线上网下网、即插即用和多站接收;另外一个方面就是特别强化了数据安全性,满足控制系统及其它较高数据要求系统的需求。

  1.2 J1939通信协议

  J1939协议是在CAN总线通信协议2.0B(29标识符)之上具体实现了应用层,是SAE为重载卡车和客车制定的通信协议;以CAN 2.0B为基础,物理层标准与ISO11898规范兼容并采用符合该规范的CAN控制器及收发器。J1939协议将CAN标识符划分为如下几个部分:优先级(P)、数据页(PGN)、协议数据单元(PDU)格式、PDU特定域(PS)和源地址(SA)。J1939/71应用层文档定义了车辆控制的各种参数及命令的PGN。

J1939 的报文格式

  由此可见,J1939与CAN通信协议的区别在于29位标识符(ID),数据场相同。J1939将CAN的29位标识符(或称辨识别)进行了详细的物理定义。通过PDU将CAN标准格式封装为J1939协议格式。PDU信息帧又由优先权P、保留位R、数据页DP、协议数据单元PF、扩展单元PS、源地址SA和数据场DATA七个部分组成,即CAN的29位标识符加上数据。

  2 总体设计

  2.1 汽车电控网络结构

  汽车内ECU之间的数据传输特征主要差别在于数据传输频率,例如发动机高速运行时,进行的是高频数据传输,每隔几ms就传输1次;而在低速运行时,进行的是低频数据传输,每隔几十ms乃至几百ms才传输1次。然而为了满足实时性要求,就要求汽车内每个控制单元尽可能实现汽车公共数据共享,但又由于每个控制单元对实时性的要求是因为数据的更新速率和控制周期不同而不同的。这就要求其数据交换网是基于优先权竞争的模式,且本身具有较高的通信速率。CAN总线正是为满足这些要求而设计的。CAN已有国际标准,即高速场合的ISO11898和用于低速场合的ISO11519-3。

汽车总线电控网络

  通常的汽车网络结构采用多条不同速率的总线分别连接不同类型的节点,并使用网关服务器来实现整车的信息共享和网络管理。若按照美国汽车工程师协会(SAE)车辆网络委员会标准SAE J2057,将汽车数据传输网划分为三类。这里可用图1简单说明。其中网关是汽车内部通信的核心,通过它可以实现在CAN总线上信息的共享以及实现汽车内部的网络管理和故障诊断功能;将各个数据总线上的信息反馈到仪表板总成上的显示屏上,驾驶者通过仪表板上的信息就可以知道各个电控装置是否正常工作了。

 

  2.2 通信平台硬件设计

  在设计中,主控芯片CPU选用51系列的单片机。CAN通信控制器执行完整的CAN协议,完成通信功能,包括信息缓冲和接收滤波,故CAN控制器选用 Philips的SJA1000。选用PCA82C250作为CAN总线的收发器,PCA82C250是CAN协议控制器和物理总线之间的接口,在运行环境中具有抗瞬变、抗射频和抗电磁干扰性能,内部的限流电路具有电路短路时对传送输出级进行保护的功能。传输介质采用屏蔽电费,在测控节点与介质之间加入光耦电路,以提高总线接口的抗干扰能力。图2为通信平台硬件框图,图3为控制器与收发器连接接口。

通信平台硬件结构框图

  为进一步提高系统的可靠性,需要考虑到系统的冗余设计。由于汽车环境恶劣且干扰 因素较多,在CAN_H和CAN_L信号线与地线之间分别并联了两个电容,滤去噪声,使信号传输平稳。双屏蔽电费可设两套,在两套介质上同时进行信息传输。接收方只用一个介质,在冗余和非冗余段的连接临界点进行总线切换。[page]

SJA1000与PCA82C250的连接

  2.3 软件设计

 

  简单地说,本通信平台所要实现的功能就是,使各个节点(ECU)通过CAN总线实现相互通信,发送接收命令、信息等,并实现数据的共享,从而提高各自的控制性能和运行效率。汽车上CAN数据总线的每个节点(ECU)都有自己的地址和名称相对应。ECU地址指出了数据传送的目的地,而其名称则标识了ECN的基本功能。节点连续监视着总线上发出的各种数据。当所收到的数据地址值与自身地址吻合时,该节点就获得令牌。在通信规约中,唯一获得令牌的该节点有权发送数据,以防止两个或两个以上的节点同时传输数据引起混乱。同时每一个节点都有机会得到令牌,完成数据传输。

  本软件设计是基于Keil C语言编写的。程序主要由主模块、中断处理模块及数据通信模块等组成,如图4所示。

软件设计流程

      主模块完成对硬件初始化、寄存器的配置、SJA1000初始化等;中断处理模块包括数据中断的发送、接收、错误处理及报警处理等;数据通信模块完成数据的请求、发送、接收等。

  当一个节点A发送数据请求报文(远程帧),向另外一个节点B请求报文(应答帧)时,节点B接收到请求后,经过判别,而后发送数据(应答帧)。由于数据请求没有数据场,所以相对数据帧长度小很多。经分析验证之后与节点B收到的数据相同,请求数据程序得到验证。

  结语

  在现代汽车的设计中,CAN总线已经成为构建汽车网络的一种趋势;而汽车网络作为直接与汽车内部各个ECU连接并负责命令的传递、数据的发送及共享,其可靠性和稳定性与整车的性能紧密相关。本文的设计开发是在基于试验条件下搭建的仿真平台,节点之间的通信是通过对等的CAN通信节点进行的。试验表明其运行性能稳定可靠,但实用化仍需要进一步的研究和改进,且程序的通信处理能力、纠错和容错能力有待进一步的提高。

关键字:CAN  ECU  SJA1000 引用地址:基于CAN总线的多ECU通信平台设计

上一篇:基于DM6446处理器的视频运动车辆检测系统的实现
下一篇:车载MP3的系统设计

推荐阅读最新更新时间:2024-03-16 13:47

STM32学习之CAN控制器简介
1、STM32自带了基本扩展CAN外设,又称bxCAN,bxCAN的特点如下: 支持CAN协议2.0A和2.0B主动模式 波特率最高达1Mbps 支持时间触发通信 具有3个发送邮箱 具有3级深度的2个接收FIFO 可变的筛选器组(也称过滤器组,最多28个) 2、STM32 CAN控制器简介-模式 ①初始化模式(INRQ=1,SLEEP=0) ②正常模式(INRQ=0,SLEEP=0) ③睡眠模式(SLEEP=1) 测试模式 ①静默模式( LBKM=0,SILM=1 ) ②环回模式( LBKM=1,SILM=0 ) ③环回静默模式(LBKM=1,SILM=1
[单片机]
汽车区域架构优势详述
不妨将一辆乘用车想象为多个电子控制单元(ECU)的集合,它们分布在汽车的各个位置并使用不同网络相互通信。为实现车联网(V2X)、自动驾驶和汽车电气化而添加更多先进的汽车电子产品时,ECU数量和交换数据量也都会增加。 此外,ECU数量的增加还促进了网络类型的多样化,包括本地互联网络(LIN)、控制器局域网(CAN)以及诸如平板显示器链路(FPD-Link)、PCI Express(PCIe)和以太网等高速网络。 在域架构中,ECU可根据功能不同分为不同的域。但区域架构是一种按照ECU在汽车内的实际位置分类的新方法,并利用中央网关来管理通信。这种物理接近性可减少ECU之间的布线,从而节省空间并降低汽车重量,同时还能提高处理器速
[嵌入式]
汽车区域架构优势详述
CAN总线通信硬件原理图(采用TJA1050T CAN总线驱
CAN总线通信硬件原理图(采用TJA1050T CAN总线驱动器) F040中内置CAN总线协议控制器,只要外接总线驱动芯片和适当的抗干扰电路就可以很方便地建立一个CAN总线智能测控节点。本设计中采用PHILIP公司的TJA1050T CAN总线驱动器。 CAN总线通信硬件原理图如图3所示。 图中F040 的CAN信号接收引脚RX和发送引脚TX并不直接连接到TJA1050T的RXD和TXD端,而是经由高速光耦6N137进行连接,这样做的目的是为了实现CAN总线各节点的电气隔离。为了实现真正意义上完全的电气隔离,光耦部分的VA和VB必须通过DC-DC模块或者是带有多个隔离输出的开关电源模块进行隔离。为防止过流冲击,TJA
[电源管理]
<font color='red'>CAN</font>总线通信硬件原理图(采用TJA1050T <font color='red'>CAN</font>总线驱
基于CAN总线交通信号灯动态调整系统的设计
  国内红绿灯交通控制系统中红绿灯切换时间广泛采用固定或者分时段变化的时间间隔,或者由交通指挥中心根据交通状况调整时间间隔,不能够根据实际的交通状况进行动态切换,也不能够根据道路状况预先干预,防止交通恶化。在极端情况下,可能会出现有车的方向红灯禁行,没车的方向绿灯通行的现象。这种方式低效、严重依赖于交管部门的工作效率,且一般只能在交通恶化后才可能介入,不能提前预防。为此本文提出了一种基于CAN总线的红绿灯动态调整系统,它能够根据实际交通状况实时调整红绿灯时间,可以降低道路拥堵几率,保障交通畅通。 1 总体设计方案    总体设计方案如图1所示。图1(a)为每个路口的红绿灯控制器,其中环形线圈和红绿灯之间的虚线表示两者之问的联
[安防电子]
基于<font color='red'>CAN</font>总线交通信号灯动态调整系统的设计
基于ARM处理器的CAN-Ethernet通信模块实现
近20 年来工业测控系统发展的趋势是:分散控制和集中管理、标准化和开放性。工业测控系统从传统的集中测量控制系统转向网络化的集散控制系统。随着现场总线技术高速发展和标准化程度不断提高,以现场总线技术为基础的开放型集散测控系统—现场总线测控系统得到了广泛的应用。同时,以太网的应用也迅速向工业测控系统渗透,在工业自动化应用中异军突起。 这种趋势的出现与计算机技术、信息技术、网络通信技术的高速发展相关。现代工业系统信息交换的需求也已经从管理层内部迅速覆盖到控制、现场设备等各个层次,连接上层网络和现场总线的通信设备成为工厂自动化系统中的关键设备之一。CAN-Ethernet通信模块,是一种直接连接以太网和CAN现场总线的设备,有效解决了控制
[网络通信]
关于STM32F105 双CAN口通信的一些学习心得
在项目中用到stm32f105芯片,需要使用到两个CAN口进行通讯,以下是在运行调试过程中出现的问题以及一些解决方法和学习心得。 对GPIO口进行设置 在这里RX使用的是上拉输入,TX是推免输出。这里需要注意的是,在对外设时钟进行设置的时候需要考虑一下CAN口的主从模式。105芯片的CAN2口是从bxCAN,它不能直接的访问SRAM存储器。所以如果在项目中只需要使用CAN2的话,在进行GPIO口外设时钟设置的时候,需要将CAN1的时钟也使能。 如果两个CAN口都有使用到,那么在进行CAN2口设置的时候使能2口的外设时钟就可以了。 设置中断优先级 这里的设置就比较简单,没有什么需要特别注意的地方。设置中断通道、优先级以及子优
[单片机]
征服stm32 can 标准帧 扩展帧 过滤器配置
如果过滤器配置不好,就会导致发送的数据接收不到,下面是过滤器配置的代码 //配置过滤器 CAN_FilterInitStructure.CAN_FilterNumber=0; //过滤器0 CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //32位 /*******************************标准帧配置***********************************
[单片机]
关于汽车电子ECU的三种形式
给大家说说汽车隐藏的一些功能可以通过刷ECU的方式给刷出来。首先说说ECU,ECU是汽车的控制单元俗称行车电脑,相当于人的大脑负责给车支配行动。刷ECU又叫刷隐藏,一般合资车的各项参数都是根据国外调校的,但是到了国内又根据路况油品隐藏了一部分动力,这时候刷ECU就可以把原有的马力刷出来恢复它该有的实力。 还有一些功能在高配车上才有,其实中配低配车型也是有的,只不过厂家为了控制消费隐藏了这部分功能,锁止了没有设置按键,我们就可以通过刷ECU的方式来解锁增加这个按键,就可以变成高配了比如一键降窗、一键升窗、巡航功能等实现改配版功能。 刷ECU的优点和缺点给大家说说,优点就是提升动力增加功能,第二可以适当的解决有些问题,像有的车
[嵌入式]
关于汽车电子<font color='red'>ECU</font>的三种形式
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved