客车网络控制中的CAN/CAN网桥设计方案

发布者:心语如画最新更新时间:2016-04-06 来源: eefocus关键字:网络控制中  CAN  网桥设计 手机看文章 扫描二维码
随时随地手机看文章
     1 引言

  控制器局部网CAN(ControllerAreaNetwork)是德国RobertBosch公司在20世纪80年代初为汽车业开发的一种车载专用串行数据通信总线,经过多年的发展,现在越来越多的被众多汽车厂商所认可,并在包括BMW、Benz、VOLVO等汽车上使用。CAN由于其独特的特性,不仅在汽车领域,而且在工业控制领域也得到了广泛的运用,如工业现场控制、小区安防、环境监控等。由于在具体工程运用中,往往需要连接两路CAN子网,因此CAN/CAN网桥是必不可少的,是组网的关键设备之一。本文在将客车网络控制系统划分为底盘和车身的两个网络控制子系统的基础上,利用Philips公司的LPC2119微控制器,从硬件和软件上设计了一个CAN/CAN网桥。

  2 客车网络控制中的CAN/CAN网桥

  由于目前汽车电子应用的日益广泛,CAN在轿车上应用日益广泛,但是在国内的应用还不是很多,只有在某些高档豪华的车型上才会采用,CAN在国内客车上的应用也仅限于由国外公司帮助实施单总线局部联网。汽车电子技术的网络化是我国汽车电子研究与应用的必然趋势,CAN作为标准车载网络技术,其在汽车网络化应用的进程中将起着桥梁和纽带的作用。由于客车中底盘部分涉及到整车行使的安全性,实时性要求和通信的信息量都明显高于车身部分,因此本文在将客车网络控制系统划分为两个子系统(底盘CAN和车身CAN)的基础上,设计了连接两路CAN的网桥。整个系统框架如图1所示。

  该网桥具有实现不同速率的CAN网段连接、不同网段的CAN报文过滤和转发的功能。

  使用CAN/CAN网桥的优点主要表现在以下几方面:

  (1)过滤通信量。网桥接收一个子网的报文,只有当报文是发送给网桥所连的另一个子网时才转发,否则不转发;

  (2)扩大了通信距离;

  (3)提高了通信的最大节点数;

  (4)各网段可使用不同的通信速率;

  (5)提高了系统可靠性。当网络出现故障时,一般只影响个别网段;

  (6)整个网络性能得到改善。

  当然,使用网桥也有一定的缺点,如:

  (1)由于网桥对接收的帧要先存储后转发,增加了延时;

  (2)CAN总线的MAC子层并没有流量控制功能。当网络上的负荷很重时,可能因网桥中缓冲区的存储空间不够而发生溢出,产生帧丢失的现象;

  (3)网桥若出现故障,对相邻两个子网的工作都将产生影响。

  3 CAN/CAN网桥的硬件设计

  3.1 LPC2119

  CAN/CAN网桥是以ARM微控制器LPC2119[3][5]为核心的软硬件系统。LPC2119是Philips公司生产的一款基于支持实时仿真和跟踪的16/32位ARM7TDMI-SMCU,带有128KB嵌入的高速Flash存储器。独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。LPC2119内部集成2个CAN控制器,为设计CAN/CAN网桥提供了可能。它的主要特性有:单个总线上的数据传输速率高达1Mb/s;32位寄存器和RAM访问;兼容CAN2.0B;全局验收滤波器可以识别所有的11位和29位Rx标识符;验收滤波器为选择的标准标识符提供FullCANstyle自动接收。

  LPC2119内部集成的CAN控制器与Philips公司的SJA1000CAN控制器相比较大致相同,只是在验收滤波这一环略有不同,这为习惯SJA1000的开发人员采用LPC2119提供了方便。在传统的SJA1000中,接收过滤只能满足一些规律性较高的ID筛选过滤,或个数较少的ID(一般小于10~15个)进行任意筛选过滤,难以实现更复杂的任意ID进行筛选过滤,这无疑增加了系统软件设计及运行时负担。LPC2000系列32位ARM微控制器中为所有CAN控制器提供了全局的接收标识符查询功能。它包含一个512×32(2k字节)的RAM,通过软件处理,可在RAM中存放1~5个标识符表格。整个AFRAM可容纳1024个标准标识符或512个扩展标识符,或两种类型混合的标识符。由于允许的表格范围有2k字节,所以能容易地满足设计复杂的ID接收过滤要求。

  全局接收过滤的工作流程:当CAN控制器的接收端已接收到一个完整的标识符,它将通知接收过滤器。接收过滤器响应这个信号,并读出控制器编号、标识符尺寸(11bit或29bit),然后,接收过滤器搜索AFRAM中的表格进行匹配,以决定接收或放弃这一帧信息。

  3.2 基于LPC2119的CAN/CAN网桥的结构设计

  CAN/CAN网桥的硬件框图如图2所示。LPC2119分别通过光电耦合电路和高速CAN总线收发器TJA1050与两路总线相连。两路CAN的连接方式基本相同。CAN总线驱动器都采用带隔离的DC/DC模块单独供电。这样,不仅实现了两路CAN接口之间的电气隔离,也实现了网桥与CAN总线的隔离。虽然这在一定程度上增加了网桥硬件的复杂性和成本,但却是值得的。采取隔离措施可使故障局限在某一网段内,而不至于影响其它网段,既便于维护,又保证了系统设备的安全。采用光电耦合电路将CAN收发电路与LPC2119从物理上相隔离,避免了电气上影响LPC2119的工作。

  CAN/CAN网桥除了以上主要部分以外还加了LED指示、看门狗电路和复位电路。几个LED主要指示两路CAN的工作状况以及出错报警。LPC2119内置了看门狗电路,当由于程序跑飞或者其他原因导致系统工作不正常时将自动复位。复位电路采用MAX708SD来产生稳定的复位信号。

  3.3 CAN/CAN网桥的软件设计

  CAN/CAN网桥的主要功能是实现两路CAN之间的数据过滤及转发,由于客车网络控制系统中对通讯的实时性的要求,在进行软件设计时要做到数据存储和转发的时间要求尽可能的短。为了达到这一要求,数据的接收采用向量中断(IRQ)方式,而且由于底盘CAN控制子系统的数据通讯量明显要高于车身CAN控制子系统,因此将连接底盘CAN控制子系统的CAN1接收优先级设置为最高,而连接车身CAN控制子系统的CAN2接收优先级次之。同时尽量精简中断服务程序,使系统的响应时间尽量的短。对应两路CAN设置了两个FIFO的环形接收缓冲区,由于CAN1的数据通讯量要高,因此CAN1的FIFO环形接收缓冲区比CAN2的大,这样更适合实际情况。

  CAN/CAN网桥的软件设计主要包括:两路CAN控制器的初始化,FIFO环形接收缓冲区的设置,两路CAN控制器的全局验收过滤器的设置,接收中断服务程序,CAN发送程序,主监控程序。

  CAN控制器的初始化流程如图3所示。其中全局验收过滤器的配置是一个难点,也是区别于SJA1000独立CAN控制器的一个地方。有5个地址寄存器用来指向验收过滤器RAM中的表格:fullCAN标准地址、标准单个地址、标准地址范围、扩展单个地址和扩展地址范围。这些表格在存储器中必须是连续的。后4个表格的起始地址分别是各自相邻的前一个表格的终止地址。扩展地址范围表格的终止地址在表格终止寄存器中给出。如果一个表格的起始地址等于下一个表格的起始地址或表格终止寄存器的值,则该表格为空。

  FIFO环形接收缓冲区中设置一个发送指针、一个接收指针和当前数据帧数frameCount,当frameCount为0时表明FIFO环形接收缓冲区是空的。

  接收中断服务程序将接收到的数据放入对应的FIFO环形接收缓冲区中并且修改接收指针和当前数据帧数frameCount。

  主监控程序负责监控两路CAN的FIFO环形接收缓冲区中是否有数据,如果其中一路CAN的FIFO环形接收缓冲区中有数据则向另一路CAN发送数据。主监控程序不断查询两路CAN的FIFO环形接收缓冲区中的当前数据帧数frameCount标志,如果非零立即向另一路发送数据,并且在子程序CAN1SendToCAN2()和CAN2SendToCAN1()中修改发送指针和当前数据帧数。主监控程序流程如图4所示。

  4总结

  本文在LPC2119的基础上设计了一个CAN/CAN网桥,并从硬件和软件的角度论述了设计过程。作者采用广州周立功单片机发展有限公司的CANalyst-II和USBCAN-II分别模拟客车底盘CAN和车身CAN对网桥进行了大量数据的反复测试,在向两路CAN连续不间断发送100000帧数据的情况下能够准确的转发,说明网桥工作可靠。下一步的研究目标将在网桥上移植实时多任务操作系统μC/OS-II来进一步提高网桥的实时性能。

  本文作者创新点:将客车网络控制系统划分为底盘和车身的两个网络控制子系统,并且设计了CAN/CAN网桥互连两个网络控制子系统。

