共2条
1/1 1 跳转至页
CAN,SJA1000 我想做一个冗余的CAN设备,一定要用两片SJA1000吗?
问
答 1:
我想是这样比较好吧使用冗余方式得话因为信号的到达先后不同,如果只使用一片SJA1000,那怎么判断哪路的信号先到来,如果使用两片SJA1000,那么先产生中断的就是先到的信号,很容易作出判断
答 2:
一般情况下需要双组”CAN控制器+CAN收发器“实现可靠冗余。
答 3:
冗余探讨工业控制现场中工况条件十分恶劣,电缆受拉,压,砸,挤等而造成故障的情况很多,这对于以总线为核心的CAN总线系统将会是一种极大的威胁,比如总线短路,一旦发生这种故障,总线建会失去通讯能力导致整个系统瘫痪。解决这一故障的最有效的方法就是总线冗余,同时使用两条或多条总线电缆。
总线冗余的方法可分为完全冗余和部分冗余。本节点设计采用部分冗余。
完全冗余是在CAN总线冗余处理上,通常采用的方法是使用两套总线,每一套都包含有完整的总线电缆、总线驱动器和总线控制器,或将总线控制器与CPU集成于一体的MCU(微控制单元,如单片机)。这种方法有两种操作方式,一种是后备方式:一套运行,另一套“休眠”备用,当运行总线发生故障时,启用备用总线;另一种是同时运行方式:两套总线同时运行,如果其中一套发生故障,另一套仍能维持系统的正常运行。
这种方法的优点是,它实现了物理介质、物理层及数据链路层甚至应用层的全面冗余,因此,可以称之为“全面冗余方法”。但全面冗余方法存在着某些不足之处,如,由于CAN节点对系统的构成不敏感,因此,后备方式发现总线开路故障的能力和及时性较差;同时运行方式由于两路同时工作,因此,功耗大。另外,由于使用两个总线控制器或MCU,全面冗余方法的成本高一些。
部分冗余方法只实现物理介质和物理层的冗余,即,使用两条总线电缆、两个总线驱动器,但只有一个总线控制器或MCU,在总线控制器与两个总线驱动器之间增加了一个判断电路。如上图所示。
当设备(节点)发送时,总线控制器向两条总线同时发送相同的报文;而接收时,判断电路自动选择两条总线中的一个并将其报文送入总线控制器。判断电路以时间优先为选择原则,即,哪一路报文抢先到来,哪一路报文就被选中。如果某一总线发生故障,则关闭它与总线控制器的信号通道,而正常总线的信号通道不受影响,同时,向CPU发出总线故障中断。在判断电路中,设置了两个可重复触发的单稳态IC(74LS122),它们分别与两条总线对应,检测报文及其到来。当报文到来时,总线驱动器的RxD首先出现一个低电平位(报文的帧起始位),其下降沿触发单稳IC使其输出产生一个高电平宽脉冲,该脉冲经报文中对应的多次下降沿触发而一直持续到报文结束。
在总线正常的情况下,当出现报文时,两个单稳IC均产生高电平宽脉冲,它们被送到由两个与非门构成的RS触发器中进行优先——滞后比较;对于优先者,RS触发器给对应的或非门低电平,开通相应总线的信号通道;对于滞后者,RS触发器用高电平关闭对应的或非门。一旦某一总线发生故障,对应的驱动器上的RxD保持在某一电平状态上,相应的单稳IC不被触发,其输出始终保持在低电平上。因此,RS触发器用高电平封锁住或非门,使这一信号通道被关闭。此外,当总线无报文时,两个信号通道均暂时关闭。异或门74LS86用来向CPU提供总线故障中断信号。CPU接到中断后通过I/0口分别查询两个单稳输出即可对故障定位。随后,CPU可以发送一个故障警报信号,通常正常总线通知给系统监视设备,以便及时处理。在异或门上设置RC延时环节的目的是为了避免两个报文不严格同步或两个单稳IC的输出脉宽不严格一致而引起误中断。
需要注意的是,单稳IC的单次触发所产生的脉宽应不小于报文中连续12个位的持续时间(主动错误标志的最大可能时间。正常情况下,报文中连续出现的相同逻辑位数不超过5位)。
在部分冗余方法中,由于每个设备中只使用一个总线控制器,因此,在正常运行状态下即使发生总线竞争(总线冲突)也不会造成两条总线的混乱或报文不一致的情况,所以,以这种方法构成的系统完全能够符合CAN协议的要求。这种方法与全面冗余方法相比,不仅成本低,而且它在发现总线故障以及及时性方面比后备方式好,功耗比同时运行方式低。对于工业控制,尤其是本质安全型系统来说,这些优点都是十分重要的。当然,部分冗余方法中多增加了一个环节(判断电路)使通讯延时增加,通讯速度受到一些影响,不过,即使速度降低一些,对工作面的应用来说也足够快了。顺便说一下,CAN总线通讯速度及传输距离的指标为:1Mbits/s(40m)、125kbits/s(500m)、50kbits/s(1km)。[1]因此,可以这样讲,部分冗余方法是解决CAN总线系统中总线故障问题的一种较好的方法。当然,如果是可靠性要求非常高且双CPU运行的系统,应优先考虑全面冗余方法。
图发不上来,资料来源:中国期刊网 答 4: 出自上片说明出自
http://www.dndev.com/cgi-bin/forum/toPIC.cgi?forum=2&toPIC=4&show=0
总线冗余的方法可分为完全冗余和部分冗余。本节点设计采用部分冗余。
完全冗余是在CAN总线冗余处理上,通常采用的方法是使用两套总线,每一套都包含有完整的总线电缆、总线驱动器和总线控制器,或将总线控制器与CPU集成于一体的MCU(微控制单元,如单片机)。这种方法有两种操作方式,一种是后备方式:一套运行,另一套“休眠”备用,当运行总线发生故障时,启用备用总线;另一种是同时运行方式:两套总线同时运行,如果其中一套发生故障,另一套仍能维持系统的正常运行。
这种方法的优点是,它实现了物理介质、物理层及数据链路层甚至应用层的全面冗余,因此,可以称之为“全面冗余方法”。但全面冗余方法存在着某些不足之处,如,由于CAN节点对系统的构成不敏感,因此,后备方式发现总线开路故障的能力和及时性较差;同时运行方式由于两路同时工作,因此,功耗大。另外,由于使用两个总线控制器或MCU,全面冗余方法的成本高一些。
部分冗余方法只实现物理介质和物理层的冗余,即,使用两条总线电缆、两个总线驱动器,但只有一个总线控制器或MCU,在总线控制器与两个总线驱动器之间增加了一个判断电路。如上图所示。
当设备(节点)发送时,总线控制器向两条总线同时发送相同的报文;而接收时,判断电路自动选择两条总线中的一个并将其报文送入总线控制器。判断电路以时间优先为选择原则,即,哪一路报文抢先到来,哪一路报文就被选中。如果某一总线发生故障,则关闭它与总线控制器的信号通道,而正常总线的信号通道不受影响,同时,向CPU发出总线故障中断。在判断电路中,设置了两个可重复触发的单稳态IC(74LS122),它们分别与两条总线对应,检测报文及其到来。当报文到来时,总线驱动器的RxD首先出现一个低电平位(报文的帧起始位),其下降沿触发单稳IC使其输出产生一个高电平宽脉冲,该脉冲经报文中对应的多次下降沿触发而一直持续到报文结束。
在总线正常的情况下,当出现报文时,两个单稳IC均产生高电平宽脉冲,它们被送到由两个与非门构成的RS触发器中进行优先——滞后比较;对于优先者,RS触发器给对应的或非门低电平,开通相应总线的信号通道;对于滞后者,RS触发器用高电平关闭对应的或非门。一旦某一总线发生故障,对应的驱动器上的RxD保持在某一电平状态上,相应的单稳IC不被触发,其输出始终保持在低电平上。因此,RS触发器用高电平封锁住或非门,使这一信号通道被关闭。此外,当总线无报文时,两个信号通道均暂时关闭。异或门74LS86用来向CPU提供总线故障中断信号。CPU接到中断后通过I/0口分别查询两个单稳输出即可对故障定位。随后,CPU可以发送一个故障警报信号,通常正常总线通知给系统监视设备,以便及时处理。在异或门上设置RC延时环节的目的是为了避免两个报文不严格同步或两个单稳IC的输出脉宽不严格一致而引起误中断。
需要注意的是,单稳IC的单次触发所产生的脉宽应不小于报文中连续12个位的持续时间(主动错误标志的最大可能时间。正常情况下,报文中连续出现的相同逻辑位数不超过5位)。
在部分冗余方法中,由于每个设备中只使用一个总线控制器,因此,在正常运行状态下即使发生总线竞争(总线冲突)也不会造成两条总线的混乱或报文不一致的情况,所以,以这种方法构成的系统完全能够符合CAN协议的要求。这种方法与全面冗余方法相比,不仅成本低,而且它在发现总线故障以及及时性方面比后备方式好,功耗比同时运行方式低。对于工业控制,尤其是本质安全型系统来说,这些优点都是十分重要的。当然,部分冗余方法中多增加了一个环节(判断电路)使通讯延时增加,通讯速度受到一些影响,不过,即使速度降低一些,对工作面的应用来说也足够快了。顺便说一下,CAN总线通讯速度及传输距离的指标为:1Mbits/s(40m)、125kbits/s(500m)、50kbits/s(1km)。[1]因此,可以这样讲,部分冗余方法是解决CAN总线系统中总线故障问题的一种较好的方法。当然,如果是可靠性要求非常高且双CPU运行的系统,应优先考虑全面冗余方法。
图发不上来,资料来源:中国期刊网 答 4: 出自上片说明出自
http://www.dndev.com/cgi-bin/forum/toPIC.cgi?forum=2&toPIC=4&show=0
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |