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目录…

rabbitmq队列的exclusive,durability,auto-delete属性以及消息可靠传输设计

非集群下&#xff0c;简单的说&#xff1a;- 如果是excl&#xff0c;则设置durability没有意义&#xff0c;因为不管服务器挂了还是客户端主动/被动断开了&#xff0c;队列都会自动删除。- auto-delete&#xff0c;其实可简单的认为是同理&#xff0c;即使非excl&#xff0c;则…

IIC 总线接口详细介绍

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

DMA数据传输过程

DMA方式具有如下特点&#xff1a;1、 外部设备的输入输出请求直接发给主储存器。主存储器既可以被CPU访问&#xff0c;也可以被外围设备访问。因此&#xff0c;在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队&#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…

驻扎博客园

今天把之前hexo里的一些文章全部转移到博客园了&#xff0c;之后就在博客园写点东西&#xff0c;记录一些生活的琐事。为什么要移至博客园呢&#xff1f;其实很简单&#xff0c;这边可以和一些同意从事前端的小伙伴一起互动。技术还是需要多讨论的&#xff0c;希望之后能多更新…

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 帧&…

require.js学习记录

1、简介 官方对requirejs的描述&#xff1a;RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will impro…

iOS-AFNetworking参数和多文件同时上传【多文件上传】

1. 前言 在项目开发中&#xff0c;我们经常需要上传文件&#xff0c;例如&#xff1a;上传图片&#xff0c;上传各种文件&#xff0c;而有时也需要将参数和多个文件一起上传&#xff0c;不知道大家的项目中遇到了没有&#xff0c;我在最近的项目中&#xff0c;就需要这样的一个…

智能音箱 之 平台方案简介

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

Linux Kconfig及Makefile学习

内核源码树的目录下都有两个文档 Kconfig &#xff08;2.4版本是Config.in&#xff09;和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库&#xff0c;每个Kconfig分别描述了 所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时&#xff0c;从K…

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

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

Scala-Spark digamma stackoverflow问题

这两天在用spark做点击率的贝叶斯平滑&#xff0c;参考雅虎的论文进行了一番尝试。 先上代码&#xff1a; 1 # click_count, show_count # this method takes time2 def do_smooth(data_list):3 import scipy.special as sp4 a, b, i 1.0, 1.0, 05 da, db a, b6 …

IIS接口详细介绍

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

UVA - 10934 Dropping water balloons(装满水的气球)(dp)

题意&#xff1a;有k个气球&#xff0c;n层楼&#xff0c;求出至少需要多少次实验能确定气球的硬度。气球不会被实验所“磨损”。 分析&#xff1a; 1、dp[i][j]表示第i个气球&#xff0c;测试j次所能确定的最高楼层。 2、假设第i-1个气球测试j-1次所确定的最高楼层是a, 若第i个…

继承进阶

先讲一个例子&#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类型数据,属于其一个特…

网站同源策略

所谓"同源"指的是"三个相同"&#xff1a;协议&#xff0c;域名&#xff0c;端口。 举例来说&#xff0c;http://www.example.com/dir/page.html这个网址&#xff0c;协议是http://&#xff0c;域名是www.example.com&#xff0c;端口是80&#xff08;默认端…