上海市网站建设_网站建设公司_支付系统_seo优化
2026/1/15 5:30:11 网站建设 项目流程

一、UART核心概念:什么是通用异步收发器?

UART,全称Universal Asynchronous Receiver Transmitter,即通用异步收发器。它是一种硬件接口,同时也是一套独立的异步通信协议,核心特点是异步、全双工、串行——这三个关键词是理解UART的基础,后续会逐一拆解。简单来说,UART就像单片机的“通信信使”,负责将单片机内部的并行数据转换成串行数据发送出去,同时将接收的串行数据转换成并行数据供单片机处理,实现与外界设备的双向数据交互。

二、UART接线方式:记住“交叉连接”核心原则

UART通信的硬件接线相对简单,核心是4根线(部分简化场景可省略VCC),关键要注意“TXD与RXD交叉连接”,具体接线定义如下:

  • VCC:电源正极,为UART模块供电(若外部设备与单片机共电源,可省略);

  • GND:接地,确保通信双方的电平参考一致,是稳定通信的前提;

  • RXD:数据接收线,负责接收外部设备发送的串行数据;

  • TXD:数据发送线,负责向外部设备发送串行数据。

重要注意事项:当两个设备通过UART通信时,必须遵循“交叉连接”规则——设备A的TXD接设备B的RXD,设备A的RXD接设备B的TXD。若直接将TXD接TXD、RXD接RXD,将无法正常传输数据。

三、三种通信方式对比:单工、半双工、全双工

UART属于全双工通信,为了更好地理解这个概念,我们先对比另外两种常见的通信方式,清晰区分它们的核心差异:

1. 单工通信

通信双方的角色固定:一方只能作为发送方,另一方只能作为接收方。数据通过一根数据线传输,传输方向是单一的,无法反向传输。比如收音机——电台只能发送信号,收音机只能接收信号,无法向电台反馈数据。

2. 半双工通信

通信双方可切换角色,既能发送数据也能接收数据,但同一时刻只能单向传输:当A向B发送数据时,B无法同时向A发送;反之亦然。数据同样通过一根数据线传输,比如对讲机——说话时无法听,听时无法说,需要切换“收发”状态。

3. 全双工通信

这是UART的核心通信方式:通信双方可同时作为发送方和接收方,数据通过两根独立的数据线(TXD和RXD)传输,任意时刻都能双向传输数据。比如我们日常打电话——你说话的同时,也能听到对方说话,收发数据互不干扰。

四、数据传输形式:串行vs并行

数据传输主要分为“串行”和“并行”两种形式,UART采用串行传输,两者的差异直接决定了通信的速率、成本和传输距离:

1. 串行传输(UART采用)

通过一根数据线,将多个bit(二进制位)按照先后次序逐个发送。

  • 优点:硬件成本低(只需一根数据线)、传输距离远、抗干扰性好(少根线减少了信号干扰和偏移);

  • 缺点:传输速率慢(bit逐个传输,耗时较长)。

2. 并行传输

通过多根数据线,将多个bit同时发送(比如8根线同时传输8位数据)。

  • 优点:传输速率快(多个bit同步传输);

  • 缺点:硬件成本高(需要多根数据线)、传输距离近(距离增加后,多根线的信号会出现偏移,易受电磁波干扰,导致数据错误)。

五、UART数据发送顺序:LSB优先原则

UART发送数据时,遵循“低位先行(LSB优先)”的规则,而非我们习惯的“高位先行”。举个例子:

若要发送的数据是 10100110(十六进制A6,bit7为最高位MSB,bit0为最低位LSB),其位序号为bit7~bit0,对应的发送顺序是从bit0(最低位)开始,依次发送bit1、bit2……最后发送bit7(最高位),即发送顺序为“bit0→bit1→bit2→bit3→bit4→bit5→bit6→bit7”。

六、奇偶校验:数据传输的“纠错小助手”

在数据传输过程中,可能因干扰导致bit位出错(比如1变成0,0变成1)。奇偶校验是一种简单的差错检测机制,通过添加“校验位”来判断数据是否传输错误,但要注意:它无法判断偶数个bit出错的情况。常见的奇偶校验分为3种:

1. 奇校验

校验位设为1,要求“数据位中1的个数 + 校验位的1”的总个数为奇数。若接收方检测到总个数为奇数,则代表校验通过(数据大概率正确);若为偶数,则说明数据传输出错。

2. 偶校验

校验位设为0,要求“数据位中1的个数 + 校验位的0”的总个数为偶数。接收方检测到总个数为偶数时,校验通过;否则出错。

3. 无校验

不添加校验位,直接传输数据。这种方式节省传输时间,但无法检测数据错误,适合干扰小、对数据准确性要求不高的场景。

七、串口通信核心参数:波特率、数据位、校验位、停止位

