写在前面
这周加更一篇,来弥补一下之前落下的进度。简单的说两句,之前讲应用层的时候,只是跟官方的手册来同步一下,但是从个人理解来说,自下而上的讲解和理解是更有好处的。因此,今天我就把物理层,数据链路层和网络层放在一起来讲,这样形成一个自下而上的知识体系,应该更适合各位看官的理解。
物理层有很多,比如MS/TP, IP等等,在产品中比较常用也是这两种,尤其是MS/TP,因此,在这里我就以MS/TP为例进行讲解。IP的东西如果有时间或者精力的话,我再加进来。这里强调一下,数据链路层也就是MS/TP还是很有用的,肯定要弄懂。它是整个BACnet通信的基础,也就是BACnet正常运行起来的前提条件就是MS/TP通信是正常的。调试BACnet的时候,先是确定物理层的RS485是否正常,然后用抓包工具看整个总线的MS/TP是否正常工作,最后再看BACnet运行的service或者object是否正常。
1 物理层
其实,正常说来,MS/TP是数据链路层,而物理层是RS485。RS485其实就是串口改成差分信号,因此传输距离相对于串口有了很大的提升。作为firmware工程师,我就不在这里说硬件隔离什么的东西,我也不是很懂的。但是,从firmware工程师的角度来,物理层就是RS485或者说串口加使能引脚。
2 数据链路层
在这里的数据链路层,