什么是UART?
通用异步接收器/发射器(UART)是一种串行通信方法,允许两个不同的设备组件在没有时钟的情况下彼此交谈。
UART主要用于物联网安全。还称为通用同步/异步接收器/发射器(USART),其根据要求同步和异步地发送数据。
UART如何工作?
将数据传输数据的UART将从网络总线接收数据。数据总线被其他计算机使用,例如CPU,存储器或微控制器以将数据发送到UART。数据通过数据总线以并行方式传递到UART发送器。
UART从网络总线传输并行数据后,通过插入一个开始位、一个奇偶位和一个停止位来生成数据包。首先,Tx引脚逐位串行输出数据包。接收UART在它的Rx引脚读取数据包一点一点。
然后接收UART将数据转换回并行形式,从而消除了起始位,奇偶校验位和停止位。接收UART最终将数据包并行于数据总线的接收端:
为什么要使用UART?
如上所述,UART是一种用于许多嵌入式设备和物联网设备的异步串行通信协议。异步的意思是,不像同步协议(例如SPI),没有时钟来同步发生交互的两个设备。
数据将在UART的情况下传输,而无需额外的外部时钟行(CLK)。这也是为什么在通过串行的设备之间异步地在设备之间传输数据时,可以采取许多其他预防措施来减少数据包丢失。
UART数据包:
一个UART数据包由几个组件组成。
开始:起始位象征着下一个UART数据。通常这是一个小脉冲(0),您可以在逻辑分析仪中看到
信息:要以8位文件的形式发送的实际消息。例如,如果我必须传输值A(用十六进制表示为0x41),那么它将以文本形式传输为0,1,0,0,0和1
校验位:奇偶校验位通过计算文本中的高值或低值的数量来测试错误和数据损坏,这意味着基于它是奇数奇偶校验甚至奇偶校验,数据是不正确的。
停止位:表示消息传输的最后一个比特现在已经完成。通常,这是通过一个高脉冲(1)来实现的,但也可以通过多个高脉冲来实现,这取决于系统制造商使用的配置。
UART端口类型:
UART端口可以基于硬件或软件。给你一个例子,Atmel AT89S52和Atmega328.微控制器只有一个串行硬件端口。
另一方面,像LPC1768和ATMEGA2560这样的微控制器有几个UART硬件端口,它们都可以用来进行基于UART的研究和使用。
如果需要通过UART连接到具有有限UART引脚硬件集合的系统,则需要基于软件的UART。这也使用户能够灵活地使用GPIO引脚作为UART,如果需要,并在稍后及时使用它以获得另一个目的。
UART的优点:
- 没有时钟信号
- 有一个奇偶校验位,用于纠正错误
- 只要两侧都针对它进行了优化,可以修改数据包结构。
- 只使用两根线。
UART的缺点:
- 数据帧大小限制为不超过9位
- 不支持多个主系统或从系统
- 每个UART的波特率必须在10%以内。