基于Robei EDA--实现串口数据包接收

一、定义串口传输协议帧

控制字的数据大小为一字节,定义帧头为(0xFE 0xDF)帧尾为(0xEF)

模块框图

内模块:串口接收,output:8位data

串口命令:对单字节数据接收进行缓存,5字节数据判断数据帧是否有效,提取正确的控制字

根据控制字解析,控制8位led的亮灭

二、串口命令转换模块设计(uart_cmd)
 

reg[7:0] data_str [4:0];//5个位宽为8的元素
//reg [7:0] count [3:0] 4个位宽为8元素的一维数组
reg rx_done_r;
//移位数据缓存
always@(posedge clk)
if(rx_done)		begin
		data_str[4] <= rx_data;
		data_str[3] <= data_str[4];  
		data_str[2] <= data_str[3];
		data_str[1] <= data_str[2];
		data_str[0] <= data_str[1];
end


always@(posedge clk )
  rx_done_r <= rx_done;

//数据包解析,提取指令
always@(posedge clk or negedge reset)
if(!reset)begin
  en <= 0;
  ctrl <= 0;
end
else if(rx_done_r)begin
  if(data_str[0]==8'hFE&&data_str[1]==8'hDF&&data_str[4]==8'hEF)begin
		en <= data_str[2];
		ctrl <= data_str[3];
end
end
//仿真文件
initial clk = 1;
always#10 clk = ~clk;
initial begin
reset = 0;
rx_data = 8'h0;
rx_done = 0;
#21;
reset = 1;
rx_done = 1;
#20;
rx_done = 0;
rx_data = 8'hFE;
#5208
rx_done = 1;
#20;
rx_done = 0;

rx_data = 8'hDF;
#5208
rx_done = 1;
#20;
rx_done = 0;

rx_data = 8'h01;
#5208
rx_done = 1;
#20;
rx_done = 0;

rx_data = 8'haa;
#5208
rx_done = 1;
#20;
rx_done = 0;

rx_data = 8'hef;
#5208
rx_done = 1;
#20;
rx_done = 0;

#5208
$finish;
end

三、串口指令控制led

initial clk = 1;
always#10 clk =~clk;
initial begin
reset = 0;
en = 8'h00;
ctrl = 8'h00;
#21;
reset = 1;
#120;
en = 8'h01;
#200
ctrl = 8'hff;
#200
$finish;
end

四、串口接收(uart_rx)

五、顶层模块

 //初始化系统时钟、全局复位和输入信号
 initial begin
 clk = 1'b1;
 reset <= 1'b0;
 rx <= 1'b1;
 #20;
 reset <= 1'b1;
#1000_000_00;
$finish;
 end
 
 //模拟发送8次数据,分别为0~7
 initial begin
 #200
 rx_bit(8'hfe); //任务的调用,任务名+括号中要传递进任务的参数
 rx_bit(8'hdf);
 rx_bit(8'h1);
 rx_bit(8'hff);
 rx_bit(8'hef);
 end
 
 //clk:每10ns电平翻转一次,产生一个50MHz的时钟信号
 always #10 clk = ~clk;
 
 //定义一个名为rx_bit的任务,每次发送的数据有10位
 //data的值分别为0~7由j的值传递进来
 //任务以task开头,后面紧跟着的是任务名,调用时使用
 task rx_bit(
 //传递到任务中的参数,调用任务的时候从外部传进来一个8位的值
 input [7:0] data
 );
 integer i; //定义一个常量
 //用for循环产生一帧数据,for括号中最后执行的内容只能写i=i+1
 //不可以写成C语言i=i++的形式
 for(i=0; i<10; i=i+1) begin
 case(i)
 0: rx <= 1'b0;
 1: rx <= data[0];
 2: rx <= data[1];
 3: rx <= data[2];
 4: rx <= data[3];
 5: rx <= data[4];
 6: rx <= data[5];
 7: rx <= data[6];
 8: rx <= data[7];
 9: rx <= 1'b1;
 endcase
 #(5208*20); //每发送1位数据延时5208个时钟周期
 end
 endtask //任务以endtask结束

写在最后:波特率9600bps

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/393216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

去掉图片水印但是不伤原图?看完这些方法就知道了

小伙伴们&#xff0c;你们是不是经常在网上找一些好看的图片作为壁纸呢&#xff1f;有时候会遇到一些带着平台水印的图片&#xff0c;是不是觉得不太美观呢&#xff1f;别着急&#xff0c;其实我们可以使用一些去水印软件来将这些水印去除掉&#xff0c;让图片更加美观。那么&a…

贝塞尔曲线

一条 n n n 次贝塞尔曲线可以表示为 C ( u ) ∑ i 0 n B i , n ( u ) P i , 0 ≤ u ≤ 1 (1) \pmb C(u)\sum_{i0}^nB_{i,n}(u)\pmb{P_i},\quad 0\leq u\leq1\tag{1} C(u)i0∑n​Bi,n​(u)Pi​,0≤u≤1(1) 其中&#xff0c;基函数&#xff08;也称为混合函数&#xff09; {…

电商行业的机遇在哪?致淘宝平台API数据接口

在电商行业蓬勃发展的今天&#xff0c;我们不得不提及淘宝这个伟大的平台。它不仅为亿万用户提供了便捷的购物体验&#xff0c;更为无数的商家创造了一个财富的聚集地。而如今&#xff0c;随着技术的不断进步&#xff0c;淘宝开放了其强大的API接口&#xff0c;为广大开发者带来…

【开工大吉】推荐4款开源美观的WPF UI组件库

前言 经常有小伙伴在技术群里提问&#xff1a;WPF有什么好用的UI组件库&#xff1f;,今天大姚给大家推荐4款开源、美观的WPF UI组件库。 WPF介绍 WPF 是一个强大的桌面应用程序框架&#xff0c;用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式…

git分布式版本控制工具基本操作

Windows操作 1.1 git基本操作 1.设置用户签名 git config user.name xx git config user.email xxb163.com2.初始化本地库 git init3.查看本地库状态 git status4.添加暂存区 git add 文件名称 git add *5.提交本地库 git commit -m "描述信息" 文件6.查看版本…

基于SFLA算法的神经网络优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 SFLA的基本原理 4.2 神经网络优化 5.完整程序 1.程序功能描述 基于SFLA算法的神经网络优化。通过混合蛙跳算法&#xff0c;对神经网络的训练进行优化&#xff0c;优化目标位神经网络的…

springboot200个人博客系统的设计与实现

基于spring boot的个人博客系统的设计与实现 摘 要 随着国内市场经济这几十年来的蓬勃发展&#xff0c;突然遇到了从国外传入国内的互联网技术&#xff0c;互联网产业从开始的群众不信任&#xff0c;到现在的离不开&#xff0c;中间经历了很多挫折。本次开发的个人博客系统&a…

Day21--learning English

一、积累 1.stipulate 2.brutal 3.tatter 4.thermal 5.turnstile 6.tickle 7.patsy 8.extinguisher 9.leave well enough alone 10.tangle 11.twirl 12.despise 13.Hang out 14.crisp 15.dye 16.cement 17.stationery 18.sophisticated 19.gradient 20.funeral 二、练习 1.牛…

面试经典150题——螺旋矩阵

"The harder the conflict, the more glorious the triumph." - Thomas Paine 1. 题目描述 2. 题目分析与解析 2.1 思路一 看到题目&#xff0c;先仔细观察矩阵&#xff0c;题目要求我们给出顺时针遍历的结果即可&#xff0c;我们根据矩阵可以看出&#xff0c;首…

开源软件:推动软件行业繁荣的力量

文章目录 &#x1f4d1;引言开源软件的优势分析开放性与透明度低成本与灵活性创新与协作 开源软件对软件行业的影响推动技术创新和进步促进软件行业的合作与交流培养人才和提高技能促进软件行业的可持续发展 结语 &#x1f4d1;引言 随着信息技术的飞速发展&#xff0c;软件已经…

Java Remote Debug(远程调试)

【华邦云使用过】&#xff1a; -agentlib:jdwptransportdt_socket,address9090,servery,suspendn SpringBoot远程Debug步骤 配置Maven 首先在Maven的pom.xml中配置好如下信息&#xff1a; <project> ... <build> ... <plugins> ... <plugin> &…

机器学习 | 实现图像加密解密与数字水印处理

目录 实现窗口可视化 数字图像加密 窗口布局设置 基于混沌Logistic的图像加密 基于三重DES的图像加密 数字图像解密 窗口布局设置 基于混沌Logistic的图像解密 基于三重DES的图像解密 基于LSB的数字水印提取 窗口布局设置 水印的嵌入与提取 实现窗口可视化 这里…

【力扣 - 环形链表】

题目描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

Chrome浏览器安装Axure-Chrome-Extension插件

Chrome浏览器打开Axure生成的HTML静态文件页面时&#xff0c;会显示如下图AXURE RP EXTENSION FOR CHROME&#xff0c;这是因为Chrome浏览器没有安装Axure插件Axure-Chrome-Extension导致的。 解决方法&#xff1a; 插件下载地址&#xff1a;https://download.csdn.net/downlo…

传日本软银CEO拟筹资成立AI芯片公司 | 百能云芯

据美国财经媒体报道&#xff0c;日本软体银行集团执行长孙正义计划筹资1,000亿美元&#xff0c;以成立一家人工智能&#xff08;AI&#xff09;芯片公司&#xff0c;这一举措旨在与英伟达&#xff08;Nvidia&#xff09;等现有市场领导者竞争。 计划的核心目标是通过新公司供应…

C语言系列-预定义符号#define定义宏#define定义宏

&#x1f308;个人主页: 会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 目录 预定义符号 #define定义常量 #define定义宏 预定义符号 C语言设置了一些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ /…

SG7050VAN晶体振荡器规格书

SG7050VAN 晶振是EPSON/爱普生的一款额定频率73.5 MHz to 700 MHz的石英晶体振荡器&#xff0c;4脚贴片&#xff0c;7050封装常规有源晶振&#xff0c;具有小尺寸&#xff0c;高稳定性。该款有源晶体振荡器&#xff0c;可以在B : -20 C to 70 C / G : -40 C to 85 C C的温度内稳…

在UE5中使用体积材质

在平时使用UE的材质设置时&#xff0c;经常会看见Material Domain Volume类型&#xff0c;但是却很少使用。其实该类型可以配合体积雾使用&#xff0c;并制作体积效果以弥补自带雾参数的不足。 操作流程 首先找到场景中的ExponentialHeightFog组件&#xff0c;开启体积雾Volu…

基于Spring Boot的知识管理系统,计算机毕业设计(带源码+论文)

源码获取地址&#xff1a; 码呢-一个专注于技术分享的博客平台一个专注于技术分享的博客平台,大家以共同学习,乐于分享,拥抱开源的价值观进行学习交流http://www.xmbiao.cn/resource-details/1759142297630486530

龙年新目标!龙蜥安全联盟第三次月会圆满结束

2024 年 2 月 1 日&#xff0c;龙蜥社区安全联盟&#xff08;OASA&#xff0c;以下简称“联盟”&#xff09;月度会议召开&#xff0c;线上线下共计 33 位代表参会&#xff0c;由秘书处成员齐增田主持本次会议。本次会议主要内容包括 2023 联盟回顾、2024 年的目标和规划、联盟…