- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电 子 科 技 大 学
实 验 报 告
学生姓名: 学 号: 指导教师:
一、实验室名称:通信信号处理及传输实验室
二、实验项目名称:软件无线电实验平台基本通信实验
三、实验原理:
软件无线电实验平台组成及工作原理
高级软件无线电综合实验系统平台由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采样,以及数字与模拟转换的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所示:
图1 软件无线电实验平台模块结构
DSP与ARM通
图 DSP和ARM工HPI接口简介
C64XX系列DSP端CPU也可以访问HPIA。
TMS320C6713的HPI硬件接口如图3 所示:
图 3 DSP HPI 接口示意图
其时序图如图4:
图4 HPI 时序图
DSP程序示例
0X20008地址中;把用户输入数据所存储的地址放在0x10000的地址单元中;把数据写在0X20004(存储在0X1000)开始的位置。置位FLAG=1通知DSP用户已经输入数据。
DSP在检测到0x20000存储的数据为1后,首先从0X20008获取用户输入的数据长度;然后从0X1000获得用户输入的数据存储在何位置。在得到位置与长度信息后,DSP程序将数据拷贝到0开始的位置。完成数据搬移后,DSP发送HINT中断,通知ARM,数据处理已经完成。
如上功能的DSP示例程序如下:
while(1)
{
flag=*((int *)(0x20000));
if(flag==1)
{
temp=(*((int *)0x20004));
pData=(int *)temp;
iCountData=*((int *)0x20008);
pMovedData=(int*)0
(*pMovedData++)=iCountData;
for (i=1;i=iCountData;i++)
{
(*pMovedData++)=(*pData++);
}
HPI_setHint(1);
}
}
FPGA控制AD、DA实验
AD9201时序图
图 AD9201时序图
图6 AD9761时序图
注:SELECT异步选择输入,当为高时将DA的数据锁存到I路,当为低时锁存到Q路。
FPGA控制AD、DA程序示例
由于外部晶振频率为48MHz,而AD采样率最高20MHz,DA速率为20MHz,因此程序中首先利用DCM对晶振输出的频率进行3分频,DCM输出的频率作为AD9201以及AD9761的时钟。关键程序代码段如下:
AD控制部分代码
signal iq_sel_int : std_logic;
signal temp_q : std_logic_vector(9 downto 0);
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);
adc_q = (others = 0);
iq_sel_int = 0;
elsif ext_adclkevent and ext_adclk = 1 then
iq_s
文档评论(0)