11.串口接收原理与思路

该文详细阐述了串口接收的原理和思路,包括通过采样确定数据电平、边沿检测来识别起始位,以及使用分频器设置波特率。在Verilog代码中,实现了滤波、波特率配置、边沿检测、数据接收和计数等功能,以完成串行数据到并行数据的转换。

11.串口接收原理与思路

1.原理

  • 基本原理:采样。

  • 技巧是:一位数据采多次,统计得到该电平出现的次数,次数多的就是该电平值。

  • 起始位检测:通过边沿检测电路。

  • 串口接收模块整体框图
    在这里插入图片描述
    在这里插入图片描述

2.思路

  1. 对边沿电平进行检测

  2. 波特率的设置,我们这里要把它分割成16份
    在这里插入图片描述

  3. 对(bps_cnt)16位操作 总共10位数据 那么要计数到160

  4. 接收16个格子中的中间的数据(r_date,sto_date,sta_date )

  5. 基本的分频器(div_cnt)来得到bps_clk = ( div_cnt == Bps_DR /2) 和 使能端口(RX_EN)

  6. 接收数据

  7. 处理rx_done

3.代码

`timescale 1ns / 1ps
module uart_byte_tx(
sys_clk , sys_rst , baud_set ,date_rx  ,    date   ,     rx_done   );  
    input sys_clk   ;
    input sys_rst   ;
    input [2:0] baud_set  ;
    input date_rx   ;
    output reg [7:0] date     ;
    output reg rx_done  ; 

// 1. 滤波     
//  reg date_rx_sync_1 ;
//  reg date_rx_sync_2 ;
//  wire date_rx_sync ; 
//  always@(posedge sys_clk or negedge sys_rst )
//      if(!sys_rst) 
//          begin 
//         date_rx_sync_1 <= 0  ;
//          date_rx_sync_2 <= 0; 
//          end
//      else  
//              begin 
//          date_rx_sync_1 <= date_rx ;
//          dat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值