UART接口介绍
1. 简介
UART, Universal Asynchronous Receiver-Transmitter, 通用异步收发传输器
UART协议规定了通信双方所遵守的规定,属于数据链路层
RS232接口标准规定了电气特性、逻辑电平和各种信号线功能,属于物理层
2. RS232
RS232接口是PC机上串行接口标配,有DB9和DB25两种,通常为DB9
其接口定义如下

RS-232将设备分为
- 数据终端设备(DTE,Data Terminal Equipment, For example, PC)
- 数据通信设备(DCE,Data Communication Equipment)
DB9又有公头(针型)和母头(孔型)之分, PC上为公头

实际使用接口时,一般只要2,3,5,即收、发和地三根线,就能实现通信
3. UART
UART用一条传输线将数据一位位地顺序传送,以字符为传输单位
通信中两个字符间的时间间隔多少是不固定的, 然而在同一个字符中的两个相邻位间的时间间隔是固定的
数据传送速率用波特率来表示, 指单位时间内载波参数变化的次数, 或每秒钟传送的二进制位数
如每秒钟传送240个字符, 而每个字符包含10位(1个起始位, 1个停止位, 8个数据位), 这时的波特率为2400Bd
传输时序如下图

在UART中,信号线上共有两种状态, 分别用逻辑1(高电平)和逻辑0(低电平)来区分
在空闲时, 数据线应该保持在逻辑高电平状态
其中各位的意义如下
起始位(Start Bit): 先发出一个逻辑0信号, 表示传输字符的开始
数据位(Data Bits): 可以是5~8位逻辑0或1. 如ASCII码(7位), 扩展BCD码(8位)小端传输
校验位(Parity Bit): 数据位加上这一位后, 使得1的位数应为偶数(偶校验)或奇数(奇校验)
停止位(Stop Bit): 它是一个字符数据的结束标志. 可以是1位、1.5位、2位的高电平
空闲位: 处于逻辑1状态, 表示当前线路上没有资料传送
UART有如下流控方式
- 软件流控: XON/XOFF
- 硬件流控: RTS/CTS
实际使用串口过程中最常用的设置如下
- 波特率: 115200
- 校验位: 无
- 数据位: 8
- 停止位: 1
- 流控: 无
4. 外设连接
PC与嵌入式设备的连接需要一个电平转换器(MAX232/MAX3232),
具体即嵌入式设备将UART口引出为RS-232 Connector(4口,TX、RX、GND、VCC)
RS232 Connector通过杜邦线连接MAX232
MAX232则通过RS232接口/USB与PC的COM口/USB口相连

tip: 若使用PC的USB接口做串口需要专门的驱动
下图是SOC与外围设备之间的常用UART连接方式

资料:
<Serial Port Basics>
<UART Tutorial for Robotics>
<A tutorial on the RS-232 standard>
UART接口介绍的更多相关文章
- uart接口介绍和认识
接口/总线/驱动 UART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器. UART是用于控制计算机与串行设备的芯片.有一点要注意的是,它 ...
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)
SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...
- Hive 接口介绍(Web UI/JDBC)
Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanl ...
- SSH动态查询封装接口介绍
SSH动态查询封装接口介绍 1.查询记录总条数 public int count(Class c,Object[][] eq,Object[][] like,String[] group,String ...
- 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍
原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...
- 如何删除要素类 IFeatureWorkspace 接口介绍(1)
如何删除要素类 要想删除一个要素类,那么必须先得到这个,在得到这个要素类的时候,我们要学习一个新的接口IFeatureWorkspace. IFeatureWorkspace 接口介绍 这个接口主要 ...
- Redis --> Redis的接口介绍及使用
Redis的接口介绍及使用 Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型.Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然 ...
- iic接口介绍
最近遇到一个BUG,跟IIC通信有关,所以借这个机会总结一下IIC总线协议 1.引脚接口介绍 1.A0,A1,A2为24LC64的片选信号,IIC总线最多可以挂载8个IIC接口器件,通过对A0,A1, ...
- Spring之InstantiationAwareBeanPostProcessor接口介绍
InstantiationAwareBeanPostProcessor接口是BeanPostProcessor的子接口,通过接口字面意思翻译该接口的作用是感知Bean实例话的处理器.实际上该接口的 ...
随机推荐
- python笔记-tuple元组的方法
#!/usr/bin/env python #-*- coding:utf-8 -*- # 创建空元组 tuple1 = () print(tuple) # 创建带有元素的元组 # 元组中的类型可以不 ...
- JZOJ 5459. 【NOIP2017提高A组冲刺11.7】密室
5459. [NOIP2017提高A组冲刺11.7]密室 (File IO): input:room.in output:room.out Time Limits: 1000 ms Memory L ...
- “帮你APP”团队冲刺1
1.整个项目预期的任务量 (任务量 = 所有工作的预期时间)和 目前已经花的时间 (所有记录的 ‘已经花费的时间’),还剩余的时间(所有工作的 ‘剩余时间’) : 所有工作的预期时间:88h 目前已经 ...
- MySQL基础7-分页查询
1.分页查询(MySQL特有的,oracle中没有) 栗子1: 每页最多3条记录:pageSize=3:第一页:SELECT * FROM product LIMIT 0,3第二页:SELECT * ...
- laravel5.2总结--响应
1 基本响应 1.1 返回一个字符串,指定的字符串会被框架自动转换成 HTTP 响应. Route::get('/', function () { return 'Hello World'; }) ...
- couchbase map reduce
map function(){emit(null,2);} reduce function(key, values, rereduce){ var response = {"a": ...
- Python框架之Django学习笔记(十五)
表单 从Google的简朴的单个搜索框,到常见的Blog评论提交表单,再到复杂的自定义数据输入接口,HTML表单一直是交互性网站的支柱.本次内容将介绍如何用Django对用户通过表单提交的数据进行访问 ...
- php伪随机数漏洞 以及脚本php_mt_seed的使用教程
前几天在群里看到了一个题目,发现自己没有接触过这个伪随机数这个漏洞,在此记录下. 搜索这两个函数 mt_scrand() mt_rand() mt_scrand(seed)这个函数的意思,是通过分发s ...
- 模板与c++11--右值引用
函数参数传递 struct huge_data{ char *content; unsigned sz; huge_data():content(),sz(){ cout<<this< ...
- File IO(NIO.2):文件操作
简介 Files类是java.nio.file包的另一个主要入口点.该类提供了一组丰富的静态方法,用于读取,写入和操作文件和目录.Files方法适用于Path对象的实例.在进行其余部分之前,您应该熟悉 ...