串口通信的分类

UART属于串行、异步、全双工通信

串行通信与并行通信

根据传输数据的位宽,串口通信可分为串行通信与并行通信,串行通信是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用 8、16、32 及 64 根或更多的数据线进行传输的通讯方式。UART\SPI\I2C等均为串行通信,DDR为并行通信。

在数据传输速率相同的情况下,并行通信传输的数据量要大于串行通信,但在通信距离、抗干扰能力以及成本上串行通信要更胜一筹,另外由于并行通信对同步要求比较高,所以目前采用串行通信较多。

同步通信与异步通信

同步通信中,收发设备双方会使用一根信号线表示时钟信号,发送方和接收方在同一时钟的控制下,实现同步传输。 通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。

异步通信不带时钟同步信号,使用各自的时钟控制。 但需要双方相互约定好数据传输速率。一般用波特率作为传输速率的衡量方式。单位:bps(位/秒)

在同步通信中,数据信号所传输的内容大部分都是有效数据,而异步通信为了实现更好的同步会包含有帧的各种标识符,所以同步通信的效率更高,但是双方的时钟允许误差较小,而异步通信下可以允许较大时钟误差的存在。

单工、半双工、全双工通信

单工通信:只需要一根数据线。在任何时刻都只能进行一个方向的通信,即一个固定为发送设备,另一个固定为接收设备通信。

半双工通信:需要两根数据线。可以进行两个方向的传输,但不能同时进行。

全双工通信:需要两根数据线。在同一时刻可以进行两个方向的传输,即两个设备可以同时收发数据。

UART通信标准

UART本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。可以理解为简单的串并转换功能。

UART通信标准可分为两层:物理层和协议层。

物理层

物理层主要规定具体的物理实现标准,即接口标准。

串口通讯的物理层有很多标准及变种,常见的有 RS-232 、RS485、RS422标准,这些标准主要规定了信号的用途、通信接口以及信号的电平标准。

RS-232采用负逻辑电平,以数据线电平和地线电平的差值为传输数据

最初RS-232 串口标准常用于计算机、路由器与调制调解器(MODEN,俗称“猫” )之间的通信 ,在这种通信系统中,设备被分为数据终端设备 DTE(计算机、路由)和数据通讯设备 DCE(调制调解器)。RS-232常见接口为DB9

目前的串口通信一般只使用 RXD、 TXD 以及 GND 三条信号线,直接传输数据信号。

RS422:采用差分传输方式,以两根数据线电平的差值作为传输的数据,抗干扰性强。

RS485:能实现多点间相互通信。

协议层

协议层主要规定通信逻辑,统一双方的数据收发标准,即数据格式。

数据构成:起始位+ 数据位 + 校验位 + 停止位

起始位、停止位:即起始和停止信号。数据包的起始信号由一个逻辑 0 的数据位表示(因为总线空闲时为高电平,所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平),而数据包的停止信号可由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示,只要双方约定一致即可。

数据位:5~8位,可以在MCU中设置。

校验位:0~1位, 无校验/奇校验/偶校验。

数据传输顺序:即传输方向,看数据是从高位(MSB)开始传输还是从低位(LSB)开始传输。

波特率(调制速率):指有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。针对串口异步通讯,由于没有时钟信号,收发设备之间需要约定好波特率。

附:

通信速率:

通信速率是衡量通信性能的一个非常重要的参数,通常以比特率(Bitrate)来表示,即每秒钟传输的bit数,单位为比特每秒(bit/s)。另外一个是“波特率”(Baudrate),表示每秒钟传输了多少个码元。而码元是通信信号调制的概念,通信中常用时间间隔相同的符号来表示一个二进制数字,这样的信号称为码元。如常见的通讯传输中,用 0V 表示数字 0, 5V 表示数字 1,那么一个码元可以表示两种状态 0 和 1,所以一个码元等于一个二进制比特位,此时波特率的大小与比特率一致相等。如果在通讯传输中,有 0V、2V、 4V 以及 6V 分别表示二进制数 00、 01、 10、 11,那么每个码元可以表示四种状态,即两个二进制比特位,所以码元数是二进制比特位数的一半,这个时候的波特率为比特率的一半。因为很多常见的通信中一个码元都是表示两种状态,所以常常直接用波特率来表示比特率。

串口校验:

1.无校验(no parity)
2.奇校验(odd parity):如果数据位中“1”的数目是偶数,则校验位为“1”,如果“1”的数目是奇数,3.校验位为“0”。
4.偶校验(even parity):如果数据为中“1”的数目是偶数,则校验位为“0”,如果为奇数,校验位为“1”。
5.mark parity:校验位始终为1(不常用)。
6.parity:校验位始终为0(不常用)。

参考:串口通信基础知识(UART)_White__Sun的博客-CSDN博客_uart串口通信

USART协议详解_Alfred.HOO的博客-CSDN博客_usart协议

