首页 > 其他分享 >UART协议介绍

UART协议介绍

时间:2024-04-03 10:55:05浏览次数:25  
标签:协议 码元 校验位 UART 校验 介绍 传输 bit

日期 版本 内容修改
2024/04/03 V0 初版

UART协议即Universal Asynchronous Receiver/Transmitter,是一种串行、异步、全双工通信协议。

UART也常常被称作串口。

1. 信号名称

  • txd:UART发送数据线
  • rxd:UART接收数据线

1.1. 传输格式

UART的传输格式如下图所示(图源[1],有修改)。

img

1.1.1. 字符帧每个部分各自的含义

  1. 空闲:空闲状态下,信号是高电平
  2. 起始位:1 bit高电平,表征字符帧的开始。
  3. 数据位:若干bit的有效数据。
  4. 校验位:用于简单校验传输是否正确的1 bit特殊位。
  5. 停止位:若干bit(甚至不一定是整数)的高电平,表征字符帧的结束。

2. UART的异步参数

UART最大的特点就是异步收发,不需要传递时钟信号。为了做到这一点,收发双方必须提前约定一些参数,否则不能正确地传输数据

一般需要约定以下参数:

  • 传输字长:一个字符帧中有效的数据位数。

    • 可能的值:5, 6, 7, 8, 9 bit等
  • 大小端:指先传输LSB或MSB。

    • 可能的值:小端(little endian)即先传LSB,大端(big endian)即先传MSB
  • 奇偶校验位[1:1]:即多加一位数据,与有效数据一起传输,接收方收到后将有效数据和校验位一起做某些运算来检验传输是否出错。
    奇偶校验只能检验最基本的错误(比如只有1 bit传输错误),而且不能纠正。设定了校验格式后,发送端就会按照既定格式给校验位赋值。

    • none:不做校验
    • even:偶校验,有效数据和校验位中总计有偶数个“1”
    • odd:奇校验,有效数据和校验位中总计有奇数个“1”
    • mark:1校验,固定校验位为“1”
    • space:0校验,固定校验位为“1”
  • 波特率(baud rate):传输码元的速率。

    码元(symbol)[2]:从英文角度symbol来理解比较简单。比如同样的数据1100_0101:加入定义符号的码值为 char 'a'=1'b0; char 'b'=1'b1;,这样数据就翻译为'bbaa_abab',此时码元长度是1 bit;如果定义符号的码值为 char 'a'=2'b00; char 'b'=2'b01; char 'c'=2'b10; char 'd'=2'b11;,这样数据就翻译为'da_bb',此时码元长度是2 bit。

    因此码元其实是人为定义的一种符号(数据包),它的长度至少为1 bit。

    波特率一定指的是码元的传输速率,位的传输速率是“比特率”。只不过如果不定义码元,那一般码元就是1 bit,所以此时波特率等于比特率。

    • 常见的标准值有9600, 19200, 38400 symbol/s等,此时需求的时钟频率一般为48 MHz
  • 停止位长度:一个字符帧传输结束后会额外发送若干bit的高电平,代表此字符帧已经停止,称为停止位。
    \(停止位的高电平时间/1 bit对应时间\) 就是停止位长度,一般用bit作单位。

    • 可能的值:1, 1.5, 2等

注意:UART参数未必仅限于以上提到的,取值也未必仅限于以上提到的。前面说过UART是收发双方约定格式的,理论上只要你能约定,想怎么约定都可以。但是如果收发其中某一方不支持你修改为任意值,就无法正常通信。

比如以下是matlab中对串口参数的约束。使用 doc serial可以查看串口定义属性。

img


  1. UART串口校验方式(无校验、奇偶校验、固定校验)_uart校验位-CSDN博客 ↩︎ ↩︎

  2. 码元,码元速率,波特率,比特率,数据率的理解_比特时间和数据率的关系-CSDN博客 ↩︎

标签:协议,码元,校验位,UART,校验,介绍,传输,bit
From: https://www.cnblogs.com/li2000/p/18112205/Digital-Protocol-UART

