[转]UART通信简介
1.前言
UART通信,即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。
串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。
数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。
2.串行与并行通讯方式
- 并行
控制简单,传输速度快。线多,长距离成本较高且同时接受困难。
图 并行通讯方式
- 串行
将数据字节分成一位一位的行驶在一条传输线上进行传输。如图:
图 串行通讯方式
3. 串行通讯的特点
- 串行通讯的制式
单工:数据传输仅沿一个方向,不能实现反向传输
半双工:数据可以沿两个方向传输,但是需要分时
全双工:数据可以同时进行双向传输
- 串行通讯三种错误校验
奇偶校验、代码和校验、循环冗余校验
- RS232电平与TTL电平的转换
PC使用的串口的电平为RS232的九针串口,MCU使用的电平是TTL电平,要使得PC 和MCU进行通讯,就需要对其电平极性转换。
主要的几款电平转换芯片:MAX232、MAX202、HIN232,SIPEX320等
- 串行通讯速度的定义_波特率
串行通讯的速率用波特率表示,其定义为: 每秒钟传送二进制代码的位数,即1波特=1位/秒,单位bps(位/秒)
eg:每秒钟传送240个字符,而每个字符格式包含10位(1起始、8数据、1停止),此时的波特率为:
10位*240个/秒=2400bps
4.同步与异步串行通讯方式
- 同步串行通讯方式
同步通讯需要建立发送方对接收方时钟的直接控制,是双方达到完全同步
- 异步串行通讯方式
通讯的发送和接收设备使用各自的时钟控制数据的发送和接收,为使双方收发协调,要求发送和接收的时钟尽可能一致。如图:
图 异步串行通信方式
5.UART(通用异步串行通信方式)的数据传输格式
图 UART的数据传输格式
异步通讯以字符构成的帧为单位进行传输,字符与字符之间的间隙是任意的,但每个字符中的各位是以固定的时间传送的。
其一帧字符信息由4部分组成:起始位、数据位、奇偶检验位、停止位。在单片机中的通讯一般情况下均使用这种帧格式。如图:
- 起始位
先发出一个逻辑”0”信号,表示传输字符的开始。
- 数据位
可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输,即低位在前高位在后
- 校验位
数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)
- 停止位
它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
- 空闲位
处于逻辑“1”状态,表示当前线路上没有资料传送。
注:异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。
下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)
图 连续字符的数据传输
6. UART的发送与接收过程
- 串行数据的发送过程
串行数据的发送由发送时钟控制。数据发送过程:把并行的数据序列送入移位寄存器,然后通过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。
发送时钟、待发送的二进制数据和出现在传输线上的信号波形三者的关系如图所示:
图 串行数据发送
- 串行数据的接收过程
串行数据的接收由接收时钟检测,接收数据的过程:把由传输线送来的串行数据序列由接收时钟作为输入移位寄存器的触发脉冲,逐位打入移位寄存器,接收过程是将串行数据序列逐位打入移位寄存器,而装配成并行数据序列的过程。
接收时钟、接收器检测到的的二进制数据和出现在传输线上的信号波形三者的关系如图所示:
图 串行数据接收
7.UART RS232 MAX232 DB9的关系
- UART是一种物理设备,主要用于数据的收发
- RS232是一种异步串行通信协议标准
- MAX232是一款芯片来实现PC端RS232电平转换成单片机TTL电平
- DB9是具体的物理连接器
注:TTL是Transistor-Transistor Logic,即晶体管-晶体管逻辑的简称,它是计算机处理器控制的设备内部各部分之间通信的标准技术。
TTL电平信号应用广泛,是因为其数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0"。
数字电路中,由TTL电子元器件组成电路的电平是个电压范围,规定:输出高电平>=2.4V,输出低电平<=0.4V;输入高电平>=2.0V,输入低电平<=0.8V。
RS232是串口的一个标准,它有自己的电平定义:它采用负逻辑,-15V~-3V代表逻辑"1",+3V~+15V代表逻辑"0"。
图 DB9 MAX232的连接
7.参考资料
[1] 基于51的串行通讯原理及协议详解(uart) http://www.51hei.com/bbs/dpj-40281-1.html
[转]UART通信简介的更多相关文章
- Arduino与Air800开发板使用UART通信:传输DHT22传感器数据
硬件介绍 Arduino Leonardo在数字引脚0(RX)和1(TX)进行串口通信时是使用“Serial1”,USB的串口通信使用的是“Serial”.在数字引脚0(RX)和1(TX)与USB是相 ...
- ZigBee学习四 无线+UART通信
ZigBee学习四 无线+UART通信 1) 协调器编程 修改coordinator.c文件 byte GenericApp_TransID; // This is the unique messag ...
- ZigBee学习三 UART通信
ZigBee学习三 UART通信 在使用串口时,只需掌握ZigBee协议栈提供的串口操作相关的三个函数即可. uint8 HalUARTOpen(uint8 port,halUARTCfg_t *co ...
- [Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信
一.前言 下面是本系列文章的前几篇: [Intel Edison开发板] 01.Edison开发板性能简述 [Intel Edison开发板] 02.Edison开发板入门 [Intel Edison ...
- c# 与flash通信简介
许久不曾写随笔,即使许久的怠惰,是该抬抬头,看看天了. 公司项目,项目要求是在winForm端先获取下位机的肌电信号采集数据,然后根据这些数据的变化来控制flash游戏,这样一些患者在flash游戏中 ...
- socket通信简介
转:http://blog.csdn.net/xiaoweige207/article/details/6211577 “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的 ...
- 转:socket通信简介
转:http://blog.csdn.net/xiaoweige207/article/details/6211577/ 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页 ...
- UART通信
UART0串口调试过程:1.配置DTS节点 在Z:\rk3399\kernel\arch\arm64\boot\dts\rockchip路径下打开rk3399.dtsi文件,里面已经有UART0相关节 ...
- dubbo结构及通信简介
一.导论 dubbo作为阿里开发优秀的rpc服务框架,现已广泛用于各大rpc项目之间的远程通信,虽然阿里现在已经没有维护dubbo的开发,但是其结构设计也是值得学习. 二.结构简介 这部分只是简单介绍 ...
随机推荐
- 自学Aruba7.3-Aruba安全认证-802.1x认证(web页面配置)
点击返回:自学Aruba之路 自学Aruba7.3-Aruba安全认证-802.1x认证(web页面配置) 步骤1 建立AP Group,命名为test802-group 步骤2 将AP加入到AP ...
- [hgoi#2019/3/3]赛后总结
T1--最长公共前缀(lcp) 定义两个字符串S,T 的最长公共前缀lcp(S,T)为最长的字符串R,满足R 既是S 的前缀又是T 的前缀. 给定一个字符串S,下标从1 开始,每次询问给出四个正整数a ...
- 一个简单的mock server
在前后端分离的项目中, 前端无需等后端接口提供了才调试, 后端无需等第三方接口提供了才调试, 基于“契约”,可以通过mock server实现调试, 下面是一个简单的mock server,通过pyt ...
- SpringCloud学习(二)---Eureka
Eureka 重点在使用,概念和源码基本不涉及 Eureka是一个基于REST(REST是HTTP协议的)的服务,主要在亚马逊网络服务(AWS)云中使用,定位服务来进行中间层服务器的均衡负载和故障转移 ...
- R语言:随机抽样(sample函数)
如果想从一堆数据集中随机抽出一个数,用sample函数就能实现,代码展示如下: forehead<-c(249,189,128,111,184,233,313,120,151,196,135,1 ...
- 惊喜的gift
情侣的饰品吧!我之前在淘宝上买了一套,挺好的,很好看呢!男的手链,女的项链,手链需要项链的钥匙才能打得开,女孩子应该都会很喜欢的吧!至少我很喜欢!而且价格也不贵,150块人民币都不到,很适合当生日礼物 ...
- 【tools】vim删除命令
x 删除当前光标下的字符dw 删除光标之后的单词剩余部分.d$ 删除光标之后的该行剩余部分.dd 删除当前行. c 功能和d相同,区别在于完成删除操作后进入INSERT MODEcc 也是删除当前行, ...
- ElasticSearch文档操作介绍三
ElasticSearch文档的操作 文档存储位置的计算公式: shard = hash(routing) % number_of_primary_shards 上面公式中,routing 是一个可变 ...
- saltstack 常用模块
cp模块 功能:实现远程文件.目录的复制,以及下载URL文件等操作 使用cp模块配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作: 指定根目录(确定指定的目录 ...
- C# 新特性
1.字符串中调用参数 DataTable dt= sqlHelper.SqlConnectionInformation(connstr,sql); string rows = JsonConvert. ...