hardware - 你能把MODBUS转换成CANBUS吗?
问题描述
我对这个领域完全陌生,我有一个想要完成的项目,该项目基本上是:以 MODBUS 的形式提取传感器数据,而不是通过 CANBUS 发送数据。我已经有一个 mod-bus 输入和一个 can-bus 输出。
如果这些问题看起来有点愚蠢,那么对 MODBUS 的研究有点令人困惑。
是否可以编写可以将 MODBUS 转换为 CANBUS 的代码?还是我需要外部硬件。另外,我想在我的开发板上添加一个微处理器,我应该寻找什么特别的东西来帮助我的 modbus 和 canbus 操作?或者任何微处理器都可以工作。
谢谢你
解决方案
所有数据通信的基础都是OSI 模型。从那里开始。然后你最终会发现 Modbus 是一个应用层协议标准,而 CAN 是一个物理/数据链路层标准。
因此,您的问题没有任何意义。您不能将应用层转换为物理/数据链路层。但是,您可以将 Modbus 转换为一些特定的 CAN 应用层协议,例如 CANopen、Device Net 或 J1939。或者是定制的。
Modbus 下的最低层是 UART,很可能是 RS-485。可能是 RS-232。
您需要在 Modbus 传感器和 MCU 之间使用 RS-485 或 RS-232 收发器。您需要在 MCU 和 CAN 总线之间安装一个 CAN 收发器。此外,强烈建议选择具有内置 CAN 控制器硬件的 MCU。
选择适合您项目的目标硬件,不要随便选择一些开发板,然后尝试用其他硬件将其粘贴到适合项目要求的胶带上。
但是,硬件是容易的部分。为您使用的任何应用程序协议购买和配置协议栈是困难且昂贵的部分。
此外,有很多公司在制造网关,所以为什么要重新发明轮子。如果您需要在 Modbus 和 CANopen 之间进行转换,这些都是众所周知的行业标准。考虑只购买一个网关。
推荐阅读
- django - 如何向 Django 添加禁用属性
- css - react bootstrap中如何保持图片和卡片的大小比例一致?
- xml - 为什么 xs:precisionDecimal 不是 XSD1.1 的一部分?
- javascript - Vue.js:在方法中使用计算属性返回未定义的错误
- google-cloud-platform - 有没有办法确定 GCP 上的自定义机器类型是 N1 还是 N2?
- python - Python:使用列表作为字典键
- python - tensorflow 无法在热切张量中分配的解决方法
- c - C - 如何使用结构类型数据拆分链表
- r - 动态调用 R6 方法,其中方法名称存储在字符串变量中
- java - Java.lang.ClassCastException 错误和应用程序崩溃