您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页软件无线电实验报告资料

软件无线电实验报告资料

来源:抵帆知识网
电 子 科 技 大 学

实 验 报 告

学生姓名: 学 号: 指导教师: 邮 箱:

一、 实验名称:软件无线电实验平台基本通信实验 二、 实验目的:

1. 了解软件无线电实验平台基本模块:ARM模块、FPGA模块、DSP模块、

BASEBAND AD\\DA模块及RF模块的功能及其工作原理;

2. 熟悉CCS、ISE软件平台;能够熟练地对DSP及FPGA程序进行调试; 3. 掌握TMS320C6713的HPI接口;通过发送HPI中断给ARM,熟悉ARM

与DSP的通信方式;

4. 掌握AD9201,AD9761的工作原理以及工作时序图;编写FPGA控制

AD、DA的VHDL程序;

三、 实验原理:

1. 软件无线电实验平台组成及工作原理

高级软件无线电综合实验系统平台由6个模块组成,分别如下:ARM模块、FPGA模块、MCU模块、DSP模块、BASEBAND AD\\DA模块、RF模块。

各模块功能如下:

ARM(S3C2410)模块其上的操作系统为WINCE5.0,提供用户交互界面。应用程序与FPGA的交互通过SPI接口驱动实现,应用程序与DSP(C6713)的交互通过HPI接口驱动实现;

DSP(C6713)模块主要实现基带信号的调制与解调。其与ARM的接口为HPI;与FPGA的接口是MCBSP;

FPGA(XC3S400)主要实现外部模拟信号的AD采样,以及数字与模拟转

1

换的DA控制,与RF模块联合实现CC2420的功能。其与DSP的接口为MCBSP,与MCU(C8051F120)是通过SPI以及MCU的P1、P3口实现交互;

MCU模块主要实现对RF发射功率,发射、接收信道等一些工作参数配置。其与FPGA的交互是通过SPI以及P1、P3口实现的;

BASE BAND AD\\DA模块主要实现数模转换的功能;

RF模块主要实现将基带信号转化为射频信号,然后发射出去。其与FPGA的通信是通过RF自定义接口实现的。

各模块间的通信以及接口示意如图1所示:

AD/DA数据总线DSP(C6713)SPIMCU(8051F120)P1&P3FPGAXC3S400控制SPIRF接口ARM(S3C2410)TFT LCD4.3'EARPHONERS232RS232RS232RJ45USBARM JTAGFPGA JTAGHPIDSP JTAGRFMCU JTAGMCBSPBASE BANDAD\\DA 图1 软件无线电实验平台模块结构

2. DSP与ARM通信原理

DSP与ARM通过HPI接口协同工作,实现通信。ARM主要提供用户交互的界面,用户可以在程序界面中输入传输的数据,ARM将用户输入的数据通过HPI口发送给DSP,并且通知DSP开始工作。DSP在接收到ARM发送的开始工作命令后,从固定的地址获取ARM传送的数据长度以及数据存放地址,然后到相应地址读取数据,将读取到的数据进行搬移,搬移完毕后发送HINT中断给ARM通知DSP数据操作已经完成。ARM接收到DSP发送的HINT中断后从DSP相应位置读取DSP搬移后的数据,重新在应用程序界面中显示。工作原理简易

2

框图如图2所示:

置FLAG=1启动DSP数据用户输入数据ARM发送HINT中断数据BLOCK2BLOCK1搬移DSP显示处理后数据

图 2 DSP和ARM工作原理框图

HPI接口简介

HPI口是并行接口, HOST可以通过HPI口直接访问DSP的存储空间。HOST作为HPI接口的主控,访问非常便捷。

HOST与DSP可以通过内部或者外部存储器交换信息。并且HOST端可以直接访问内存映射的外设。HPI与DSP的CPU连接是通过DMA或者EDMA实现的。HOST以及DSP都可以访问HPI控制寄存器HPIC。通过外部数据以及接口控制信号HOST端可以访问HPI地址寄存器HPIA,HPI数据寄存器HPID。CXX系列DSP端CPU也可以访问HPIA。

