//clK系统时钟为50MHZ 先发低位后发高位 先接收地位后接收高位
module uart_tx (input clk,rst_n, UART_CTS,
 output reg UART_RTS,
 input  UART_RXD,
 output reg UART_TXD,
 output  [7:0] led);
reg [3:0]state;
reg [30:0] count;
reg [7:0] data;
assign led= rx_data;

reg [7:0] rx_data;
reg a,b;//reg[3:0] state;
always @ (posedge clk)
begin
if(!rst_n) begin rx_data<=8'h05;count<=0;end
else begin
 case (state)
     0:begin a<=UART_RXD;b<=a; if(b && !a) state<=1;else state<=0;end
  1:if(count==2603) begin if(UART_RXD==0)state<=2;else state<=0;count<=0;end //采集开始位 0电平的中点
    else            begin state<=1;count<=count+1;end  
  2:if(count==5208) begin state<=3;count<=0;rx_data[0]<=UART_RXD;end         //计数到数据位的中点
    else            begin state<=2;count<=count+1;end
  3:if(count==5208) begin state<=4;count<=0;rx_data[1]<=UART_RXD;end
    else            begin state<=3;count<=count+1;end 
  4:if(count==5208) begin state<=5;count<=0;rx_data[2]<=UART_RXD;end
    else            begin state<=4;count<=count+1;end 
  5:if(count==5208) begin state<=6;count<=0;rx_data[3]<=UART_RXD;end
    else            begin state<=5;count<=count+1;end  
  6:if(count==5208) begin state<=7;count<=0;rx_data[4]<=UART_RXD;end
    else            begin state<=6;count<=count+1;end
  7:if(count==5208) begin state<=8;count<=0;rx_data[5]<=UART_RXD;end
    else            begin state<=7;count<=count+1;end 
  8:if(count==5208) begin state<=9;count<=0;rx_data[6]<=UART_RXD;end
    else            begin state<=8;count<=count+1;end 
  9:if(count==5208) begin state<=10;count<=0;rx_data[7]<=UART_RXD;end
    else            begin state<=9;count<=count+1;     end 
  10:if(count==5208) begin state<=11;count<=0;end                            //采集结束位
    else            begin state<=10;count<=count+1;     end
  11:state=0;                                                                //回状态一,检测下降沿
  default state=0;
  endcase
end
end
endmodule

经过测试:可以正常工做------------主要技术点---下降沿的检测-----数据中间采样-----分频计数值的计算

---下降沿检测:a为50MHZ采样时钟采样的当前接收值,b为前一个接收值,------即当前一个接收值为1当前为0时为下降沿---即算法为b & !a

---分频系数:50MHZ/9600=5208,也就是说明每计数达到5208时就是9600波特率的上升沿---同理计数到2603为9600波特率的下降沿

---数据中间采样:开始时候计数到2603为开始位的中间点,以后计数到5208时为数据采样的中间点

转载于:https://www.cnblogs.com/TFH-FPGA/archive/2012/08/08/2627673.html

