UART介绍

   1. 概述

UART, Universal Asynchronous Receiver-Transmitter, 通用异步收发器;

串口:在嵌入式里指的是UART口,常用TTL电平即3.3V或者5.0V;

COM口:在台式机上常用的口,DB9那种接口,接口协议只有两种RS232和RS485;

RS232电平即负逻辑电平,定义+5V~+12V为逻辑0,-5V~-12V为逻辑1。

UART口、COM口指的是物理接口形式;

TTL、RS232和RS485指的是电平逻辑标准;

TTL电平和RS232电平转换专用芯片有MAX232,TTL电平转USB芯片有CP2102、PL2303、FT230等用USB来扩展串口数量。

   2. 硬件结构

与IIC、SPI 等接口一样,都属于串行通信接口,但是UART只有数据线收和发,并无时钟线,故为异步串行通信接口,可以实现全双工通信;在嵌入式系统中,常用与控制系统与外设通信,包括控制器与控制器,控制器与终端设备。线路简单,成本低,传输距离远,但传输速度慢。

VCC:供电pin,一般是3.3V,在实际使用中一般不接,不影响使用;

GND:接地pin,板内共地时可以不单独接,板间通信时候必须接上;

RX:接收数据pin;

TX:发送数据pin;  需要注意TX  RX的参考系,不要接反了,电平需要兼容;

如果收发是有关联关系的,很多情况下需要关注流控。

UART CTS/RTS用于硬流控,协调双方收发,保证数据不丢失。Clear to send    Request To Send

A---------B

TX --> RX
RX <-- TX
RTS ---> CTS
CTS <--- RTS

芯片A通过UART发送数据,当芯片B拉高RTS时,A就会暂停发送,

                                             当芯片B拉低RTS时,A又会继续发送。

比如 WIFI模组与AP的串口连接:

  3. 通信协议

UART使用的是异步串行通信;以字符为传输单位,一位一位的顺序输送;通信中两个字符间的时间间隔是不固定的 ,然而同一个字符内两个相邻位之间的时间间隔是固定的。

数据的传送速率用波特率来表示,即每秒钟传送的二进制位数;

一般选波特率都会有9600,19200,115200等选项。

传输时序如下:

起始位:先发一个逻辑0,表示传输字符的开始;

依靠检测起始位来实现发送与接收方的时间自同步的。

数据位:可以是4、5、6、7、8位逻辑0或者1,构成一个字符,如ASCII码8位数据位,从最低位开始传送,靠时钟定位;方向为LSB。

奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数(偶校验)或奇数(奇校验)以此来校验数据传送的正确性;

停止位:他是一个字符数据的结束标志,可以是1位、1.5位、2位的高电平。适用于停止位的位数越多,不同时钟同步的容忍程度越大,数据传输率同时也越低。

空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送。

UART传输数据的顺序:刚开始传输一个起始位,接着传输数据位,接着传输校验位(可不需要此位),最后传输停止位。                                        这样一帧的数据就传输完了。

传输方向:数据位从高位(MSB)开始传输还是从低位(LSB)开始传输。比如传输A,

                   如果MSB就是01000001,如果LSB就是10000010。协议规定为LSB方向。

帧间隔:即传送数据的帧与帧之间的间隔大小,可以用位或者时间为计量。

欢迎加入硬件QQ群:101 808 3751,一起讨论硬件问题,分享调试心得,共同成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb环境安装

1、mongodb安装 我采用的是离线安装&#xff0c; &#xff08;1&#xff09;在mongodb的官方网址下载所需要的版本。我下载的是 mongodb-linux-x86_64-ubuntu1604-3.4.5.tgz 。 &#xff08;2&#xff09;下载后解压缩到待安装目录&#xff0c;我这里下载在了Downloads目录…

IIC 总线接口详细介绍

1. 概述 IIC Inter Integrated-Circuit 总线是PHLIPS公司推出的一种串行总线&#xff0c;是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线&#xff0c;它支持多主控(multimastering)&#xff0c;其中任何能够进行发送和接收的设备都可以成为主总线。…

Android JNI开发系列(二)HelloWorld

2019独角兽企业重金招聘Python工程师标准>>> 入门HelloWorld 新建项目 Configure your new project部分选中 Include C Support 复选框 Next 正常填写所有其他字段并完成向导接下来几个部分 在向导的Customize C Support 部分&#xff0c;您可以使用谢列选项自定…

sublime text3安装js提示的插件

今天安装Sublime Text3的js插件&#xff0c;在网上查了很多资料&#xff0c;为了方便以后看&#xff0c;写一个安装插件的总结和方法。 要安装js相关的插件&#xff0c;就要先安装一个Package Control&#xff08;插件管理器&#xff09;的插件&#xff0c;通过这个插件再去安装…

SPI接口详细介绍

1. 概述 SPI Serial Peripheral Interface&#xff0c;是串行外围设备接口&#xff0c;是一种高速&#xff0c;全双工&#xff0c;同步的通信总线。常规只占用四根线&#xff0c;节约了芯片管脚&#xff0c;PCB的布局省空间。现在越来越多的芯片集成了这种通信协议&#xff0…

H.264 Profile、Level、Encoder三张简图

