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

2023-05-16

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

文章目录

  • 串口通信协议简介—学习笔记
    • 一、串口、COM口、UART口, TTL、RS-232、RS-485区别详解
      • 1、物理接口形式
      • 2、电平标准
        • 2.1 **TTL**
        • 2.2 **RS232**
        • 2.3 **RS485**
        • 2.4 TTL标准及RS-232标准
        • 2.5 补充
      • 3、几种常见、常用的硬件接口
    • 二、串口通信百度百科
    • 三、协议层
        • 1. 波特率
        • 2. 通讯的起始和停止信号
        • 3. 有效数据
        • 4. 数据校验

一、串口、COM口、UART口, TTL、RS-232、RS-485区别详解

首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。

1、物理接口形式

  • 串口:串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。
  • UART接口通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。
  • COM口:COM口即串行通讯端口,简称串口。这里区别于USB的“通用串行总线”和硬盘的“SATA”。

一般我们见到的是两种物理标准:D型9针插头,和 4针杜邦头两种。

  • USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。

注:(USB转串口模块,就是USB接口的UART模块)

2、电平标准

2.1 TTL

TTL指双极型三极管逻辑电路,市面上很多**“USB转TTL”模块,实际上是“USB转TTL电平的串口”**模块。这种信号0对应0V,1对应3.3V或者5V。

与单片机、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法

我们进行串口通信的时候 从单片机直接出来的基本是都是TTL 电平。

TTL电平:全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)

TTL用于两个MCU间通信,硬件框图如下:
在这里插入图片描述

‘0’和‘1’表示
在这里插入图片描述

2.2 RS232

是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。

RS232 的逻辑电平和TTL 不一样但是协议一样。

RS-232电平:全双工(逻辑1:-15V–5V 逻辑0:+3V–+15V)

RS-232用于MCU与PC机之间通信,硬件框图如下:
在这里插入图片描述

‘0’和‘1’表示
在这里插入图片描述

2.3 RS485

RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。

两线压差为-(26)V表示1,两线压差为+(26)V表示0

差分负逻辑

RS-485:半双工、(逻辑0:+2V–+6V 逻辑1: -6V—2V)这里的电平指AB两线间的电压差。

硬件框图如下:
在这里插入图片描述

‘0’和‘1’表示:(差分信号)
在这里插入图片描述

2.4 TTL标准及RS-232标准

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

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

使用RS232与TTL电平校准表示同一个信号时的对比见图:
在这里插入图片描述

因为控制器一般使用TTL电平标准,所以常常会使用MA3232芯片对TTL及RS-232电平的信号进行互相转换
在这里插入图片描述

2.5 补充

在旧式的台式计算机中一般会有RS-232标准的COM口(也称DB9接口)

在目前的其它工业控制使用的串口通讯中,一般只使用RXD、TXD以及GND三条信号线,直接传输数据信号。而RTS、CTS、DSR、DTR及DCD信号都被裁剪掉了
在这里插入图片描述

3、几种常见、常用的硬件接口

1. D型9针串口
在这里插入图片描述

一般只接出RXD TXD两针,外加GND。

这种接口的协议只有两种:RS-232和RS-485。

2. USB转TTL串口
在这里插入图片描述

CP2102芯片、PL2303芯片

3. USB转RS-232串口
在这里插入图片描述

二、串口通信百度百科

串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。

在串口通信中,常用的协议包括RS-232、RS-422和RS-485

三、协议层

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

串口数据包的基本组成图如下:
在这里插入图片描述

1. 波特率

主要讲解的是串口异步通讯,异步通讯中由于没有时钟信号(如前面讲解的DB9接口中是没有时钟信号的),所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,图 中用虚线分开的每一格就是代表一个码元。常见的波特率为4800、9600、115200等。

2. 通讯的起始和停止信号

串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑0的数据位表示,而数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。

3. 有效数据

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

4. 数据校验

