前面一节已介绍同步、异步、双工、半双工通信知识。

这节从uart及usart说起。

USART(universal synchronous asynchronous receiver and transmitte): 通用同步异步收发器

USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。

UART(universal asynchronous receiver and transmitter): 通用异步收发器

异步串行通信口(UART)就是我们在嵌入式中常说的串口,它还是一种通用的数据通信议。

区别:

USART是指单片机的一个端口模块,可以根据需要配置成同步模式(SPI,I2C),也可以将其配置为异步模式,后者就是UART。所以说UART姑且可以称之为一个与SPI,I2C对等的“协议”,而USART则不是一个协议,而是更应该理解为一个实体。

相比于同步通讯,UART不需要统一的时钟线,接线更加方便。但是,为了正常的对信号进行解码,使用UART通讯的双方必须事先约定好波特率,即单位事件内传输码元的个数。

补充:

在电子通信领域,波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。它是对符号传输速率的一种度量,1波特即指每秒传输1个符号,而透过不同的调制方式,可以在一个码元符号上负载多个bit位信号。[1]“波特”(Baud)本身已是速率,所以不需要写成 Baud Rate(Rate 是赘字)。单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。

uart

  通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

  具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。

  定义

  UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

  

  USART

  USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。

  结构组成

  USART收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。控制寄存器为所有的模块共享。

  时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引脚XCK仅用于同步发送模式下,

  发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同桢结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多帧数据无延时的通信。

  接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。数据接收单元用作异步数据的接收。除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。接收器支持与发送器相同的帧结构,同时支持帧错误、数据溢出和校验错误的检测。

  

uart和usart的区别

  UART与USART都是单片机上的串口通信,他们之间的区别如下:

  首先从名字上看:

  UART:universal asynchronous receiver and transmitter通用异步收/发器

  USART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发器

  从名字上可以看出,USART在UART基础上增加了同步功能,即USART是UART的增强型,事实也确实是这样。但是具体增强到了什么地方呢?

  其实当我们使用USART在异步通信的时候,它与UART没有什么区别,但是用在同步通信的时候,区别就很明显了:大家都知道同步通信需要时钟来触发数据传输,也就是说USART相对UART的区别之一就是能提供主动时钟。如STM32的USART可以提供时钟支持ISO7816的智能卡接口。 USART支持流控制

在s3c2440中看到的是uart,而在一般新的芯片手册中看到的都是usart,虽然在以前也都看到过,原本以为这俩其实是相同的,以为只是不同芯片采用不同的名称而已,其实不然,uart全名叫通用异步收发传输器,在uart上追加同步方式的序列信号变换电路则称之为usart

UART 是一种通用串行数据总线,用于异步通信,全双工,

与UART的区别是USART具有发送部分有外部时钟输入驱动和波特率发生器,发送器有一个单独的写入缓冲器(发送UDR),一个串行移位寄存器、校验位发生器和用于处理不同帧结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多帧数据无延迟的通信。其实USART是UART的增强型,只是比UART多了个同步功能,拥有独立的时钟驱动器,可以实现无延迟的数据传输。

