CAN总线车载网络通讯组件的研究和实现

发布者:chwwdch最新更新时间:2011-10-20 关键字:CAN总线  车载网络通讯 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  目前,汽车电子正朝着网络化的方向发展,车载网络成为汽车电子领域的最大热点。提高控制单元间通讯可靠性并且降低导线成本的网络总线应用中的关键技术包括CAN、LIN、FlexRey、MOST、IDB1394 等。对于汽车整车厂来说,CAN 网络设计是应用CAN 网络通讯的关键。纵观现有的设计技术,可以将其分为两类:一类是以仿真和测试为主的传统设计方法;另一类是以协议设计为主的方法。传统方法将每个节点对协议的要求拼凑起来,通过仿真、测试的方法检验协议的正确性,最终得到通讯协议。新方法通过系统设计技术,用理论方法对系统的时序建模,分析设计系统的通讯协议,保证系统的实时性能以及协议的正确性,最终发布正确的通讯协议。本文将简要介绍传统设计方法的局限性和新方法的优势,以及参考新方法所设计的通信网络软件系统。

  2 传统设计方法的局限性

  随着汽车上电子设备数量的逐渐增多,车载网络系统也越来越复杂,汽车电子网络面临着巨大的挑战。传统网络协议设计技术的局限性越来越突出,主要表现在数据丢失、通讯延迟、协议修改困难等三个方面。

  2.1 数据丢失

  数据丢失是指新数据没有来得及通过网络传输出去,或是超过接收节点的接收时限才传输出去的情况。数据丢失会严重影响通讯的实时性能,进而影响整车通讯的质量。实时性能好的系统应该完全避免数据丢失。

  数据丢失的影响因素就是通讯协议。传统设计方法通过仿真和测试等手段检测协议的正确性,其缺点是无法覆盖所有的测试用例,因此,输出的通讯协议会存在潜在错误或者不够完整,这样就不可避免地会产生数据丢失的情况,影响整个系统的性能。

  2.2 通讯延迟

  通讯延迟是指数据准备好到通过总线发送出去的等待时间。通讯延迟可能导致数据丢失,是传统设计方法无法解决的根本性问题。这主要是因为,传统设计方法只是将各个节点对协议的要求拼凑起来,没有考虑整个系统的需求,比如发送节点发送数据到接收节点接收数据并用于控制,没有考虑实现这样一个完整功能的时间要求。因此协议设计结果难以保证实时性能,必然存在通讯延迟。

  仲裁失败是产生延迟的主要原因,因此延迟与消息的 ID 及周期有关。系统越复杂,消息之间发生竞争的可能性越大,系统的实时性能就越差。

  为了减小延迟的影响,传统设计方法采取了两种预防措施。一种是设定时限,如图1所示。另一种限制负载为平均30%左右,降低消息竞争的可能性。但是这两种方法都不能从根本上消除延迟。


