我很好奇是否有任何示例使得嵌入式应用程序在底层网络层被更改时不需要修改,如CANOpen或以太网。 可以这样做吗?
可能是应用程序和网络层之间的一个层,它根据大小或事务类型决定消息应以何种格式发送,如特定协议(CANopen,以太网)的接收时的ack。
任何与此相似的内容都会有很大的帮助。
由于
答案 0 :(得分:2)
你不是喜欢比较; CANopen在OSI Model上寻址第3层(网络)及以上,而以太网仅定义物理和数据链路层(第1层和第2层)。为了比较同类,您需要将CAN与以太网或CANopen与TCP / IP进行比较。
原则上,如果您实现通用API和语义,则可以在任何层使用其他技术替换所有底层。然而,OSI模型是概念性的,并非所有技术都必须在层之间进行如此明确的区分,或使用相同的层边界或命名法。因此,找到适合于许多协议和技术的抽象的适当级别可能很困难。
此外,这两种技术可满足不同的需求CAN是一种现场总线技术,用于在“智能”控制器之间传输实时传感器/执行器信息,而以太网则是一种高带宽和通用的计算机网络技术。 / p>
网络互操作性的通常解决方案是使用某种桥接或隧道技术(即网络之间的转换,或传输封装在另一个协议的消息中的一种协议的消息)。有许多CAN /以太网桥接设备,甚至还有一些CAN-over-Ethernet设备。