利用LPC2194的4路CAN网桥设计

发布者:科技奇才最新更新时间:2012-08-24 来源: 21ic 关键字:LPC2194  CAN网桥  EEPROM 手机看文章 扫描二维码
随时随地手机看文章
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所示。

微控制器与CTM8251T的接口设计

  3 4路CAN网桥的软件设计

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

  3.1 配置模式

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

配置模式的程序流程

 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%;

  ③间隔5 ms时,发送4 056个字节,接收4 056个字节,收包率为100%;

  ④间隔1 ms时,发送5 336个字节,接收5 336个字节,收包率为100%。

  其中,间隔1 ms时的发送和接收图如图6所示。

间隔1 ms时的发送和接收图

  实验结果表明,在以不同间隔发送数据时,网桥都能很好地完成工作,可满足实际应用的需要。

  结 语

  本文设计的4路CAN网桥采用功能强大的ARM芯片LPC2194作为主控芯片,因此能够及时地处理4路CAN总线的数据传输。通过具体实验证明,该网桥工作稳定、可靠、使用方便,完全满足现场的需求。

关键字:LPC2194  CAN网桥  EEPROM 引用地址:利用LPC2194的4路CAN网桥设计

上一篇:采用LPC2104的智能灯光控制器原理及设计
下一篇:LPC2292芯片的μC/OS-II硬件抽象层构建

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

4线EEPROM的C51源程序
sbit RomCS = 0xA0^3; sbit RomCLK = 0xA0^2; sbit RomDI = 0xA0^1; sbit RomDO = 0xA0^0; #define OPCODE_BIT 3 /*功能码位数*/ #define ADDRESS_BIT 8 /*地址位数*/ #define DATA_BIT 16 /*数据位数*/ #define WAITE_TIME 500 /*设置一个最大延时等待数值.注意在不同的晶振下延时是不同的*/ /***********************************************************************/ /*名称: main()
[单片机]
如何提高FLASH使用寿命以实现EEPROM的功能呢 ?
一、 stm32的FLASH擦除是按整页或者整扇区擦除的,不同芯片的页或者扇区(下边统称为页)的大小是不一样的,有1K,16K,64K,128K等大小。 现在我们想要 存3个不同16bit变量的数据,1秒存一次 ,如果不做任何算法,将这3个变量存到3个不同的页的16bit地址,每次更改变量内容都要擦除一次整页(但是我们只使用了16bit的空间),根据芯片数据手册可知,保证性能的情况下flash最少擦除次数为10K,1万次。 我们就按1万次计算,理论上不到3小时我们使用的16bit地址就有损坏的风险。而且要存储的变量个数也有限,我们芯片不可能有那么多页,H7系列也就16页。所以需要一些算法处理,充分利用页的空间。 二、E
[单片机]
如何提高FLASH使用寿命以实现<font color='red'>EEPROM</font>的功能呢 ?
PIC32单片机在气相色谱仪中应用方案,软硬件协同
1 主要内容 1.1课题的目的及意义 气相色谱仪是一个精密仪器,其用途非常广泛。他广泛用于石油、化工、农药、公安、白酒、环境检测、卫生防疫以及高等院校、科研部门。自1952年世界上第一次创建实用气液色谱法以来,在短短几十年间,气相色谱仪作为现代分析检测仪器的代表,已发展成为一个有相当生产规模的产业, 并形成了具有相当丰富的检测技术知识的学科。通过研究气相色谱仪的发展规律,能给使用者有益的启迪,为有关专业人员的工作带来一定的帮助。 1.2国内的外研究现状 虽然我国的气相色谱仪在短短的二、三十年间得到了长足的发展,但是这个市场的大部分配额还是长期被欧美和日本占据,主要是因为我国的技术指标还没有达到一流国家的水平,还有很多空
[单片机]
PIC32单片机在气相色谱仪中应用方案,软硬件协同
STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
Ⅰ、写在前面 上一篇文章是“STM32F10x_模拟I2C读写EEPROM”,讲述使用IO口模拟I2C总线通信,对EEPROM(AT24Xxx)进行读写操作的过程。 上一篇文章主要内容:I2C协议、模拟I2C底层驱动、EEPROM(AT24Xxx)单字节读写操作。 本文主要内容:STM32硬件I2C详细配置、EEPROM(AT24Xxx)多字节读写操作、ST官方I2C存在问题。 实例实验效果: 1、多字节读写:任意地址(66), 写入任意长度(129)、读取并打印出来 2、单字节读写:任意地址(0),写入1字节数据、 读取并打印出来 实验说明: 1.多字节读写 实验为什么是从66地址写? 为什么是写入129字节? 答案:验
[单片机]
STM32F10x_硬件I2C读写<font color='red'>EEPROM</font>(标准外设库版本)
rom eeprom ram flash 的区别
ROM和RAM指的都是 半导体 存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,
[单片机]
基于51单片机的温湿度控制系统
一.硬件方案 本设计采用51单片机每2秒钟从DHT11温湿度传感器中读入温度和湿度,在液晶屏上即时显示。液晶屏上同时显示温湿度上限值,该上限值保存外外部EEPROM存储器中,掉电不失,并且可以通过四只按键上调或下调。当温度或湿度值超过上限值时,报警信号点亮相应报警灯。该报警信号可以通过三极管驱动继电器,以控制外部风机或加热器。 主要由51单片机+最小系统+LCD1602液晶显示模块+温湿度采集模块+继电器驱动模块+风扇模块+LED指示灯模块+按键模块+AT24C02存储模块+蜂鸣器报警模块;如图: 二.设计功能 (1)AT24c02芯片掉电存储设置的上下限。 (2)四个按键为设置、加、减、确定,实现了阀值的调节。 (3)L
[单片机]
基于51单片机的温湿度控制系统
ADI AN-1009应用笔记:ADM106x EEPROM的读写操作
ADM106x EEPROM的块擦除、块读取和块写入   本应用笔记说明如何对ADM106x EEPROM空间的单一页面(32字节)进行块擦除、块写入和块读取。本文中为便于说明,假设需擦除、写入和读取的EEPROM范围为0xF8;0x00至0xF8; 0x1F。    0xF8; 0x00至0xF8; 0x1F EEPROM空间的块擦除   欲对EEPROM空间进行块擦除,请执行下列步骤。   1. 将0x05写入寄存器0x90,使能EEPROM块擦除。   2. 执行下面列出的所有SMBus操作。   • 发送从机地址WRITE   • 接收应答消息   • 发送EEPROM高位地址(0xF8)   • 接收应答消
[模拟电子]
初学24CXX系列EEPROM使用详解&STM32库函数I2C总线
24CXX系列芯片属于EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存储芯片。 24CXX系列芯片数据说明:见下表(只做参考,只表明常用24CXX器件的常用数据,具体使用请查阅器件数据手册): 如24C02BN容量=2KB,但写缓冲区(页容量)=8K 1、“型号”:24Cxx系列型号的标称C后面的参数代表其存储容量大小,单位为KB,这里的1KB=1024bit; 2、“存储容量”:24Cxx系列存储数据为8位(bit)格式,根据其容量可以计算出各型号具体存储数据的字节(Byte)数; 3
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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