当前位置: 首页 > news >正文

基于FPGA的2FSK调制-串口收发-带tb仿真文件-实际上板验证成功

基于FPGA的2FSK调制

  • 前言
  • 一、2FSK储备知识
  • 二、代码分析
    • 1.模块分析
    • 2.波形分析
  • 总结


前言

设计实现连续相位 2FSK 调制器,2FSK 的两个频率为:fI=15KHz,f2=3KHz,波特率为 1500 bps,比特0映射为f 载波,比特1映射为 载波。
1)接收到被发送的数据帧后,按下面格式生成突发帧:帧头(1111111101111110,16比特)+数据帧长度字节(高位在前)+数据帧(来自UART接口的数据字节,每个字节高位在前)+XOR校验字节(长度字节、数据的XOR结果)+结尾8比特(0000000)
2)通过 DAC 模块输出已调信号波形

一、2FSK储备知识

2FSK(双频移键控)调制是数字调制技术的一种,常用于无线通信、数据传输等领域。2FSK属于频移键控(FSK)调制方式的一种特例,其中“2”表示使用两个不同的频率来表示二进制数据0和1。

  1. 输入数据比特流:发送端输入二进制数据流(0和1)。
  2. 选择频率:比特0对应f0,比特1对应f1
  3. 频率调制:在发送端,根据信号的0和1的不同,调节载波信号的频率。每个数据比特对应一个特定的频率周期。
  4. 信号传输:调制后的信号通过传输媒介(如无线电波、电缆等)发送到接收端。

二、代码分析

1.模块分析

代码如下(示例):

//产生载波0
module DDS_Mod1(input 	clk,input   rst_n,output wire    [11:0] 	addr_I,output wire signed  [7:0]  sin		//调制信号
);parameter   Freq =  34'd687026;	//题目要求2KHz/3Khz  设置频率控制字  0.04096 * 2的22次方 =171966  257530
//parameter    Freq =  32'd4278;	//题目要求2KHz/3Khz  设置频率控制字  0.04096 * 2的22次方 =171966  257530
reg     [31:0]  Freq_1;
reg     [33:0]  cnt_I = 0;  //32位=10+22always @(posedge clk or negedge rst_n) beginif(!rst_n)	begincnt_I <= 0;endelse	begincnt_I <= cnt_I + Freq;end
endassign  addr_I = cnt_I[33:22];  //右移12位,相当于除以2的12次方ROM	b2v_inst2(   //调用ROM,将右移后的值送入ROM的地址端.clka(clk),.addra(addr_I),.douta(sin));endmodule
//产生载波1
module DDS_Mod(input 	clk,input   rst_n,output wire    [11:0] 	addr_I,output wire signed  [7:0]  sin		//调制信号
);
//0对应2k 1对应3k
parameter   Freq =  34'd343932;	//题目要求2KHz/3Khz  设置频率控制字  0.04096 * 2的22次方 =171966  257530
//parameter    Freq =  32'd4278;	//题目要求2KHz/3Khz  设置频率控制字  0.04096 * 2的22次方 =171966  257530
reg     [31:0]  Freq_1;
reg     [31:0]  Freq_2;
reg     [33:0]  cnt_I = 0;  //32位=10+22always @(posedge clk or negedge rst_n) beginif(!rst_n)	begincnt_I <= 0;endelse	begincnt_I <= cnt_I + Freq;end
endassign  addr_I = cnt_I[33:22];  //右移12位,相当于除以2的12次方ROM	b2v_inst2(   //调用ROM,将右移后的值送入ROM的地址端.clka(clk),.addra(addr_I),.douta(sin));endmodule

其他模块就是围绕功能进行编写
其他模块就是围绕功能进行编写
其他模块就是围绕功能进行编写
关注三连后台获取

2.波形分析

串口接收到88、55数据后存在fifo里面
在这里插入图片描述
按照通信协议进行实现,将比特0和1映射为对应的频率。

在这里插入图片描述

总结

软件:vivado 2023 modelsim
工程文件完善,修改比较方便,方便大家进行课程知识点的学习与设计,加深对于FSK的理解。

http://www.lryc.cn/news/491711.html

相关文章:

  • JavaScript的基础数据类型
  • 第三讲 架构详解:“隐语”可信隐私计算开源框架
  • JDBC编程---Java
  • Python绘制太极八卦
  • Spring框架特性及包下载(Java EE 学习笔记04)
  • Linux关于vim的笔记
  • linux mount nfs开机自动挂载远程目录
  • 【vue】导航守卫
  • 基于Matlab实现LDPC编码
  • PostgreSQL 中约束Constraints
  • ✨系统设计时应时刻考虑设计模式基础原则
  • 【Linux】多线程(下)
  • Element-Plus如何修改日期选择器输入框el-date-picker的圆角
  • skywalking es查询整理
  • 故障排除-------K8s挂载集群外NFS异常
  • Easyexcel(6-单元格合并)
  • 解决登录Google账号遇到手机上Google账号无法验证的问题
  • 【Redis_Day5】String类型
  • Python MySQL SQLServer操作
  • Java技术分享
  • CentOS7卸载node
  • LeetCode 2257. Count Unguarded Cells in the Grid
  • 即时通讯服务器被ddos攻击了怎么办?
  • 【大数据学习 | Spark-Core】Spark中的join原理
  • 【代码pycharm】动手学深度学习v2-08 线性回归 + 基础优化算法
  • 李宏毅机器学习课程知识点摘要(1-5集)
  • React(五)——useContecxt/Reducer/useCallback/useRef/React.memo/useMemo
  • UE5时间轴节点及其设置
  • git 命令之只提交文件的部分更改
  • 算法 差分修改 极简