DSP调制解调系统设计Word文档下载推荐.docx

上传人:b****5 文档编号:17428350 上传时间:2022-12-01 格式:DOCX 页数:30 大小:621.40KB
下载 相关 举报
DSP调制解调系统设计Word文档下载推荐.docx_第1页
第1页 / 共30页
DSP调制解调系统设计Word文档下载推荐.docx_第2页
第2页 / 共30页
DSP调制解调系统设计Word文档下载推荐.docx_第3页
第3页 / 共30页
DSP调制解调系统设计Word文档下载推荐.docx_第4页
第4页 / 共30页
DSP调制解调系统设计Word文档下载推荐.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

DSP调制解调系统设计Word文档下载推荐.docx

《DSP调制解调系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DSP调制解调系统设计Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。

DSP调制解调系统设计Word文档下载推荐.docx

绘制具备AD功能的DSP最小系统电路图,设计基于DSP的2FSK调制解调程序。

设计2FSK调制解调的DSP程序,并给出相应的仿真结果。

1.了解和熟悉DSP综合试验箱的结构原理和设置;

存储器、逻辑控制等模块的原理和配置。

2.开发工具

熟悉DSP开发系统的连接;

进一步熟悉CCS2.2开发环境的使用方法。

3.DSP结构

进一步熟悉DSP的硬件构造,特别是DSP外围存储单元与接口电路的设计。

4.DSP最小系统设计

绘制DSP最小系统电路图:

外围存储器与ADC电路的设计。

5.2FSK调制与解调

理解2FSK调制与解调的原理,设计2FSK调制与解调的方案,给出具体的实现思路。

6.FIR滤波器

计算FIR实现所需的参数。

7.FIR滤波器实现

编写FIR滤波器实现的DSP程序。

8.2FSK调制与解调实现

给出2FSK调制与解调实现流程图,编写相关DSP实现程序。

9.仿真

验证2FSK调制与解调的DSP程序,给出相应的仿真结果。

10.完成课程设计报告。

三、设计方案

3.1、系统整体的结构图

图.1系统整体结构图

3.2、2FSK工作原理

二进制频移键控的基本原理:

用数字基带信号来控制高频载波频率的变化,使载波的频率在

之间变化。

二进制频移信号可以看成两个不同载波的二进制振幅键控信号的叠加。

若二进制基带信号的符号1对应于载波频率

,符号0对应于载波频率

,则二进制频移键控信号的时域表达式:

(1)

(1)式中,

的反码,

为码元持续时间,通常情况下,

为单个矩形脉冲。

二进制频移键控(2FSK)是数字通信中常用的一种调制方式,其调制与解调的方法有很多种。

采用数字信号处理来实现二进制频移键控信号的数字调制与非相干数字解调,大大地降低了硬件电路的复杂程度,提高了系统的灵活性,能够满足二进制频移键控各种传输协议的要求。

一个简易的2FSK工作原理如图2所示。

在发送方,输入的基带数据信号经过调制和发送带通滤波器产生信道可传输的频带信号,送人信道;

在接收端,接收带通滤波器除去带外所附加的噪声,将信号送入解调器(由延迟单元、乘法器和低,通滤波器构成),经过低通滤波器除去产生的高频信号,经取样判决得到输出数字序列,完成信号传输。

图2.2FSK系统工作原理图

、2FSK调制

2FSK调制就是把输人数字序列变成适合于信道传输的变频正弦波,所以2FSK的DSP实现关键就是产生正弦或余弦波形。

产生正弦波的方法有差分迭代法、泰勒级数展开法、查表法等多种方法。

本文中调制采用查表法产生正弦波。

☞调制算法

2FSK调制采用查表法,可以实现较好的实时性,特别适用于通信载波的生成。

在DSP的程序存储空间,使用Q15定点数格式在[0,2π]上以2π/N的相位间隔固化N点正弦值,以供查表(这些值可由MATLAB软件首先计算好),在此取N=12。

这样对于F0和F1的取样间隔分别为:

(2)

使用DSP定时器T0,用来实现对数据解调DAC输出速率的控制。

这样,如要实现12Kbps的数传输速率,需要将DSP定时器T0的溢出率设置为192KHz。

❖调制主程序流程图

本文使用查表法提供2FSK调制所需要的两路正弦波,即sin0_table和sin1_table,当发送的数据为"

0"

时是发送sin0的数据,当发送的数据为"

1"

是发送sin1的数据。

初始化完后,接收数据,判断“0”或“1”,打开中断,则定时器每隔一个周期产生一次中断,中断服务程序则完成一个采样点的输出。

一个码元周期结束后,关中断,判断下一个发送数据,继续循环。

主程序流程如右图3所示

图图3.调制主程序流程

、2FSK解调

采用软件化设计思想,解调器也可以采用DSP编程来实现。

