当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/530431.html

相关文章:

  • 玉米苗和杂草识别分割数据集labelme格式1997张3类别
  • 哈夫曼树
  • wax到底是什么意思
  • 笔记:使用ST-LINK烧录STM32程序怎么样最方便?
  • 数据分析系列--[11] RapidMiner,K-Means聚类分析(含数据集)
  • Python在数据科学领域的深度应用:从数据处理到机器学习模型构建
  • 海外问卷调查渠道查,具体运营的秘密
  • 穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索
  • 万字长文深入浅出负载均衡器
  • 基于SpringBoot的青年公寓服务平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • 经典游戏红色警戒2之英语
  • IM 即时通讯系统-50-[特殊字符]cim(cross IM) 适用于开发者的分布式即时通讯系统
  • QtCreator在配置Compilers时,有一个叫ABI的选项,那么什么是ABI?
  • 处理 **5万字(约7.5万-10万token,中文1字≈1.5-2token)** 的上下文
  • 【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)
  • springboot 启动原理
  • 浅析DDOS攻击及防御策略
  • Linux网络 HTTPS 协议原理
  • Idea插件开发
  • Java 有很多常用的库
  • pytorch实现文本摘要
  • C++基础day1
  • 从TinyZero的数据与源码来理解DeepSeek-R1-Zero的强化学习训练过程
  • 爬虫基础(四)线程 和 进程 及相关知识点
  • 【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具01
  • 队列—学习
  • SpringBoot的配置(配置文件、加载顺序、配置原理)
  • 如何本地部署DeepSeek?DeepThink R1 本地部署全攻略:零基础小白指南。
  • 陆游的《诗人苦学说》:从藻绘到“功夫在诗外”(中英双语)mastery lies beyond poetry
  • Golang —协程池(panjf2000/ants/v2)