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

这节从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. Windows 11成上班摸鱼利器,微软CEO喊话苹果:欢迎引入iMessage
  2. Java中有哪些无锁技术来解决并发问题?如何使用?
  3. Asp.net中网站级异常捕获
  4. Appscan_web安全测试工具 (含修改启动浏览器的方法)
  5. mysql查询_MYSQL查询
  6. C#中实现byte[]与任意对象互换(服务端通讯专用)
  7. Win10和Ubuntu20.04双系统启动引导项修复指南
  8. orc识别较慢_超强orc文字识别免注册版
  9. 金蝶K3-航天信息税控发票开票软件接口程序
  10. C# --CSkin的使用教程
  11. TensorFlow Estimator学习笔记(二)Estimator自定义模型-使用卷积神经网络解决 MNIST 问题
  12. 用VB制作自己的IE网页浏览器
  13. hazy的leetcode刷题笔记(二)
  14. 手把手教你使用--常用模块--HC05蓝牙模块,无线蓝牙串口透传模块,(实例:手机蓝牙控制STM32单片机点亮LED灯)
  15. Java发送SMS短信
  16. LFM雷达实现及USRP验证【章节3:连续雷达测距测速】
  17. 论文笔记01——PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes
  18. 刷新校史!985副研究员,以独立作者身份,研究成果被数学顶级期刊录用!
  19. 文件上传个人bypass总结
  20. 输入220V输出5V-24V电流:200MA-500MA.非隔离高压IC

热门文章

  1. Lq_ 区间k大数查询
  2. LQ0065 k倍区间【前缀和+余数定理】
  3. 哈工大软件构造lab2---实验心得
  4. 声音数据集汇总【持续更新】
  5. 动态口令(OTP,One-Time Password)原理与实践(TOTP)
  6. 为什么有人可以在“屎”一样混乱的几千行代码里加功能?不重构能驾驭“屎山”吗?...
  7. Nginx 使用 proxy_cookie_path 解决反向代理 cookie 丢失导致无法登录等问题
  8. JS数组添加元素的三种方式
  9. 数据库概论(实验五)数据库完整性
  10. 浏览器扩展程序之脚本使用