赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
我要把linux驱动设备的硬件协议先吃透先
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种通信协议和硬件接口,用于在计算机系统和外部设备之间进行异步数据传输。它是一种简单且常见的串行通信方式,广泛应用于嵌入式系统、单片机和通信设备中。它在全双工模式下工作。
uart通过发送和接收数据来实现实时通信,它使用起始位和停止位来识别每个数据字节的开始与结束,实现数据的异步传输。
UART的引脚有:
TXD (Transmit Data):发送数据引脚,用于发送端发送数据。
RXD(Receive Data): 接收端引脚,用于接收端接收数据。
GND:共用地
uart需要用指定的一种数据格式进行传输,数据格式如下:
一般uart数据都包括:起始位,数据位,奇偶校验位,停止位。如图所示
起始位: 从高到低,一个逻辑0,表示数据传输的起始;
数据位:实际要传输的数据,可以是5,6,7,8个逻辑1或者0构成一个字符,发送和接收端必须保证相同的数据位数设置,确保数据的正确一致性;
校验位:可以是奇校验也可以是偶校验,或者无校验。奇校验:传输的数据中(不包含校验位)有奇数个逻辑“1”,那么校验位为0,反之为1。偶校验:传输的数据中(不包含校验位)有偶数个逻辑“1”,那么校验位为0,反之为1。
停止位:字符数据结束标志,可以是1位,1.5位,2位的高电平,适用于停止位的位数越多,不同时钟同步的容忍程度就越大,数据传输率越低。
空闲位:处于逻辑“1”状态,表示没有数据传输。
UART通过设置波特率来控制数据传输的速率。波特率表示每秒传输的位数。
发送和接收端必须使用相同的波特率设置。
假如有一个起始位,一个停止位,数据位8位,没有奇偶校验位,传输一个字节的数据,实际传输10bit,那么计算方式如下:
USART(Universal Synchronous /Asynchronous Receiver / Transmitter,异步同步通信接口)是一种通信协议和硬件接口,用于在计算机系统和外部设备之间进行串行数据传输。它可以在全双工或半双工模式下工作,并支持同步或异步通信。
USART通过发送和接收数据位来实现同步或异步串行数据传输。它提供了更高的灵活性与数据传输速率。
USART主要有三根数据线:
与uart类似,但USART是以同步模式工作的,数据的传输是通过外部时钟进行同步的。发送端与接收端共享系统的CLK。同步通信允许更高的数据传输速率和更精确的数据同步。
异步模式跟uart一样。
与uart一致
同步通信支持:USART支持同步通信,而UART仅支持异步通信。
时钟需求:USART需要一个时钟信号(CLK)来同步数据传输,而UART不需要外部时钟信号。UART的数据传输完全依赖于波特率的设定,而USART通过时钟信号来确保数据传输的同步。
数据传输速率:由于USART支持同步通信,因此在相同的波特率下,USART能够实现更高的数据传输速率。相比之下,UART的数据传输速率受限于异步通信的性质,通常较低。
硬件复杂性:USART相对于UART具有更复杂的硬件实现。由于支持同步通信和更高的数据传输速率,USART需要更多的硬件资源来实现时钟信号的生成和同步处理。UART的硬件实现相对简单,适用于一些低复杂性和低速率的应用。
引用:https://blog.csdn.net/CSDN_PBB/article/details/131102031
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。