跳转到主要内容

UART

收藏!了解UART总线工作原理看这一篇就够了!

demi /

还记得当年的打印机,鼠标和调制解调器吗?他们都有巨大笨重的连接器和粗电缆,并且必须拧到你的电脑上。这些设备正是使用UART协议与计算机进行通信。虽然USB几乎完全取代了旧的电缆和连接器,但UART绝对没有过时。您会发现目前许多项目中使用UART的GPS模块、蓝牙模块和RFID读卡器模块等连接到Raspberry Pi,Arduino或其他微控制器上。

MSP430FR2311 中UART模块寄存器配置的分析和计算

demi /

作者: TI 工程师 Max Han

简介

MSP430FR2311是一款FRAM数字控制器,可以实现超低功耗,并且集成了丰富的外设模块,可以满足工业和消费等多种应用。MSP430FR2311中的eUSCI_A0支持UART通讯,本文对此UART模块的寄存器配置进行了详细的分析和计算,以帮助工程师对此UART模块进行深入理解和灵活配置。

UART通讯模块介绍

图1是MSP430FR2311的系统架构图,eUSCI_A0模块如红框所示,它支持UART通讯。

【下载】多协议通用异步收发器(UART)模块

judy /

通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)是一种灵活的串行通信外设,用于将PIC<sup>®</sup>单片机与其他设备(包括计算机和外设)相连接。UART是一个全双工异步通信通道,可用于实现RS-232和RS-485等协议。

UART还支持以下硬件扩展:
• &nbsp; LIN/J2602
• &nbsp; IrDA<sup>®</sup>
• &nbsp; 直接矩阵架构(Direct Matrix Architecture,DMX)
• &nbsp; 智能卡

UART, SPI, IIC对比和总结

judy /

UART、SPI、IIC是经常用到的几个数据传输标准,下面就分别总结一下:

<strong>UART(Universal Asynchronous Receive Transmitter):</strong>也就是我们经常所说的串口,基本都用于调试。

主机和从机至少要接三根线,RX、TX和GND。TX用于发送数据,RX用于接受数据(收发不是一根线,所以是全双工方式)。注意A和B通信A.TX要接B.RX,A.RX要接B.TX(A用TX发B当然要用RX来收了!)

如果A是PC机,B是单片机,A和B之间还要接一块电平转换芯片,用于将TTL/CMOS(单片机电平)转换为RS232(PC机电平)。因为TTL/CMOS电平范围是0~1.8/2.5/3.3/5V(不同单片机范围不同),高电压表示1,低电压表示0。而RS232逻辑电平范围-12V~12V,-5~-12表示高电平,+5~+12V表示低电平(对!你没有听错)。为什么这么设置?这就要追溯到调制解调器出生时代了,有兴趣自己去查资料!

单片机设计:关于软件UART的设计思想

judy /

目前扩展串口的方法主要有以下方法,

①、采用串口扩展芯片实现,如ST16C550、ST16C554、SP2538、MAX3110等,虽然成本较高, 但系统的可靠性得到了保证,适用于数据量较大、串口需求较多的系统;

②、采用分时切换的方法将一个串口扩展与多个串口设备通信,分时复用的方法成本低, 但只适用于数据量不大的场合, 并且只能由这个单片机主动和多个设备通信,实时性差;

③、用软件模拟的方法扩展串口,其优势也是成本低、实时性好, 但要占用一些CPU时间。

一般的软件模拟扩展串口方法,使用1个I/O端口、1个INT外部中断和定时器,该方法扩展的串口有2个缺点,
①、由于使用了INT外部中断,故只能使用2个INT外部中断扩展2个串口。
②、文中的发送和接收数据的效率比较低,占用了CPU的大量时间,不能与其他任务同时进行,所以使用范围有限。

本文提出的模拟串口方法,仅使用2个普通I/O和1个定时器,由于不需要INT的限制,可以扩展出多个串口,且带FIFO的功能,该方法扩展模拟串口的收发数据在中断服务中完成,所以非常效率高,一般的单片机都支持定时器中断,所以所以该方法在大多数单片机上都可以应用。

【下载】8位PIC®单片机的位拆裂增强型UART

judy /

作者: Mary Tamar Tan Microchip Technology Inc

<strong>简介</strong>

大多数8位PIC®单片机具有一个或多个片上通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)。但是在没有UART硬件可用的情况下,或者需要额外的串行通信接口的情况下,位拆裂将是最佳选择。位拆裂是一种用于通过软件(而非专用硬件外设)创建串行I/O通信接口的技术。数据发送和接收几乎完全由软件控制。其中包括采样、电平检测、定时、同步、缓冲区控制、驱动程序状态切换和错误检测。

本应用笔记重点介绍8 位PIC 单片机上实现的位拆裂UART驱动程序,还讨论了计算、性能和精度因素、限制以及固件详细信息。应当注意的是,驱动程序中使用了几个硬件外设、Timer0和电平变化中断引脚,以便获得更精确的时序并缩短处理时间。本应用笔记演示了如何使用MPLAB®代码配置器(MPLAB® CodeConfigurator,MCC)配置这些外设。按照本文档中介绍的详细步骤,用户应该能够在短短几分钟内设置位拆裂UART驱动程序。

【下载】8位PIC®单片机上的通用异步收发器(UART)

judy /

UART是用于在器件之间串行传输数据的通信硬件。

8位PIC®单片机提供了三种UART模块:
• 通用同步/异 步 收 发 器(Universal SynchronousAsynchronous Receiver Transmitter,USART)

• 增强型通用同步/异步收发器(Enhanced UniversalSynchronous Asynchronous Receiver Transmitter,EUSART)

• 具 有 协 议 支 持 的 通 用 异 步 收 发 器(UniversalAsynchronous Receiver Transmitter,UART)

USART主要用于传统PIC MCU。除了硬件UART的基本功能(例如,异步发送和接收)外,USART还可在同 步 主 模 式 和 从 模 式 下 工 作。与 USART 相 比,EUSART具有“增强型”功能...

MM32 UART中断通信

judy /

UART(Universal Asynchronous Receiver and Transmitter)通用异步收发器(异步串行通信口)是MCU的一个重要的数字接口,市面上很多的传感器、通信模块等外围器件都采用了UART接口,同时工程师在软件开发调试过程中UART打印输出作为一种最直观的输出方式可以检查程序的运行情况,所以UART在MCU中的作用不言而喻。

首先普及一下并行通信、串行通信(同步通信和异步通信)两种通信方式的特点:
并行通信:并行通信是指数据的各个位同时传送,可以字或字节为单位并行进行。
-传输原理:数据各个位同时传输。
-优点:速度快,位数多
-缺点:占用引脚资源多,线路复杂,成本高

串行通信:串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度,其只需要少数几条线就可以在系统间交换信息。
-传输原理:数据按位顺序传输。
-优点:占用引脚资源少,传输线少
-缺点:速度相对较慢,耗时长

UART 应用异常案例分析

judy /

在 Cube 软件包中,为不同系列 MCU、不同外设提供了对应的例程方便开发参考。其中,针对STM324xG-EVAL 平台提供了 UART 中断发送接收的例程。开发者参考了这个例程进行 UART 功能开发,并且为了实现不间断的接收功能,在接收回调函数中,再次调用中断接收函数。在这种情况下,出现了例程执行异常。本文分析了这种情况出现原因及解决方法。

<strong>问题描述</strong>

测试验证板: STM3240G-EVAL
参考例程路径:
STM32Cube_FW_F4_V1.15.0\Projects\STM324xG_EVAL\Examples\UART\UART_Hyperterminal_IT