什么是串口通信协议?它主要有哪些收发过程?
串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。
串口通信协议是一种异步、串行的通信协议,它定义了在两个设备(通常是微控制器、计算机、传感器等)之间通过一对数据线(发送线TX和接收线RX)进行可靠数据传输的规则和格式。
其核心思想是:
- 串行:数据比特(0或1)一位接一位地顺序传输(单车道),而不是同时传输多个比特(多车道)。
- 异步:通信双方不需要共享同一个精确的时钟信号。接收方依靠协议中规定的起始位和停止位来识别数据帧的开始和结束,并依赖双方预先约定好的相同波特率来正确地采样每一位数据。
主要收发过程(数据帧传输)
每次传输一个字节(8位,最常见)或一个字符时,会将其包装成一个数据帧,然后按以下顺序逐位发送和接收:
-
空闲状态:
- 在传输开始前以及传输间隔,TX线(发送线)和RX线(接收线)通常保持在高电平(逻辑‘1’)状态。
-
发送方发送起始位 (Start Bit):
- 当发送方准备好发送一个字节的数据时,它首先将TX线从高电平拉低到低电平(逻辑‘0’)。
- 这个持续时间为1个比特时间的低电平信号告知接收方:“一个新的数据帧开始了,准备接收数据!”
-
发送方发送数据位 (Data Bits):
- 起始位之后,发送方按照从最低位 (LSB, Least Significant Bit) 到最高位 (MSB, Most Significant Bit) 的顺序(最常见的约定),在TX线上依次发送数据字节的每一位。
- 每一位占用一个预先约定好的比特时间(由波特率决定)。
- 数据位通常是5、6、7或8位,其中8位最为常用。
-
可选:发送方发送奇偶校验位 (Parity Bit):
- 数据位之后,发送方可能会发送一个奇偶校验位。
- 该位用于简单的错误检测(检测单比特翻转错误)。
- 可以是:
- 奇校验 (Odd Parity):确保数据位+校验位中,‘1’的总数为奇数。
- 偶校验 (Even Parity):确保数据位+校验位中,‘1’的总数为偶数。
- 无校验 (None):最常见的情况,不发送校验位。
-
发送方发送停止位 (Stop Bit):
- 数据位(或校验位)传输完毕后,发送方将TX线拉回高电平(逻辑‘1’),并保持该状态至少1个比特时间(常见的是1、1.5或2位时间)。
- 停止位有双重作用:
- 告诉接收方:“这个数据帧传输完毕了”。
- 确保线路在下一个数据帧开始前(起始位的下降沿)回到空闲状态(高电平)。
-
接收方过程:
- 检测起始位:接收方持续监测RX线,等待一个从高电平到低电平的跳变(下降沿)。一旦检测到,它知道一个数据帧开始了。
- 采样数据位:在检测到起始位后,接收方会等待半个比特时间(以更好地对齐数据位的中点),然后开始在每个后续比特时间的中点采样RX线上的电平。在约定好的数据位数期间,连续采样这些点的电平值,组合起来就得到了传输的数据字节。
- 校验(可选):如果有奇偶校验位,接收方也会采样它,并根据约定的奇偶规则检查数据是否可能在传输中出错(检测到错误并不意味着一定能纠错)。
- 确认停止位:接收方会在停止位应该出现的期间采样RX线,确认它变成了高电平。如果没有检测到预期的停止位(高电平),则认为发生了帧错误。
关键要素(需要在通信前双方配置一致)
- 波特率 (Baud Rate):每秒传输的符号数(符号通常指1位)。例如,9600波特率意味着每秒传输9600个比特位(9600bps)。收发双方的波特率必须严格一致。
- 数据位长度 (Data Bits):一个数据帧中包含多少位有效数据(通常5-9位,最常见8位)。
- 奇偶校验 (Parity):无校验 (None)、奇校验 (Odd)、偶校验 (Even)。
- 停止位长度 (Stop Bits):1位、1.5位或2位(最常见1位)。
总结
串口通信协议就是通过约定好的波特率、数据位、奇偶校验位、停止位格式,利用起始位标记数据帧开始,停止位标记帧结束,让两个设备无需精确同步时钟,仅通过一对数据线就能一位接一位地串行传输数据。其收发过程核心就是围绕起始位拉低 -> 发送/采样数据位 -> (可选校验位) -> 停止位拉高 这一帧结构进行的。
单片机常用的几种通信协议
要求的不同,也产生了许多类型的适用于不同情况的通信协议,并被广泛的接受和使用。其实使用率最高的主要有以下几种:一、UART和USART分别名为通用异步收发
资料下载
挽你何用
2021-11-11 10:06:01
STM32的几种串口通信协议资料下载
电子发烧友网为你提供STM32的几种串口通信协议资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
资料下载
佚名
2021-04-21 08:46:28
什么是串口通信?串口通信协议了解
行传输低。2、串口通信协议在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯
单片机常用的通信协议有哪些
要求的不同,也产生了许多类型的适用于不同情况的通信协议,并被广泛的接受和使用。其实使用率最高的主要有以下几种:一、UART和USART分别名为通用异步收发
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 传感器常见类型有哪些?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机