第一章 UART介绍

目录

1.0 UART概念        

1.1 UART通信原理

1.1.1 接线方式

1.1.2 数据传输方式

1.1.3 数据帧格式

1.1.4 通信速率

1.2 UART通信协议

1.2.1 空闲位

1.2.2 起始位

1.2.3 数据位

1.2.4 校验位

1.2.5 停止位

 1.2.6 数据传输实例

1.3 常见串口介绍

1.4 常见串口通信方式

1.4.1单工

1.4.2 半双工

1.4.3 全双工

1.5 硬件流控


1.0 UART概念        

        UART,全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种双向、串行、异步的通信总线。典型的UART一般使用3根线,分别是发送线(TX)、接收线(RX)和地线(GND),无时钟线,故称为异步串行通信接口。通信时必须将双方的TX和RX交叉连接并且GND相连才可正常通信,如下图1所示:

图1 UART接线方式

        UART可以实现全双工通信,常用于控制系统与外设通信,包括控制器与控制器,控制器与终端设备等。UART通信线路简单,成本低,传输距离远,但传输速度慢。

1.1 UART通信原理

1.1.1 接线方式

        如上图1所示,发送端的TX线要对接接收端的RX线。

1.1.2 数据传输方式

        UART只用1根线发送或者接收数据,数据在总线上是一位一位串行地传输。

1.1.3 数据帧格式

        UART在协议层中规定了数据帧的格式容,具体包括起始位、数据位、校验位以及停止位,通讯的双方必须将数据帧的格式约定一致才能正常收发数据;并且每传输一帧数据时,总是以“起始位”开始,以“停止位”结束,一帧数据之间没有固定的时间间隔要求。

1.1.4 通信速率

        UART的通信速率使用波特率来表示,是每秒传输的数据位数,单位bps(bits per second),如常见的波特率115200,即表示1秒传输115200bit数据,由此可计算出每bit所维持时间约为1/115200s≈8.62us。UART没有时钟线,是异步串行通信接口,故通讯的双方必须设置相同的波特率才能正常收发数据。

1.2 UART通信协议

        UART作为异步串口下通信协议的一种,工作原理是将数据的字节一位接一位地传输。协议如下图:

1.2.1 空闲位

        空闲时数据线为高电平状态,代表无数据传输;

1.2.2 起始位

        UART发送端发送1位低电平并保持一定时间(一位数据的时间就是波特率的倒数),表示传输字符的开始;当UART接收端检测到高电压到低电压转换时,它开始以设定的波特率频率读取数据帧中的数据;

1.2.3 数据位

        在起始位之后,UART发送端开始发送数据,数据帧长度可以是5 位到 8 位;

1.2.4 校验位

        数据位传送完成后,要进行奇偶校验,串口校验分几种方式:

(1)无校验(no parity):不进行数据校验;

(2)奇校验(odd parity):数据位中’1’的个数加上这个校验位是奇数,称之为奇校验。所以当数据为中’1’的数目是偶数,则校验位为’1’,如果为奇数,校验位为’0’。

(3)偶校验(even parity):数据位中’1’的个数加上这个校验位是偶数,称之为偶校验。所以当数据为中’1’的数目是偶数,则校验位为’0’,如果为奇数,校验位为’1’。

(4)固定1校验:校验位始终为1;

(5)固定0校验:校验位始终为0;

1.2.5 停止位

        它是数据传输结束标志,停止位长度可选,可以是1位、1.5位、2位的高电平。

 1.2.6 数据传输实例

        设置数据位是8位,停止位是1位,如果我们传输数据0X33(00110011),因为是LSB在前,所以8位数据依次是11001100,如下图:

1.3 常见串口介绍

        UART是串口通信中的一种,常见的串口还有RS232、RS422、RS485。简单的说,这些串口就是为了适应不同的环境条件而使用了不同的电平标准。假如微处理器和板载的蓝牙模块通信时,一般就使用TTL电平引脚直接连接即可。假如微处理器在工业现场,需要连接一个几十米外的装置,则应该考虑将TTL电平转为RS232、 RS422、 RS485。对于RS232、RS422、RS485等接口,仅仅是把TTL电平转换为不同的电平值,或者转换为差分信号。

按电平分类,常见通信接口标准如下图:

1.4 常见串口通信方式

1.4.1单工

        数据传输只在一个方向上传输,只能你给我发送或者我给你发送,方向是固定的,不能实现双向通信,如:室外天线电视、调频广播等。

1.4.2 半双工

        比单工先进一点,传输方向可以切换,允许数据在两个方向上传输,但是某个时刻,只允许数据在一个方向上传输,如:对讲机,IIC, CAN,SDIO,USB。

1.4.3 全双工

        允许数据同时在两个方向传输。发送和接收完全独立,在发送的同时可以接收信号,或者在接收的同时可以发送。它要求发送和接收设备都要有独立的发送和接收能力,如:电话通信,SPI,UART等。

1.5 硬件流控

        硬件流控,顾名思义,就是通过硬件接口控制数据收发,目的是协调收发双方,使数据不会丢失。硬件流控设涉及到RTS和CTS两个口,收发双方都有各自的RTS和CTS,如通信双方A、B,那么A的RTS就与B的CTS相连,A的CTS就与B的RTS相连。

RTS (Require To Send):是一个输出信号,用于指示设备是否可以接收数据。低电平有效,RTS为低电平时,说明设备可以接收数据;高电平时则表示设备不能接收数据。

CTS (Clear To Send):为输入信号,用于判断是否可以向对方发送数据。低电平有效,CTS为低电平时,说明可以向对方发送数据;高电平时则不能向对方发送数据。

        如上图所示,设备A与设备B通信,现在A给B发送数据。当B出现某种情况(可能是接受FIFO快要满了)的时候,B的RTS拉低高;A的CTS是与B的RTS相连的,则A检测到它的CTS拉高,就知道B在告诉他暂时不要再发了。等到B可以继续接收数据的时候,B的RTS拉低,这时候A的CTS检测到低电平 ,A就可以继续发送数据了。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原海青木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值