在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)以及无校验(noparity),它们介绍如下:

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

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

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

  • 在无校验的情况下,数据包中不包含校验位。
    求刚好相反,要求帧数据和校验位中"1"的个数为偶数,比如数据帧:11001010,此时数据帧"1"的个数为4个,所以偶校验位为"0"。

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

  • 在无校验的情况下,数据包中不包含校验位。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串口通信协议简介—学习笔记 的相关文章

  • ubuntu中printk打印信息

    1 设置vmware添加seria port 使用文件作为串口 2 启动ubuntu xff0c 修改 etc default grub GRUB CMDLINE LINUX DEFAULT 61 34 34 GRUB CMDLINE LI
  • 静态库、共享库、动态库概念?

    通常库分为 xff1a 静态库 共享库 xff0c 动态加载库 下面分别介绍 一 静态库 xff1a 1 概念 xff1a 静态库就是一些目标文件的集合 xff0c 以 a结尾 静态库在程序链接的时候使用 xff0c 链接器会将程序中使用
  • 链表——怎么写出正确的链表?

    链表 相比数组 xff0c 链表不需要一块连续的内存空间 xff0c 而是通过指针将一组零散的内存块串联起来使用 xff0c 而这里的内存块就叫做节点 xff0c 一般节点除了保存data还会保存下一个节点的地址也就是指针 单链表 头节点
  • 【STM32】STM32 变量存储在片内FLASH的指定位置

    在这里以STM32L4R5为例 xff08 官方出的DEMO板 xff09 xff0c 将变量存储在指定的片内FLASH地址 xff08 0x081F8000 xff09 一 MDK Keil软件操作 uint8 t version spa
  • 【STM32】 利用paho MQTT&WIFI 连接阿里云

    ST联合阿里云推出了云接入的相关培训 xff08 基于STM32的端到端物联网全栈开发 xff09 xff0c 所采用的的板卡为NUCLEO L4R5ZI板 xff0c 实现的主要功能为采集温湿度传感器上传到阿里云物联网平台 xff0c 并
  • 【STM32 】通过ST-LINK utility 实现片外FLASH的烧写

    目录 前言 一 例程参考及讲解 1 1 Loader Src c文件 1 2 Dev Inf c文件 二 程序修改 三 实测 参考 前言 在单片机的实际应用中 xff0c 通常会搭载一些片外FLASH芯片 xff0c 用于存储系统的一些配置
  • 基于FFmpeg的推流器(UDP推流)

    一 推流器对于输入输出文件无要求 1 输入文件可为网络流URL xff0c 可以实现转流器 2 将输入的文件改为回调函数 xff08 内存读取 xff09 的形式 xff0c 可以推送内存中的视频数据 3 将输入文件改为系统设备 xff08
  • 十进制转十六进制的C语言实现

    include lt stdio h gt include lt stdlib h gt include lt string h gt void reversestr char source char target unsigned int
  • Linux中断处理的“下半部”机制

    前言 中断分为硬件中断 xff0c 软件中断 中断的处理原则主要有两个 xff1a 一个是不能嵌套 xff0c 另外一个是越快越好 在Linux中 xff0c 分为中断处理采用 上半部 和 下半部 处理机制 一 中断处理 下半部 机制 中断
  • Linux中的workqueue机制

    转载与知乎https zhuanlan zhihu com p 91106844 一 前言 Linux中的workqueue机制是中断底半部的一种实现 xff0c 同时也是一种通用的任务异步处理的手段 进入workqueue队列处理的任务
  • 嵌入式编程通用Makefile

    一 根目录下Makefile 这个Makefile为主Makefile CROSS COMPILE span class token operator 61 span AS span class token operator 61 span
  • Hi3798 PWM输出控制背光

    一 PWM配置说明 Hi3798 具有3个PWM输出端口 通过查阅 Hi3798M V200 低功耗方案 使用指南 pdf 可得 xff1a 通过查阅Hitool工具可以查看到三个PWM端口的寄存器分别为 xff1a 通过原理图可得 xff
  • Hi3798移植4G模块(移远EC20)

    Hi3798移植4G模块 xff08 移远EC20 xff09 一 前言二 USB驱动修改2 1 添加VID和PID信息2 2 添加空包处理机制2 3 添加复位重连机制2 4 修改内核配置 三 GoBiNet测试程序 一 前言 本次系统采用
  • uniapp小视频项目:滑动播放视频

    文章目录 1 监听视频滑动2 播放和暂停3 增加播放 暂停视频功能4 增加双击点赞5 控制首个视频自动播6 动态渲染视频信息 1 监听视频滑动 给 swiper 增加 64 change 61 34 change 34 xff0c 这个时间
  • Vue github用户搜索案例

    文章目录 完成样式请求数据完善使用 vue resource 完成样式 1 public 下新建 css 文件夹 xff0c 放入下载好的 bootstrap css xff0c 并在 index html 中引入 2 新建 Search
  • 【敬伟ps教程】平移、缩放、移动、选区

    文章目录 平移抓手工具旋转抓手 缩放工具移动工具详解选区选区工具详解 平移 抓手工具 当打开一张大图时 xff0c 可以通过修改底部的百分比或使用抓手工具 xff08 H或在任何时候按住空格键来使用抓手工具 xff09 来查看更多细节 使用
  • 【敬伟ps教程】套索、魔棒工具、快速选择工具、选区的编辑和调整

    文章目录 套索工具自由套索多边形套索磁性套索工具 魔棒工具快速选择工具选区的编辑和调整 套索工具 自由套索 套索工具的用法 xff0c 点击鼠标左键拖动鼠标建立选区 当选区没闭合时 xff0c 松开鼠标会自动闭合选区 套索工具灵活快速但不够
  • Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

    项目是 vite 43 vue 43 ts 运行 npm run dev可以正常运行 xff0c 运行 npm run build 报错 解决办法 xff1a 1 先打开cmd全局命令窗口 xff0c 输入 npm install g in
  • 安卓手机投屏到win10电脑

    PC端操作 手机端操作 xff08 Mi6为例 xff09 pc端弹出提示 xff0c 选择是
  • 用Windows自带画图软件吸取色值

    1 打开画图windows自带画图软件 2 用qq截图要吸取颜色的图片 xff0c ctrl 43 v粘贴到画图软件中 3 点击取色器 xff0c 吸取颜色 xff0c 这是会看到吸取成功的颜色 4 打开编辑颜色 5 这样就得到了RGB颜色

