总线协议之 -- UART

总线协议之 – UART

UART简介

UART: Universal Asynchronous Receiver Transmitter(通用异步收发器),

通用的串行、异步通信总线,它有两条数据线,实现全双工发送和接收。

通信基础

串行、并行:

  • 并行通信:总线在传递数据的时候,可以一次性收发多个位的数据。并行虽然快,但是要考虑多个线的资源占用,以及多条线互相干扰的问题;
  • 串行通信:每一位数据逐次传递;(IIC\SPI都是串行通信

单工、双工:

  • 单工通信:只能是单向的,发送器给接收器发送数据,而不能反过来;
  • 双工通信:可以是A到B,也可以是B到A;
    • 半双工:不能同时发生;只有一根线,发送时就不能接收;
    • 全双工:可以同时发送和接收,有两根线;

波特率:

  • 波特率:描述UART通信速度,单位bps,(bit per second),每秒传送的bit的数量;

    • 每秒的波特数,波特等于单个信号包含的码元数量
  • 比特率:是指每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,每秒传送数据就越多。

  • 波特率:表示每秒钟传送码元符号的个数,是衡量数据传送速率的指标。

    • 在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。
    • 比特率=波特率x单个调制状态对应的二进制位数
    • 两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推。

UART帧格式

  • 起始位:1bit的0,标志发送开始;因为空闲时为1,所以开始为0;
  • 数据位: 5-8bit,先发低位,后发高位
  • 校验位:可有可无;奇偶校验,是校验奇数还是偶数个1;
  • 停止位:高电平1;
  • 空闲位:

注意: UART空闲的时候,用高电平表示;

串口协议从低位先发,最后发高位;

串口每次都只发一个byte,下一个byte又重新开始起始位,是因为它是异步的,发送方和接收方的时钟不是同一个,防止由于时钟不同步导致误差累积;

IIC和SPI都是同步通信,可以发多个字节;

Exynos4412下的UART控制器

串口的信号一般较弱,通信距离短,容易被干扰,所以增加了一块专有芯片用来增加抗干扰能力,使发送距离更远;(TTL信号转为232信号)

STEPs:

  1. 待发送数据放入FIFO
  2. 增加了UART协议的各种头,比如起始和校验,然后拷贝放入shifter;
  3. shifter每个bit依次移位到引脚来发送,先发低位,后发高位

接收时顺序相反,RxD –> shifter –> FIFO;

UART控制器的总体框图

CPU会通过总线,和接收和发送的BUFFer相连,用来读写数据,另外,也和控制单元相连,对控制单元的设置进行修改;

UART寄存器详解

补充一个细节,回环模式look-back是在内部将Tx和Rx短接,一般用于测试;

三种工作模式:

  1. polling 轮询
    • CPU不断地对FIFO进行访问,查询需要的数据有没有发过来;
    • CPU的状态: 工作 –> 轮询 –> 工作 –> 轮询 …
    • 直到查找到需要的数据;
    • 费时费力,消耗资源
  2. interrupt 中断
    • CPU和FIFO约定,CPU不主动去查询,当FIFO收到数据要发送过来的时候,给CPU发送中断信号,CPU中断当前工作,接收FIFO的数据;
    • 比polling模式省资源
  3. DMA 直接存储器访问
    • CPU收到FIFO的数据,最终也是要放入某一块内存中去使用的;
    • DMA模式跳过CPU,当FIFO数据过来时,直接放入需要的内存中;

UART编程之前,设置需要的寄存器,以及顺序:

UART编程

STEP 1: 串口初始化

STEP 2: main函数

STEP 3: 收发函数封装

  • 发送数据:
  • 接收数据:

STEP 4: 优化

电脑 – > 开发板, 然后开发板收到数据+1,再返回给电脑;

输入输出重定向

这种通过判断发送寄存器是不是空,来把数据放入UART的寄存器中,就是相当于printf重定向到UART串口,而其他操作系统中,是重定向到显卡或者磁盘;

尝试写一个发送字符串的函数:

作者

Gavin

发布于

2022-09-21

更新于

2022-09-21

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×