UART串口通讯协议解析_记帖的博客-CSDN博客_串口协议解析

UART串口通信_IoT_Joker的博客-CSDN博客_uart串口通信

串口通信协议---UART相关推荐

  1. 串口通信协议--UART、RS-232、RS-485、RS-422

    近期学习了单片机及数电相关知识,故决定系统地学习一些通信协议.手边书本仅介绍了串口低速接口的相关协议. 串行通信 是指通过使用一条数据线(需要地线或控制线),将数据一位一位地一次传输,每一位数据占据一 ...

  2. FPGA串口(UART)通信协议制定与设计思路详解示例

    串口(UART)通信协议制定与设计思路详解 1 概述 本文用于描述规定的串口通信协议,以及传输内容. 2 项目关于串口的要求 a) 支持BIT自检,1路UART上报BIT信息: b) 1路UART接口 ...

  3. stm32串口接收不定长数据_基于STM32之UART串口通信协议--接收

    一.前言 1.简介 回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作. 2.UART简介 嵌入式开发中,UART串口通信协议是我们 ...

  4. 串口通信协议简介—学习笔记

    串口通信协议简介-学习笔记 文章目录 串口通信协议简介-学习笔记 一.串口.COM口.UART口, TTL.RS-232.RS-485区别详解 1.物理接口形式 2.电平标准 2.1 **TTL** ...

  5. 通信协议——Uart、RS232、RS485、SPI

    RS485/RS232通信协议并不是单独协议,只是电气层的协议,依赖于串口. UART帧格式 1位起始位: 5-8位数据位(先发低位,后发高位): 校验位(可有可无): (1/1.5/2位)停止位; ...

  6. 单片机中常用的串口通信协议帧

    单片机中常用的串口通信协议帧 前言 一.单片机串口简介 二.常用的通信协议类型 1.没有格式 2.帧头帧尾+数据 3.帧头帧尾+数据+附加功能码 4.帧头帧尾+数据+附加功能码+目标地址 5.帧头帧尾 ...

  7. 通信协议基础以及常用的串口通信协议

    通信协议: 串行通信和并行通信 在数据的通信方式中根据数据传输方式的不同可以分为:串行通信和并行通信 串行通信:串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度. ...

  8. c语言 串口 封装,首颗超小封装的串口(UART)转PWM转换芯片ZWI10A

    全球首颗超小封装的串口(UART)转PWM控制芯片SOC. 功能概述 ● PWM输出特性 - PWM输出范围150HZ-200KHZ. - PWM频率为16位精度. -占空比调节方式(0-255). ...

  9. 串口通信协议RS232

    1.串口通信协议简介 ​串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式.尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用 ...

最新文章

  1. 【计算机网络】数据链路层 : 差错控制 ( 纠错编码 | 海明码 | “海明码“ 原理 | “海明码“ 工作流程 | 确定校验啊位数 | 确定校验码和数据位置 | 求校验码值 | 检错纠错 )★
  2. python 收发邮件_python发送各类邮件的主要基本方法
  3. oracle对象权限 函数,oracle的系统和对象权限
  4. 【ES6(2015)】Module模块
  5. 一个学校内部的计算机网络属于,一个教室内计算机联成的网络属于____。
  6. Dao接口返回数组_JavaScript二进制数组(2)TypedArray视图
  7. 博文目录(最新更新:2018.6.6)
  8. python写一个服务_Python写一个服务
  9. jdbc连oracle dns报错,近期处理的oracle问题汇总
  10. 汇编语言王爽 实验第五章
  11. 绘制14段米字数码管显示,显示数字和英文字母。
  12. 如何查找native方法
  13. 安装设备驱动程序Android,手机adb驱动安装(Universal Adb Driver)
  14. 计算机网络中最常用的三种设备,计算机网络基础试卷6
  15. PPI蛋白互作网络构建详细步骤
  16. 2021大学网课答案搜题公众号
  17. 智能家居设计原理c语言,基于51单片机智能家居系统设计
  18. 可视化2D动画—cavas旋转的圈
  19. Dell戴尔笔记本电脑G15 5515 Ryzen Edition原装出厂Windows11系统恢复原厂oem系统
  20. Ubuntu桌面系统卡住

热门文章

  1. 新硬盘装机出现Disk Read Error解决方案
  2. shardingsphere源码分析(四)-- 改写引擎
  3. 知网文献免费下载方法
  4. 纸壳CMS升级.Net5免费下载
  5. Python实现海洋测绘基于最小二乘法的潮汐调和分析
  6. css 从右到左的方向调整
  7. Spring 源码分析(七)--bean的加载详细分析
  8. git从远程仓库拉取指定日期版本的代码到本地
  9. 宝宝大战落幕,互联网金融二战爆发
  10. Olivetti Faces人脸数据集下载后图像分割matlab(亲测有效)