关键字:网络控制中  CAN  网桥设计 引用地址:客车网络控制中的CAN/CAN网桥设计方案

上一篇:CAN和DeviceNet总线
下一篇:CAN总线通信硬件原理图

推荐阅读最新更新时间:2024-05-03 00:17

没听过这个,都不好意思说自己做过CAN总线开发!
CAN总线网络中,若其中一个节点出现硬件或者软件上的错误,很可能导致总线电平持续保持在显性状态,总线上所有节点均不能正常通信。在节点设计时,应该如何通过硬件手段避免这一问题发生? 总线值 CAN总线上的数据采用不归零编码方式,可具有两种互补的逻辑值之一:“显性”或“隐性”。“显性”位和“隐性”位同时传送时,总线的结果值为“显性”。比如,在执行总线的“线与”时,逻辑 0 代表“显性”,逻辑1 代表“隐性”。 CAN总线节点的基本组成如图1所示,当MCU的TXD引脚输出0时,总线电平为显性,若输出1,总线电平则为隐性。 图1 CAN节点基本组成示意图 TXD 显性超时 由于CAN总线显性电平的“支配地位”,在C
[嵌入式]
保时捷Taycan或成首款全面整合苹果音乐的汽车
保时捷电动Taycan预计在9月上市,将配备三年的苹果音乐流媒体服务和完全集成的仪表盘解决方案。驾驶舱内的触控显示屏是车载苹果音乐的界面,将不需要绑定或无线连接的iPhone。通过触摸屏和语音助手的结合,用户可以在Apple Music上请求歌曲、专辑、播放列表或电台。   苹果音乐和国际内容副总裁Oliver Schusser表示,开车时听音乐是一种令人兴奋的感觉,自Apple Music推出以来,我们一直致力于为客户带来最佳的车内音乐体验,而保时捷一直走在这个领域的前沿。保时捷打造的是最高水平的跑车,如今,随着Taycan的推出,客户现在可以无缝选择内置Apple Music,为每一次驾驶找到完美的背景音乐。   不过
[手机便携]
采用C8051F060单片机和现场总线CAN实现网络测控系统的设计
1 绪论 随着网络技术的不断发展,Internet把世界上分散的计算机系统、通信系统实现了互连,形成了共用数据网络,成功的实现了网络资源共享。而CAN总线技术使得控制系统向着分散化、网络化、智能化的方向发展,使控制技术与计算机以及网络技术更为紧密的结合在一起。随着CAN总线控制网络的进一步发展,控制网络与因特信息网络的结合,方便了对设备的远程监控、诊断和维护。 2 系统模型概述 本设计采用在CAN总线控制网络和因特网之间加入一个转换接口。这种方式是通过硬件来实现的,即在底层网络与中间监控层之间加入中继器、网桥、路由器等专门的硬件设备,使控制网络作为信息网络的扩展与之紧密集成。硬件设备可以是一台专门的计算机,依靠其中运行的软件完
[单片机]
采用C8051F060单片机和现场总线<font color='red'>CAN</font>实现网络测控系统的<font color='red'>设计</font>
基于ARM7处理器的CAN总线网络设计
  引言   can(controller area network)即控制器局域网络,最初是由德国bosch公司为解决汽车监控系统中的自动化系统集成而设计的数字信号通信协议,属于总线式串行通信网络。由于CAN总线自身的特点,其应用领域由汽车行业扩展到过程控制、机械制造、机器人和楼宇自动化等领域,被公认为最有发展前景的现场总线之一。   can总线系统网络拓扑结构采用总线式结构,其结构简单、成本低,并且采用无源抽头连接,系统可靠性高。本设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等持点。   2  系统总体方案设计   整个can网络由上位机(上位机也是网络节点)和各网络节点组成(见图1)。上位
