串行通信 UART

数据通信方式

分为并行通信和串行通信。并行通信:利用多条数据线将各位同时发送,特点是传输块,适于短距离通信;串行通信:利用一条线路将数据一位一位的顺序发送,特点是线路简单成本低,适于远距离通信。

串行通信数据传送方式

串行通信分为同步和异步两种。
进行异步通信的单片机的时钟相互独立,其频率可以不同,在通信时不需要有同步时钟信号。由于异步通信时逐帧进行传输,各位之间的时间间隔必须相同,所以保证两片单片机有相同的传输波特率。当传输波特率误差超过5%,就不能正常通信。帧与帧之间的时间间隔是任意的,间隙为高电平。由于异步通信每传送一帧有固定格式,双方按照约定格式来发送和接收,硬件结构比同步通信简单,还能利用校验位检测错误。单片机中广泛采用异步通信方式。
同步通信要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此外传输数据的位之间的间距均为“位间隔”的整数倍,同时发送的字符间不留间隙,即保持位同步也保持字符同步。


串行通信的传输方向

  1. 单双工:数据始终是A发送到B;
  2. 半双工:既能从A发送到B,也能从B发送到A,但任何时候不能在两个方向同时传送,即每次只能一个设备发送,另一个设备接收;
  3. 全双工:允许通信双方同时进行发送和接收。

串行通信的传输速率

是指数据传送的速度,用b/s或bps(比特/秒)表示,简称比特率。在二进制下,比特率与波特率数值相等,因而在单片机的通信中常称为波特率。

数据通信协议

通信双方约定的一些规则。

异步通信数据格式:空闲位、起始位、奇偶校验位、停止位。

异步串行通信协议

1位起始位--8位数据位--1位校验位-1位停止位

  1. 起始位:先发一个逻辑“0”信号,表示传输的开始
  2. 数据位:紧接着起始位,从低位开始传动,发送速率靠时钟确定
  3. 停止位:数据位加上这一为使得“1”的位数为偶数(偶校验)或奇数(奇校验),以此来校验数据的正确性
  4. 停止位:一个字符数据的结束标
  5. 空闲位:处于逻辑“1”状态,表示当前线路没有数据传输。

RS-232

RS-232接线方式有全串口接线、3线接线(RXD、TXD、GND)
RS-232能够可靠进行数据传输的最大距离为15米,传输速度一般可达到115200bps甚至更高,标准接口能够提供的传输速度主要有以下波特率:1200、2400、4800、9600 、19200 、38400 、57600 、115200 。

UART原理

通用异步收发器简称UART,用来传输串行数据。
  1. 发送时:CPU将并行数据写入UART,UART按照一定的格式在一根线上串行发送数据;
  2. 接收时:UART检测另一根线上的信号,收集串行数据放在缓冲区中,CPU即可读取UART获取这些数据。

发送数据前UART之间要约定好波特率、数据传输格式。UART使用标准的TTL/CMOS逻辑电平来表示数据,为了增强数据的抗干扰能力,提高数据传输距离,通常将TTL/CMOS转换成RS-232逻辑电平。

数据传输流程

  1. 平时数据处于“空闲”状态(1状态);
  2. 当要发送数据时,UART改变TXD数据线的状态(变为0状态)并维持1位时间(开始位),接收方检测到开始位后,一位一位检测数据线的状态得到传输的数据;
  3. UART一帧中可以有5、 6 、7 或者8位数据,发送方按位改变数据线的状态将数据发送出去,首先发送最低位;
  4. 如果用校验位,UART在发送完数据位后,还要发送1位校验位再发送停止位,数据线恢复到“空闲”状态(1状态)。

UART驱动程序设计

串口初始化   数据发送功能    数据接收功能

初始化

  • 1、设置UART通道管脚
  • 2、设置波特率
  • 3、设置数据传输格式
  • 4、选择通道工作模式

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WHMTBYY

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

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

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

打赏作者

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

抵扣说明:

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

余额充值