串口通信简介

在上篇文章(数据通信的一些基础概念-CSDN博客)中已经叙述了数据通信的基础概念。本文重点叙述串口通信方式。

串口通信,是一种常见的计算机与外部设备之间的数据通信方式,它通过串行传输的方式将数据一位一位地发送和接收。

串口通信协议,是用于设备间串行数据传输的通信标准,它规定了通信双方传输的数据包的内容和格式。在串口通信中,常用的协议包括 RS-232、RS-422 和 RS-485 等。

串口通信的数据包由发送设备的 TXD 接口传输到接收设备的 RXD 接口。在串口通信的协议层中,规定了数据包的内容,它由起始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据,其组成如下图所示,

(#注意:“数据包”和“数据帧”是指同一概念的不同叫法,二者含义是一致的,本文不区分。)

⚫ 起始位和停止位

串口通信的一个数据帧是从起始位开始,直到停止位。数据帧中的起始位是由一个逻辑 0 的数据位表示,而数据帧的停止位可以是 0.5、1、1.5 或 2 个逻辑 1 的数据位表示,只要双方约定一致即可。(通过HAL_UART_Init 函数的UART_InitTypeDef 结构体类型设置)

⚫ 有效数据位

数据帧的起始位之后,就接着是数据位,也称有效数据位,这就是我们真正需要的数据, 有效数据位通常会被约定为 5、6、7 或者 8 个位长。有效数据位是低位(LSB)在前,高位(MSB) 在后。(通过HAL_UART_Init 函数的UART_InitTypeDef 结构体类型设置)

⚫ 校验位

校验位可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,检验 方法有:奇检验、偶检验、0 检验、1 检验以及无检验。

奇校验,是指有效数据为和校验位中“1”的个数为奇数。比如一个 8 位长的有效数据为: 10101001,总共有 4 个“1”,为达到奇校验效果,校验位设置为“1”,最后传输的数据是 8 位 的有效数据加上 1 位的校验位总共 9 位。

偶校验,与奇校验要求刚好相反,要求帧数据和校验位中“1”的个数为偶数。比如数据帧:11001010,此时数据帧“1”的个数为 4 个,所以偶校验位为“0”。

0 校验,是指不管有效数据中的内容是什么,校验位总为“0”。

1 校验,是指校验位总为“1”。

无校验,是指数据帧中不包含校验位。

一般是使用无校验的情况。

关于串口通信的应用,将在下一篇文章中重点叙述。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值