ARM嵌入式学习--第十天(UART)

--UART介绍

UART (Universal Asynchonous Receiver and Transmitter)通用异步接收器 ,是一种通用串行数据总线,用于异步通信该总线双向通信,可以实现全双工传输和接收 。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其他器件 ,UART我们可以认为它是集成在SOC内部的一个控制器,它可以按照串口通信协议格式收发数据

由俩部分组成:一个将串行比特流转换成微处理器可以使用的并行数据接收器 (Rx)和一个将来自微处理器的并行数据转换为串行形式发送的发送器 (Tx)

同步通信 :在数据传输的过程中,需要一根时钟线同步,例如IIC,SPI总线,通过他们进行数据传输的时候,必须有一根时钟线,用来同步

异步通信 :数据传输的过程中,不需要时钟线,直接发送数据就可以了,例如串口通信采用的就是异步通信的方式发送方和接收方之间是没有时钟信号线的,他们各自使用各自的时钟。

(在STM32芯片中除了有UART外,还有个叫做USART,USART的全称是Universal Synchronous/Asynchronous Receiver/Transmitter,也就是同步/异步串行收发器相比UART多了一个同步的功能,在硬件上体现出来的就是多了一条时钟线)

--IMX6ULL UART介绍

通用异步收发设备(UART)通过电平转换器和RS-232电缆提供与外部设备的串行通信能力,或通过使用外部电路将红外信号转换位电信号(用于接收)或将电信号转换位驱动信号LED(用于传输)的信号,以提供低速IrDA兼容性

通用异步收发设备支持NRZ编码格式RS485兼容的9位数据格式和IrDA兼容的红外慢速数据速率(SIR)格式

-NRZ编码

NRZ编码 (Non-return-to-zero Code),也叫不归零编码信号电平的一次反转代表1,电平不变化表示0 ;并且在表示完一个码元后,电压不需回到0

-RZ编码

RZ编码 (Return-to-zero Code)归零编码 ;在RZ编码中,正电平代表逻辑1,负电平代表逻辑0,每传输完一位数据,信号返回零电平

信号线上会出现3种电平:正电平、负电平、零电平

从图上就可以看出来,因为每位传输之后都要归零,所以接受者只要在信号归零后采样即可,这样就不再需要单独的时钟信号。实际上,RZ编码就是相当于把时钟信号用归零编码再了数据之内。这样的信号也叫做自同步(self-clocking)信号 ;在RZ编码种,大部分的数据变宽,都用来传输"归零"而浪费了;去掉这个归零步骤,NRZ编码(Non-return-to-zero Code)就出现了,和RZ的区别就是NRZ是不需要归零的

如图所示,浪费的带宽又回来了,不过又丧失了自同步性。

-NRZI编码

NRZI编码(Non-Return-to-Zero Inverted Code)和NRZ的区别就是NRZI用信号的翻转代表一个逻辑,信号保持不变代表另外一个逻辑 。(USB传输的编码就是NRZI格式 ,在USB中,电平翻转代表逻辑0,电平不变代表逻辑1

翻转的信号本身可以作为一种通知机制,可以看到,即使把NRZI的波形完全翻转,所代表的数据序列还是一样的,对于USB这种通过差分线来传输的信号方便

相关推荐
承渊政道3 分钟前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
陌上花开缓缓归以8 分钟前
LiteOS和RTOS 系统选型分析
arm开发
野犬寒鸦2 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
陈桴浮海2 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
深圳市九鼎创展科技2 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计2 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
xhbaitxl2 小时前
算法学习day39-动态规划
学习·算法·动态规划
ZH15455891312 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
试着3 小时前
【huawei】机考整理
学习·华为·面试·机试
風清掦3 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习