阅读 172

FPGA UART设计逻辑

1 时序设计

image.png

2 串口接收模块(串转并)

image.png

2.1 模块设计

image.pngimage.png

2.2 串口起始检测(高低跳变)

  • 通过检测串口接收端 uart_rxd 的下降沿来捕获起始位。一旦检测到起始位,输出一个时钟周期的脉冲 start_flag,并进入串口接收过程。串口接收状态用 rx_flag 来标志,rx_flag 为高标志着串口接收过程正在进行,此时启动系统时钟计数器 clk_cnt 与接收数据计数器 rx_cnt。image.png

2.3 时序设置


    1. 串口传输一位所需时长:(1/15200)

  • image.pngimage.pngimage.png

    1. 串口传输一位需要FPGA系统时钟的计数值:(1/15200)/(1/50000000)

  • image.png

    1. 当脉冲信号 start_flag 到达时,进入接收过程,计数到9位清除rx_flag

  • image.pngimage.png

    1. 根据接收数据计数器来寄存UART接收端口数

  • image.png

    1. 数据接收完毕后给出标志信号uart_done,并寄存输出接收到的数据

3 串口发送模块(并转串)

image.png

3.1 模块设计

image.png

3.2 串口发送起始检测(高低跳变)

image.png

3.3 时序设置

  • 当脉冲信号 en_flag 到达时,寄存待发送的数据,并进入发送过程image.png

  • 进入发送过程后,启动系统时钟计数器image.pngimage.png

  • 根据发送数据计数器来给 uart 发送端口赋值image.png


作者:技术洞察TIC
链接:https://juejin.cn/post/7034523708249243662


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