串口通讯详解

2023-05-16

这篇文章包含了串口通讯里面的大部分概念问题

目录

串口通讯线

同步串行(ISP)

 异步串行(UART)

 波特率

数据帧


 串口通讯线

串口通信线最少需要2根(GND和信号线),可以实现单工通信,也可以使用3根通信线(Tx、Rx、GND)来实现全双工。

通过串口不管发数字、还是文本还是命令还是什么,都要先对发送内容进行编码,编码成二进制再进行逐个位的发送。
串口发送的一般都是字符,一般都是ASCII码编码后的字符,所以一般设置数据位都是8,方便刚好一帧发送1个字符。

同步串行(ISP)

串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。

同步串行是指ISP(interface Serial Peripheral )的缩写,顾名思义就是串行外围设备接口。ISP总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,TRM450是ISP接口。

同步通信时,通信双方共用一个时钟,这是同步通信区分于异步通信的最显著的特点。在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,以致占用了时间。所以在数据块传送时,为提高通信速度,常去掉这些标志,而采用同步通信。同步通信中,数据开始传送前用同步字符来指示(常约定1~2个),并由时钟来实现发送端和接收端的同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到一块数据传送完毕。同步传送时,字符之间没有间隙,也不要起始位和停止位,仅在数据开始时用同步字符SYNC来指示,其数据格式见图。

 异步串行(UART)

异步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片,通常集成在主板上。UART包含TTL电平的串口和RS232电平的串口。 TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5到+25V为低电平,而-3到-25V为高电平,MDS2710、MDS SD4、EL805等是RS232接口,EL806有TTL接口。

异步通信采用固定的通信格式,数据以相同的帧格式传送。每一帧由起始位、数据位、奇偶校验位和停止位组成。起始位表示发送方要开始发送一个通信单元;数据位是一个通信单元中发送的有效信息位;奇偶校验位是用来校验数据位,以防止数据位出错的;停止位是发送方用来表示本通信单元结束标志的。

通过异步收发器(UART)用来传输串行数据。UART之间以全双工方式传输数据,最精简的连接方法只有三条连线:TXD用于发送数据,RXD用于接收数据,Gnd给双方提供参考电平

传输数据之前,UART之间要约定数据的传输速率(即每位所占时间,其倒数成为波特率)、数据的帧格式(即有多少个数据位、是否使用校验位、是奇校验还是偶校验、有几位停止位)。通讯双方的数据包格式要约定一致才能正常收发数据。

 UART使用标准的CMOS逻辑电平(0—5V、0—3.3V、0—2.5V或0—1.8V四种)来表示数据,高电平为1,低电平为0。为了增强干扰能力,提到传输长度,通常将CMOS逻辑电平转换为RS-232逻辑电平(3—15V以0表示,-3 — -15V以1表示)。

 波特率

波特率(Baud rate)是指数据传送时,每秒传送数据二进制代码的位数,它的单位是位/秒(bps)。1波特就是一位每秒。

假设数据传送速率是每秒120字符,而每个字符格式包括10个代码位(1个起始位、一个终止位、8个数据位),这时传送的波特率为:10× 120 = 1200b/s

位传送时间宽度Td=波特率的倒数,则上式中的Td=1/1200s=0.883ms。

在异步串行通信中,接收设备和发送设备保持相同的传送波特率,并以每个字符数据的起始位与发送设备保持同步。起始位。数据位。奇偶位和停止位的约定,在同一次传送过程中必须保持一致,这样才能成功的传送数据。

数据帧

数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾

其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;

数据部分则包含网络层传下来的数据

数据帧的接收与发送都是按照字节进行,一帧数据里面的数据部分可以包含多个数据,每一个数据都是用UART通信格式进行接收发送的数据(有开始位,数据位,校验位,停止位)

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

