CAN中继器是大型CAN网络中经常用到的设备,它可以延长传输距离,改变拓扑结构和隔离干扰,但也增加了设计成本。有人说,只要2颗CAN收发器芯片就可以实现CAN中继功能。到底行不行呢?
一、CAN收发器简介
ISO 11898是一个使用CAN总线协议的汽车内高速通讯国际标准。CAN收发器是协议中数据链路层和物理层的接口部分。常见的CAN收发器芯片有NXP(原Philips)的PCA82C250/251、TJA1050/1051等型号。由于PCA82C250和TJA1050总体的引脚和功能都兼容,所以我们下文以TJA1050为例。
二、2颗CAN收发器芯片的错误方案分析
首先,简单介绍一下TJA1050。如图1,TJA1050一共有8个引脚,TXD为发送数据,RXD接收数据,VCC接5V电压,GND接地。CANH和CANL为CAN的两路差分输出。8脚为CAN总线模式选择,5脚为参考地。
图1
RXD和TXD想必大家都非常熟悉,在RS-232协议中,只要把两个设备的RS-232的TXD和RXD交叉连接,GND共地,两个设备便可以实现通信。于是有人想到,如果把2颗TJA1050芯片的TXD和RXD也交叉连接,是否能实现中继功能呢?
如图2电路,看上去貌似可行,但是实际上此电路是无法使用的。
假如将此电路接入CAN总线,当有显性电平从TJA1050(A)进入时,TJA1050(A)的RXD=0,同时TJA1050(B)的TXD=0,TJA1050(B)的CAN输出显性电平。由于芯片的自反馈,TJA1050(B)会读入显性电平将RXD=0,同时TJA1050(A)的TXD=0,如此持续下去。由于TJA1050有TXD脚的显性保护功能(PAC8250无此功能),当超过允许最大的TXD显性时间之后,CAN收发器将会被禁能。
图2
三、CAN中继器正确的设计方案
如图4为CAN中继器的硬件框图,主要由MCU和CAN控制器、CAN收发器组成。MCU负责数据的缓存和转发,CAN控制器将数据转换成CAN帧格式,最终通过CAN收发器接入CAN网络。大多的MCU已集成了CAN控制器在芯片内,比如NXP的LPC2119。
图3
CAN控制器和CAN收发器之间通过光耦隔离,CAN收发器驱动采用带隔离的DC-DC模块。这样,不仅实现了两路CAN接口之间的电气隔离,也实现了中继器和总线的隔离。虽然这在一定程度上增加了中继器硬件的复杂性和成本,但却是值得的。或者可以用致远电子的CTM1051KT为代表的隔离CAN收发器,内部包含隔离DC-DC、信号隔离电路、CAN总线收发电路、基础的总线防护等。同传统的设计相比,CTM系列具备更高的集成度、更高的可靠性和更具竞争力的价格,能够帮助使用者降低整体的设计风险和采购成本。
图4
四、智能CAN网桥中继器
ZLG致远电子CAN隔离网桥中继器集线器系列,具有2个或者4个电气隔离的CAN总线接口,能实现CAN-bus网络的中继功能,能将不同速率的CAN网络之间的数据存储转发。主要应用如下:
(1)使用该系列产品可达到增加负载节点和延长通信距离的作用,实现网络中继扩容的功能;
(2)可独立任意配置每个通道的通讯波特率,实现不同通信波特率的CAN网络互联;
(3)该系列产品具有强大的ID过滤转换和数据转换功能,精确的验收ID配置使CAN总线的负荷降到最低。或者变化特定的ID和数据,实现去除干扰数据和区别不同设备的目标;
(4)具有强大的抗干扰能力,当用户的设备CAN受到强干扰导致死机或者损坏,接上该系列产品后,可以隔离干扰保护设备正常运行。
图5
关键字:CAN 中继器
引用地址:
CAN中继器常犯的错误设计
推荐阅读最新更新时间:2024-05-03 01:43
分析CAN总线国内外发展与应用状况
为促进CAN以及CAN协议的发展,1992在欧洲成立了CiA(CANinAutomation)。在CiA的努力推广下,CAN技术在汽车电子 控制系统 、电梯控制系统、安全监控系统、医疗仪器、 纺织机械 、船舶运输等方面均得到了广泛的应用。现已有400多家公司加入了CiA,CiA已成为全球应用CAN技术的权威。
CAN总线在组网和通信功能上的优点以及它的高性能价格比决定了它在许多领域都有广阔的应用前景和发展潜力。大型仪器设备系统复杂,对多种信息进行采集、处理、控制、输出等操作。如医疗器械CT断层扫描仪,为保证其可靠工作,在数据通信上要求功能块间可随意进行数据交换、通信能以广播方式进行、简单经济的硬件接口、通信线尽量少
[嵌入式]
基于ATmega16单片机的CAN总线转RS232设计
CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。但是目前PC机普遍配置RS232串行通信接口,没有CAN总线接口。实际中很多设备带有RS-232接口没有CAN总线接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机ATMega16控制的CAN总线与RS-232转换器电路设计和软件设计
[单片机]
汽车辅助系统CAN总线接口电路设计
总体方案设计 CAN 总线接口电路主要包括:单片机、控制器接口、总线收发器和看门狗电路等。采用Philips公司生产的SJA1000控制器和与其配套的 82C250CAN收发器。按照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN网络。双绞屏蔽线可设两套,在两套介质上同时进行信息传输,接收方只用一个介质。在冗余和非冗余段的连接临界点处进行总线切换。
硬件电路的设计主要是CAN 通信控制器与微处理器之间和CAN总线收发器与物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频
[嵌入式]
基于CAN总线与ARM的汽车节能控制装置设计
本文以节约能源为切入点,针对城市公交车频繁刹车的特点,设计了一种节能控制装置,通过该装置把汽车刹车时由原来通过摩擦片产生阻力停车,改为带动空气压缩机工作。 把汽车行驶时的动能转化为高压气能,利用能量的转换使汽车停下来。在汽车启动时,利用储存起来的高压气能带动汽车行走,从而达到节约能源的目的。 引言 由于各种原因,公交车总是不断重复加速—减速或停车—再加速的过程。通过加装本节能装置,当汽车需要制动时,在主控单元的控制下,可将汽车行驶时具有的巨大动能通过空气压缩机转化成高压气体的势能并储存起来,从而实现汽车减速或停车。当汽车需要启动或加速时,用储存起来的高压气体势能代替燃油来驱动汽车,从而实现汽车能量的回收再利用,达到节能的效
[单片机]
CAN 总线计时权衡因素:信号速率与线缆长度的关系
有一个关于得克萨斯州民间英雄 Pecos Bill 的故事:那时,有人打赌他不能从从得克萨斯州的加尔维斯敦游过墨西哥湾到达弗罗里达州的基韦斯特。他训练了一个月,当这一天到来时他便一头扎进了墨西哥湾。Bill 不分昼夜地游了一个星期,期间战鲨鱼斗飓风。最终,他离自己的目标越来越近。然而,当他在海浪中看到远处的基韦斯特时,他意识到他已经太累,无法再继续向前游了,因此他转身游回了得克萨斯!
致力于 CAN 通信的设计人员就像 Pecos Bill 一样面对他们所遇到的种种挑战,往返信号传输成为一个重要的考虑因素。
当一个以上节点要在共用总线上发送信号时,控制器局域网 (CAN) 协议的一个关键特性就是如何处理总线争用问题。CA
[嵌入式]
基于CAN总线的数据采集记录装置设计
1.绪论 现场总线作为生产现的场数据通信与控制的网络技术,在测量控制领域随着信息技术的发展已得到广泛的应用。现在的工业现场总线控制网络技术已经被认为是一种比较的成熟的技术,同时也被认为是目前最具有前途的一种现场总线之一。然而,CAN现场总线作为一种面向工业底层控制的通信网络,其局限性也是显而易见的。首先,它不能与Internet互连,不能实现远程信息共享。其次,它不易与上位控制机直接接口。因此,我们在本文中引入以太网技术。
以太网是在上个世纪70年代为连接多个实验室而开发出的一种局域网技术,随着互联网技术和计算机的迅猛发展,以太网已成为当今世界上应用范围最广、最为常见的一种网络技术。他在工业控制中的优势是显而易见的:首先,基于
[嵌入式]
基于FPGA的CAN总线控制器SJA1000软核的设计
分析了CAN控制器SJA1000的特点及CAN协议通信格式。设计了控制器SJA1000的IP软核,能为应用提供一个性能优良的、易于移植的控制器SJA1000,实现了对步进电机的控制。 控制局域网(CAN)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。与一般的通信总线相比,CAN总线的数据通信可靠性、实时性和灵活性好,应用领域非常广泛,通常基于ARM或51单片机,实现与CAN控制器的通信联络。FPGA/SOPC技术是实现嵌入式系统的最高形式,基于IP软核的设计与应用也必将成为替代硬核的一种发展趋势。凭借QuartuslI和NiosII工具,基于FPGA的VHDL(或Verilog)语言设计的IP核能够提供灵
[嵌入式]
KEIL_MDK5仿真文件和参数名,printf 和 scanf 函数重定位
DARMSTM.DLL pSTM32F103RB printf重定位 #include stdio.h 初始化串口 重写fputc 和 fgetc 函数 /**************************************************************************** * 名 称:int fputc(int ch, FILE *f) * 功 能:printf函数的输出驱动函数 * 入口参数:无 * 出口参数:无 * 说 明: * 调用方法:无 ******************************************************************
[单片机]