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接口介绍的更多相关文章

  1. uart接口介绍和认识

    接口/总线/驱动 UART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器. UART是用于控制计算机与串行设备的芯片.有一点要注意的是,它 ...

  2. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  3. Hive 接口介绍(Web UI/JDBC)

    Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC. 一.实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanl ...

  4. SSH动态查询封装接口介绍

    SSH动态查询封装接口介绍 1.查询记录总条数 public int count(Class c,Object[][] eq,Object[][] like,String[] group,String ...

  5. 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍

    原文:[百度地图API]如何在地图上添加标注?--另有:坐标拾取工具+打车费用接口介绍 摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. ------ ...

  6. 如何删除要素类 IFeatureWorkspace 接口介绍(1)

    如何删除要素类 要想删除一个要素类,那么必须先得到这个,在得到这个要素类的时候,我们要学习一个新的接口IFeatureWorkspace. IFeatureWorkspace  接口介绍 这个接口主要 ...

  7. Redis --> Redis的接口介绍及使用

    Redis的接口介绍及使用 Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型.Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然 ...

  8. iic接口介绍

    最近遇到一个BUG,跟IIC通信有关,所以借这个机会总结一下IIC总线协议 1.引脚接口介绍 1.A0,A1,A2为24LC64的片选信号,IIC总线最多可以挂载8个IIC接口器件,通过对A0,A1, ...

  9. Spring之InstantiationAwareBeanPostProcessor接口介绍

      InstantiationAwareBeanPostProcessor接口是BeanPostProcessor的子接口,通过接口字面意思翻译该接口的作用是感知Bean实例话的处理器.实际上该接口的 ...

随机推荐

  1. python笔记-tuple元组的方法

    #!/usr/bin/env python #-*- coding:utf-8 -*- # 创建空元组 tuple1 = () print(tuple) # 创建带有元素的元组 # 元组中的类型可以不 ...

  2. 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 ...

  3. “帮你APP”团队冲刺1

    1.整个项目预期的任务量 (任务量 = 所有工作的预期时间)和 目前已经花的时间 (所有记录的 ‘已经花费的时间’),还剩余的时间(所有工作的 ‘剩余时间’) : 所有工作的预期时间:88h 目前已经 ...

  4. MySQL基础7-分页查询

    1.分页查询(MySQL特有的,oracle中没有) 栗子1: 每页最多3条记录:pageSize=3:第一页:SELECT * FROM product LIMIT 0,3第二页:SELECT * ...

  5. laravel5.2总结--响应

      1 基本响应 1.1 返回一个字符串,指定的字符串会被框架自动转换成 HTTP 响应. Route::get('/', function () { return 'Hello World'; }) ...

  6. couchbase map reduce

    map function(){emit(null,2);} reduce function(key, values, rereduce){ var response = {"a": ...

  7. Python框架之Django学习笔记(十五)

    表单 从Google的简朴的单个搜索框,到常见的Blog评论提交表单,再到复杂的自定义数据输入接口,HTML表单一直是交互性网站的支柱.本次内容将介绍如何用Django对用户通过表单提交的数据进行访问 ...

  8. php伪随机数漏洞 以及脚本php_mt_seed的使用教程

    前几天在群里看到了一个题目,发现自己没有接触过这个伪随机数这个漏洞,在此记录下. 搜索这两个函数 mt_scrand() mt_rand() mt_scrand(seed)这个函数的意思,是通过分发s ...

  9. 模板与c++11--右值引用

    函数参数传递 struct huge_data{ char *content; unsigned sz; huge_data():content(),sz(){ cout<<this< ...

  10. File IO(NIO.2):文件操作

    简介 Files类是java.nio.file包的另一个主要入口点.该类提供了一组丰富的静态方法,用于读取,写入和操作文件和目录.Files方法适用于Path对象的实例.在进行其余部分之前,您应该熟悉 ...