小梅哥12——串口接收模块设计与验证

一、FPGA接收其他设备通过uart协议发送的数据

         使用ISSP查看uart接收模块接收到的数据,串口接收到的数据由PC机发出

1. uart通信协议工业环境下数据接收实现(干扰状态,进行一些处理保证稳定性)

        工业应用中,往往有较强的电磁干扰,因此只采集一次作为该数据的电平判定不保险,需要多次采样求概率

         将每一位数据平均分成 16 小段,在刚发生变化和即将发生变化时期,数据极可能不稳定,因此灰色这段忽略。考虑中间6次采样,选取出现次数较多的电平。各占一半时判定当前通信线路环境非常恶劣,数据不具有可靠性,不进行处理。

         将中间6次结果加起来(3位),>3(最高位为1)为1,<3为0,最高位数即为统计结果

         reg [2:0] r_data_byte [7:0]8个3位寄存器,r_data_byte[0][2]:第0个寄存器的第2位

2. 异步时钟同步处理

           Rs232_tx是外部输入信号,是异步信号,对其采样可能采集到不定态,D触发器会发生振荡,振荡后在下一个时钟信号到来前稳定下来,其稳定结果不确定,因此经过两级寄存器同步处理(与系统时钟变化一致)。

           第一个D触发器采集异步信号,q有振荡,但在下一个时钟信号前稳定,因此第二级D触发器(延迟一个时钟周期)采集到的是稳定态

3. ISSP探针probe使用

          

外部输入Rs232_rx,使用探针(8位)探测 data_rx_r(只有在rx_done高电平时将data_rx赋值给data_rx_r)

二、时序图

uart发送端发送一个字节Byte(8bit)数据时序图 

       每个bps_clk上升沿发送数据 

串口接收时序图 

      对数据线 Rs232_tx 上的每一位进行采样:开始和结束段数据变化,一般认为每一位数据的中间点最稳定,因此一般采集中间时刻时的电平即认为是此位数据的电平

      bps_clk上升沿对齐中点,在每个上升沿读取数据

三、模块设计

 起始位检测进程:起始位低电平,检测到下降沿,表面可能数据传输,开启波特率时钟(异步转   同步(两个同步寄存器s0_)、边沿检测(两个暂存寄存器tem0_,比较前后状态))。起始位可能检测错误,第12位起始位不为0(>=3)可判断为检测错误

波特率产生模块:每位采集16次,频率:Bps*16

数据接收进程

串口接收模块框图

        先有顶层设计思路,再分块实现 

注意 

 1. 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小梅哥在uart串口通信接收时,可以按照以下步骤进行操作: 1. 首先,小梅哥需要了解UART的概念。UART是通用异步收发器的简称,是一种常用的串行通信技术,用于设备之间的数据传输。 2. 接下来,小梅哥需要明确串口接收数据的时序。在串口接收数据时,通常需要通过设置波特率、数据位、停止位和校验位等参数来保证数据的准确传输。 3. 小梅哥可以参考引用提供的《串口发送模块uart_tx详解》文章,详细了解uart串口通信的原理和操作步骤。 4. 在实际操作中,小梅哥可以使用相应的开发板或芯片,在代码中配置串口接收功能,并编写相应的接收程序。 5. 小梅哥需要注意,串口接收数据时需要根据具体的应用场景和需求进行相应的数据处理和解析。 总结起来,小梅哥在uart串口通信接收时,需要了解UART的基本概念,明确串口接收数据的时序,并参考相关资料和文档进行具体的操作和编程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [串口接收模块uart_rx详解](https://blog.csdn.net/m0_37921318/article/details/105917004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [串口UART——学习笔记4](https://blog.csdn.net/weixin_44790601/article/details/91156728)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [单片机UART串口通信解析](https://download.csdn.net/download/weixin_38625442/14816644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值