图 1 时限设定和响应时间的计算

  2.3 协议修改困难

  修改协议在开发过程中不可避免。但对于传统的设计方法,因为应用程序和通讯功能的融合,通讯协议的参数变化会导致软件的重新编译和测试,这就意味着额外的时间和成本,供应商极不愿意整车厂商修改协议。因此,整车厂商修改协议十分困难,并需要很长的时间。

  3 以协议设计为主的新方法的特点

  以协议设计为主的方法通过系统级的设计理论和方法,保证通讯协议的准确性,避免数据丢失,保证系统的实时性能。其特点概括起来如下:

  3.1 系统级设计,避免数据丢失

  新技术采用自上而下的系统设计技术,对整个系统的架构进行设计,并完成优化。通过理论设计方法,可保证通讯协议的正确性,从根本上解决数据丢失问题。

  3.2 有效控制消息延时

  响应时间是消息准备发送到最后节点接收到数据的全部时间,它是发送时间和延迟的总和,其中延迟是影响响应时间的主要因素,控制延迟就可以有效控制响应时间。

  如图 1 所示,通过对响应时间进行建模,并仔细安排消息的ID 和周期以控制延迟时间、响应时间及总线负载。然后用理论方法计算出最差情形下的延迟时间、最大的响应值,以及总线负载。

  由于新方法能够计算出最大总线负载,也能有效控制系统延迟,因此没有必要再对系统的总线负载作任何限制,理论上可以达到100%。其优势在于保证了确定的通讯行为,可以有效地利用系统资源。

  3.3 分隔应用程序和通讯协议,保证变更灵活性

  如图 2 所示,新方法为ECU 通讯功能提供了标准的网络通讯组件。该组件将应用程序和通讯协议成功分隔开来,使得各自的修改互不影响,保证了协议修改的灵活性。网络通讯组件提供面向总线、应用程序和通讯协议三方面的标准接口。面向应用程序的接口是基于信号的操作,不包含通讯协议的参数。面向通讯协议的接口负责识别通讯协议。只要遵守接口标准,协议可以进行任意改变,而且不影响应用程序。


图 2 分隔应用程序和通讯协议

  这种设计方案其优势在于整车厂商可以很容易地修改协议,不需要供应商支持,因此保证了系统变更的灵活性,同时也增加了系统的可移植性以及应用的复用性。

  4 系统设计

  为了避免传统设计方法的缺点,本系统参考新方法理论进行设计。整个系统主要分为两大部分:一、静态配置编译工具;二、网络组件,称为COM 组件。

  4.1 静态配置编译工具

  该静态配置编译工具使用配置语言进行信号、帧、帧模式等等的配置。配置语言定义了四个文件的配置规则语法,这四个文件分别为:fixed 文件、network 文件、target 文件和private文件。

  .fix 文件主要用来描述可用的网络接口以及ECU 中的每个通信接口所收发的信号的描述。这些描述内容可以在工程的很早阶段就可以定义,甚至是在选定供应商之前就可以进行定以。

  .net 文件通常由系统Interator 创建,主要用来描述网络接口配置、信号、帧及其想关参数(例如:帧的ID,传输类型、周期、偏移以及信号的映射表),如果应用有需要的话,还可以进行调度表的调度表的定义(应用于使用网关的情况)。这些信息将会存储到NVRAM中,并且对于应用软件不是直接可见的。

  .tgt 文件是由ECU 的供应商提供的,它包括ECU 的硬件特性描述,比如CPU 类型、存储数据的内存的大小和地址等。

  .pri 文件主要用来定义信号的标志、超时以及信号的重命名等信息。通过使用配置语言配置的这四个文件实现了静态可裁剪配置,同时控制了信号传递的时序,有效地控制了通讯延迟并避免了数据的丢失,充分利用了网络资源。

  经过配置后获得的四个文件经过配置编译器编译后生成三个文件,分别为:s_gen.c 、s_hand.h 以及s_nvram。

  s_gen.c 文件包含了一些配置产生的数据结构,并且这些数据结构与ECU 供应商提供的ECU 其他部分应用软件代码进行集成编译和链接。应用软件将包含s_hand.h 文件,以便访问不同的通讯对象,例如:特定的信号等。s_nvram 文件是产生的ECU 二进制配置数据。

  4.2 COM 组件

  COM 组件采用分层结构设计方法,主要分为:交互层(InteractiON layer)和驱动层(devicedrivers layer)。其中交互层中具有网关功能,该功能实现信号级的路由。

  COM 组件中的交互层具有以下功能:一、提供标准面向应用的信号接口;二、提供为网络管理统一服务;三、提供诊断通信统一服务;四、隐藏协议和来自应用的信息属性;五、提供不同网络之间数据传输;六、提供网关功能。

  COM 组件中的驱动层提供以下功能:一、发送从交互层递交过来的数据;二、从CAN硬件接收数据递交给交互层;三、确认上层的发送请求,并将确认信息上报给交互层;四、确认接收完成,并将确认信息上报给交互层。

  信号的接收:当底层网络中有信息在传输时,CAN 收发器进行过滤,只有符合过滤条件的帧才能被CAN 设备通过驱动层接收。然后驱动层将收上来的数据传递给交互层。应用程序通过信号读操作获得符合条件的帧中的相应信号。

  信号的发送:应用程序调用信号写操作功能将有关信号发送到交互层。交互层通过调用有关发送函数进行输出操作,将信息传递到驱动层。驱动层调用有关的发送功能,将信息传输达到CAN 总线上。示意过程图如图3所示。


