全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

UART串口通信实验及工作原理

时间:2024-03-21 17:10

人气:

作者:admin

导读:UART通信过程需要设置波特率、数据长度、开始/停止位等参数。波特率决定了发送数据的速度,而数据长度和开始/停止位则用于确保数据的正确传输和接收。...

UART(Universal Asynchronous Receiver/Transmitter)是一种异步收发传输器,是设备间进行异步通信的关键模块。该设备通过信号线将需要发送的数据以二进制的形式一位一位地发送出去,在传输的过程中高电平表示发送的数据为“1”,低电平表示数据为“0”。异步通信的发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

UART具有双向通信能力,可以实现全双工传输和接收。全双工数据通信允许数据同时在两个方向上传输,这提高了数据传输的效率。此外,UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。

UART通信过程需要设置波特率、数据长度、开始/停止位等参数。波特率决定了发送数据的速度,而数据长度和开始/停止位则用于确保数据的正确传输和接收。

在UART通信中,两个UART直接相互通信。发送UART将控制设备(如CPU)的并行数据转换为串行形式,以串行方式将其发送到接收UART。只需要两条线即可在两个UART之间传输数据,数据从发送UART的Tx引脚流到接收UART的Rx引脚。

UART属于异步通讯,这意味着没有时钟信号,取而代之的是在数据包中添加开始和停止位。这些位定义了数据包的开始和结束,因此接收UART知道何时读取这些数据。

当接收UART检测到起始位时,它将以特定波特率的频率读取。波特率是数据传输速度的度量,以每秒比特数(bps)表示。两个UART必须以大约相同的波特率工作,发送和接收UART之间的波特率只能相差约10%。

UART串口通信实验

数据位:8bit,停止位1位,无校验位,波特率115200bps

uart_rxd:数据线

clk_cont:循环时钟计数器0-433

115200bps,1bit耗时1/115200s=8680.5ns

系统时钟50MHZ,1时钟周期20ns

8680.5/20=434.025,

可认为每434个时钟周期发送1bit位数据

rx_cnt:接收数据位数计数器。Clk_cnt每计数434,rx_cnt+1.记录接收了多少位(包括起始位和结束位)。为0是起始位,为9是结束位。

start_flag:检测到uart_rxd下降沿拉高

rx_flag:检测到start_flag拉高,它也拉高。检测到停止位拉低。

uart_data(寄存器):在rx_cnt为1时将数据bit0存入寄存器第0位… …

uart_done:传输完成标志位,rx_cnt为9时拉高

工作原理

发送UART从数据总线获取并行数据后,它会添加一个起始位,一个奇偶校验位和一个停止位来组成数据包并从Tx引脚上逐位串行输出,接收UART在其Rx引脚上逐位读取数据包。

UART数据包含有1个起始位,5至9个数据位(取决于UART),一个可选的奇偶校验位以及1个或2个停止位:

在实际应用中,UART广泛应用于各种设备和系统中,以实现数据的有效传输和通信。例如,在计算机硬件中,UART用于连接计算机的内部和外部设备,如调制解调器、打印机等。在嵌入式系统中,UART也扮演着重要角色,用于实现设备之间的数据交换和通信。

审核编辑:黄飞

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信