新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 针对CAN总线传输距离问题的两种解决方案

针对CAN总线传输距离问题的两种解决方案

作者:时间:2009-09-28来源:网络收藏
2.2.1在线路中直接加两个发送芯片

本文引用地址:http://www.eepw.com.cn/article/188585.htm

  该就是在线路中直接加入两个发送芯片(采用82C250为例),并把发送芯片的管脚TXD和RXD对连。其连接电路如下:


图3发送芯片连接电路图

  整个电路看似很正常,把左边的数据传输到右边,右边的数据传输到左边,实际上此电路是无法使用的。此电路接入后,只要在上有一个显性电平出现,那么整个电路将永远呈现显性电平。原因在于每个期间都有延迟(虽然是仅仅几个ns延迟),假设从电路左边收到一个显性电平,经过左右两个82C250芯片延迟Tns后传输到右边总线,另外82C250芯片本身具有同时发送、接收功能,那么右边的82C250芯片同时把右边总线的显性电平又传送到左边,这样就形成了一个回路,使得总线永远处于显性状态。

  2.2.2加入逻辑控制电路进行隔离

  从上面可以看出,在发送数据时应该防止数据重传形成回路。为此我们做了如下规定:在有显性电平时只能够有一个方向传输(哪个方向先来显性电平开通哪个方向,同时到来则选择任一个方向开通);发送端显性电平结束后,所有方向都停止T1时间(Tns

  利用CPLD很容易实现上面的规定逻辑。利用此把该电路先连接在总线10Km处,并在10Km不远处连接一个接收设备,实验能够接收正常,并且其接收端总线电压差为1.32V,是单连设备接收电压差的1.55倍。

  2.2.3线路中间加入卡中转实现远距离数据传输(中继器)

  在距离达到10Km时,其接收数据不正常的原因是由于总线电压差值较小的缘故。为此,有的采用升压和降压电路是不现实的,因为每个接收器都得加入一个调理电路,造价很明显就上去了。另外,即使升压了,由于CAN总线按照仲裁发送决定了总要遇到二中提到的由于延迟总线形成闭合回路的问题。

  为了达到远距离传输,可以在中间加入中继器,相当于把总线距离缩短了一倍。中继器的结构如下:

 
图4中继器结构示意图

  选择使用两个8031单片机目的在于能够及时处理CAN总线上的数据,使得设计也变得比较简单,不需考虑CAN总线两边的数据发送冲突。只要每个单片机有1K的缓存就可以。

  具体实现思路:单片机接收CAN总线数据,把数据进行缓存,在空闲阶段把数据传输到另一个单片机(两者之间通过SPI协议实现通信),同时把从另一个单片机传输来的数据发送出去。

  在实际的工程中我们是利用此方案实现远距离传输的,主要原因是可以满足数据传输的可靠性,利用此方案的电路我们进行过节点数达到100的测试,其性能正常、可靠,能够满足实际的需要。

3、总结

  本文的创新点提出了解决CAN总线传输远距离问题的可实施方案,第一个(加入逻辑电路)比较简单,而且不用考虑数据存储,仅仅是一个硬件实现;而第二种(中继器)要考虑数据存储、判断何时发送等情况,相对比较复杂,但可靠性要好些。两个方案在承受负载方面能力差不多。

  CAN总线技术作为一种新型的总线技术由于其具有良好的故障隔离能力、网络的实时响应能力以及CAN具有良好地传输防错设计等,使其已经成为现在最有前途的总线之一。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