做一个FSK的收发试验 之三

73 篇文章 11 订阅
25 篇文章 50 订阅

之前我们写好了收发模块并进行了仿真,这个BLOG我就尝试在ZEDBOARD+FMCOMMS3试验平台上实现。

我们看上篇BLOG实现到的效果,BIT_IN经过了调制,之后经过解调(符号位过0检测)直接反应到BIT_OUT。

而我们实际在试验平台上检测要加上射频部分。大体过程这样:

发送端:BIT_IN -> FSK_modulator -> 上变频到2.4G(别的频率也可以)-> 天线

接收端:天线->下变频到基带->FSK_DEmodulator->BIT_OUT

当然这个过程省略了AD9361里面进行的各种插值和抽取。

我们这里自收自发,使用1R1T模式。

 

我们这里直接做成AXILITE外设的IP核。将几个参数都设置的可以改写。OK 动手开始。


	// Add user logic here


wire [15:0] cnt0,cnt1 ;
wire [7:0] step0,step1 ;
assign {cnt1,cnt0} = slv_reg1[31:0] ;
assign {step1,step0} = slv_reg2[15:0] ;
assign {v_short,v_long} = slv_reg3[31:0] ;

wire [11:0] sin,cos;
always @ (posedge bb_clk)  bb_i_out[15:0] <= { sin[11:0],4'b0000 } ; 
always @ (posedge bb_clk)  bb_q_out[15:0] <= { cos[11:0],4'b0000 } ;
 
FSK_modulator   FSK_modulator (
 .bb_clk(bb_clk),
 .bit_in(bb_bit_in) ,
 .cnt0( cnt0 ),
 .cnt1(cnt1),
 .step0(step0),
 .step1(step1),
 .sin(sin) ,
 .cos(cos)  
);

 reg flag_bit ;
 always @ (posedge bb_clk)  flag_bit <= bb_q_in[11+4] ; 

 FSK_DEmodulator #(.SHORT_VALUE (1) ) FSK_DEmodulator (
.bb_clk(bb_clk),
.bit_out(bb_bit_out)  ,
.v_short(v_short) , 
.v_long(v_long) ,
.flag_bit(flag_bit)   
);

 
	// User logic ends

大体看看没有什么问题了,IP是这一个样子。

 

bb开头表示是BASEBAND时钟域。这里的bb_bit_in和bb_bit_out我接在了PMOD上,我接一个USB转串口在上面,一会儿看是否可以进行回环测试,即TXD=RXD.测试OK。

写一下C语言部分的驱动


void FSK_TX_SET(unsigned int cnt0,unsigned int cnt1,unsigned int step0,unsigned int step1){

	unsigned int t;

	cnt0  &= 0xffff;	cnt1  &= 0xffff;	step0  &= 0xff;step1  &= 0xff;
	t = cnt1;t<<=16;t|=cnt0;
	*(volatile unsigned int *) (0x43c00000 + 1*4) = t ;
	t = step1;t<<=8; t|=step0;
	*(volatile unsigned int *) (0x43c00000 + 2*4) = t ;
}

void FSK_RX_SET(unsigned int v_short ,unsigned  int v_long ){

	unsigned int t;
	v_short &= 0xffff;	v_long  &= 0xffff;
	t = v_short;t<<=16;t|=v_long;
	*(volatile unsigned int *) (0x43c00000 + 3*4) = t ;
}



void FSK_SET (){
	FSK_TX_SET (0,0,4,9);   
	FSK_RX_SET(50,80);
}




之后编译一下,看看效果如何。

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值