2、基础概念:什么是通讯协议、OSI七层模型与TCP/IP四层模型、串行通讯与并行通讯的区别

各位工程师朋友,大家好。我是老张,在消防和楼控通讯这行摸爬滚打了十几年。今天咱们聊点基础但极其重要的东西——通讯协议。

你可能会想:“协议嘛,不就是一堆规则吗?” 嗯,对,但不全对。我个人的理解是:通讯协议就是两个设备之间约定好的“说话方式”。你想想看,如果我用中文跟你讲,你用法语回我,咱们谁也听不懂谁。设备也一样,消防主机说“火警信号来了,电压拉高”,BMS控制器却以为“这是噪声,忽略掉”,那整个系统就乱套了。

核心定义:通讯协议 = 语法(数据格式) + 语义(含义解释) + 时序(发送顺序)。缺一不可。

我在项目中遇到过最典型的例子:某大型商业综合体,消防联动控制器和BMS之间用的是Modbus RTU协议。结果施工队把波特率设成了9600,BMS那边默认是19200。你猜怎么着?所有数据全是乱码。折腾了两天,最后发现就是协议参数没对齐。所以,协议的第一要务就是“对齐”

2.1 OSI七层模型:理论上的“完美蓝图”

说到协议,就绕不开OSI七层模型。这是国际标准化组织(ISO)在1984年提出的一个概念模型。说白了,它把通讯过程拆成了7个层次,每一层只管自己的事。

我个人习惯把这七层想象成“快递发货”的过程:

  • 物理层(第1层): 就是快递车和公路。负责传输原始的比特流(0和1)。比如RS485的差分信号、网线的电压高低。
  • 数据链路层(第2层): 相当于快递员。把比特流打包成“帧”,加上MAC地址,负责点对点的传输。比如以太网协议。
  • 网络层(第3层): 就是导航系统。负责寻址和路由,决定数据包走哪条路。IP协议就在这层。
  • 传输层(第4层): 相当于快递单号。负责端到端的可靠传输,保证数据不丢、不乱序。TCP和UDP就在这层。
  • 会话层(第5层): 建立、管理和终止会话。就像你打电话时说“喂,能听到吗?”
  • 表示层(第6层): 翻译官。处理数据格式、加密、压缩。比如把ASCII码转成EBCDIC码。
  • 应用层(第7层): 用户直接接触的界面。比如HTTP网页、FTP文件传输、Modbus应用层。

我的经验: 在实际消防通讯中,我们很少用到完整的七层。比如RS485总线通讯,通常只用到物理层、数据链路层和应用层。中间三层基本被简化或合并了。但理解七层模型,能帮你快速定位问题——比如“数据传不过去,是物理层线断了,还是应用层协议不匹配?”

2.2 TCP/IP四层模型:工业界的“实战派”

OSI七层模型太理想化了,实际用起来太复杂。所以后来有了TCP/IP四层模型。它更精简,也更实用。咱们现在的互联网、包括很多消防网络(如BACnet/IP、Modbus TCP),都是基于这个模型。

四层模型长这样:

TCP/IP层 对应OSI层 常见协议/设备
应用层 5-7层(会话、表示、应用) HTTP、FTP、Modbus TCP、BACnet
传输层 第4层(传输层) TCP(可靠)、UDP(快速)
网络层 第3层(网络层) IP(IPv4/IPv6)、ICMP
网络接口层 1-2层(物理、数据链路) 以太网、Wi-Fi、PPP

你看,TCP/IP把上面三层合并成“应用层”,下面两层合并成“网络接口层”。中间两层保持不变。这样做的好处是:开发简单,效率高

我记得有一次调试消防主机和BMS的以太网通讯,数据总是断断续续。我用Wireshark抓包一看,发现TCP层一直在重传。原来是网络接口层的网线水晶头接触不良,导致物理层丢包。你看,从应用层一路查到物理层,这就是分层模型的价值。

避坑指南: 我曾经在项目中遇到一个坑——有人把Modbus RTU(串口协议)直接通过TCP/IP封装成Modbus TCP,但忘了处理“报文长度”字段。结果BMS收到数据后,解析出来的寄存器地址全是错的。记住:协议封装不是简单的“套壳”,每一层都有自己的头部和尾部信息要处理

2.3 串行通讯 vs 并行通讯:一字之差,天壤之别

好,咱们再聊聊通讯的物理形态。串行和并行,这两个概念很多新手容易搞混。

串行通讯: 就像单车道公路。数据按位(bit)一个一个地发送。比如RS232、RS485、I²C、SPI。优点是线少、成本低、抗干扰能力强。缺点是速度相对慢(但现代串行技术如USB 3.0、PCIe已经非常快了)。

并行通讯: 就像八车道高速公路。数据同时通过多条线发送。比如老式的打印机并口(LPT)、IDE硬盘接口。优点是速度快(理论上),缺点是线多、成本高、容易受干扰(信号同步问题)。

我画了一张图,帮你直观理解:

串行通讯(单车道) 发送端 → 1 0 1 1 0 0 1 → 接收端(逐位传输) 并行通讯(八车道) 发送端 → 8位同时传输 → 接收端 (需要8根数据线 + 时钟线)

在实际的消防联动控制器与BMS通讯中,串行通讯是绝对的主流。为什么?

  • RS485总线: 最常用。两线制(A、B),半双工,传输距离可达1200米。适合消防这种分布式、远距离的场景。
  • RS232: 三线制(TX、RX、GND),全双工,但距离短(15米左右)。常用于调试口。
  • CAN总线: 在高端消防系统中也有应用,抗干扰能力极强。

并行通讯呢?在消防领域几乎绝迹了。原因很简单:线太多,施工成本高,而且容易受电磁干扰。你想想,消防主机旁边就是强电电缆,并行通讯的8根线同时传输,稍微有点干扰,数据就全乱了。串行通讯只有两根线,做屏蔽和差分信号(RS485)就容易得多。

关键对比表:

特性 串行通讯 并行通讯
传输方式 逐位传输 多位同时传输
所需线数 少(2-4根) 多(8根以上)
传输距离 远(RS485可达1200m) 近(通常几米)
抗干扰能力 强(差分信号) 弱(易受干扰)
典型应用 RS485、Modbus、CAN 老式打印机、IDE硬盘
消防场景 ✅ 主流选择 ❌ 几乎不用

好了,这一章的内容就到这里。通讯协议是咱们后续所有课程的地基。你理解了OSI和TCP/IP的分层思想,理解了串行和并行的物理区别,后面再讲Modbus、BACnet、消防自定义协议时,就会轻松很多。

个人建议: 如果你刚开始接触消防通讯,别急着看代码。先拿个示波器或者逻辑分析仪,看看RS485总线上的波形。亲眼看到“0”和“1”在线上怎么跳变的,比看一百页文档都管用。我就是这么过来的。


专注资料整理