通信协议?其实就是“聊天规矩”

通信协议?其实就是“聊天规矩”

别被“协议”两个字吓到,说白了就是两个设备商量好怎么说话


1. 为什么需要协议?

你想想,如果一个人只说中文,另一个人只说俄语,他俩能聊起来吗?
不能
电脑、手机、传感器之间也一样——各说各话,就是鸡同鸭讲

通信协议就是事先约定好的“聊天规则”,包括:

  • 用什么“语言”(编码格式)
  • 怎么开头、怎么结尾(帧结构)
  • 说多快(波特率/速率)
  • 说错了怎么办(纠错重传)

2. 举个生活例子

你给朋友打电话:

  1. 拨号 → 等待接通
  2. “喂?” → 确认对方能听见
  3. 你说一句,他回一句(一问一答)
  4. “拜拜” → 挂断

这就是一套非正式的口头协议
通信协议就是把这个过程写成标准手册,让机器照做。


3. 常见的通信协议(入门级)

协议特点常见场景
UART(串口)异步、点对点、简单单片机调试、GPS模块
I²C双线、多设备、慢速传感器、EEPROM
SPI四线、高速、主从显示屏、SD卡
CAN差分信号、抗干扰、带校验汽车、工业总线
TCP/IP互联网基石、可靠、复杂网页、邮件、远程登录
HTTP/HTTPS基于TCP,请求-响应模式Web API、网页访问

4. 协议里到底规定了啥?(以UART为例)

UART 规定:

起始位(1位低电平) + 数据位(5~9位) + 校验位(可选) + 停止位(1~2位高电平) ```还必须约定 **波特率**(比如 9600、115200),双方得用同一个“语速”,否则听不清。清。 ```c // 伪代码:发送一个字节 void uart_send(char data) { // 拉低起始位 // 按位发送 data 的 8 个 bit // 发校验位(可选) // 拉高停止位 }

5. 协议分层的概念(超级简化)

就像寄快递:

  • 应用层:你写的信(内容)
  • 传输层:快递单号(保证送到)
  • 网络层:货车路线(寻址)
  • 链路层:每个路口的红绿灯(物理传输)

每一层只关心自己的事,下层为上层服务
这就是OSI 七层模型TCP/IP 四层模型的朴素思想。


6. 总结一句话

通信协议 = 设备间的 “普通话” + “说话规矩” + “纠错机制”**

你不需要一开始就背下所有协议的细节,只要记住:
没有协议,就没有互联网,也没有智能硬件。下次调试串口打印乱码时,记得先检查波特率是不是对上了

如果你觉得有帮助,欢迎点赞、收藏、评论,让更多人看到!
(更多硬核但有趣的技术科普,关注我,不迷路)