UART简介
通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。
UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议中信号线上的状态为高电平时代表‘1’,信号线上的状态为低电平时代表‘0’。比如使用UART通信协议进行一个字节数据的传输时就是在信号线上产生八个高低电平的组合。
- 串行通信是指利用一条传输线将数据一位位地顺序传送,也可以用两个信号线组成全双工通信。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
-
- 异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。通俗说是两个uart设备之间通信的时候不需要时钟线,这时候就需要在两个uart设备上指定相同的传输速率,以及空闲位、起始位、校验位、结束位,也就是遵循相同的协议。
-
- 数据传送速率用波特率来表示,即每秒钟传送的二进制位数。
-
数据通信格式
![image.png image.png](data/attachment/forum/202401/11/075503c4ngg99ij4vpifj0.png)
空闲位:
UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平,表示当前线路上没有数据传输。
起始位:
每开始一次通信时发送方先发出一个逻辑”0”的信号(低电平),表示传输字符的开始。因为总线空闲时为高电平所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平。
数据位:
起始位之后就是我们所要传输的数据,数据位可以是5、6、7、8等,构成一个字符(一般都是8位)。如ASCII码(7位),扩展BCD码(8位)。先发送最低位,最后发送最高位,使用低电平表示‘0’高电平表示‘1’完成数据位的传输。
奇偶校验位:
数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
- 1、无校验(no parity)。
- 2、奇校验(odd parity):如果数据位中“1”的数目是偶数,则校验位为“1”,如果“1”的数目是奇数,校验位为“0”。
- 3、偶校验(even parity):如果数据为中“1”的数目是偶数,则校验位为“0”,如果为奇数,校验位为“1”。
- 4、mark parity:校验位始终为1(不常用)。
- 5、parity:校验位始终为0(不常用)。
停止位:
它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备之间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟的机会。停止位个数越多,数据传输越稳定,但是数据传输速度也越慢。
波特率
串口波特率,就是在串口通信中每秒传输的二进制位数。它是串口通信的一个重要参数,决定了串口通信的速度和稳定性。一般而言,波特率越高,数据传输速度就越快。波特率是由发送方和接收方共同决定的。在串口通信中,发送方和接收方需要通过某种方式(如协议)约定一个共同的波特率,然后按照这个波特率进行数据的发送和接收。
根据不同的应用需求,串口波特率主要可分为以下几种:
①标准波特率:包括2400、4800、9600、19200、38400、57600、115200等标准波特率。其中9600波特率是最常用的,可满足大多数的通信需求。
②高波特率:230400、460800、921600等高波特率,适用于对数据传输速度要求较高的应用。
③自适应波特率:根据通信双方的通信协议和传输介质自动选择合适的波特率。
④可编程波特率:可以根据需要自行设置波特率,适用于一些特殊应用场景。
较高的波特率可以提高通信的稳定性和抗干扰能力,但同时也会增加硬件的复杂性和成本。
小安派串口通信的波特率是20000
硬件连接
![image(1).png image1.png](data/attachment/forum/202401/11/080917opm12p2n1t1c10rc.png)
|