微波EDA网,见证研发工程师的成长!
首页 > 微波射频 > RFIC/MMIC > 用于RF收发器的简单基带处理器

用于RF收发器的简单基带处理器

时间:02-13 来源:ADI公司 点击:

备前的中间正交信号上经过BPSK调制和解调。因此,中间信号频率和数据的位速率是采样速率的八分之一。基带处理器模块及上述设计细节如图2和3所示。

图2. BBP发送功能框图

图3. BBP接收功能框图

发送器读取数据字节(字符宽度),并将其转换为带有表头或前同步码的数据包。将CRC添加到数据包末端。然后,对数据包数据进行加扰和串行处理。在连接到收发器之前,单个位数据相位调制余弦(I)和正弦(Q)函数。

在接收方向,离线模块恢复并跟踪时序间隔和调制信号的相对相位。该信息用于从输入的ADC样本中恢复串行数据。然后组装到数据包,并进行解扰。在数据包结束时,比较CRC,如果不匹配,则丢弃数据包。如果CRC匹配,数据传递给终端用户。

实现

BBP设计在硬件中实施和测试。硬件是两个评估板的组合:具有Zynq FPGA设备的Xilinx ZC706评估板,以及具有AD9361收发器的AD-FMCOMMS3-EBZ评估板。ADI提供支持该硬件的完整参考设计。该开源设计在主要工具版本中免费提供,可获得完全支持和更新。硬件详细信息参见下列URL:

ZC706
AD-FMCOMMS3-EBZ
Zynq SOC
AD9361
ADI GitHub库
ZC706和AD-FMCOMMS3-EBZ HDL参考设计
AXI AD9361 IP

ADI参考设计是支持Linux®框架的嵌入式系统。包含围绕ARM®处理器的各种外设。AD9361设备连接到axi_AD9361 IP外设。它在RF设备和系统存储器之间传输原始采样数据。外设和设备通过Linux内核驱动程序进行初始化和控制。BBP则作为连接到axi_AD9361的另一个IP外设。出于历史原因,BBP IP命名为axi_xcomm2ip。Linux中的用户空间应用程序用于在系统之间控制、发送和接收数据。

在ADI参考设计中,在发送方向,axi_AD9361 IP连接到解包模块(util_upack),在接收方向,连接到打包模块(util_cpack)。在发送方向,BBP数据插入解包模块和AD9361内核之间。为了使其不影响默认数据路径,BBP支持可选的数据路径多路复用器,以选择解包数据源或BBP数据源。BBP允许参考设计数据路径作为默认路径,并仅在启用时选择BBP数据源。在接收方向,BBP仅连接到AD9361内核。参考设计数据路径不受影响。这允许框架不受妨碍地引导和设置系统。在系统设置后,启用BBP,可通过覆盖默认数据路径来进行数据传输。以ADI参考设计实施的BBP的框图如图4所示。

图4. BBP IP框图

本文中讨论的设计、初始化和数据传输使用一对这种硬件。设置仅需一对HDMI®监视器、键盘和鼠标及天线。系统彼此完全不同步,但需要相同设置。在每个方向,数据在不同载波上传输。设备1的发射载波频率和设备2的接收载波频率相同,但在另一个方向上不同。然而,如果回送中使用单个设备,发射和接收载波必须具有相同的频率。BBP的HDL设计采用ADI库模块。

表1. BBP寄存器映射

控制(微处理器)接口

AXI-Lite接口用于通过处理器控制和监控BBP。使用ADI公共库(hdl/library/common/up_axi.v)中的up_axi模块,可以轻松推断该接口模块。该模块将AXI-Lite接口转换为简单内存,如读取和写入总线。和任何其他ADI IP一样,添加内部寄存器和内存。寄存器映射如表1所示。

up_axi模块端口及其端口映射如下所述。
up_rstn:AXI接口复位(异步低电平有效),连接到s_axi_aresetn。
up_clk:AXI接口时钟,连接到s_axi_aclk。
up_axi_*:AXI接口信号,连接到等效s_axi_*端口。
up_wreq, up_waddr, up_wdata, up_wack:内部写入接口,up_wreq信号与地址和数据一同置位,以指示写入请求。请求需要通过up_wack端口应答。

如下所示,实施简单的寄存器写入。

always @(negedge up_rstn or posedge up_clk)
begin
if (up_rstn == 0) begin
up_wack up_reg0 end else begin
up_wack if ((up_wreq_s == 1’b1) && (up_waddr == UP_
REG0_ADDRESS)) begin
up_reg0 end
end
end

模块在二者之间执行地址转换。AXI接口使用字节地址,但内部总线使用DWORD地址。结果是,up_axi模块丢弃AXI地址的两个最低有效位,以生成内部DWORD地址。

up_rreq, up_raddr, up_rdata, up_rack:内部读取接口,up_rreq信号与地址一同置位,以指示读取请求。请求需要与读取数据一同通过up_rack端口应答。

如下所示,实施与上述相同的寄存器用于读取。

always @(negedge up_rstn or posedge up_clk)
begin
if (up_rstn == 0) begin
up_rack up_rdata end else begin
up_rack if ((up_rreq_s == 1’b1) && (up_raddr == UP_
REG0_ADDRESS)) begin
up_rdata end else begin
up_rdata end
end
end

相同地址转换也适用于读龋读取数据仅在请求时驱动,否则设置为零。这是因为up_axi模块将单个读取数据从各个地址组传递到

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top