TMS320C6713的HPI硬件接口如图3 所示:

图 3 DSP HPI 接口示意图

3

其时序图如图4:

图4 HPI 时序图

DSP程序示例

DSP与ARM通信完成如下内容:

1. 在数据输入界面中输入数据按ENTER后,ARM将用户输入的数据长度一通过HPI口写在DSP的SDRAM的0X20008地址中;把用户输入数据所存储的地址放在0x10000的地址单元中;把数据写在0X20004(存储在0X1000)开始的位置。置位FLAG=1通知DSP用户已经输入数据。

2. DSP在检测到0x20000存储的数据为1后,首先从0X20008获取用户输入的数据长度;然后从0X1000获得用户输入的数据存储在何位置。在得到位置与长度信息后,DSP程序将数据拷贝到0x80000000为开始的位置。完成数据搬移后,DSP发送HINT中断,通知ARM,数据处理已经完成。 如上功能的DSP示例程序如下:

while(1)

{

flag=*((int *)(0x20000)); if(flag==1) {

temp=(*((int *)0x20004)); pData=(int *)temp;

iCountData=*((int *)0x20008);

4

pMovedData=(int*)0x80000000; (*pMovedData++)=iCountData; for (i=1;i<=iCountData;i++) { }

HPI_setHint(1);

(*pMovedData++)=(*pData++);

} }

3. FPGA控制AD、DA实验

本实验根据数模转换器芯片AD9201,AD9761的工作时序,首先对输入的模拟信号用进行采样,然后将采样值直接通过DA发送出去。

AD9201简介

AD9201最高采样率为20MSPS,分辨率为10bit,是双通道CMOS电平的模数转换器。在需要2路ADC匹配(例如通信中的I、Q两路信号)的应用中,AD9201性能优越。20MHz的采样率、输入带宽大,使AD9201能应用在扩频与窄带信道。

AD9201时序图

图5 AD9201时序图

注:SELECT为AD9201内部的异步二选一管脚。在CLOCK的上升沿,对输入的两路信号进行同步采样,然后经过SELECT选择输出数据的通路。

5

AD9761简介

AD9761是采样率20M、10 bit高速双通道数模转换器。宽带通信中经常需要处理同相和正交(I、Q)两路数据,AD9761的双通道可提供两路信号输出。

AD9761时序图

图6 AD9761时序图

注:SELECT异步选择输入,当为高时将DA的数据锁存到I路,当为低时锁存到Q路。

FPGA控制AD、DA程序示例

由于外部晶振频率为48MHz,而AD采样率最高20MHz,DA速率为20MHz,因此程序中首先利用DCM对晶振输出的频率进行3分频,即16MHz,DCM输出的频率作为AD9201以及AD9761的时钟。关键程序代码段如下:

AD控制部分代码

signal iq_sel_int : std_logic; signal temp_q begin

adc_cs <= '0'; adc_clk <= iq_sel_int; adc_select <= not iq_sel_int; process(rst,ext_adclk) begin

if rst = '0' then

temp_q <= (others => '0'); adc_i <= (others => '0');

: std_logic_vector(9 downto 0);

adc_q <= (others => '0');

6

iq_sel_int <= '0';

elsif ext_adclk'event and ext_adclk = '1' then iq_sel_int <= not iq_sel_int;

if iq_sel_int = '0' then

temp_q <= adc_din;

else adc_i <= adc_din; adc_q <= temp_q;

end if;

end if;

end process;

DA控制代码

signal da_select_int:std_logic; begin

da_rst<=not rst; da_clk<=not ext_daclk; da_write<=not ext_daclk; da_select<=da_select_int; process(ext_daclk)

variable cnt:integer range 0 to 1;

begin

if rising_edge(ext_daclk)then

if rst='0' then else