FSK解调有相干解调和非相干解调,虽然相干解凋抗干扰性能好,但他要求设置与发送设备中的高频载波同频同相的本地参考载波,使设备复杂,因此一般数字调频系统都采用非相干解调。

常用的非相干解调算法有过零检测法和包络检测法以一种新的可用DSP软件实现的FSK非相干解调算法,即正交自延时FSK解调算法。

☞解调算法

针对小型通信系统,可以采用一种算法简单、占用存储空间小的2FSK信号差分检波解调算法,本文即采用的这种实时性较高的2FSK信号差分检波解调算法,它是模拟信号解调电路用到的差分检波原理在2FSK信号数字解调中的具体实现。

算法的基本思想是已调信号和它的

的延时信号相乘,然后经过低通滤波,根据滤波结果的符号判断发送信号的值,从而实现信号的解调。

算法原理图如下图4所示。

图4.2FSK解调算法原理图

在接收端,接收带通滤波器输出信号采样值

经延时器延迟

个采样点得到

要小于每个二进制码元周期内的采样点数,使得

是属于同一个二进制码元的采样值。

相乘后的输出样值:

(3)

前面一部分是仅与k有关的常数。

后面一部分是与n有关的高频分量,可通过对称系数低通滤波器h(n)来滤除。

低通滤波器h(n)的截止频率设为12KHz,对称系数经Matlab计算求得:

h0=0.00018497,h1=0.26316,h2=0.19272,h3=0.22079,通过该低通滤波器后得到:

————————(4)

k的选择是设计解调器的关键,应使差值:

———————(5)

最大,以利于正确区分两种频率,降低判决的误码率。

根据实际的测试得到,当k=2时,可以得到较好的区分度。

经过低通滤波后的数据U(n)经过判决算法后,可以得到最终所要的解调数据Y(n)。

系统12个采样数据表示一个码元,当判决算法连续判决12个采样数据(一个码元包含的采样点)满足预设阈值之后,确定一个码元的状态。

假设如下判决算法中用都得变量:

LPFOUT→滤波器输出,DATA_THD→幅度判决的阈值,DEC_DATA_CURR→当前采样点判决值,DEC_DATA_BE→前一次采样点判决值,DEC_NUM→判决用计数器,DEC_NUM_X→周期计数器。

判决算法流程图如下图所示:

图5.判决算法流程图

3.3、硬件原理图

♣音频接口原理图

图6.音频接口图

此部分为整个系统提供音频信号的采集输入。

由TLV320AIC23单片机进行模拟信号采集处理,提供三个采集接口和一个输出接口。

♣电源原理图

图7.电源

此部分为系统电源结构的原理图。

为此系统提供了所需要的电源,如

、5V、3.3V、1.8V电源,并设置了地线。

♣寄存器原理图

图8.寄存器原理图

外部存储器,用于接收存储数据。

♣DSP原理图

图9.DSP原理图

本系统采用TMS320VC5402PGE100DSP芯片,该芯片有142个管脚。

芯片的电源电压有3.3V与1.8V两种,其中3.3V电压供I/O接口用,2.5V电源主要供器件的内部,包括CPU和其他所有的外设逻辑。

该系统将芯片片内部分模块单元引出以便做外部扩展。

这些扩展的模块包含串行口、定时计数器、数据地址总线接口和通用I/O等。

此芯片一是实现FIR滤波,其次是2FSK的调制与解调。

♣EPM

图10.EPM原理图

♣AD与DA转换原理图

图11.数模—模数转换原理图

DA和AD,即数字和模拟信号转换系统。

可将系统音频接口所采集的模拟信号转换为数字信号,送入DSP中进行调制解调处理,然后再把处理后的信号转换为模拟信号发射出去。

♣顶层文件原理图

图12.顶层文件连接图

该版面为系统硬件原理图部分生成的顶层文件连接示意图,从中可以反应出系统的大概构成部分。

通过各个分板块的网络标号,将各分散部分的信号线以与各总线联系在一起,以便于进行统一的电器检查以与生成网络表,为后面生成PCB板奠定基础。

加载网络表后,利用手动布局,在手动布线的基础上实现了该系统PCB板的完整布线。

普通信号线10mil,电源线与地线为15mil。

四、系统实现

4.1、硬件部分

利于protel软件,画出各部分硬件电路图。

生成顶层文件,画出PCB板,并实现手动布线,如前面各图所示。

4.2、软件部分

、2FSK调制程序

❖本文2FSK调制采用查表法,使用Q15定点数格式在[0,2π]上以2π/N的相位间隔固化N点正弦值,N=12:

x=0:

2*pi/12:

2*pi;

y=32768*sin(x)

结果如图:

❖调制主程序如下:

*****************************************

c54init.asm

.mmregs

.includec54.inc

.defc54init

.sect"

progsys"

c54init:

*SWWSR:

SoftWareWait-StateRegisterAddress0028h

*-----------------------------------------------------

*|15|1412|119|86|53|20|

*-----------------------------------------------------

*|XPA|I/O|Data|Data|Program|Program|

*----------------------------------------------------

STM#0x7208,SWWSR;

0111001000001000

*I/O空间为7个等待周期

*数据空间8000h-FFFFh为1个等待周期

*数据空间0000h-7FFFh为0个等待周期

*程序空间8000h-FFFFh为1个等待周期

*程序空间0000h-7FFFh为0个等待周期

*SWCR:

SoftWareWait-StateConctrolRegisterAddress002Bh

*||0|

*||SWSM|

STM#0,SWCR

*等待周期不变

*(STM#1,SWCR等待周期加倍)

*BSCR:

Programabelbank-switchingwaitstatesAddress0029h

*|1512|11|103|2|1|0|

*|BNKCMP|PS–DS|Reserved|HBH|BH|EXIO|

STM#0xF800,BSCR;

1111100000000000

*允许修改PMST中的值

*在连续的读程序或数据空间时插入1个额外的等待周期

*外部存储器的空白区间为4k

*ST0

*|1513|12|11|10|9|80|

*|ARP|TC|C|OVA|OVB|DP|

STM#0,ST0

*数据页指针指向0

*ST1

*|15|14|13|12|11|10|9|8|7|6|5|40|

*|BRAF|CPL|XF|HM|INTM|0|OVM|SXM|C16|FRCT|CMPT|ASM|

STM#0x2b00,ST1;

0010101100000000

*INTM=1将全局中断禁止

*SXM=1数据进入ALU之前进行符号位扩展

*OVM=1益处控制位(参考ST1资料)

*PMST

*------------------------------------------------------

*|157|6|5|4|3|2|1|0|

*-------------------------------------------------------

*|IPTR|MP/MC|OVLY|AVIS|DROM|CLKOFF|SMUL|SST|

*|002011111|0|1|0|0|0|0|0|

*0011111111100100

STM#0x2fe4,PMST;

0010111111100100

*将中断向量表映射到2f80

*MP/MC=0芯片工作在微计算机方式,可以寻址片内程序存储器

*IFRorIMR

*|1514|13|12|11|10|9|8|7|6|5|4|3|2|1|0|

*|RES|DMAC5|DMAC4|BXINT1|BRINT1|HPINT|INT3|TINT1|DMAC0|BXINT0|BRINT0|TINT0|INT2|INT1|INT0|

*||||DMAC3|DMAC2|||DMAC1||||||||

*0000000000000000

STM#0xFFFF,IFR

*清除挂起的中断

STM#0x0000,IMR;

关闭所有中断

*打开定时器0的中断。

*CLKMD

*|PLLMUL|PLLDIV|PLLCOUNT|PLLON/OFF|PLLNDIV|PLLSTATUS|

STM#0,CLKMD

clkcon:

LDMCLKMD,A

AND#0x01,A

BCclkcon,ANEQ

STM#0x43ff,CLKMD;

0100001111111111

*利用软件对CLKMD进行加载(参考教材:

P250)

*PLL=4MUL=5100Mhz;

PLL=3MUL=480Mhz

*TCR

*|1512|11|10|96|5|4|30|

*|Revd|soft|free|PSC|TRB|TSS|TDDR|

STM#0x0010,TCR1;

timer1stop

STM#0x0010,TCR;

TSS=1Timerstop

STM#1000,TIM

STM#1000,PRD

STM#1000,TIM1

STM#1000,PRD1

*定时中断周期=CLKOUT*(TDDR+1)*(PRD+1)

RSBXINTM

STM#0x0088,IMR

*将全局中断使能

NOP

NOP

RET

.end

*********************************************

*Vectors.asm

.includec54.inc

.sect"

.vectors"

.ref_c_int00;

mainprogrom

.refTINT0_ISR

;

.reftimer0,hpisys,usb_read

.align0x80;

mustbealignedonpageboundary

RESET:

resetvector

B_c_int00;

branchtomainprogrom

NOP

nmi:

RETE;

enableinterruptsandreturnfromone

NOP

NOP;

NMI~

softwareinterrupts

sint17.space4*16

sint18.space4*16

sint19.space4*16

sint20.space4*16

sint21.space4*16

sint22.space4*16

sint23.space4*16

sint24.space4*16

sint25.space4*16

sint26.space4*16

sint27.space4*16

sint28.space4*16

sint29.space4*16

sint30.space4*16

int0:

RETE

int1:

NOP

int2:

NOP

NOP

TINT:

BTINT0_ISR;

Timer0中断

NOP

rint0:

xint0:

DMAC0:

DMAC1:

RETE;

tint1

NOP

int3:

HPINT:

RETE

NOP

DMAC2:

rint1

xint1:

RETE

DMAC4:

DM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1