通讯协议--UART异步串行通信

文章目录

  • 一、串口通讯协议简介
  • 二、物理层
    • [   1、串口通讯结构图](#   1、串口通讯结构图)
    • [   2、电平标准](#   2、电平标准)
    • [   3、RS-232信号线](#   3、RS-232信号线)
  • 三、协议层
    • [   1、波特率](#   1、波特率)
    • [   2、起始和停止信号](#   2、起始和停止信号)
    • [   3、有效数据](#   3、有效数据)
    • [   4、数据校验](#   4、数据校验)

一、串口通讯协议简介

   串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式。

   也经常使用该通讯方式输出调试信息。

   通讯协议,以分层的方式来理解,最基本的是把它分为物理层和协议层。

   物理层规定通讯系统中具有机械、电子功能部分的特性, 确保原始数据在物理媒体的传输。

   协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。

二、物理层

   1、串口通讯结构图

     

      两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。

   2、电平标准

      电平标准:

         常见的电子电路中常使用TTL的电平标准,理想状态下,使用5V表示二进制逻辑1,使用0V表示逻辑0;

         而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑1,+15V表示逻辑0。

        

      电压对比图:

        

      因为控制器一般使用TTL电平标准,所以常常会使用MAX3232芯片对TTL及RS-232电平的信号进行互相转换。

   3、RS-232信号线

      RS-232标准的COM口(也称DB9接口):

        

     DB9公头及母头引脚标准:

        

        

      连接方式:

        

         在串口通讯中,一般只使用RXD、TXD以及GND三条信号线, 直接传输数据信号,而RTS、CTS、DSR、DTR及DCD信号都被裁剪掉了。

三、协议层

   串口数据包的基本组成:

      起始信号,主体数据,效验位,停止位组成。

     

   1、波特率

      异步通讯中由于没有时钟信号(如前面讲解的DB9接口中是没有时钟信号的), 所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码。

      上图中用虚线分开的每一格就是代表一个码元。

      常见的波特率为4800、9600、115200等。

      即为每秒能传输几个码元。

   2、起始和停止信号

      串口通讯的一个数据包从起始信号开始,直到停止信号结束。

      数据包的起始信号由一个逻辑0的数据位表示, 而数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。

   3、有效数据

      在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为5、6、7或8位长。

   4、数据校验

      在有效数据之后,有一个可选的数据校验位。

      校验位:可选,为的是数据的抗干扰性。

      校验方法分为:

         1-奇校验(odd)、 2-偶校验(even)

         3-0 校验(space)、 4-1校验(mark)

         5-无校验(noparity)

      奇校验:

         要求有效数据和校验位中"1"的个数为奇数。

         比如一个8位长的有效数据为:01101001,此时总共有4个"1", 为达到奇校验效果,校验位为"1",最后传输的数据将是8位的有效数据加上1位的校验位总共9位。

      偶校验:

         与奇校验要求刚好相反,要求帧数据和校验位中"1"的个数为偶数。

         比如数据帧:11001010,此时数据帧"1"的个数为4个,所以偶校验位为"0"。

      0校验、1校验:

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

      无校验:

         没有校验位。

相关推荐
隔窗听雨眠1 小时前
在STM32上跑通TinyML:从模型训练到推理优化的完整实战指南
stm32·单片机·嵌入式硬件
机器视觉知识推荐、就业指导3 小时前
为什么同一个引脚不能同时做按键和串口
stm32·单片机·嵌入式硬件
崇山峻岭之间4 小时前
单片机基本定时器实验
单片机·嵌入式硬件
DS小龙哥4 小时前
基于ESP32设计的智能养蜂监测系统
stm32·单片机·嵌入式硬件·物联网·华为云
夜月yeyue4 小时前
STM32 DMA 双缓冲采样
linux·stm32·单片机·嵌入式硬件·系统架构
西城微科方案开发5 小时前
SIC8P370D2L-PLP16 8位OTP单片机 低功耗多功能MCU详解
单片机·嵌入式硬件
踏着七彩祥云的小丑7 小时前
嵌入式测试第 32 天:升级测试:固件OTA升级、断点续传、回滚测试
单片机·嵌入式硬件·学习
点灯小铭7 小时前
基于单片机与DAC0832的双路波形信号发生系统设计
数据库·单片机·mongodb·毕业设计·课程设计·期末大作业
sramdram8 小时前
基于MCU微控制器的电子血压计应用解决方案
单片机·嵌入式硬件·mcu·mcu微控制器
Szime8 小时前
AD9218 国产替代方向:双通道 10 位 105MSPS ADC 选型支持
单片机·嵌入式硬件·fpga开发·汽车