0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于FPGA的直接扩频通信系统设计

FPGA技术江湖 来源:FPGA技术江湖 作者:FPGA技术江湖 2021-07-01 10:31 次阅读

导读

本篇适用于有一定通信基础的大侠,本篇使用的理论不仅仅是扩频通信。为了便于学习,本章将会以实战的方式,对整个工程的仿真。并对一些关键的仿真结果进行说明。各位大侠可依据自己的需要进行阅读,参考学习。

第三篇内容摘要:本篇会介绍系统的仿真设计。

仿真

一、模块的建立及其仿真环境的生成

1.1、在计算机上,找一个没有中文字符的目录,新建以下几个文件:

可以建立的文件,sim_wave.do 是仿真波形保存文件.tt.do。其代码如下:

#建立 library 名为”work”vlib workvmap work work#编译当前目录(。/)中的 top.v、mcu.v …。 vlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/top.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/mcu.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/slaver.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/coder.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/add_noise.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/decoder.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/correct.vvlog -work work -L mtiAvm -L mtiOvm -L mtiUPF 。/Correct_Decoder.v#仿真 work 中的 top 模型vsim -novopt work.top

以上是输入方式进行仿真,也可以直接使用图形化的方式进行仿真。但没有开始仿真,因为我们以下还要添加一条语句。但没有响应的文件。tt.bat 的代码如下:

echopausevsim -do 。 t.dopause

tt.bat 文件为批处理文件,仅为打开 modelsim、运行 tt.do 文件使用。也可以不使用该文件(以下不会详细介绍)。

1.2、将对应的代码写到相应的文件中(sim_wave.do、tt.bat 文件可以不管)。

1.3、用 modelsim 的打开方式打开 top.v 文件(或者你先打开 modelsim,然后把目录修改成以上所述的目录也可)。运行的界面如图 7(modelsim6.5d):

fcbf9ce4-da13-11eb-9e57-12bb97331649.png

图中的乱码均为modelsim不兼容我所使用的notepad软件编写的中文字符,大侠均可不以理睬。

1.4、在 Transcript 中输入”do tt.do”,运行当前目录下的 tt.do 文件。运行过程中,最后跳出如图 8 的窗口。如果有错误,会在 Transcript 中用红色字体说明(当然,这里都是英文)。

fccd2f76-da13-11eb-9e57-12bb97331649.png

图8

在框图 1 中为整个仿真平台上的模型,可以点击模型+展开。框图 2 显示当前模型所含的项目。

1.5、添加波形,如图10、11,对模块 coder 添加波形,并对波形进行分组。

fcfeef34-da13-11eb-9e57-12bb97331649.png

图10

fd40f6c2-da13-11eb-9e57-12bb97331649.png

图11

对所有仿真模型添加波形,并且分组,如图 12。

fd4bc7e6-da13-11eb-9e57-12bb97331649.png

图12

1.6、仿真开始 在 Transcript 中输入”run -all” 等待结果。以上将生成仿真环境的全过程。下面会将对各个模块进行说明。

二、模块仿真

2.1、模块 mcu 仿真

mcu 扮演一个信源产生模块。

在 send_ena 使能的情况下,当 insourse_ena 为高时,数据从 indatabyte 第 7 位端口输出到 coder 模块,图中发送十六进制 24 的过程,仅在 insourse_ena 为高时发送。该模块还产生两个时钟,两个时钟分别是 31 倍的频率。clk1 和 clk31。

2.2、模块 coder 仿真

模块 coder 将对 mcu 传送的数据进行编码、扩频。

图中的 in_data_buf 为发送码,当接收到 send_ena 后,先发送头和数据帧,然后才发送数据如图中从 133600us 开始发送数据”0010”(十六进制 2)后发送监督码的”101”,在 177000us 开始发送数据”0100”(十六进制 4)后发送监督码”110”。所有数据经过信道编码后,out_data 发送出去。

2.3、模块 noise 仿真

添加干扰,经 coder 发送的 2bit 数据扩展到 3bit 数据,并与噪声进行加性。

图中是对 1bit 数据进行扩频后,其中 un_noised_data 为输入数据(无噪声)、经过与 noise 数据相加,得到数据 noised_data。这模块就是充当信道中的加性干扰源。

