Arduino CAN低速到CAN高速自适应

Arduino CAN低速到CAN高速自适应,arduino,can-bus,Arduino,Can Bus,我想知道是否有可能将低速容错CAN网络(100kbps)改造为高速CAN网络。我需要这个来连接一个更新的信息娱乐板(CIC)到我的宝马e60车内的K-CAN。我已经设法通过Arduino和MCP2515屏蔽唤醒并控制(在工作台上)CIC。 你知道有没有可能吗? 谢谢 最简单的方法可能是简单地将要放入车内的信息娱乐板上的CAN收发器IC更换为与车内现有总线类型相匹配的IC。不同的收发器IC通常是插入式可更换的,因此没有问题 但是,即使使用匹配的收发器,数据比特率也需要匹配,因此您需要确定电路板使用

我想知道是否有可能将低速容错CAN网络(100kbps)改造为高速CAN网络。我需要这个来连接一个更新的信息娱乐板(CIC)到我的宝马e60车内的K-CAN。我已经设法通过Arduino和MCP2515屏蔽唤醒并控制(在工作台上)CIC。 你知道有没有可能吗?
谢谢

最简单的方法可能是简单地将要放入车内的信息娱乐板上的CAN收发器IC更换为与车内现有总线类型相匹配的IC。不同的收发器IC通常是插入式可更换的,因此没有问题

但是,即使使用匹配的收发器,数据比特率也需要匹配,因此您需要确定电路板使用的比特率和车辆总线使用的比特率

如果比特率不匹配,更换收发器IC没有意义-在这种情况下,唯一的解决方案可能是创建一个双向适配器/网关

可以使用Arduino构建这样一个网关,但它必须有两个CAN总线“屏蔽”子板——每一个子板对应一个总线,其中每个子板携带一个适用于其连接的总线的CAN收发器,其CAN控制器配置为适当的比特率

每个CAN控制器通过SPI连接到Arduino。多个从设备很可能共享一条SPI总线,主设备(例如Arduino微控制器)使用芯片/从设备选择(CS/SS)线路选择其希望与之通信的设备。有关SPI通信(包括多从机)的更多信息,请参阅和

对于依赖SPI的现成Arduino“屏蔽”,额外屏蔽(除第一个外)可能需要将其CS/SS线物理重新路由到来自Arduino微控制器的不同控制线,以允许从选择。参考电路板的插脚和/或示意图,确定需要进行哪些修改。具体而言,如果使用seeed的CAN总线电路,请检查的“CS引脚”部分

就软件而言,网关基本上需要不断地将一条总线中接收到的消息复制到另一条总线,并使用一个小的FIFO缓冲区来保留一些消息,以防目标总线繁忙。 可能需要对CAN总线库的源代码进行一些修改,以支持多个CAN控制器并使用CS/SS线路在它们之间切换


顺便说一句,对于这个问题,堆栈溢出可能是错误的,因为它不是一个真正的编程问题。

最简单的方法可能是简单地将要放入车内的信息娱乐板上的CAN收发器IC更换为与车内现有总线类型相匹配的IC。不同的收发器IC通常是插入式可更换的,因此没有问题

但是,即使使用匹配的收发器,数据比特率也需要匹配,因此您需要确定电路板使用的比特率和车辆总线使用的比特率

如果比特率不匹配,更换收发器IC没有意义-在这种情况下,唯一的解决方案可能是创建一个双向适配器/网关

可以使用Arduino构建这样一个网关,但它必须有两个CAN总线“屏蔽”子板——每一个子板对应一个总线,其中每个子板携带一个适用于其连接的总线的CAN收发器,其CAN控制器配置为适当的比特率

每个CAN控制器通过SPI连接到Arduino。多个从设备很可能共享一条SPI总线,主设备(例如Arduino微控制器)使用芯片/从设备选择(CS/SS)线路选择其希望与之通信的设备。有关SPI通信(包括多从机)的更多信息,请参阅和

对于依赖SPI的现成Arduino“屏蔽”,额外屏蔽(除第一个外)可能需要将其CS/SS线物理重新路由到来自Arduino微控制器的不同控制线,以允许从选择。参考电路板的插脚和/或示意图,确定需要进行哪些修改。具体而言,如果使用seeed的CAN总线电路,请检查的“CS引脚”部分

就软件而言,网关基本上需要不断地将一条总线中接收到的消息复制到另一条总线,并使用一个小的FIFO缓冲区来保留一些消息,以防目标总线繁忙。 可能需要对CAN总线库的源代码进行一些修改,以支持多个CAN控制器并使用CS/SS线路在它们之间切换


顺便说一句,堆栈溢出可能是这个问题的错误位置,因为它不是一个真正的编程问题。

谢谢您的回答!同时,我了解到,正如您所说,使用2个can屏蔽可以实现这一点,但Arduino板必须支持2个SPI。@SXN,您可以通过一条SPI总线连接多个设备,使用芯片/从设备选择(CS/SS)线路选择要与之通信的设备。查看“屏蔽”示意图,了解如何将不同的数据引脚重新路由至第二个屏蔽上的MCP2515 CS线路。如果您使用的是seeed的CAN总线电路,请检查“CS引脚”部分。您还需要修改CAN总线库源代码以适应第二个设备。@SXN另请参阅,其中有一些关于单个SPI总线上多个从属设备的说明。感谢您的回复!同时,我了解到,正如您所说,使用2个can屏蔽可以实现这一点,但Arduino板必须支持2个SPI。@SXN,您可以通过一条SPI总线连接多个设备,使用芯片/从设备选择(CS/SS)线路选择要与之通信的设备。查看“屏蔽”示意图,了解如何将不同的数据引脚重新路由至第二个屏蔽上的MCP2515 CS线路。如果您使用的是seeed的CAN总线电路,请检查“CS引脚”部分o