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这种通过差分线来传输的信号方便

相关推荐
知识噬元兽2 小时前
【工具使用】STM32CubeMX-FreeRTOS操作系统-信号标志、互斥锁、信号量篇
stm32·单片机·嵌入式硬件
Flag- L3 小时前
STM32标准库-TIM定时器
stm32·单片机·嵌入式硬件
2301_775602383 小时前
STM32什么是寄存器
stm32·单片机·嵌入式硬件
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
喜欢吃燃面5 小时前
C++刷题:日期模拟(1)
c++·学习·算法
2301_797604246 小时前
学习记录:DAY32
学习
双古6 小时前
步进电机调试记录(先让我的步进电机转起来)
单片机·嵌入式硬件
蓝婷儿7 小时前
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
开发语言·python·学习
叶子2024227 小时前
学习使用YOLO的predict函数使用
人工智能·学习·yolo
jackson凌7 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习