
很多人把串口和串口协议混为一谈其实它们不是一个概念。串口Serial Port是一种通信接口硬件/通信方式不是协议。可以把它理解为串口 公路Modbus RTU、BACnet MS/TP 在公路上跑的汽车协议一、什么是串口Serial Port串口Serial Port是计算机与外部设备进行串行通信的接口。所谓串行就是一位(bit)一位(bit)按顺序发送数据。例如发送01000001不是一次发送8位而是0 → 1 → 0 → 0 → 0 → 0 → 0 → 1二、为什么叫串口因为数据是1bit ↓ 1bit ↓ 1bit ↓ 1bit一个一个发送。对应的是并口Parallel Port11110000 一次全部发送现在几乎已经淘汰。三、串口通信组成Java程序 │ ▼ 串口(COM1/COM2) /dev/ttyUSB0 │ ▼ 串口线 │ ▼ 设备例如Spring Boot ↓ COM3 ↓ RS485 ↓ PLC四、串口有哪些最常见类型说明应用RS232老式串口PC、门禁RS485工业最常见PLC、传感器、电表TTL单片机Arduino、ESP32USB转串口调试开发电脑① RS232特点点对点最远15米一发一收例如电脑 ↓ RS232 ↓ 门禁控制器② RS485IoT最常见特点可挂多个设备最远1200米抗干扰强例如Java ↓ RS485 ↓ 电表1 ↓ 电表2 ↓ 电表3工业现场几乎都是RS485 Modbus RTU③ TTL例如ESP32ESP32 ↓ TTL ↓ 传感器一般开发板内部使用。五、串口参数通信双方必须一致。最常见9600 8 N 1表示波特率 9600 数据位 8 校验位 None 停止位 1简称9600 8N1六、串口发送什么串口发送的是byte[]例如01 03 00 00 00 02 C4 0BJava读取也是byte[]buffer然后根据协议解析。七、Java如何访问串口目前最推荐jSerialComm例如SerialPortportSerialPort.getCommPort(COM3);port.setBaudRate(9600);port.openPort();发送port.writeBytes(data,data.length);接收byte[]buffernewbyte[1024];port.readBytes(buffer,buffer.length);Linux/dev/ttyUSB0 /dev/ttyS0WindowsCOM1 COM2 COM3八、串口上跑哪些协议真正的数据协议协议是否走串口Modbus RTU✅BACnet MS/TP✅DL/T645电表✅NMEA0183GPS✅自定义协议✅例如Java ↓ 串口 ↓ Modbus RTU ↓ PLC九、智慧园区哪些设备使用串口设备是否常见PLC⭐⭐⭐⭐⭐电表⭐⭐⭐⭐⭐水表⭐⭐⭐⭐⭐空调控制器⭐⭐⭐⭐门禁控制器老型号⭐⭐⭐道闸控制器部分⭐⭐⭐环境传感器⭐⭐⭐⭐⭐UPS⭐⭐⭐⭐十、实际项目架构与你做的智慧园区类似Spring Boot │ 串口服务jSerialComm │ RS485 / RS232 │ Modbus RTU / BACnet MS/TP │ PLC、电表、传感器、控制器 │ 数据解析byte[] │ MQTT / Kafka / WebSocket │ TDengine / MySQL十一、面试常问的问题Q1串口和 RS485 是一个东西吗不是。串口Serial通信方式。RS485一种串口电气标准。Q2串口和 Modbus 是什么关系串口传输通道。Modbus RTU运行在串口上的协议。Q3Java 如何读取串口一般使用jSerialComm打开串口后读写byte[]再根据具体协议如 Modbus RTU解析数据。一张图记住关系Java程序 │ jSerialComm │ 串口COM3 / ttyUSB0 │ RS485电气标准 │ Modbus RTU通信协议 │ PLC / 电表 / 门禁 / 传感器这也是工业物联网、智慧园区项目中最经典、最常见的设备接入链路。