FPGA学习笔记_UART串口协议_详解

FPGA学习笔记

UART串口协议

1. 概念
2. UART关键参数及时序图

UART串口协议详解

1. 概念

  • 概念:通用异步收发传输器:Universal Asynchronous Receiver/Transmitter, 数据发送时,将并行数据转换成串行数据,数据接收时,将串行数据转换成并行数据。
    在这里插入图片描述
  • 知识点
    1. 物理层:(电气层:接口决定)通信接口(RS232, RS485, RS422, TTL)
      在这里插入图片描述

    2. 数据格式(数据层:芯片决定)

    3. 通信协议(协议层:程序决定)

2.UART关键参数及时序图

UART通信在使用前需做多项设置:数据位数,波特率,奇偶校验类型,停止位数。

关键参数

  • 1. 空闲状态:UART规定,当总线处于空闲状态时,信号线的状态位高电平,1。

  • 2. 起始位:数据开始传送标志位。由于空闲状态信号线一直处于高电平,所以,起始位为低电平,0。

  • 3. 数据位data bits:单个UART数据传输在开始和停止期间发送数据位数。可选5,6,7,8(默认)

  • 4. 波特率baud:每秒钟可以通信的数据比特个数。典型的波特率:300, 1200, 2400, 9600, 19200, 115200等。收发两端设备都要设置相同的波特率。

  • 5. 奇偶校验位parity type:验证数据正确性。

    奇校验odd parity:数据中,1个的个数为奇数,校验位为1;1的个数为偶数,校验位为0。

    偶校验even parity:数据中,1的个数为偶数,校验位为0;1的个数为奇数,校验位为1。

    无奇偶校验non:如果数据长度为8,则无多余比特位用于奇偶校验,称为无奇偶校验non

  • 6. 停止位stop bits:标志一次数据传输完成,可帮助接收信号硬件同步。可选择1(默认),1.5, 2位。

RS232标准中:8N1,八个数据位,一个停止位,无奇偶校验位。

时序图

在这里插入图片描述

  • 完整字节包括10位:一位起始位,8位数据位,一位停止位。需要11个波特脉冲完成。第一个脉冲标记一次传输的开始,第11个脉冲标记一次传输的结束。

  • 第1个波特脉冲上升沿:字节发送模块开始发送起始位;

    第2~9个波特脉冲上升沿:发送8位数据位;

    第10~11个波特脉冲上升沿:发送停止位;

基本结构

⑴. 输出缓冲寄存器,它接收CPU从数据总线上送来的并行数据,并加以保存。

⑵. 输出移位寄存器,它接收从输出缓冲器送来的并行数据,以发送时钟的速率把数据逐位移出,即将并行数据转换为串行数据输出。

⑶. 输入移位寄存器,它以接收时钟的速率把出现在串行数据输入线上的数据逐位移入,当数据装满后,并行送往输入缓冲寄存器,即将串行数据转换成并行数据。

⑷. 输入缓冲寄存器,它从输入移位寄存器中接收并行数据,然后由CPU取走。

⑸. 控制寄存器,它接收CPU送来的控制字,由控制字的内容,决定通信时的传输方式以及数据格式等。例如采用异步方式还是同步方式,数据字符的位数,有无奇偶校验,是奇校验还是偶校验,停止位的位数等参数。

⑹. 状态寄存器。状态寄存器中存放着接口的各种状态信息,例如输出缓冲区是否空,输入字符是否准备好等。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存器的相应位置“1”,以便让CPU查询。

接收端原理与实现代码UART串口接收端设计

发送端原理与实现代码UART串口发送端设计_多字节传输
UART串口发送端设计_单一字节传输


[参考资料] FPGA系统设计与验证实战指南

【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值