两个设备通过UART通信时,必须保证双方的“通信参数”完全一致,否则会出现数据乱码。这些参数通常用“波特率 数据位 校验位 停止位”的格式表示(如9600 8 N 1),具体含义如下:

1. 波特率

指串口每秒传输的bit数(包括数据位、校验位、停止位等所有bit),是衡量传输速率的核心指标。常见的波特率有2400、4800、9600、115200等,其中9600是最常用的默认值。比如波特率9600,表示每秒可传输9600个bit。

2. 数据位

指每次传输的“有效数据”的bit数,常用的是8位(即一个字节),也有7位、9位等情况。

3. 校验位

对应之前的奇偶校验方式:N(None)表示无校验,E(Even)表示偶校验,O(Odd)表示奇校验。

4. 停止位

数据传输结束后,添加的“结束标志位”,常用的是1位停止位,也有1.5位、2位的情况。

示例解析:“9600 8 N 1”表示——波特率9600、8位数据位、无校验、1位停止位,这是单片机UART通信中最常用的配置组合。

八、同步vs异步:UART的“异步”核心

通信的“同步”与“异步”,核心区别在于是否需要时钟线进行频率同步:

  • 同步通信:通信双方通过一根独立的时钟线(CLK)同步频率,发送方通过时钟线告知接收方“何时采样数据”,数据传输准确性高,但增加了硬件成本(多一根时钟线);

  • 异步通信(UART采用):没有时钟线,双方通过“约定相同的波特率”来同步频率——发送方按照波特率的节奏发送数据,接收方按照相同的波特率采样数据。这种方式省去了时钟线,硬件更简单,但对波特率的一致性要求高(波特率偏差过大会导致数据错误)。

九、主机与从机:通信的“控制权”划分

在多设备UART通信中,通常会划分主机和从机,明确通信的发起权:

  • 主机:拥有通信的绝对控制权,所有通信都由主机发起(比如向从机发送指令);

  • 从机:无法主动发起通信,只能等待主机下发指令,然后根据指令完成对应的操作,并向主机回复应答信息。

比如:单片机与电脑通信时,电脑通常作为主机,单片机作为从机;多个单片机通信时,可指定其中一个作为主机,其他作为从机。

十、51单片机UART核心寄存器配置

要让51单片机的UART正常工作,需要配置两个关键寄存器:SCON(串口控制寄存器)和PCON(电源控制寄存器,主要影响波特率),同时还要计算定时器初值(UART的波特率通常由定时器1产生)。

1. SCON寄存器(串口控制寄存器)

SCON用于配置串口工作模式、允许接收、标记收发状态,核心配置步骤如下:

  • 将bit6(SM1)和bit7(SM0)清0后,再将bit6(SM1)置1:配置串口为“8位UART模式,波特率可变”(最常用的工作模式);

  • 将bit4(REN)置1:允许串口接收数据(若只需发送数据,可置0);

  • bit1(TI):发送中断标志位——8位数据发送完毕后,硬件自动置1,需用软件手动清0(否则无法继续发送下一组数据);

  • bit0(RI):接收中断标志位——8位数据接收完毕后,硬件自动置1,需用软件手动清0(否则无法继续接收下一组数据)。

2. PCON寄存器(电源控制寄存器)

PCON中与UART相关的主要是两个位,用于调整波特率:

  • bit7(SMOD):波特率倍增位——置1时,波特率翻倍;置0时,波特率为默认值;

  • bit6(SMOD0):模式选择辅助位——清0时,串口工作模式由SCON的SM0和SM1共同决定(默认配置)。

3. 波特率与定时器初值计算

51单片机的UART波特率(可变模式下)通常由定时器1(工作在8位自动重装模式)产生,核心公式为:

波特率 = (2^SMOD / 32) * (晶振频率 / (12 * (256 - 初值)))

其中:

  • SMOD为PCON寄存器的bit7,0或1;

  • 晶振频率:51单片机常用11.0592MHz(该频率能让波特率更精准,减少误差);

  • 12:51单片机的机器周期是12个时钟周期;

  • 256:定时器1工作在8位模式下的最大值,初值为定时器的初始计数 value。

示例:若晶振频率11.0592MHz,SMOD=1(波特率翻倍),要得到9600的波特率,代入公式可计算出定时器1的初值为0xFD(具体计算过程可借助在线波特率计算器简化)。

总结

UART作为51单片机最核心的通信接口,核心在于“异步、全双工、串行”的通信特性,而掌握“交叉接线”“一致的通信参数”“正确的寄存器配置”是实现稳定通信的关键。从概念到实操,重点要理清:通信方式、数据传输规则、校验机制、核心参数,再通过配置SCON和PCON寄存器、计算定时器初值,就能让UART正常工作。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询