UART接口

本文详细介绍了通用异步接收/发送装置(UART)的概念及其在微控制器(MCU)中的应用。包括UART的基本功能、与RS232接口的区别及联系,以及在串行通信中的作用。此外,还介绍了异步串口通信的协议细节。
AI助手已提取文章相关产品:

http://bbs.elecfans.com/jishu_285811_1_1.html


Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上.一般RS232串口用得到UART.Modem也会用到UART。
  UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终
  端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信
  。作为接口的一部分,UART还提供以下功能:
  将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。


使用开发板时也一定会碰到一个概念UART接口,一般都是指串口,这是最方便最便宜的调试接口。UART接口的多少也是衡量MCU的一个指标,尤其在工控领域需要很多路串行通信的时候。经常也会听到RS232、RS485、串口、COM口等这些名词,他们可能都是指开发板的串口,只不过有些约定俗成的叫法让人迷糊。



SPI/I2C接口UART
如上图所示,左边与处理器通过SPI或I2C接口连接,当然有的芯片可能通过并行通信。右边经过UART桥接后可以连接各种串行通信如RS232、蓝牙、红外等。
而在MCU芯片中一般都集成了1路或者多路UART,在实际应用中UART接口最常用的还是与计算机的RS232标准串口连接来进行调试。
异步串口通信是属于UART(串行通信)下的一种,工作原理是将传输数据的每个字符一位接一位地传输,而RS232、RS485又是属于串口通信下的不同标准。MCU上的UART接口一般是TTL电平,而计算机的串口一般是RS232电平逻辑(逻辑“1”:-5V~-15V,逻辑“0”: 5V~ 15V),因此它们之间必须要一个电平转换模块(比如MAX232)。
异步串口通信协议的一些定义:


起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
数据位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
波特率:是数据传送速率。表示每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200位/秒=1200波特。

总之,MCU上的UART接口虽然最常用来与计算机串口连接,不过UART并不仅仅是串口,可以完成很多其他通信。


微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

您可能感兴趣的与本文相关内容

### 关于UART接口的使用说明与配置教程 #### ### UART接口简介 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种常用的串行通信协议,广泛应用于嵌入式系统中。它允许两个设备之间进行全双工数据交换,即可以同时发送和接收数据[^1]。 #### ### 硬件连接方式 在DJI PSDK开发环境中,当使用PSDK v3.3及以上版本时,推荐采用`DJI_USE_UART_AND_NETWORK_DEVICE`模式来实现硬件连接。这意味着除了传统的USB连接外,还可以利用X-Port或SkyPort扩展模块并通过UART与Network组合形式同开发板交互[^1]。 例如,在支持上下挂载多个负载的情况下: - 下方最多可接两台设备; - 上方则限于单个装置。 这种布局需要借助特定端口完成物理层面链接,并确保信号能够准确无误地传递给目标组件。 #### ### 软件配置步骤 以下是基于DJI SDK针对UART接口的基本设定过程: ```c++ // 初始化参数结构体 dji_cbs_param_t param; memset(&param, 0, sizeof(param)); // 设置为UART & Network Mode param.connection_mode = DJI_USE_UART_AND_NETWORK_DEVICE; // 配置波特率等其他必要选项... param.baud_rate = BAUD_RATE_115200; // 执行实际初始化动作 int ret = dji_cbs_init(&param); if (ret != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS){ printf("Init failed! Error Code:%d\n", ret); } ``` 上述代码片段展示了如何通过修改`connection_mode`字段指定使用UART加NETWORK方式进行通讯,同时还设置了相应的波特率为115200bps作为例子[^1]。 #### ### 数据帧格式定义 标准UART通信通常遵循如下格式: - **起始位**: 每一帧数据之前都有一个低电平表示开始。 - **数据位**: 可以为5到9比特长度,默认值往往是8bit。 - **奇偶校验位**(optional): 提供额外错误检测功能,可以选择启用与否及其类型(odd/even)。 - **停止位**: 结束标志,一般是1或者2bits电平。 这些属性都需要依据具体应用场景调整好匹配双方才能顺利开展对话交流活动。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值