最近做导师给的一个项目涉及到通信方式,看了一下RS485、CAN等内容,越看反而越迷糊,因为搞不清题目中这些名词到底是什么关系、分别处于网络模型中的哪一层。并且查看网上的分析及技术博客也很少找到一篇能够完整并且正确总结的帖子,在花费大量时间之后差不多搞懂了这些,因此决定自己开贴记录一下,也希望对后来人有所帮助。
首先题目里这些有些是并列关系,有些不是,从头开始讲吧:
RS232、RS485:
这两个属于七层网络模型中的物理层,物理层定义了电平模式及两端的物理接口要求等。具体电平模式可自行查阅,本文重点对各个概念进行分辨。
CAN、Ethernet:
这两个不是单纯的属于某一层,而是对其中的物理层、链路层进行了定义。比如在链路中分别叫CAN帧、以太网帧。具体在物理层和链路层中定义自行查阅。
CAN Open、EtherCat:
这两个是属于应用层的协议,只不过指定了自己要用的物理层及链路层,分别使用CAN及Ethernet定义的物理层及链路层。
Modbus:
Modbus也是应用层协议,只不过它不对下层进行指定,既可以使用RS232、RS484作为物理层,也可以用Ethernet定义的物理层、链路层。其中使用RS232、RS485时需要用URAT作为链路层对物理层进行指挥。使用Ethernet时则配合TCP、IP分别作为传输层和网络层,当然了,其实TCP/IP本身就是选用Ethernet作为链路层及物理层的。