微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于LPC2194的4路CAN网桥设计

基于LPC2194的4路CAN网桥设计

时间:05-02 来源:互联网 点击:

  CAN总线以其设计独特、成本低、可靠性高、实时性和抗干扰能力强等特点,在汽车工业、机械工业、纺织工业、机器人、数控机床、医疗器械等领域得到了广泛的应用。从高速网络到低速的多路接线网络都可以使用CAN总线,其最高传输速率可以达到1 Mbps,最远传输距离可达10 km(传输速率在5 kbps以下时)。但是当要求传输速率较高且传输距离较远时,单条总线就无法完成;而且在大型的网络中,经常需要多条总线的接入。这就需要同时有中继与路由功能的CAN网桥来实现以上功能。

  本文设计的4路CAN网桥可以延长CAN传输距离,扩展CAN通信网络;同时具有路由功能,可实现不同CAN网络之间的不同路由、不同通信速率的转换,能够在大型CAN网络中起到关键作用。

  1 4路CAN网桥的设计方案

  1.1 CAN网桥的优点

  使用4路CAN网桥对网络性能的改善有着很大的帮助,在大型网络的组网中有以下优点:

  ①可以延长网络的传输距离,特别是经过几个CAN网桥的中继之后,可以极大地延长传输距离,能够达到几千米甚至几十千米。

  ②可以增大CAN网络的规模,4路CAN网桥有4个CAN支路,每条支路又可以增加新的CAN网桥,因此可以组成大规模的CAN网络。

  ③可以实现不同网络之间不同路由的选择,增强了CAN网络的可靠性。

  1.2 设计方案

  CAN网桥的设计方案一般分为单MCU和多MCU两种。单MCU速度较慢,不适用于高速网络;多MCU方案结构复杂,稳定性较差。针对以上情况,本设计采用了自带4路CAN控制器的ARM微控制器LPC2194,同时避免了MCU速度慢和多MCU网络复杂的情况。

  LPC2194的特点如下:

  ①具有32位的ARM7微控制器,带有256 KB的嵌入式高速Flash存储器。32位代码能够在最高时钟频率下运行,且功耗极低,处理速度极快。

  ②自带4路互联的CAN控制器,完全支持CAN2.0B和ISO1198-1的标准,每个CAN控制器均可以实现1Mbps的速率。其全局验收滤波器可识别所有总线的11位和29位Rx标识符,相对于SJA1000的CAN控制器有着明显的优势。

  2 4路CAN网桥的硬件设计

  2.1 总体设计

  由于LPC2194集成4路CAN控制器,因此能够方便地实现4路CAN总线接口,既减小了系统的规模,又提高了系统的稳定性。本设计采用 LPC2194作为主控芯片,具有隔离和保护的CTM8251T作为CAN收发器。系统的整体结构如图1所示。

  

  2.2 微控制器与CTM8251T的接口设计

  CTM8251T是一款带隔离的通用CAN收发器模块。该模块内部集成了所有必需的CAN隔离及CAN收发器件,具有2 500 V的隔离功能和CAN-bus总线过压保护作用。该模块符合ISO11898标准,因此可以与其他遵从ISO11898标准的CAN收发器相互操作。由于微控制器LPC2194集成的4路CAN控制器完全相同,因此本设计中只给出1路CAN控制器与CTM8251T的连接图,如图2所示。

  

  3 4路CAN网桥的软件设计

  4路CAN网桥不同于一般的CAN中继器,可以选择不同的路由和不同的通信速率。本设计中,4路CAN接口均可以实现与其他3路之间不同路由的选择和不同通信速率之间的转换,极大地增强了网络的可扩展性。4路CAN网桥的工作模式分为两种:配置模式,可以选择路由和不同支路的CAN通信速率;正常工作模式,根据所配置的状态来进行工作。

  3.1 配置模式

  配置模式的主要工作是将配置信息写入EEPROM中,在正常工作时可以读取配置的信息。配置模式的程序流程如图3所示。

  

  3.2 正常工作模式

  在配置模式下配置好各信息后,系统重新上电可以进入正常工作模式。根据配置模式配置的状态,4路网桥对网络中的信息进行存储转发。在LPC2194 中,4路CAN控制器是同时工作的,因此能够提高系统的速度和实时性。每一路的结构和程序是相同的,因此本设计仅给出1路CAN控制器正常工作的程序设计。

  为了提高系统的转换速度和稳定性,本设计采用了中断接收和查询发送的方式。系统中断接收CAN总线上的数据,并根据路由选择和标识符的分配选择发送到其他3路,从而完成网桥的工作。系统主程序和中断程序流程分别如图4和图5所示。

  

  4 实验结果

  为了验证系统的可靠性,设计了一个通信收包率的实验。通过PC机间隔一定的时间,向CAN网桥一条支路发送8字节的数据,网桥的另一条支路向PC机回复接收到的8字节数据。通过对比发送和接收的字节数来验证收包率。分别以100 ms、10 ms、5 ms、1 ms的间隔来发送8字节的数据,发送和接收到的字节数为:

  ①间隔100 ms时,发送1 336个字节,接收1 336个字节,收包率为100%;

  ②间隔10 ms时,发送3 376个字节,接收3 376个字节,收包率为100%;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top