服务与案例 Service 当前位置: 首页 > 服务与案例 > 应用案例 >
固定电话:028-68743610
客服手机:13730631678
客服QQ  :
客服邮箱:@transcendence2014.com
 
联系地址:四川省成都市成华区双林横路12号
CAN通信速率转换与数据中继
2015-03-26 00:03:12
 

   一般CAN通信速率转换应用场景之一就是CAN控器A与B需要相互通信,但各自设定的通信速率不样,也不能轻易改动(多发生在A与B是不同厂家产品的情况下)。这种情况,就需要有一个中间转换装置,实现速率的转换。
  该功能可以使用CANslinkal或者CANdirect来完成。如果要长期固定使用(比如发动机测试台架、工厂之类),建议使用CANdirect来做。因为CANdirect能够把功能固化在硬件里面,只需要外接电源就可以运行。一般网络组成如下(下图是假设A的通信速度是1000Kbps,B是250Kbps):
\
  无论使用CANslinkal还是CANdirect硬件来完成,都需要使用CANslinkal软件来构建这个转换功能。  
  第一步需要做的是在CANslinkal软件中建立一个工程,然后分别设备CAN通信参数,特别需要注意是通信1(CAN1)的通信速率需要设置为1000Kbps,通道2(CAN2) 的通信速率需要设置为250Kbps,这是为了与控制器A与B的通信速率相适应。
  余来的事情,就是建立功能模块程序了。这里需要做的事情是非常简单的:当CAN1收到数据(也即控制器A的数据),就从CAN2发送出去(发送给控制器B);当CAN2收到数据(也即控制器B的数据),就从CAN1发送出去(发送给控制器A)。
  所以我们需要建立两个中断源模块,与一个触发系统,中断源模块就是分别对应CAN1接收到数据与CAN2接收到数据两个中断。当这两个中断发生时,就会触发这个触发系统执行。在触发系统中,接收实际的数据,并转发到另一通道中就可以了。
  下图是这三个模块的设计结果:

\  关系说明如下:
\
 之后,进入触发系统,加入转发功能:  

\
 这里功能就非常简单了,接收最后到的的任意CAN数据,然后变换一下通道,直接转换出去。就实现了从通道1接收数据,转换到通道2,从通道2接收数据,转换到通信1这个功能。
 如果A与B的通信速率一样,那CANslinkal或者CANdirect实现的就是一个CAN中继功能,可以将CAN数据线无限延长。这些都只在于用户如何使用与如何称呼而已。