相关文章

  • GIS入门,EPSG:3857介绍,纯JS如何实现简化得Web墨卡托投影的逆变换和高精度Web墨卡托投影
    EPSG:3857坐标系介绍EPSG:3857坐标系,也称为Web墨卡托投影(WebMercatorprojection),是一种用于Web地图的常见投影系统。它是由谷歌地图在2005年引入并广泛采用的。这个投影系统将地球表面的经纬度坐标转换为平面坐标,使得地图在Web上的显示更加方便和流畅。EPSG:3857坐标系使......
  • SPI传输协议介绍
    日期版本内容修改2023/03/11V0初版1.SPI协议SPI(SerialPeripheralInterface)协议由Motorola公司推出。1.1.端口名称及含义标准SPI有4条信号线。MISOMasterInputSlaveOutput:主机输入,从机输出(数据来自从机)。也可以是SIMO,DOUT,DO,SDO或SO(在主机端)。M......
  • 试井分析系统简介及基础功能介绍
    试井分析是油气田勘探开发中广泛使用的方法,在试油(试气)或油气田开发测试的基础上,通过测试分析井底压力资料,对储层进行分析评价,对油气田的勘探开发有着重要的指导作用。试井分析软件在已有辰工试井分析系统V6.0基础上功能进行了升级优化,采用全新Ribbon界面设计,界面友好,操作方便......
  • 应用层的http和https协议
    HTTP和HTTPShttp和https是什么?http常用的协议版本http/1.0http/1.1改进http/2.0改进http和https有什么区别?http和https是什么?  HTTP(超文本传输协议)是一种用于在网络上传输超文本数据的协议。它是一种客户端-服务器协议,用于从web服务器传输文本、图像、音频......
  • 【CHI协议-1】CacheLine状态
    从这一章开始就和大家一起分享一下CHI协议中具体的一些事务以及场景。今天主要梳理一下Read事务,但是要讲清楚这些乱七八糟的事务,还需要了解其他很多知识点,不然就是云里雾里的,比如cacheline的状态啊,什么是snoop啊,以及一致性节点啊等等。但是这些太多了,如果先要把这些都讲清楚......
  • IP(Internet Protocol)是一种网络协议,用于在网络中发送和接收数据包
    IP(InternetProtocol)是一种网络协议,用于在网络中发送和接收数据包。它是一个无连接的、不可靠的数据报协议,负责将数据从源主机传输到目标主机。IP协议的主要功能包括寻址、路由和分段。寻址:IP协议为每个连接到网络的设备分配一个唯一的IP地址,这个地址用于在网络中识别设备......
  • 如何获取onvif协议的端口号?
    ONVIF协议本身并没有规定一个固定的端口号。这是因为不同的设备和应用场景可能会有不同的网络配置和需求。因此,ONVIF协议允许设备厂商根据实际情况自行设定端口号。这意味着,在使用ONVIF协议时,我们需要查看设备的文档或配置界面,以确定具体的端口号。一、常见ONVIF端口号虽然ONVI......
  • C#对接部标JT808协议实现北斗定位设备数据接收服务端
    一、前言介绍开发一套能够支撑几万台北斗定位设备数据接收的服务端,用于接收北斗定位器定位数据的平台。项目基于windows平台,C#语言开发框架NetFramework4.8,TCP主要基于SuperSocket用来构建一个服务器端Socket程序,JT808.ProtocolJT/T808协议快速开发包,开发工具采用了微软的Vis......
  • 【javaWeb & 功能介绍第一篇】阿里云OSS文件上传
    文件上传文件上传存储文件本地存储云服务阿里云文件上传文件上传是将本地的图片,视频,音频等文件上传到服务器,供其他用户浏览或下载的过程文件上传在项目中应用十分广泛,我们经常发微博,发微信都用到了文件上传的功能在前端的开发之中,如果需要文件上传功能,则必须在......
  • Yarn介绍及快速安装Debian/Ubuntu Linux
    Yarn简介:Yarn是一个快速、可靠、安全的JavaScript软件包管理工具。它是由Facebook开发的,旨在改进npm(NodePackageManager)的性能和可靠性。Yarn提供了更快的下载速度、离线支持、版本锁定等功能,使JavaScript项目的依赖管理更加高效。在Debian/UbuntuLinux上快速安装Yarn:要在De......