简易RS232 建模二 (接收)相关推荐

  1. 数学建模二:TOPSIS法(优劣解距离法) 附代码详解

    数学建模二:TOPSIS法(优劣解距离法)附代码详解 TOPSIS法(优劣解距离法)用于评价类问题. 层次分析法因为受限于一致性检验指标的数量,最多只能选择15个准则或方案.同时层次分析法也难以处理已 ...

  2. MATLAB做一个简单的3d模型,简易3D建模,让你快速创建3D模型

    原标题:简易3D建模,让你快速创建3D模型 MagicaVoxel Mac版通过其显著的直观性.任何用户,乃至那些有素的编辑或其余3D建模运用程序之前没有任何经验的朋友,可以开始创建的对象吧,无需经过 ...

  3. 传统公司部署OpenStack(t版)简易介绍(二)——Keystone组件部署

    传统公司部署OpenStack(t版)简易介绍(二)--Keystone组件部署 一.OpenStack组件安装的顺序 二.创建数据库实例和数据库用户(ct控制节点) 三.安装.配置keystone. ...

  4. Ocelot简易教程(二)之快速开始2

    为什么这篇的标题叫"Ocelot简易教程(二)之快速开始2"呢,因为很多朋友跟我说上一篇" Ocelot简易教程(二)之快速开始1"内容太少了,只是简单介绍Oc ...

  5. emmc固件开发_UP2开发板简易开箱(二)

    在 @老狼 的x86开源硬件群里面抽中了一个UP2开发板,时间已经过去半年多了,实在惭愧,其中一部分原因是菜,菜是原罪.现接上一位抽中UP2的大佬 @Jiaao Bai 的文章,本文就叫UP2开发板简 ...

  6. React,手写简易redux(二)- By Viga

    React,手写简易redux(二) 本章节会完成一个简易的redux实现 该系列内容会逐步实现简易的redux 使用技术栈:vite+react 该系列感谢@方应杭 的react教学视频 目录 实现 ...

  7. 风控建模二:建模方案拟定

    风控建模二:建模方案拟定 引言 一.是否需要分客群建模 二.全时段建模一定更好吗 三.进件vs规则过件vs放款件 四.怎么选训练集 五.还原真实好坏比例 引言 好坏标签定义完成并整理好数据集并不意味着 ...

  8. Android简易新闻客户端自动升级 简易新闻(二十)

    Android简易新闻客户端自动升级 简易新闻(二十) 关于 说明 第一步,添加引用 第二步,注册蒲公英账号 第三步,添加AndroidManifest.xml配置 初始化 最后一步 打包上传 关于 ...

  9. 通过RS232发送和接收短信(二)

    2019独角兽企业重金招聘Python工程师标准>>> 查询短信: 1. 查询具有相同状态的所有短信 指令:AT+CMGL=n 其中n代表0-4的数字. 0--未读得短信.执行命令以 ...

最新文章

  1. USACO Barn Repair
  2. angular核心原理解析3:指令的执行过程
  3. SAP BPC最佳实践-SAP BPC的OLAP引擎比较(MS OLAPBW OLAP)
  4. CButtonST的用法详解!
  5. 【错误记录】Flutter 报错 Downloading the Dart SDK using the BITS service failed, retrying with WebRequest...
  6. C++ primer 详解(第三章)
  7. 【杂谈】为什么邀请大家加入硬核知识星球有三AI
  8. HDOJ-3785 寻找大富翁(优先队列)
  9. Linux设备驱动模型4——平台总线实践
  10. 20180209-shutil模块
  11. 【编程导航】国外大神总结的实用代码,30 秒学会!
  12. Spoken English-口语-练习频次
  13. office套件_【office】Android版微软办公套件Office独立版一体化
  14. squid 反向代理
  15. 解决问题 “You don‘t have permission to access /index.html on this server.”
  16. 《高翔视觉slam十四讲》学习笔记 第四讲 李群与李代数
  17. HDOJ 1166 HDU 1166 敌兵布阵 ACM 1166 IN HDU
  18. 涂鸦板制作教程——其中的重做和撤消我觉得不错
  19. 澳大利亚维多利亚州旅游局力推高尔夫主题体验
  20. Qt随机数生成器:QRandomGenerator

热门文章

  1. php 静态类内存,php面向对象中static静态属性与方法的内存位置分析
  2. 投影转换_即插即用,办公投影不用愁:毕亚兹Mini DP转HDMIVGA转换器
  3. 照片换色 使用Python 或者 java
  4. 判断数组里面的下标是否等于一个字符串
  5. 「小程序JAVA实战」小程序的视频展示页面初始化(63)
  6. iOS底层原理 - 常驻线程
  7. FZU 2297 Number theory【线段树/单点更新/思维】
  8. iOS 设置View阴影
  9. 从原则、方案、策略及难点阐述分库分表
  10. 整理了一下Asp.net源码常见问题(完善中...),欢迎大家补充修正(最后更新于06-01)!...