板内板间通信协议及接口(二)uart usart相关推荐

  1. 板内板间通信协议及接口(四)SPI

    SPI是串行扩展总线. 串行总线技术可以使系统的硬件设计大大简化.系统的体积减小.可靠性提高.同时系统的更改和扩充极为容易. 常用的串行扩展总线有:I2C(Inter IC Bus)总线.单总线(1- ...

  2. 启明云端分享| 采用 B to B设计的RK3399核心板来了,邮票孔,支持4K、H.265 硬解码;核心板内置 EDP、MIPI-DSI、HDMI、DP 显示接口,带有 2 路 MIPI-CSI

    RK3399核心板(邮票孔)–IDO-SOM3909 提示:启明云端旗下触觉智能 采用 B to B设计的RK3399核心板来了,邮票孔,支持4K.H.265 硬解码:核心板内置 EDP.MIPI-D ...

  3. 基于STM32开发板I²C总线通信协议浅析

    基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...

  4. 液晶屏 -- 驱动板 -- 屏线 -- 高压条 -- LVDS接口知识

    1.液晶屏 先说液晶屏,只要不是太特殊的笔记本,绝大多数都是LVDS接口的,极少是TTL的,这个看液晶屏的针脚可以大致判断出来(注意是看液晶屏上的接口,不是已经引出的屏线),LVDS的一般是14.20 ...

  5. Android 开发板内网下的时间同步

    Android 开发板内网下的时间同步 第一种方案: 间隔发送请求到服务器,从服务器拿到时间后修改系统时间 1:通过系统厂家给的接口修改时间2:通过adb命令修改 public void testDa ...

  6. php内嵌网页加载js,javascript 窗口加载蒙板 内嵌网页内容_javascript技巧

    //初始化导航背景,iframe容器 function fnDaoHangBg() { var h = fnGetHeight(),w = fnGetWidth();//获取背景窗口大小 if(!$( ...

  7. html页面加载蒙版_javascript 窗口加载蒙板 内嵌网页内容

    //初始化导航背景,iframe容器 function fnDaoHangBg() { var h = fnGetHeight(),w = fnGetWidth();//获取背景窗口大小 if(!$( ...

  8. 开发板_Hi3516DV300核心板/开发板;Hi3516EV100+4G+AUDIO RTMP开发板;海思系列开发板/核心板定制开发...

    1.海思Hi3516DV300核心板/开发板 一,芯片参数 1. 处理器内核 *双核ARM Cortex-A7@ 900MHz,32KB I-Cache,32KB D-Cache,256KB L2 C ...

  9. PCIe接口二,三事

    PCIe接口二,三事 结构 互连 通道 硬件协议 物理层 数据传输 数据链路层 事务层 结构 从概念上讲,PCIe总线是旧 PCI/PCI-X 总线的高速串行替代品. PCIe总线和旧PCI之间的主要 ...

最新文章

  1. spark-submit参数说明--standalone
  2. 正则表达式中的小括号用法
  3. Jupyter Notebook插入图片的4种方法
  4. OCM备考 一、Server config 之手工创建数据库
  5. 如何免费申请用于开发目的的Hybris Commerce license
  6. 使用JUnit和Repeat注​​释编写有效的负载测试
  7. MyBatis学习笔记(三) 关联关系
  8. Maven学习总结(27)——Maven自定义打包插件maven-assembly-plugin详解
  9. JavaWeb学习记录(二十五)——权限管理总结
  10. 自定义View在android2.3.3手机上正常运行 在android4.2.2手机上报空指针
  11. JAVA 算法之穷举法
  12. idea背景颜色修改
  13. 安装YApi 接口管理平台
  14. 牛客2019跨年AK场题解(一)
  15. E.03.10 Coffee Drinking Tied to Lower Risk of Heart Failure
  16. php 获取微博cookie,如何获取微博 Cookie
  17. 架构师速成5.2-价值观和目标
  18. android安全漏洞(八)伪造短信(利用原生android4.0漏洞)
  19. 【送书】就业大崩溃,你是否正在从事20年内大概率被淘汰的职业?
  20. 用智能指针实行所有权

热门文章

  1. matlab用while循环编写程序,MATLAB程序设计
  2. 解决无法显示所有文件和文件夹,无法显示隐藏文件和文件夹
  3. 华为mate40pro有几种颜色
  4. Java 基础 — 数据流、文件和 I/O
  5. vs安装界面一闪而过
  6. 7-4 看到草原上奔跑的马儿了吗?
  7. 基础学习之同义词【转】
  8. 文件服务器 华为,建立一个文件服务器
  9. python和java图片_Java好还是Python好?一张图告诉你!
  10. 目标检测: 数据集转换txt转为xml格式