串口通讯详解 的相关文章

  • 网络编程——UDP

    目录 UDP的服务器端 UDP的echo客户端代码 UDP的echo服务器端代码 UDP的服务器端 先运行服务器端 xff0c 再运行客户端 服务端 xff1a 开发者 xff1a Virtuous 开发版本 xff1a 1 0 开发时间
  • HTTP 完全解析

    Http 详解 HTTP 的定义 HTTP即是 xff1a Hypertext Transfer Protocol xff0c 超文本传输协议 xff0c 种 络传输协议 xff0c 位于 TCP IP 协议族的最顶层 应 层 URL 说到
  • STM32 自定义串口协议

    STM32 自定义串口协议 1 串行通信1 1 原理与优缺点1 2 分类1 2 1 按通信方向1 2 2 按通信方式 1 3 异步串行引脚连接1 3 1 串口外设之间1 3 2 ARM与PC之间 1 4 字符帧格式1 5 串口通信过程1 6
  • 无人机——电机篇(一)

    文章目录 1 电机的定义 2 电机的分类 3 电机的参数 4 电机效率 5 电机的选择 1 电机的定义 电机俗称 马达 是无人机的动力来源 无人机通过改变电机的转速来改变无人机的飞行状态 即改变每个电机的速度 使得无人机能够盘旋空中 上升或
  • HTTP请求/响应报文结构

    HTTP请求报文 一个HTTP请求报文由四个部分组成 xff1a 请求行 请求头部 空行 请求数据 1 请求行 请求行由 请求方法字段 URL字段 和 HTTP协议版本字段 3个字段组成 xff0c 它们用空格分隔 比如 GET data
  • AStar寻路算法

    概述 AStar算法是一种图形搜索算法 xff0c 常用于寻路 他是以广度优先搜索为基础 xff0c 集Dijkstra算法和最佳优先 best fit 于一身的一种算法 示例1 4向 示例2 8向 思路 递归的通过估值函数找到最佳路径 x
  • ECCV2022 | 多模态融合检测新范式!基于概率集成实现多模态目标检测

    点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 ECCV2022 获取ECCV2022所有自动驾驶方向论文 xff01 说在前面的话 标题 xff1a
  • 什么是地址映射

    ARM体系结构 地址映射 一 什么是地址映射 1 ARM Cortex A8架构 xff0c 32位CPU xff0c CPU设计时就有32根地址线和32根数据线 2 32根地址线决定了CPU的地址空间为4G xff0c 那么这4G空间如何
  • 寄存器和GPIO

    一 什么是GPIO 1 GPIO的英文全称General Purpose Input Output Ports 中文意思是通用I O端口 2 GPIO就是芯片的引脚 xff08 芯片上的引脚有些不是GPIO xff0c 只有一部分是 xff
  • 什么是I2C通信

    ARM体系 I2C通信 一 什么是I2C 1 I2C总线是由Philips公司开发的一种简单 双向二线制同步串行总线 它只需要两根线即可在连接于总线上的设备之间传送信息 2 主设备用于启动总线传送数据 xff0c 并产生时钟以开放传送的设备
  • 什么是AD转换

    ARM体系 ADC 一 什么是ADC 1 ADC xff1a analog digital converter xff0c AD转换 xff0c 模数转换 xff08 也就是模拟转数字 xff09 2 模拟信号只有通过A D转化为数字信号后
  • 什么是SPI通信

    ARM体系 SPI通信 一 什么是SPI通信 1 SPI是串行外设接口 Serial Peripheral Interface xff0c 可以理解为一种通信协议 xff0c 也就是用来传输数据的 2 SPI 是由摩托罗拉 Motorola
  • petalinux uboot源码在哪的问题

    petalinux uboot源码在哪的问题 提出问题解决问题注意 xff1a 要知道自己的版本 1 uboot2 kernel 提出问题 petalinux 源码目录存放在哪里的问题 xff0c 也就是petalinux工程的uboot和
  • petalinux uboot源码怎么打补丁

    petalinux的源码 petalinux工程对于我来说 xff0c 就是有一点不能直接起修改源码 xff0c 你需要间接的修改源码的内容 xff1f 这个修改你还需要遵从petalinux的规章流程 当你不知道的时候你会感到无从下手 x
  • 嵌入式Ubuntu根文件系统移植带桌面

    1 为什么要移植Ubuntu根文件系统 相信到达这一步的人 xff0c 都已经对根文件系统有了个充分的认识 xff0c 已经自己从无到有创建过根文件系统了 xff0c 玩过busybox的了 xff0c 也可能移植过别的嵌入式文件系统了 但
  • Keil5在已有项目中导入文件夹(文件或模块),后编译,头文件找不到问题

    Keil5在已有项目中导入文件夹 文件或模块 后编译 头文件找不到问题 如果你是以及成功导入文件后 但是编译时发现头文件找不到 可以直接从第二部分看起 第一部分导入文件 第二部分导入头文件 导入头文件时注意 注意 注意路径问题要和导入文件时
  • stm32之串口使用和串口中断

    1 定义 串口通讯 Serial Communication 是一种设备间非常常用的串行通讯方式 xff0c 因为它简单便捷 xff0c 因此大部分电子设备都支持该通讯方式 xff0c 其通讯协议可分层为协议层和物理层 物理层规定通信协议中
  • 万字长文解析CV中的注意力机制(通道/空间/时域/分支注意力)

    点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 transformer综述 获取2022最新ViT综述论文 xff01 注意力机制是机器学习中嵌入的一

随机推荐