Uart协议介绍

前言

通用的硬件接口协议很多,我们通过几篇博文来一一介绍,今天要来了解的是Uart协议,即我们通常所说的串口通信。

一、Uart协议(即串口)的基本概念

UART全称为Universal Asynchronous Receiver/Transmitter,即通用异步收发器,是串行通信一种通信技术,常用于单片机和电脑之间以及单片机和单片机之间的板级通信。

串口有三根线,分别如下:

(1)TXD:发送;

(2)RXD:接收;

(3)GND:接地

在连接时,需要进行反接,如果是两个单片机相互用串口进行通讯,那么单片机1的TXD接单片机2的RXD,单片机1的RXD接单片机2的TXD,因为串口通信是全双工的,这样接,才能使得双方都能互相发送和接收信息。

二、Uart配置基本属性

1.波特率

波特率是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如9600波特表示每秒钟发送9600个bit。在时钟周期中,若波特率为4800,则表示时钟是4800Hz,同时表示串口通信在数据线上的采样率为4800Hz。串口通常用的波特率为1200、2400、4800、9600、14400、19200、28800、38400、57600、115200、128000、256000。其中如果串口速率越高,其传输的距离和稳定性就有所下降。一般常用为9600和115200,波特率要设置成相对应的,就像两个人说话一样,波特率其实就是说话的语速,只要对话双方的语速一致,谈话才能成功,串口通讯也是如此,通信双方约定好相同的波特率,通信才能成功。

2.起始位

先发出一个逻辑”0”的信号,表示传输数据的开始,如果没有起始位的话,通信就会乱,因为如果发送00000000这种二进制数的话,那么就会分辨不清楚,所以必须规定一个起始位。

3.数据位

数据位表征通信中实际数据位的参数。当计算机发送一个信息包,其中需指定有效数据位,一般有5、7和8位。常规使用一般定义为8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。而串口通信基本上使用的是八位,在使用串口传递数据时,是一位一位进行发送的,同理,在接收时,也是一位一位接受的。

4.奇偶校验位

在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位,保证逻辑高为奇数个。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰,通信的传输和接收数据是否不同步。

校验位的存在,能提高串口传递数据的准确性,但同时也会降低串口通信的速度,我们可以根据实际情况来确定是否需要校验位。

5.停止位

停止位表征单包数据的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,在传输中可能存在不同步的情况,因此停止位不仅仅是表示传输的结束,同时也是校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

6.空闲位

没有数据传输时线路上的电平状态。为逻辑1。空闲位的存在也是为了传输数据的准确性,防止产生乱码。

7.传输方向

串口通信默认是先发送二进制低位的数,即从低到高发送。

总结

串口的通信介绍就到这里了,对于其具体的使用,不同的单片机有着不一样的使用方法,有的单片机需要配置寄存器,有的则不需要,可以根据自己的实际情况来进行应用。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值