H.264有四种画质级别,分别是BP、EP、MP、HP&#xff1a; 1、BP-Baseline Profile&#xff1a;基本画质。支持I/P 帧&#xff0c;只支持无交错&#xff08;Progressive&#xff09;和CAVLC&#xff1b;   2、EP-Extended profile&#xff1a;进阶画质。支持I/P/B/SP/SI 帧&…

智能音箱 之 平台方案简介

智能音箱&#xff0c;被认为是物联网时代的入口&#xff0c;在去年成为了各大厂商争相投入的风口。在当今互联网时代&#xff0c;它不仅仅是一台单纯的音乐播放器&#xff0c;在其背后支撑的 AI 技术才是整个产品的核心&#xff0c;也是各大公司觊觎物联网入口的最根本原因。经…

Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)...

一.概述 在上一篇里讲到了shell脚本&#xff0c;shell按照命令在脚本中出现的顺序依次进行处理&#xff0c;对于顺序操作已经足够了&#xff0c;但许多程序要求对shell脚本中的命令加入一些逻辑流程控制&#xff0c;这样的命令通常叫做 结构化命令。 1.1 使用if - then语句 --最…

IIS接口详细介绍

1. 概述 I2S Inter-IC Sound Integrated Interchip Sound IIS&#xff0c;是飞利浦在1986年定义&#xff08;1996年修订&#xff09;的数字音频传输标准&#xff0c;用于数字音频数据在系统内器件之间传输&#xff0c;例如编解码器CODEC、DSP、数字输入/输出接口、ADC、DAC…

继承进阶

先讲一个例子&#xff1a; #老师有生日&#xff0c;怎么组合哪&#xff1f; class Birthday: # 生日def __init__(self,year,month,day):self.year yearself.month monthself.day dayclass Teacher: # 老师<br>def __init__(self,name,birth):self.name nameself.b…

PCM接口详细介绍--TDM方式

1. 概述 PCM = Pulse Code Modulation 是通过等时间隔(即采样率时钟周期)采样将模拟信号数字化的方法。图为4 bit 采样深度的PCM数据量化示意图: PCM数字音频接口,说明接口传输的音频数据是通过PCM方式采样得到的,区别于PDM形式;IIS传输的也是PCM类型数据,属于其一个特…

Kconfig文件结构(图文)简介

1 Kconfig和Makefile 毫不夸张地说&#xff0c;Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上&#xff0c;Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。Kconfig和Makefile就好似一个城市的地图&#xff0c;地图引导我们去 认识一…

PDM接口介绍

1. 概述 PDM Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。 PDM则使用远高于PCM采样率的时钟采样调制模拟分量&#xff0c;只有1位输出&#xff0c;要么为0&#xff0c;要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比P…

Kaggle 泰坦尼克

入门kaggle&#xff0c;开始机器学习应用之旅。 参看一些入门的博客&#xff0c;感觉pandas&#xff0c;sklearn需要熟练掌握&#xff0c;同时也学到了一些很有用的tricks&#xff0c;包括数据分析和机器学习的知识点。下面记录一些有趣的数据分析方法和一个自己撸的小程序。 1…

语音交互设备 前端信号处理技术和语音交互过程介绍

一、前端信号处理 1. 语音检测&#xff08;VAD&#xff09; 语音检测&#xff08;英文一般称为 Voice Activity Detection&#xff0c;VAD&#xff09;的目标是&#xff0c;准确的检测出音频信号的语音段起始位置&#xff0c;从而分离出语音段和非语音段&#xff08;静音或噪…

【BZOJ1500】[NOI2005]维修数列 Splay

【BZOJ1500】[NOI2005]维修数列 Description Input 输入的第1 行包含两个数N 和M(M ≤20 000)&#xff0c;N 表示初始时数列中数的个数&#xff0c;M表示要进行的操作数目。第2行包含N个数字&#xff0c;描述初始时的数列。以下M行&#xff0c;每行一条命令&#xff0c;格式参见…

bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)

每个节点继承父节点的树&#xff0c;则答案为query(root[x]root[y]-root[lca(x,y)]-root[fa[lca(x,y)]]) #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<algorithm> using namespace std; const int maxn1…

图文详解YUV420数据格式

YUV格式有两大类&#xff1a;planar和packed。 对于planar的YUV格式&#xff0c;先连续存储所有像素点的Y&#xff0c;紧接着存储所有像素点的U&#xff0c;随后是所有像素点的V。 对于packed的YUV格式&#xff0c;每个像素点的Y,U,V是连续交*存储的。 YUV&#xff0c;分为三个…

USB通信接口介绍

1. 概述 Usb Universal Serial Bus全称通用串行总线&#xff0c;是一种支持热插拔的高速串行传输总线&#xff0c;使用差分信号来传输数据。 USB设备可以直接和host通信&#xff0c;或者通过hub和host通信。一个USB系统中仅有一个USB主机&#xff0c;设备包括功能设备和hub&…

HDCVI——一种创新性的高清视频传输方案

什么是HDCVI 2012年11月&#xff0c;大华技术股份有限公司发布了具有自主知识产权的同轴高清传输接口技术HDCVI。HDCVI技术是一种基于已有SYV75-3或SYV75-5同轴电缆的高清视频传输方法&#xff0c;能够在低成本和较低质量的同轴电缆上实现超长距离高清视频信号的可靠传输。相比…