图 3 使用COM 组件进行信号收发操作

  5 结束语

  本文设计的系统采用新的设计原理,很好的将应用和协议分开,降低了整车厂商对供应商的依赖性,降低了整车的开发成本和开发周期,同时,作为我国自主研制的车载网络解决方案,一定程度上对我国汽车电子行业的进步提供了一定的理论基础。

  本文作者创新点:此网络设计采用了系统设计方法,突破了传统的以仿真测试进行协议拼凑的设计方法,能够使整车厂商灵活地进行协议设计和修改,极大地降低了对供应商的依赖性。同时这种设计方法也保证了系统的移植性和可重用性,并且增加了网络的使用率。

关键字:CAN总线  车载网络通讯 引用地址:CAN总线车载网络通讯组件的研究和实现

上一篇:基于CAN总线的多用户电能表设计
下一篇:基于NiosⅡ处理器的总线架构的SD卡设计

推荐阅读最新更新时间:2024-05-02 21:39

CAN总线在啤酒发酵过程控制系统中的应用
引言 随着人们对啤酒品质的要求越来越高,传统的生产操作或控制方式已不再适应当今的生产规模和生产要求,发酵过程作为啤酒生产过程中至关重要的一环,其控制系统则尤其重要。CAN总线具有结构简单、通信方式灵活、错误检验处理等特点尤其基于优先权的无破坏性总线仲裁技术,特别适合工业过程监控设备的互联。因此,针对当前啤酒企业的设备现状和生产需要,本文将介绍一种采用CAN总线技术进行通信的啤酒发酵分布式控制系统。 图1 现场智能节点结构框图 图2 智能节点CAN总线接口电路 图3 节点查询发送(左)和中断接收(右)流程  图4 智能适配器USB—CAN硬件原理电路 控制系统总体结构 基于CAN总线的啤酒发酵分布式控制系统
[工业控制]
<font color='red'>CAN总线</font>在啤酒发酵过程控制系统中的应用
CAN总线与RS485的比较
CAN(Controller Area Network)和RS485是目前工业控制系统最常用的两种现场总线,CAN是一种有效支持分布式实时控制的串行通信网络。较之基于RS-485总线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性: 1) CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构
[嵌入式]
保护CAN总线收发器不受静电释放和瞬态电压影响的方法
  很多工业网络诸如控制器局域网 (CAN)、RS-485、RS-422和Profibus应该能够耐受终端应用中出现的恶劣系统级瞬态电压(来自于触摸操作、电感负载中断、继电器触点颤动和/或闪电电击期间的静电释放 [ESD])。如果没有与设计所要求标准相关的合适工具和知识,在设计中满足这些要求是困难的。在这篇博文中,我将讨论国际电工委员会 (IEC) 61000-4-2标准,IEC 61000-4-2 ESD测试设置和有助于保护CAN收发器的瞬态电压抑制器 (TVS) 二极管电路。   IEC 61000-4-2 ESD抗扰度测试是一个系统级测试,它仿真了一个带电操作人员对终端系统的放电过程。IEC ESD测试的特点不同于上升时间内其