[嵌入式]
CAN总线成为车电系统的总线标准
1 . CAN总线 在电子产品的各种通讯方式中,CAN(Controller Area Network)总线以其高可靠性、实时性、传输距离远的特点得到广泛的应用,已经成为许多高档汽车(如奔驰、宝马等)车电系统的总线标准。于是出现了许多内部集成CAN控制器的单片机,如Atmel公司的T89C51CC0X系列单片机就是其中性价比较高的一款,它具有丰富的内部资源,支持CAN方式的在线编程。我们在使用此系列产品的过程中,针对其应用普遍但编程器较少的特点,开发了一款基于T89C51CC01CA芯片的CAN程序下载和CAN节点调试器,它既能对同类单片机进行编程,又能通过CAN总线对具有CAN通讯功能的设备进行调试。 2. 系统结构框图 2
[单片机]
<font color='red'>CAN</font>总线成为车电系统的总线标准
基于CAN总线的三轴磁场监测系统设计
0 引言 发电机组和电动机组是电能生产和应用的基本装备,及时掌握大型电机的运行状态,对电枢电压、电枢电流、励磁电流、温度、转数等参数进行监测就显得尤为重要。电机状态监测系统所需要的传感器种类繁多、数量大,构成的传感器网络相对复杂。不同的状态监测机制存在着其总线结构不统一、总线通信线路复杂、模拟信号干扰大等问题,可靠性、实时性、经济性始终是设计者和用户关注的主要方面 。 本文提出了基于控制器局部网 CAN(Controller Area Network)总线数字模块化三轴磁场监测系统的概念,研究了大型电机状态监测系统架构设计,并重点设计与实现了传感网络节点模块,以及 CAN总线上层协议的软件设计,提高数据采集与传输的可靠性。 1 CA
[测试测量]
基于<font color='red'>CAN</font>总线的三轴磁场监测系统<font color='red'>设计</font>
CAN_总线_STM32(2)
过滤器的理解 STM32 参考手册中提到:bxCAN 控制器为应用程序提供了 28个位宽可变的、可配置的过滤器组(0~28))(103只有14个)每个过滤器组的位宽都可以独立配置。可以配置成 16 位或者 32 位。过滤器组还可配置为屏蔽位模式(标识符掩码)或标识符列表模式。 每个过滤器组x由2个32位寄存器,CAN_FxR1和 CAN_FxR2组成 先看一个过滤器组:如图 这里的 ID 并不是发送数据帧里面的ID,此ID非彼ID,硬件上属于不同的 register,这里的 ID 就是你需要去设置来达到你想要过滤接收某个数据 ID 的一串标识符,然后过滤器会根据你所设置的标识符 ID 来决定是不
[单片机]
<font color='red'>CAN</font>_总线_STM32(2)
Linux+QT+SocketCAN:使用信号槽机制实现数据收发
最近在考虑采用面对对象的方式重新搭建机器人的主控程序框架,虽然之前的框架也是有这种思想在里面,但是总感觉还是有程序化编程的影子,很多地方的处理都不太理想,而且虽然之前也是一直在采用QT Creator作为IDE开发程序,但是实际上并没有怎么用QT的库,只是单纯的作为一个IDE来用,未免也是空守宝山而不入。 因此这次决定充分利用QT的库和信号槽机制来对程序框架进行重新构建。 0.开发环境 HOST平台: Ubuntu16.04 ARM平台:at91sam9x35 QT版本: 5.13.1 1.分析 针对Linux上的CAN通信,Socket CAN提供了一种十分简单方便的解决方案,QT中并没有像QTcpSocket一样的库可以使
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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