【记录】嵌入式经典通信UART理解
目录
UART简介
通信基础—USART和UART区别
通信基础—同步通信和异步通信
通信基础—并行通信和串行通信
通信基础—单工通信和双工通信
通信基础—比特率
UART帧格式
UART硬件连接
UART控制器
UART简介
UART(Universal Asynchronous Receiver Transmitter)即通用异步收发器,是一种通用的串行、异步酒信总线该总线有两条数据线(一条数据线用于发送TXD,另一条数据线用于接收 RXD),可以实现全双工的发送和接收在嵌入式系统中常用于主机与辅助设备之间的通信。
通信基础—USART和UART区别
USART:通用同步和异步收发器
UART:通用异步收发器
当进行异步通信时,这两者是没有区别的。区别在于USART比UART多了同步通信功能。
这个同步通信功能可以把USART当做SPI来用,比如用USART来驱动SPI设备。
通信基础—同步通信和异步通信
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
同步是阻塞模式,异步是非阻塞模式。
通信基础—并行通信和串行通信
并行通信:一次性传送一个字长的数据。
串行通信:一般来讲数据线只有一根,一位一位的传输数据。
并行:通信速度快,但是使用总线多,浪费资源,同时布线难度大,而且多条总线容易产生信号干扰。
通信基础—单工通信和双工通信
单工通信:只能单向传送信息。
双工通信:能实现双向传送信息。
1.半双工:单个芯片发送和接收只能实现一个,不能同时。
2.全双工:单个芯片发送和接收能同时实现。
如果总线数据线只有一根就是半双工,数据线有两根就是全双工。
通信基础—比特率
比特率用于描述UART通信时的通信速度,其单位为bps(bit per second)即每秒钟传送的bit的数量。
UART帧格式
高电平代表1,低电平代表0。
比如要发送0X55,转换为2进制的话就是要发送01010101。在空闲时数据线处于高电平。
起始位,代表发送数据开始,为低电平。
数据位发送时,先发送低位,后发送高位(可以发送5-8位,一般发送8位,因为1字节=8bit)即10101010。
校验位用来校验接收与发送是否一致。串口当中最常使用的是奇偶校验,比如01010101中1的个数是偶数,因此校验位就写个1,接收到的如果发现校验位是0,即奇数,就说明发生了错误。校验位只能去校验有没有错误产生,但不能进行修正。校验位可有可无,使用校验位会使通信速度降低,但是准确性提高。
停止位表示一次通信的结束,为高电平。
如果要发送多个字节,必须接收到上一个发送数据的停止位才可以,即每次最多允许一个字节发送,原因:避免产生累积误差。
UART硬件连接
A的发送器对应B的接收器;A的接收器对应B的发送器。
UART控制器
一般情况下处理器中都会集成UART控制器 我们使用UART进行通信时候只需对其内部的相 关寄存器进行设置即可。
【记录】嵌入式经典通信UART理解相关推荐
- SPI、UART、RS232、RS485、IIC 5种嵌入式经典通信总线协议
文章目录 一.UART 1.通信基础--并行和串行 并行通信 串行通信 2.通信基础--单工和双工 3.通信基础--比特率 4.通讯基础--异步和同步 5.UART硬件连接 6.UART控制器 串口控 ...
- 痞子衡嵌入式:嵌入式里串口(UART)自动波特率识别程序设计与实现
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里串口(UART)自动波特率识别程序设计与实现. 串口(UART)是嵌入式里最基础最常用也最简单的一种通讯(数据传输)方式,可以说 ...
- 嵌入式经典面试题总结
一.面试官角度分析笔试 预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PE ...
- RS232串口通信(UART的接收部分)
RS232串口通信(UART的接收部分) 置顶 新人博主,创作不易,波形图手绘,请给个点赞关注吧,非常感谢! 串口简介 串口作为常用的三大低速总线(UART.SPI.IIC)之一,在设计众多通信接 ...
- stm32串口通信(初学者对于串口通信的理解)
stm32串口通信(初学者对于串口通信的理解) 标签: stm32串口通信单片机 2015-01-24 10:12 987人阅读 评论(0) 收藏 举报 分类: stm32 版权声明:本文为博主原创 ...
- linux 嵌入式串口通信设计目的,基于linux的嵌入式串口通信.doc
PAGE 天津电子信息职业技术学院 <嵌入式软件编程>课程报告 课程名称:基于linux的嵌入式串口通信 课程代码: 115229 姓 名: 甘琦 学 号: 48 专 业: 物联网应用技术 ...
- linux 嵌入式串口通信,基于linux的嵌入式串口通信综述.doc
PAGE 天津电子信息职业技术学院 <嵌入式软件编程>课程报告 课程名称:基于linux的嵌入式串口通信课程代码: 115229 姓 名: 甘琦 学 号: 48 专 业: 物联网应用技术 ...
- 错误记录一:线程通信时抛出Exception in thread “Thread-0” java.lang.IllegalMonitorStateException异常
错误记录一:线程通信时抛出Exception in thread "Thread-0" java.lang.IllegalMonitorStateException异常 完整异常: ...
- 英飞凌TC264学习(四)串口通信UART
英飞凌TC264学习(四)串口通信UART 串口部分的函数在LQ_UART.c中 TC264有四路UART中断,需要中断可以来配置中断,与外部中断一样,中断服务函数,中断号,优先级,不需要中断的话就不 ...
最新文章
- C语言基础_函数指针
- Windows10中Docker的安装与遇到的那些坑
- 成为Java流大师–第6部分:使用流创建新的数据库应用程序
- git/github使用完整教程(1)基础
- 智慧交通day02-车流量检测实现05:卡尔曼滤波器实践(小车模型)
- 谁再问你“天天爬那些数据有什么用”,就把这5本书扔给他!
- HTML5系列(2)--ol列表的新属性
- ListView 搜索函数
- keras库的安装及使用,以全连接层和手写数字识别MNIST为例
- 第三章 Goroutine调度策略(16)
- 陈晨-证券交易系统架构设计_挑战与实施经验分享
- Android 在现有项目中引入Compose
- 疫情大考,文旅央企华侨城出台有力措施保障游客安全
- STM32实现DAC功能输出音频波形
- 2021年终总结暨2022年计划安排
- 中小型项目请求限流设计
- 如何去掉行首行尾的空格
- LINUX基础试题大全(2)
- 【前端面试】39道Vue高频面试题,亲测有效!!!快来看看呀!!
- 工业控制计算机系统总线,工业控制计算机总线技术.ppt
热门文章
- id returned 1 existed:让人发疯的devc++报错
- 程序员创业必读的几本书
- 多个公网服务器搭建k8s集群
- 类加载初始化顺序(nullpoint异常)
- 联想笔记本电脑开机无法修复计算机,联想电脑Win10更新后提示“自动修复”无法进入系统问题蓝屏解决方案...
- 软件测试常用的工具都在这里了
- 如何玩转网络攻防?看这文就够了!
- 施一公院士:如何做一名优秀的博士生
- 《新一代视频压缩编码标准H.264/AVC》
- 前端开发基础 HTML+CSS+JS