UART接口介绍_uart接口引脚定义

UART接口介绍_uart接口引脚定义UART接口介绍

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

                                                          UART接口介绍

   
UART是Universal Asynchronous Receiver and Transmitter简称,中文为
通用异步接收和发送器,是常用的串行通讯接口。

一、数据格式

    UART作为异步传输接口,接口不需要共用同一个时钟,只需通讯双方在传输过程中的时钟频率大小保持一致。
UART接口介绍_uart接口引脚定义
图1 数据帧结构
   
数据帧包括:起始位、数据位、奇偶校验位、停止位。
1、
起始位:表明将要发送数据,传输字符开始,起始位为低电平“0”;(
必须

2、数据位(资料位):数据位可以是5 bits、6 bits、7 bits或者8 bits,常用为8 bits(ASCII码),从最低位开始发送,依靠时钟进行定位;(必须

3、
奇偶校验位:传输数据位加上这一位后使得1的位数应为偶数(偶校验)或奇数(奇校验),通过该方式来校验数据传输的正确性。(
可选
4、
停止位:表明数据传输结束,停止位为高电平“1”。停止位的宽度可能是1bit、1.5bit、或者2bit的高电平,数据在传输线上定时,每个设备有自己的时钟,通讯设备之间很可能出现微小不同步,所以停止位不仅仅表示传输的结束,并且提供设备之间校准时钟同步的机会;(
必须
 5、
空闲状态:当UART未发送数据时,数据线TX、RX状态为高电平“1”;
 6、
波特率:每秒钟传输的数据位,此时可以等同于比特率。常用的UART波特率为:9600、115200。波特率是衡量数据传输速率的指标,表示每秒钟传输的符号数(symbol),一符号代表信息量(比特数)与符号的阶数有关,如果用256阶符号-8bits表示一个符号;
 7、
回环操作(loopback):UART可以进入一个内部回环模式,用于诊断或调试;
 8、buffer一般是用FIFO(First in First out),目的是提高系统性能。

二、工作原理

    UART控制器中包含四种寄存器:输出缓存寄存器、输出移位寄存器、输入缓存寄存器、输入移位寄存器。
    输出缓存寄存器:该寄存器用来存放处理传输过来的并行数据。
    输出移位寄存器:读取输出缓存寄存器中的值,将并行数据串行输出,LSB先传输。
    输入移位寄存器:接收对方UART接口传输的串行数据,一帧数据接收完毕后,将把数据传输给输入缓存寄存器。
    输入缓存寄存器:保存从输入移位寄存器传递过来的串行数据。
UART接口介绍_uart接口引脚定义
图2 UART工作原理
UART接口数据线
1、RX:接收数据
2、TX:发送数据
3、GND:数字地
4、VCC:直流电源

三、电平转化

    UART采用TTL电平,若两台嵌入式设备通讯,可以直接连接。PC采用逻辑负电平,PC与嵌入式设备通讯,就必须通过芯片MAX232进行电平转化。
逻辑负电平:逻辑“1”(-5V — -15V),逻辑“0”(5V — 15V)

四、案例—-逻辑分析仪

UART接口介绍_uart接口引脚定义

五、串口调试工具测试

对于串口数据,是一种无符号整形数据类型,所以常用以下有两种表示方式:
1、字符;2、十六进制;(串口调试工具默认为该两种方式)
UART接口介绍_uart接口引脚定义

 UART接口介绍_uart接口引脚定义

UART接口介绍_uart接口引脚定义

UART接口介绍_uart接口引脚定义

UART接口介绍_uart接口引脚定义

UART接口介绍_uart接口引脚定义

UART接口介绍_uart接口引脚定义

六、Invertion(电平反转)

1、DUT已经配置为TX invertion,逻辑分析仪也调整好协议格式(invertion)

DUT发送字符S(0x53),逻辑分析接收数据如下:

UART接口介绍_uart接口引脚定义

示波器抓波形:

UART接口介绍_uart接口引脚定义

2、Tx数据也反转

DUT发送字符S(0x53),逻辑分析接收数据如下:

UART接口介绍_uart接口引脚定义

示波器抓取数据:

UART接口介绍_uart接口引脚定义

七、UART break信号

1、space state:低电平

2、mark state:高电平,或者可以理解为idle state;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193814.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql截取中文字符_mysql截取字符串函数-Go语言中文社区

    mysql截取中文字符_mysql截取字符串函数-Go语言中文社区目标将rull字段值的0.1g*14粒/1.5mg*30片/100ml(氨甲环酸0.5g:氯化钠0.84g)*1瓶中的mg/g/ml开头的数字取出设置到另外一个字段上去SELECTidfromsheet2whererulllike’%ml%’;SELECTid,count,LEFT(rull,LOCATE(‘g’,rull)-1)fromsheet2w…

    2022年5月5日
    132
  • 第七章 vShpere新功能之容错(FT)的实现

    第七章 vShpere新功能之容错(FT)的实现

    2021年8月7日
    78
  • Http状态码406(Not Acceptable) 错误问题解决方法

    Http状态码406(Not Acceptable) 错误问题解决方法状态码406:HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。说白了就是后台的返回结果前台无法解析就报406错误。示例代码中请求代码,后台代码均正常,且有返回信息。如下图:$.ajax({url:’http://localhost:8080/findDsrwByDsrwid’,type:’post’,…

    2022年6月16日
    221
  • c++解决大整数乘法

    c++解决大整数乘法c++解决大整数乘法问题描述:求两个不超过200位的非负整数的积输入数据:输入有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出要求:输出只一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么不能输出0342。输入样例:1234567890098765432100输出样例:1219326311126352690000解题思路:采用列乘法竖式的求解思路,采用数组…

    2022年6月2日
    43
  • docker 运行tomcat_docker和tomcat区别

    docker 运行tomcat_docker和tomcat区别在学习狂神的docker内容网络学习这一步的时候,按照步骤启动tomcat镜像,但是执行ipaddr之后发现下面问题,经过分析这说明我们下载的Tomcat镜像是精简版的,利用这个镜像去打开一个容器的时候发现没有ipaddr这个命令。所以到导致我们上述报错。上图执行的命令敲错了,重新执行aptinstall-yiproute2…

    2022年7月27日
    10
  • Android经典应用程序开发

    Android经典应用程序开发Android 经典应用程序开发韩超 nbsp 编著 ISBN978 7 121 15586 42012 年 2 月出版定价 59 00 元 16 开 428 页宣传语 具有清晰的主线 知识点全面 内容简洁实用理论 文档和代码三者结合 以通用理念指引 Android 开发 nbsp nbsp nbsp nbsp nbsp 内容简介本书内容理论联系实际 系统化组织 全书由 8 章组成 涵盖了 Android 经典应用程序开发的各个方面

    2025年10月27日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号