2.4、模块 decoder 仿真

解扩是本系统的设计重点。它包含同步头的同步和数据的接收等。

本设计采用一个循环伪随机作为解扩码。采用一个 31bit 的寄存器,初始化为级数为 5 的 m 序列,首尾循环。那么,在寄存器每一位上采数,都可以得到一个伪随机序列。分别得出 31 个 m 序列。而且靠近的寄存器位,采集的 m 序列只有一位的移位。因此,可以采用该方法,在发送端发送的数据,不管为何时发送,在 31bit个寄存器中的 1 个寄存器中与之对应。更通俗的说法,不管发送设备何时开始发送。都可以在 31bit 的寄存器中找到一个寄存器采到的 m 序列与之对应。

由于在 31 比特的寄存器同时采数是比较耗费 FPGA 内部资源,所以本设计采用寄存器的每 10 个 bit 位进行一一处理。如果前 10 个没能找到对应的 m 序列,则累加到后 10 个,以此类推,在 3 次的累加中,总能完全扫描完 31bit 位的寄存器。此时可以找到对应的比特位。

由于发送设备的数据头为 10 个”1”和 1 个”0”,而在 10 个”1”中的 1 是延伸的,没法直接得到相邻”1”的交界,而在得到合适的 m 序列位后,必须进行同步,同步的方法为采集最后一个”0”作为同步。

在接收完成数据头后,进行数据帧同步。数据帧是 4bit 数据”0000”和 3bit 监督位”000”。

接收完成数据帧之后才是数据的开始。由于数据比较大,累加基数这里是 100,阀值为 30,那么,当接收到 130,说明接收到一个”1”。

接收的整体工作状态,sum1~sum10 分别采集 10 个寄存器比特位,当有1 个接收超过 130,说明寄存器该为上的 m 序列可以接收到 1 个”1”,sum 是对数据帧和数据的解扩统计。

一个完整数据解扩的过程,clk31 是采集时钟,数据为 in_data_buf,从输入到输出,延迟一段时间后传送到解扩模块。psumi 为解扩的值,通过累加得到sum(in_data[2]判断。为 1,则加;为 0,则减)。如果 sum 超过 130,说明发送数据为”1”,否则为”0”。(以上为数据”1”的例子)

通过解扩的数据,送到 correct 模块进行纠错。

2.5、模块 correct 仿真

模块 correct 为纠错模块。它将解扩后的数据进行分析,即对汉明码的反运算。该模块的仿真过程省略。

2.6、模块 Slaver 仿真

Slaver 是接收模块端,它将解扩、纠错后的数据进行存储。仿真过程省略。

2.7、模块 Top 仿真

Top 模块应该放第一块讲解,因为它是一个仿真平台,它的子模块包括 mcu 和slaver。它将两个模块的发送接收进行统计、并且进行计算、输出,并对模块参数设置。以下设置发送数据比特位为 500 的输出结果(图 19、图 20):

ff2407ae-da13-11eb-9e57-12bb97331649.png

图19

ff371420-da13-11eb-9e57-12bb97331649.png

图20

以上是整个设计的仿真过程。

本篇到此结束,直接扩频通信也到此结束,各位大侠,有缘再见!

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5027

    浏览量

    117710
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132148
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66736