da_select_int<=not da_select_int; if da_select_int='0'then else

da_out<=qd; da_out<=id; da_select_int<='0';

end if;

end if;

end if;

7

end process;

四、 实验内容

(1)DSP与ARM的通信实验; (2)FPGA控制AD、DA实验。

五、 实验步骤

1.

DSP与ARM的通信实现

(1) DSP与ARM的通信演示实验

A. 运行ARM端程序RADIO.EXE,选择扩展实验的DSP和ARM通信实验,

按下“确认”进入该实验界面; B. 连接好DSP仿真器;

C. 打开CCS,打开工程文件ARM_DSP_hpi.pjt。

D. 选择Project->Rebuild All,编译完成后选择File->LoadProgram找到

ARM_DSP_hpi.out选择打开,通过JTAG下载DSP程序; E. 运行DSP程序Debug->Run;

F. 在界面数据输入框内输入0-20个数据,按Enter,此时在ARM端接收界

面会显示经过DSP处理的数据;

输入数据: 1234567876321000 显示数据: 1234567876321000 注:DSP端程序在输出BUFFER的数据格式必须为第一个INT为数据长度,并且数据长度不能大于40(否则数据在ARM端不能全部显示)。 (2) DSP与ARM的通信实验实现

A. 打开主程序文件main.c;

B. 修改原程序中 (*p MovedData++) = (*pData++);为(*pMovedData++) =

(*pData++) +1;

C. 在CCS中编译运行程序,重新在数据输入界面输入数据按ENTER;

8

D. 在ARM端应用程序界面的右边数据显示栏观察结果,记录实验现象(左

边数据加1):

输入数据: 1234567876321000 显示数据: 234567A987632111

(3) DSP与ARM的通信扩展实验

通过修改SETHINT在程序中的位置来修改DSP端何时发送HPI中断给HOST端。

内容:实现10000个循环延时后发送中断。 修改代码如下:

for(j=0;j<10000;j++) { }

HPI_setHint(1); */

/*send hint interrupt to host to request to service

修改完成后在CCS中编译运行程序,在ARM应用程序界面中重新输入数据按ENTER。观察:ARM应用程序右边数据接收窗口,记录观察结果(数据更新速率应当降低):

输入数据: 1234567876321000 显示数据: 234567A987632111

2.

FPGA控制AD、DA实验

(1)FPGA控制AD、DA过程演示实验

A. 编译AD_DA_LOOP工程,编译完后将bit文件下载到FPGA中; B. 连接信号发生器到平台的RXI,对信号发生器进行设置产生500KHZ的正弦信号,然后发送;

9

C. 在ARM端应用程序界面进入->扩展实验->FPGA扩展实验->FPGA控制AD/DA实验,按ENTER然后用示波器观测平台的TXI、TXQ发出的波形。

(2)改变DA控制程序,使DA的I路输出单频正弦波。 variable cnt:integer range 0 to 1;

begin

if rising_edge(ext_daclk)then

if rst='0' then

da_select_int<='0';

else

da_select_int<=not da_select_int; if da_select_int='0'then

da_out<=qd;

else

10

da_out<=id;

end if;

end if;

end if;

end process;

end Behavioral;

六、 分析和思考:

简述DSP的McBSP工作原理。

McBSP包括一个数据通道和一个控制通道,通过7个引脚与外部设备连接。数据发送引脚DX负责数据的发送,数据接收引脚DR负责数据的接收,发送时钟引脚CLKX,接收时钟引脚CLKR,发送帧同步引脚FSX和接收帧同步引脚FSR提供串行时钟和控制信号。

七、 实验器材(设备、元器件):

计算机、软件无线电实验箱、信号发生器、示波器、DSP仿真器、FPGA仿真器、+5V电源

八、 所需主要元器件及耗材

连接线、计算机串口连接线

九、 对本实验过程及方法、手段的改进建议:

报告评分:

指导教师签字:

11

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务