基于TMS320C5420的2FSK設计与实现.docVIP

  • 5
  • 0
  • 约3.81千字
  • 约 6页
  • 2016-11-27 发布于重庆
  • 举报
基于TMS320C5420的2FSK設计与实现

基于TMS320C5420的2FSK设计与实现 [日期:2007-10-9] 来源:现代电子技术 ? 作者:杨英强 [字体:大 中 小] 摘要:基于DSP的软件无线电技术在通信领域得到了广泛的应用。我们使用TI公司的TMS320C5420DSP芯片成功设计了一种兼容2FSK,DPSK,QAM等多种调制解调方式的JH5001通信原理实验系统,在系统硬件不变的情况下只要修改DSP的软件处理部分就能实现无线参数的改变和增加新的功能。详细介绍了用DSP实现2FSK调制解调的算法,并就解调中所应用的数字滤波器做了具体分析。 关键词:DSP;软件无线电;FSK;调制与解调;数字滤波器 ??? 软件无线电是利用大规模集成电路技术,把DSP芯片或通用CPU芯片作为无线通信的基本硬件平台,将尽可能多的无线通信功能(如调制技术、跳频、纠错及加密等)用软件实现。软件无线电技术可以用软件升级来改变无线功能参数,可以按要求的条件编程实现无线通信功能,使系统升级基于软件,其代价小,灵活性强。用TI公司的TMS320C5420DSP芯片成功设计出一种兼容2FSK,DPSK,QAM等多种调制解调方式的JH5001通信原理实验系统,下面以 2FSK为例,详细介绍用DSP软件实现他的原理。 ???? 2FSK调制的DSP软件实现 ???? 2FSK调制的数字振荡器设计 ??? 频移键控FSK调制是用数字基带信号来控制高频载波频率的变化,调制后的载波信号频率代表了要传送的数字信号。二进制FSK(2FSK)是用2个高频载波f1和f2来表示2个数字信号“1”或“0”。2FSK调制的常用方法是将f1和f2的正弦值预先计算出来,制成一个表,DSP工作时仅做查表运算即可实现。在这里采用数字振荡器方法,用迭代方法产生正弦信号。其原理如下:一个传递函数为正弦序列sinkωT的Z变换为: ??? ??? 其中,A=2cosωT,B=-1,C=sinωT。设初始条件为0,求出式(1)的反Z变换为: ???? ??? 这是一个二阶差分方程,对其求单位冲击响应便可得到正弦信号sinkXT。利用单位冲击函数x[k-1]的性质,仅当 ???? k=1时,x[k-1]=1,得到下列递推式: ???? k=0时 y[0]=Ay[-1]+By[-2]+0=0 ???? k=1时 y[1]=Ay[0]+By[-1]+C=C ???? k=2时 y[2]=Ay[1]+By[0]+0=Ay[1] ???? k=3时 y[3]=Ay[2]+By[1] ??? …… ???? k=n时 y[n]=Ay[n-1]+By[n-2] ??? 在k2以后,y[k]能用y[k-1]和y[k-2]计算出来,这样通过迭代就能得到一系列的y[k]值。所设计的数字振荡器产生16kHz和 32kHz的正弦信号,分别代表数据0和1,设置采样频率为96kHz,通过确定上面递归差分方程系数就可求得16kHz和32kHz正弦信号的系数(下标为0的系数是16kHz正弦信号的系数,下标为1的系数是32kHz正弦信号的系数)。 ???? A0=2cosω0T=2cos(2π×16000/96000)=1 ???? B0=-1 ???? C0=sinω0T=sin(2π×16000/96000)=0???? A1=2cosω1T=2cos(2π×32000/96000)=-1 ???? B1=-1 ???? C1=sinω1T=sin(2π×32000?96000)=0???? DSP程序在初始化时先分别计算出产生16kHz与32kHz信号所需要的y[1]和y[2]值,然后开放定时器中断,以后每次进入定时器中断服务程序时,利用已计算出的y[1]和y[2]值重新计算出新的y[0]值,对其求单位冲击响应就可得到16kHz和32kHz的正弦信号。 ???? 2FSK调制的定时与中断设计 ??? 为了保证96kHz的采样频率,需要用到TMS320C5420的中断与定时器。定时器主要由3个寄存器组成,分别是定时器寄存器TIM,每计数一次自动减1;定时器周期寄存器PRD,当TIM减为0后,CPU自动将PRD的值装入TIM;定时器控制寄存器TCR。 ??? 定时器控制寄存器TCR各个比特位的具体定义如表1所示。 ???? ??? 表1 定时器控制寄存器TCR的定义 ???? TMS320C5420的定时器工作原理是:当CLKOUT信号时钟沿到来时,触发PSC。PSC是一个减1计数器,CLKOUT信号时钟沿使PSC减 1,直到PSC为0,然后用TDDR重新装入PSC,同时将TIM减1,直到TIM减为0,这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致,然后用PRD重新

文档评论(0)

1亿VIP精品文档

相关文档