主题中讨论的其他器件: TCAN1042-Q1、 THVD1451、 TCAN1042HV
我的客户希望将 CAN 连接到 RS-485。 我们是否对如何做到这一点有建议?
或许可以将 TCAN4550连接到 MCU、然后再通过另一个端口连接到 RS-485收发器?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我的客户希望将 CAN 连接到 RS-485。 我们是否对如何做到这一点有建议?
或许可以将 TCAN4550连接到 MCU、然后再通过另一个端口连接到 RS-485收发器?
Mark、您好!
是的、这样就可以了。 或者、您也可以使用具有内部 CAN 控制器的 MCU 并使用 TCAN1042-Q1等外部收发器 IC。 请记住、接口在数据链路层方面的工作方式不同。 CAN 有一个已定义的帧结构并且支持消息的基于 ID 的仲裁、这样、来自多个节点的同时传输可按照优先级顺序自动排序。 另一方面、RS-485没有定义的数据协议(尽管简单的 UART 起始/停止位编码很常见)、并且使用了无法直接支持多主仲裁的物理层。 因此、您需要考虑这两个接口之间如何封装数据以及如何在 RS-485端管理总线访问。
如果您不关心数据协议、只是在寻找直接物理层转换、则可能会有一种简单的解决方案绕过 MCU 而改用一些分立式逻辑。 请告诉我情况是否如此,我们可以对它进行更多的思考。
最大
尊敬的 Max:
如果 RS-485总线是全双工、是否可以使用连接到 TCAN1042HV 等 CAN 收发器的 THVD1451/52 RS-485收发器等简单接口? 只需互连逻辑数据线路(D 至 RXD、R 至 TXD)。 在不发送数据时、RS 485侧将需要默认为 R DATA 为高电平、以使 CAN 总线保持在隐性模式。
半双工 RS-485将更具挑战性、因为必须处理 RS-485总线的 T/R 控制、并且模式之间的切换时间对于 CAN 来说可能太慢。
Mark、
那么、只需确认一下、其中的 CAN 部分将只是使用 CAN 收发器发送 UART 数据之类的数据、对吧? 即、不使用 CAN 控制器、在给定的时间仅传输一个节点、等等? 如果是、使用全双工 RS-485收发器可以简化控制逻辑。 您建议的可行方案:它会将 CANH/CANL 上的传入数据转换为 Y/Z (而非 A/B)(始终作为驱动器启用)、并将 A/B 上的传入数据转换为 CANH/CANL 和 Y/Z (因为 CAN 收发器会"回送"数据)。
此致、
最大