串口详解(一)

什么是串口?

UART: Universal Asynchronous Receiver Transmitter 通用异步收发器
USART: Universal Synchronous Asynchronous Receiver Transmitter 通用同步异步收发器

什么是同步异步?

通信双方有没有共同的时钟线作为同步时钟使用。
有 --> 同步通信

时钟线作为通信时的同步信号
1)在时钟信号为低跳变的时候,改变通信信号
2)在时钟信号为高跳变的时候,采样通信信号
由于时钟信号,是周期性变化的电平信号
在地跳变后面总会跟着一个高跳变–>实现

无 --> 异步通信

串口通信的特点

串口:是单片机中最常见,最简单的穿行数据传输协议 串口只需要两根数据线,就可以实现全双工通信。

什么是全双工通信?(重点记住,很容易忘掉)

全双工通信:两个设备的接收端和发送端是相互独立的,互不干扰的

接收数据不会干扰到发送数据
两个设备可以同时收/发

半双工通信:接收和发送共用“端口”,因此接收的时候就不能发送

串口的两根数据线

两根数据线:
Tx:发送数据端,用于向接收端口发送数据
Rx:接收端口,用于接收发送端口发送的数据

设备A——————————设备B
Tx————————————Rx
Rx————————————Tx

什么是串行?

串行:数据的传输只有一根“电线”,每次就只能传输1bit数据

当多个数据发送时,也只能1bit 1bit的发送

发送数据的过程?

首先引入一个问题:

比如:

发送0x5C
0101 1100

在发送数据的时候,一个电平周期是多久呢?
即便不发送数据,数据线上也会有一个电平状态,接收端如何知道发送端有没有发送数据?
这时就需要引入一个协议
协议:双方约定好的传输方式

UART协议(UART Protocol)

作用:规定了串口发送和接收数据的方式,必须以帧(frame)为单位

串口的1帧数据包括以下部分:

1个起始位:

一个周期低电平信号
串口的数据线Tx在空闲的时候永远保持高电平

5~9个数据位

通信的正文
具体多少bit,需要双方协商
并且是先传送最低位(LSB),最后传送最高位(MSB)

1个校验位

表示是否需要校验

0——不需要校验
1——有一个校验位——“赖子”
奇校验:用数据位的最后1个bit来确保发送数据中1的个数
偶校验:用数据位的最后1个bit来确保发送的数据中1的个数是偶数个
比如: 9bits发送0x5C(0101 1100)
奇校验——00110101 x=1
偶校验——00110101 x=0

0.5~2个停止位

高电平 具体持续多久高电平,由双方约定
0.5个周期
1个周期
1.5个周期
2个周期

那么一个周期为多长呢?

UART异步串口,没有时钟进行同步,因此光靠帧格式传输数据还是不能准确收发,这里我们需要引入波特率

Baudrate波特率

Baudrate波特率:UART的传输速率
决定1帧的传输周期
115200
9600
57600
bps:bit per second
UART协议:帧格式 + 波特率

物理层标准

串口有不同的分类
根据串口电气协议:

TTL level usart:TTL电平协议
Tx:——数据发送端口
Rx:——数据接收端口
VCC:——电源端口(+)
GND:——接地端口(-),通信双方的GND必须相同,即必须连接在一起(共地)

串口类型信号电平1电平0传输距离
TTL单端信号3.3 / 5 V0 V< 2m
RS232单端信号-5 ~ -15 V5V ~ 15 V< 15m
RS422差分信号+ / -2V<1200m
RS485差分信号+ /- 1.5 V<1200m
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值