通讯协议--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"。

      无校验:

         没有校验位。

相关推荐
Lzh编程小栈14 分钟前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
水果里面有苹果20 分钟前
28-DRV8825PWPR步进电机驱动器
单片机
Dr.kangder5 小时前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
萌新小白YXY6 小时前
SAE J1587/SAE J1708 协议笔记
笔记·单片机·嵌入式硬件
嘉子的秃头日记7 小时前
机械革命“自动修复”无法修复你的电脑
stm32·单片机·电脑
森旺电子7 小时前
电子负载使用介绍
单片机·嵌入式硬件
hsjiasb17 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
周洲083021 小时前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件
LCG元21 小时前
STM32F103 CAN 总线通信实战:标准库双机通信与过滤器配置精讲
stm32·单片机·嵌入式硬件
z20348315201 天前
STM32单片机控制无源蜂鸣器播放《晴天》
stm32·单片机·嵌入式硬件