[嵌入式]
说说如何用can总线测试工具对can设备进行一对一测试
上篇文章我们说了用USBCAN分析仪批量测试CAN设备的方案,那么在一对一测试时应如何判断待测设备CAN接口损坏呢? 因为在实际应用中,工程师可能面对的更多是一对一的测试。这样我们需要通过设备自检确定USBCAN分析仪没有损坏,物理层连线、终端电阻、通信波特率是否正确。如果排除这些因素,仍然无法通讯,那么待测设备就有可能损坏了,此时我们可以通过待测设备CAN口的CAN_L对GND、CAN_H对GND这两个电压值做进一步的判断。如电压值不正确,则说明待测设备已经损坏、或该CAN设备进入休眠状态、或待测设备不是高速CAN设备,需要工程师进行进一步的处理。 1、如何排除USBCAN分析仪的问题 当你在怀疑USBCAN分析仪发生故
[测试测量]
说说如何用<font color='red'>can总线</font>测试工具对can设备进行一对一测试
基于82527的CAN总线智能流量传感器节点设计
引言   CAN(ControllerAreaNetwork,控制局域网)属于工业现场总线,是德国Bosch公司20世纪80年代初作为解决现代汽车中众多的控制与测试仪器间的数据交换而开发的一种通信协议。1993年11月,ISO正式颁布了高速通信控制局域网(CAN)的国际标准(ISO11898)。CAN总线系统中现场数据的采集由传感器完成,目前,带有CAN总线接口的传感器种类还不多,价格也较贵。本文给出一种由8051单片机和82527独立CAN总线控制器为核心构成的智能节点电路,在普通传感器基础上形成可接收8路模拟量输入和智能传感器节点。   1 独立CAN总线控制器82527介绍 82527
[嵌入式]
基于CAN总线的DSP芯片程序的受控加载实现
该技术使对DSP芯片程序的加载可以脱离仿真器而直接受控于列车的主控机。该技术可靠性高、使用灵活方便,具有很强的实用性。 磁悬浮列车上有很多基于DSP芯片的模块和系统。目前, DSP芯片程序的加载与运行都主要依赖于仿真器,而DSP仿真器价格高、体积大,这使得磁悬浮列车系统的调试很不灵活方便;且这些基于DSP芯片的系统一旦脱离仿真器就只能运行事前载入的单一的程序,也使系统的灵活性受到了很大的限制。 本文研究了DSP芯片程序加载的基本原理,并根据这些原理,基于CAN总线,实现了DSP芯片程序的受控加载,使得DSP芯片程序的加载与启动可直接受控于上位主控机。由于主控机的灵活性很大,磁悬浮列车系统在调试时就可根据需要对其上各个控制模块
[嵌入式]
基于<font color='red'>CAN总线</font>的DSP芯片程序的受控加载实现
基于CAN总线和PCC的多电机消隙天线控制系统
1引言 在高精度天线控制系统中(如跟踪卫星通信天线),精密跟踪和方位控制对天线的传动系统精度提出了极高的要求。但是由于存在机械加工误差、机械磨损和传动齿轮之间存在一定的间隙,既影响天线控制系统的跟踪精度,又影响天线控制系统的稳定性。因此必须消除传动齿轮之间的间隙,提高传动精度。 为解决这一问题,人们想了很多方法。传统的方法是对机械的传动结构进行改进。但从已知的消除齿轮间隙的方法看,它们总存在这样或那样的不足,如结构复杂、尺寸大、承载能力差等。因此在高精度天线控制系统中传统的消隙方法无法使用。本控制系统采用多电机来消除传动机构中的齿轮间隙,从而提高传动精度。 基于以上分析,该系统采用基于可编程计算机控制器(Programmable
[嵌入式]
嵌入式必懂的CAN总线
嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来越大。 01 概述 CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。 想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel)。 CAN有很多优秀的特点,使得它能够被广泛地应用。比如:传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。 近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆
[汽车电子]
嵌入式必懂的<font color='red'>CAN总线</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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