随机推荐

  • 打开浏览器默认是360导航解决办法

    Chrome Chrome的设置中已经设置了百度为启动页 但是打开Chrome显示的还是360 解决办法很简单就是把桌面的快捷方式删除 xff0c 然后在安装目录重新生成快捷方式到桌面即可 Microsoft Edge 这个360修改的就更
  • 打开项目报错Error:Could not get unknown property 'mave' for project ':app' of type org.gradle.api.Project.

    今天打开项目 xff0c 报错如下 xff1a 打开gradle properties xff0c 发现最后的MAVEN URL地址错乱 xff0c 改完就可以了
  • Eclipse自带的抓包工具

    打开Eclipse window show view other 现在访问之前写的项目 http localhost 8888 android jsp flight index jsp 查看Eclipse
  • Fiddler抓取手机端APP接口数据(包括https)

    下载安装Fiddler https pan baidu com s 12zAt0r8lcHTszekOOcqeLg 环境要求 PC机和手机连接在同一网络下 设置 1 记录pc端地址 2 如果不显示这个工具栏 xff0c 可以设置View S
  • 【Git】Git撤销add操作

    Git add错了文件怎么办 xff1f 可以查看以下两篇 https git scm com book zh v1 Git 基础 记录每次更新到仓库 https git scm com book zh v1 Git 基础 撤消操作 我们来
  • Cygwin安装教程

    简介 cygwin是一个在windows平台上运行的unix模拟环境 xff0c 是cygnus solutions公司开发的自由软件 Cygwin就是一个windows软件 xff0c 该软件就是在windows上仿真linux操作系统
  • 学习Kalibr工具--Camera标定过程

    这里介绍用kalibr工具对相机进行单目和双目的标定 xff1b 在kalibr中不仅提供了IMU与camera的联合标定工具 xff0c 也包含了camera的标定工具箱 xff1b 准备 安装好kalibr之后 xff0c 开始准备标定
  • 常用NMEA0183的报文解析

    NMEA0183报文包括GPGGA GPRMC GPVTG等报文 xff0c 本文主要介绍NMEA0183语句报文的格式以及解析 xff0c 方便有关位置信息编程或者有关位置获取的其他方面 1 GPGGA GPGGA消息包含详细的GNSS定
  • 03 - 雷达的基本组成

    目录 1 雷达发射机 2 雷达天线 3 雷达接收机 4 雷达信号处理机 5 雷达终端设备 以典型单基地脉冲雷达为例来说明雷达的基本组成及其作用 如图1 5所示 xff0c 它主要由天线 发射机 接收机 信号处理机和终端设备等组成 1 雷达发
  • 相机模型详解

    相机模型 数码相机图像拍摄的过程实际上是一个光学成像的过程 相机的成像过程涉及到四个坐标系 xff1a 世界坐标系 相机坐标系 图像坐标系 像素坐标系 以及这四个坐标系的转换 理想透视模型 针孔成像模型 相机模型是光学成像模型的简化 xff
  • Socket通讯实验总结

    网络编程的第一个实验入门比较难 因为要理解透彻套接字的工作原理 xff0c 服务器与客户端通讯的过程 不过经过几天的仔细研究 xff0c 实验还是完成了 以下对几个实验的知识点总结一下 xff1a 1 Socket和线程 在实验中一定要弄清
  • Linux网络编程 - 基于UDP的服务器端/客户端

    一 理解UDP 1 0 UDP协议简介 UDP User Datagram Protocol xff0c 用户数据报协议 RFC 768 UDP协议的数据传输单元叫 UDP用户数据报 xff0c 而TCP协议的数据传输单元叫 TCP报文段
  • VS中MFC连接MySQL的方法

    MFC 连接 MySQL 的方法 xff1a 首先建立一个 MFC 项目 下面进行设置 xff1a xff08 1 xff09 项目 gt 属性 gt 配置属性 gt C C 43 43 gt 附加包含目录 xff1a 在附加包含目录中添加
  • MFC 窗口Dialog 添加背景图片

    xff08 1 xff09 添加要设置为背景的图片资源 xff08 格式为bmp xff09 将图片 xff08 命名为homepage bmp xff09 放到工程下的资源文件夹中 xff08 res xff09 xff08 2 xff0
  • VirtualBox 在CentOS下安装增强功能及错误解决

    安装步骤如下 xff1a 1 执行安装增强功能 xff1a 之后会出现 Building the main Guest Addtional module Failed 的错误 xff0c 如下图 xff0c 安装失败 xff01 xff01
  • sem_open、sem_close、sem_unlink

    UNP2 P180 sem t sem open const char name int oflag mode t mode unsigned int value 打开有名信号量 1 当打开一个一定存在的有名信号量时 xff0c ofalg
  • GetLastError() 显示错误信息

    LPVOID lpMsgBuf FormatMessage FORMAT MESSAGE ALLOCATE BUFFER FORMAT MESSAGE FROM SYSTEM FORMAT MESSAGE IGNORE INSERTS NU
  • 线程SuspendThread() ResumeThread()的使用

    SuspendThread xff1a 挂起线程 If the function succeeds the return value is the thread 39 s previous suspend count otherwise i
  • DOS 命令访问FTP错误:425Failed to establish connection

    在windows命令窗口访问FTP服务会出现425Failed to establish connection的错误 解决办法 xff1a 1 关闭本队防火墙 2 在防火墙允许通过的程序中 xff0c 根据所用网络勾选 文件传送程序
  • 串口通信协议简介—学习笔记

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