您是否曾使用过UART这个术语,只是由另一位工程师纠正它不是UART而是USART?在某些情况下,这些术语的可互换性可能是适当的,但在许多情况下它是错误的。让我们来看看USART和UART是什么,并讨论主要区别。
大多数嵌入式工程师都熟悉UART:通用异步接收器/发送器。它是一个微控制器外设,可将输入和输出的数据字节转换为串行位流。起始位启动串行位流,停止位(或两个)完成数据字。 UART还可以选择向流添加奇偶校验位,以帮助检测传输期间是否发生位错误。图1显示了工程师期望通过UART传输的数据的标准示例。
图1 - UART串行数据
USART - 通用同步/异步接收器/发送器 - 是一种微控制器外设,可将输入和输出的数据字节转换为串行比特流。嗯。 USART的定义与UART的定义相同,但术语中添加了“同步”。当然还有一些更有意义的差异?否则,USART就会被称为UART。
嗯,有差异 - 重要的。 USART和UART之间的第一个区别是可以为串行数据提供时钟的方式。 UART在内部向微控制器生成其数据时钟,并通过使用起始位转换将该时钟与数据流同步。没有与数据相关的输入时钟信号,因此为了正确接收数据流,接收器需要提前知道波特率应该是什么。
另一方面,USART可以设置为以同步模式运行。在此模式下,发送外设将生成一个时钟,接收外设可以从数据流中恢复,而无需提前知道波特率。或者,链路将使用完全独立的线路来承载时钟信号。使用外部时钟可使USART的数据速率远高于标准UART的数据速率,最高可达4 Mbps。
USART和UART之间的第二个主要区别是外设可以支持的协议数量。 UART很简单,只提供其基本格式的一些选项,例如停止位数和偶数或奇数奇偶校验。 USART更复杂,可以以与许多不同标准协议相对应的形式生成数据,例如IrDA,LIN,智能卡,RS-485接口的驱动程序启用和Modbus等。 USART也具有与UART相同的异步功能,也就是说,USART可以生成与图1所示相同类型的串行数据。
USART和UART外设具有明显不同的功能,可以使用在不同的情况下,开发人员可以在标准微控制器上找到两个外围设备。例如,采用针对低功耗设计的微控制器,例如STM32系列。 STM32器件具有片上USART和UART外设。 USART意味着在“高”能耗期间进行所有“繁重的”串行通信。但是,当微控制器处于睡眠状态且处于低功耗模式时,UART外设可以处理低速通信,同时降低能耗。
USART和UART是否相同?从技术上讲,答案是否定的。 USART通常具有更多功能,标准UART和生成时钟数据的能力允许USART以远低于UART功能的波特率运行。 USART确实包含了UART的功能,并且在许多应用中,尽管具有USART的强大功能,开发人员将它们用作简单的UART,忽略或避免这些强大外设的同步时钟生成功能。难怪有这么多人使用这些术语,就像它们是同义词一样。
全部0条评论
快来发表一下你的评论吧 !