原文标题:原创系统设计精选 | 基于FPGA的直接扩频通信系统设计(附代码)

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是扩频通信扩频技术在CDMA和TDMA中的应用

    随着扩频技术的推广,许多该领域之外的电子工程师也希望了解这项技术。
    的头像 发表于 01-25 09:59 1332次阅读
    什么是<b class='flag-5'>扩频通信</b>?<b class='flag-5'>扩频</b>技术在CDMA和TDMA中的应用

    扩频通信是什么?扩展频谱通信的特点

    调制; 在收端,通过相关解调技术接收信息。 扩频通信技术是由海蒂·拉玛发明的一种信息技术。最初,这项技术主要用于军事保密通信和电子对抗系统,随着世界范围政治格局的变化和冷战的结束,该项技术逐步转向商业化。现在,
    的头像 发表于 12-05 17:23 786次阅读

    三大通信技术有哪些 扩频通信和窄带通信的区别

    扩频通信的频带占用比窄带通信更宽,因为它需要将原始信号进行扩展,使得信号的带宽变大;而窄带通信的频带占用相对较窄,只占用一个较小的频带。
    的头像 发表于 11-17 15:19 1063次阅读

    基于FPGA直接序列扩频和差错控制码编码系统的实现

    电子发烧友网站提供《基于FPGA直接序列扩频和差错控制码编码系统的实现.pdf》资料免费下载
    发表于 11-06 15:57 0次下载
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>直接</b>序列<b class='flag-5'>扩频</b>和差错控制码编码<b class='flag-5'>系统</b>的实现

    基于ARM的双CAN通信系统设计

    电子发烧友网站提供《基于ARM的双CAN通信系统设计.pdf》资料免费下载
    发表于 10-27 11:21 2次下载
    基于ARM的双CAN<b class='flag-5'>通信系统设计</b>

    基于单LED的无线紫外光通信系统设计与实现

    电子发烧友网站提供《基于单LED的无线紫外光通信系统设计与实现.pdf》资料免费下载
    发表于 10-26 14:32 2次下载
    基于单LED的无线紫外光<b class='flag-5'>通信系统设计</b>与实现

    基于自动光学检测仪通信系统设计

    电子发烧友网站提供《基于自动光学检测仪通信系统设计.pdf》资料免费下载
    发表于 10-18 10:33 0次下载
    基于自动光学检测仪<b class='flag-5'>通信系统设计</b>

    基于FPGA扩频系统设计(附代码)

    ) 导读 在无线通信系统中,普遍使用扩频通信技术,因此扩频技术对通信系统具有重要的现实意义。
    发表于 08-23 16:32

    怎么去设计一种基于FPGA扩频模块呢?

    扩频系统最早可以追溯到20世纪20年代左右,扩频通信就有了初步的应用。但是一直到20世纪年代中期,扩频系统才真正应用和发展起来。
    发表于 07-31 09:17 481次阅读
    怎么去设计一种基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>扩频</b>模块呢?

    基于FPGA直接扩频通信系统设计(附代码)

    和抗干扰性。接收端则采用相同的伪随机码进行解扩,从而恢复出原始信息数据。按照频谱扩展的方式的不同,现有的扩频通信系统可以分为直接序列扩频(Direct Sequence Spectru
    发表于 06-26 18:08

    扩频通信的基本原理 扩频通信为什么可以抗多径效应

    扩频通信在发射端使用伪随机码序列对原始信号进行处理,这样可以将信号的带宽扩大到比传输信号的带宽更大的范围内。
    的头像 发表于 06-26 17:33 3430次阅读

    扩频通信概述

    随着扩频技术的推广,许多该领域之外的电子工程师也希望了解这项技术。许多书籍和网站对这一专题进行了论述,有些文章简单的解释那些复杂的概念很难被人们接受,有些则专门详细地论述了几个方面的技术但又忽略其他的(例如:直接扩频的重点在PR
    的头像 发表于 06-09 14:17 1092次阅读
    <b class='flag-5'>扩频通信</b>概述

    一定速率的pn序列直接扩频扩频信号带宽的关系是什么?

    一定速率的pn序列直接扩频扩频信号带宽的关系是什么? 以及如果知道信息速率,怎么样求它的系统扩频增益? 那具体的换算怎么进行呢?
    发表于 05-16 17:34

    什么是扩频扩频通信的目的 扩频通信扩频增益的意义

    扩频通信的主要目的是提高通信信号的抗干扰性和保密性。通过在发送信号时对其进行频率扩展,使得信号在宽带频谱上占用更大的带宽,从而可有效抵消窄带干扰信号对于通信信号的影响。
    发表于 05-10 17:52 2731次阅读

    什么是扩频扩频通信的目的 扩频通信扩频增益的意义

    扩频技术是一种利用噪声来实现通信的方法,它可以在一定程度上抵消干扰信号对于通信信号的影响,同时也可以使得被窃听的信号更难被解读和破解。
    发表于 05-05 16:28 4585次阅读