2024年6月3日发(作者:)
中 国 科 学 院 上 海 天 文 台 年 刊
2009
年 总第
30
期
ANNALSOFSHANGHAIOBSERVATORYACADEMIASINICA
No.30,
2009
DBBC
数字部分控制功能的设计与实现
吴亚军
1,2
3
项 英 张秀忠 赵融冰
提 要
111
(
1.
中国科学院上海天文台
,
上海
200030;
2.
中国科学院研究生院
,
北京
100049
)
宽带数字化
VLBI
记录终端是国际
VLBI
服务组织
(
IVS
)
VLBI2010
发展计划的关键设备。上
海天文台进行了数字基带转换器
(
DBBC
)
的研究。
DBBC
由模拟射频部分和数字部分两大模块组
成。数字部分控制功能主要实现
FPGA
加载、
BBC
参数设置和读取、系统工作状态的监视等功能。
该文研究了以
XilinxFPGA
为平台构建基于
PowerPC
(
硬核
)
和
PCI
总线
(
OPB_PCI
软核
)
的嵌入式
系统
,
接收控制计算机命令
,
并作相应的处理以实现数字部分控制功能。
主题词
:DBBC
—控制功能—
FPGA
—
PowerPC
—
OPB_PCI
分类号
:P228.6,TP273
1
引 言
甚长基线干涉测量技术
(
VeryLongBaselineInterferometry,VLBI
)
是现代天文观测中分辨
率最高的观测手段。
VLBI
数据采集系统作为
VLBI
台站的主要设备
,
承担着频段选择、数据采
集、数据编码、数据记录等任务。宽带数字化
VLBI
记录终端是国际
VLBI
服务组织
(
IVS
)
VL
2
BI2010
发展计划的关键设备
,
用来替代维护艰难、国际上已不再生产的模拟基带转换器
(
Ana
2
logBase
2
BandConverter,ABBC
)
。数字终端在更高的频率上将模拟信号数字化
,
以
FPGA
(
FieldProgrammableGateArray
)
或
DSP
为处理器
,
利用丰富的数字信号处理技术
,
实现将中频
的数字信号转化为数字的基带信号。
目前国际上进行
VLBI
宽带数字化终端研究的主要有欧洲的
EVNDBBC
(
DigitalBase
2
BandConverter,
数字基带转换器
)
、美国的
DigitalBackend
(
DBE
)
、日本的
ADS3000
系列和中
国的
DBBC
。其中欧洲较早开始相关的研究
,
目前正在研制
EVNDBBC.2
。其
DBBC
对四
路
512M
或
1024M
带宽的中频模拟信号采样后
,
经过数字混频、
FIR
(
FiniteImpulseResponse,
[4
~
7,12]
有限冲激响应
)
滤波等处理
,
实现数字下变频。美国的
DBE
将中频信号数字化后
,
采用
多相滤波加
FFT
(
FastFourierTransform,
快速傅立叶变化
)
的复数调制滤波器组来划分频带
,
目
[8
~
10]
前该项目进展到研制
DBE2
的阶段。日本的
K5
系统数据采集系统为
ADS
系列
,
其早期
产品有
ADS1000
和
ADS2000
。
ADS1000
提供一个通道
512M
带宽的数据
,
专用于测地
VLBI
。
ADS2000
有
16
通道的输入
,
每个通道由
64M
的
AD
采样器量化
,
产生一个通道的输出。其最
新的系统是
ADS3000Plus,
该系统的算法部分也是由
FPGA
实现
,
可以通过对
FPGA
的重新配
收稿日期
:2009
2
02
2
23;
修回日期
:2009
2
03
2
24
3国家自然科学基金
(
No.10503009
)
项目资助课题。
[4]
[1
~
3]
52
中国科学院上海天文台年刊
2009
年
置实现不同的应用。目前提供的
16
通道样机能够用于传统的测地
VLBI
观测。该系统还处
[11]
于研制阶段。
因为探月二期工程和天文观测的需要
,
上海天文台也在进行数字终端
DBBC
的研制
,
采用
了类似欧洲的方式。整个
DBBC
由两部分———模拟射频部分和数字部分组成。模拟射频部分
提供宽带
(
512M
带宽
)
的中频信号和与氢钟同步的
1024M
时钟信号。数字部分分为数字信号
处理部分和控制部分。数字信号处理部分通过数字算法实现数字下变频
,
该部分完全在
Xil
2
[12
~
14]
inxFPGA
内实现
。控制部分主要实现
FPGA
加载、
BBC
参数设置和读取、系统工作状态
的监视等控制功能。
DBBC
数字部分为基于
cPCI
总线的凌华工控机
,
在其
PCI
插槽上插入
1
块商用
CPU
主卡
和
5
块自行研制的板卡
(
四块信号处理板和一块信号综合板
)
。
CPU
主卡运行
linux
操作系
统
,
通过
cPCI
总线对其他的板卡进行
FPGA
加载和参数的配置。每一块数字信号处理板上有
一块高速
A/D
、一块
XilinxVirtex4FX60
和四块
XilinxVirtex4LX160,
其中
FX60
芯片中有一个
PowerPC
处理器的硬核。
图
1
表示
DBBC
数字部分的主要部件
,
其中虚线框内部分在信号处理板上实现。模拟中
频信号经过
A/D
后成为数字信号
,
被依次送到四块
LX160
芯片做信号处理
,
得到具有一定带
宽的基带信号。信号综合板对基带信号作选择后将其送到
VLBI
数据记录设备
(
比如
Mark5B
)
。而对于控制部分
,FX60
芯片接收控制计算机的指令后
,
根据该指令控制相应的
LX160
芯片内的数字信号处理部分。
图
1
DBBC
数字部分主要部件
Fig.1
BasicComponentsofDigitalpartofDBBC
本文拟讨论在信号处理板的
FX60
芯片内
,
以
ISE
、
EDK
集成开发环境为工具
,
搭建基于
PowerPC
处理器的硬件平台
,
通过
PCI
控制器的
IPCore
(
OPB_PCI
)
与工控机的
PCI
总线相连
,
总第
30
期 吴亚军等
:DBBC
数字部分控制功能的设计与实现
53
实现与工控机的信息交互
;
在
PowerPC
内
,
以
C
语言编写程序实现控制功能。在本设计中
,
PowerPC
处理器、
DDR
控制器、
PCI
总线控制器、串口控制器以及其他功能模块在一片
FX60
芯
片内实现
,
有较高的集成度
,
使得信号处理板的设计和制作更为方便、可靠性更高
,
同时也降低
了成本。
2
硬件平台的建立
DBBC
控制部分由
XilinxVirtex4FX60FPGA
芯片和一些外围器件组成。图
2
是其实现框
图
,
虚线方框内功能在
FX60
内实现。在该设计中
,
借助于
OPB_PCI,
控制计算机可以通过
PCI
总线间接访问
DDR,
而
PowerPC
可以通过
PLB
(
ProcessorLocalBus,
处理器本机总线
)
总线直
接访问
DDR,
这样以
DDR
为中介实现了控制计算机和
PowerPC
的通信
;PowerPC
通过
FPGA
配置模块能够加载用于信号处理的
LX160
芯片
;GPIO
(
GeneralPurposeI/O,
通用输入输出
)
可
以实现
PowerPC
与
LX160
的通信
,
从而执行其他的控制功能。下面将分别介绍各模块。
图
2
DBBC
控制功能硬件平台框图
Fig.2
HardwarePlatformofDBBCControllingPart
PowerPC
处理器
:
内嵌于在
FX60
的
PowerPC405,32
位
RISC
硬核。
PLB
总线接口
:
用于
PowerPC405
内核与高性能设备的连接。
OPB
总线接口
:
片上外设总线
,
内核通过
OPB
来访问低速和低性能的系统资源。它不是
直接连接到处理器内核。处理器内核借助于“
PLBtoOPB
”桥
,
通过
OPB
访问外设
;OPB
总线
控制器的外设可以借助“
OPBtoPLB
”桥
,
通过
PLB
访问存储器。
54
中国科学院上海天文台年刊
2009
年
DDR
控制器
:
该控制器由
Xilinx
的
MPMC
(
multi
2
portedmemorycontroller
)
工具生成
,
用于
连接
PLB
总线和外围
DDR
内存。
FPGA
配置模块
:
在
EDK
集成开发环境中生成的用户定制
IP,
作为
PLB
总线的外设
,
其功
能是从
PCI
总线上接收
LX160
的配置文件并对
LX160
做配置。
OPB_PCI:32bit
的
OPB
总线和
PCI
总线的连接桥。该桥实现
OPB
总线和
PCI
总线
(
控制
计算机的总线
)
的连接以及地址空间的映射。
GPIO:
作为通用
I/O,
实现
OPB
总线与其他外设的连接。在本设计中
,
主要用于连接实现
信号处理算法的
FPGA
芯片
LX160
。
下面将分别介绍几个重要模块的配置。
2.1OPB_PCI
的配置
该
IP
核由
Xilinx
公司提供
,
符合
PCI2.2
标准
,
支持
33/66MHz
、
32/64
位数据的传输。关
于该
IP
核的详细资料请查阅参考文献
[15]
。在本设计中采用
33MHz,32bit
。
OPB_PCI
的外围接口信号可分为两类
:PCI
侧信号和
OPB
侧信号。前者是符合
PCI
总线
规范的标准信号。该核的功能就是实现
PCI
侧信号和
OPB
侧信号的转换。在本设计中
,OPB
_PCI
设置为
PCI
总线的从设备
,
将
DDR
的内存地址映射为
PCI
总线的地址
,
实现
PCI
总线对
DDR
的访问。主要的配置如下
:
(
1
)
设备
ID
和发行商的
ID:
用于在整个计算机系统中唯一标识本设备。系统要靠这一标
识来对其进行驱动程序的映射
,
只有硬件配置标识和驱动程序里面的标识相符时
,
设备才能被
正确地驱动。由于
FPGA
芯片是
Xilinx
公司生产的
,Xilinx
公司的
ID
为
0x10EE,
设备
ID
只要
与系统中其他设备不冲突即可。
(
2
)
地址空间的映射
:
在本设计中
,PCI
总线的地址空间由控制计算机的操作系统分配
,
对
该地址空间的访问要转换成对
DDR
的访问
,
如果
DDR
在内存中基地址为
0x0,
则将
PCI
总线
[16]
到
OPB
总线的转换地址设置为
0x0
可实现上述目标。
2.2DDR
控制器的配置
在本设计中
DDR
内存由两片
InfineonHYB25D256160BT-7
芯片组成
,
共
64MB
的存储空
间
,
每片
16bits
位宽
,
一起组成
32bits
位宽。
DDR
控制器由
MPMC
工具生成。在使用该工具
时
,
选择正确的
FPGA
型号、
DDR
芯片型号以及
CPU
时钟、
DDR
工作时钟、总线类型等。在本
设计中
,PowerPC405
的时钟为
300MHz,PLB
总线时钟和
DDR
工作时钟均为
100MHz
。
该控制器外围接口信号有三部分
:
时钟相关信号、
DDR
侧信号和
PLB
侧信号。时钟相关
信号用来产生控制器工作时钟
,
包括输入时钟、
90
°相移时钟和倍频时钟
,
在设计中由
DCM
(
digitalclockmanagement,
数字时钟管理器
)
提供。
DDR
侧信号连接到
DDR
芯片的对应端口。
该控制器的功能是在通过
PLB
总线访问
DDR
时
,
将
PLB
总线信号转换成
DDR
的信号。
2.3GPIO
的配置
GPIO
与信号处理的
FPGALX160
相连接
,
实现对数字算法部分的控制
,
分为两部分
:
数据
线和控制线。数据线为
34bits
双向总线
,
控制线为
12bits
单向总线。而每组
GPIO
最多
32bits,
输入输出可以控制
,
因此需要两组
GPIO,
第一组位宽为
32bits,
方向为双向
,
全部用作数据线
;
第二组位宽为
14bits,
其中低两位用于数据线、其余用于控制线。
总第
30
期 吴亚军等
:DBBC
数字部分控制功能的设计与实现
55
3
控制功能软件设计
控制部分软件的设计目标是在控制计算
机将控制操作命令通过
PCI
总线送到
DDR
后
,PowerPC405
从
DDR
中读取控制命令
,
根据
命令的类型
,
执行相应的操作
,
主要的操作有
:
配置
FPGALX160
、设置
BBC
通道参数、读取
BBC
通道参数和监测系统工作状态。
该部分全部在
EDK
(
EmbededDevelop
2
mentKit
)
中开发
,
以
C
语言编写程序。在本设
计中没有使用操作系统
,
即
standalone
模式
,
在
该模式下
,
开发的多个任务串行执行
,
而且
EDK
函数库提供硬件初始化和自带
IP
的底层
驱动。控制功能软件设计流程图如图
3
所示。
从系统上电软件程序开始运行
,
首先要扫描外
设并对所有外设作初始化
,
然后循环读取并执
行命令以及检测系统状态
,
直到系统断电程序
停止运行。
根据不同的命令类型有三个子程序可供
调用
,
分别实现上述三种操作
:
图
3
控制部分软件流程图
intfpga_config
(
intbaseaddr
)
配置
LX160;
Fig.3
TheSoftwareFlowofDBBCControllingPart
voidbbc_para_set
(
intbaseaddr
)
设置
BBC
参
数
;voidbbc_para_read
(
intbaseaddr
)
读取
BBC
参数。
在程序的运行中需要访问
DDR
、
GPIO
和用户定制的
FPGA
配置模块。其中
GPIO
由
EDK
提供的驱动访问
,
主要有下面的函数
:
Void
XGpio_mSetDataDirection
(
Xuint32BaseAddress,unsignedChannel,Xuint32Direc
2
tionMask
)
GPIO
读
/
写设置
Xuint32
XGpio_mGetDataReg
(
Xuint32BaseAddress,unsignedChannel
)
读
GPIO
Void
XGpio_mSetDataReg
(
Xuint32BaseAddress,unsignedChannel,Xuint32Data
)
写
GPIO
DDR
和
FPGA
配置模块的访问可以由通用的内存读写函数实现
:
Xuint32XIo_In32
(
XIo_AddressInAddress
)
内存读
;
voidXIo_Out32
(
XIo_AddressOutAddress,Xuint32Value
)
内存写
;
4
系统测试
FX60
在系统上电后从
PROM
(
Programmableread
2
onlyMemory
)
读取配置文件完成自身加
载并开始运行软件程序。控制计算机发出命令后
,FX60
中的固件自动接收命令并根据命令类
56
中国科学院上海天文台年刊
2009
年
型完成对
LX160
加载、
BBC
参数设置或读取、系统状态监视。图
4
是控制计算机的命令窗口。
在该窗口中
,
通过一些输入和点击操作
,
就可以完成
LX160
的配置和
BBC
参数的设置等功能
并接收
DBBC
数字部分工作状态的反馈。
图
4
控制计算机的命令窗口
Fig.4
TheWindowofControllingComputer
DBBC
采集的数据通过
Mark5B
记录在硬盘中
,
以
Matlab
编写的程序处理记录的数据测试
DBBC
的性能
,
并与
ABBC
做比较。次页中图
5
是
2M
带宽的
ABBC
数据和
DBBC
数据的零基
线处理结果。每幅图有四幅子图
,
分别是两个通道的自相关幅度谱和互相关的幅度谱、相位
谱。从图中可看出
,DBBC
能得到零基线条纹
,
条纹与
ABBC
相当。从带通性能上看
,DBBC
在
低频部分和高频部分都有一部分衰减较大
,
而
ABBC
仅在高频部分有衰减
,
但是从整个带宽上
看
DBBC
的有效带宽略宽
,
而且带通更为平坦。从零基线条纹上看
,
目前
DBBC
两通道间的相
位一致性比
ABBC
差
,
两通道间的延时较大
,
这个问题相信可由数字算法部分更精细的设计来
解决
,
通过在相应通道内增加延时单元拉平各通道的延时
,
使得
DBBC
各通道的延时大致
相等。
5
结 论
本文介绍了在
XilinxFX60FPGA
内
,
搭建基于
PowerPC
为
CPU
的嵌入式平台
,
其通过
PCI
总线接收控制计算机的指令
,
实现对
LX160
的配置以及设置
BBC
参数和读取
BBC
参数、对系
总第
30
期 吴亚军等
:DBBC
数字部分控制功能的设计与实现
57
统的工作状态进行监视等控制功能。整个设计在一块
FPGA
芯片内完成
,
具有很高的集成度
,
而且由于
FPGA
的可编程特性
,
使得系统的升级比较方便。
图
5
2M
带宽
ABBC
、
DBBC
零基线处理结果比较
Fig.5
Comparisonof2MbetweenABBCandDBBC
58
中国科学院上海天文台年刊
2009
年
参 考 文 献
[1]
GinoTuccari,AlanWhitney,HansHinteregger
etal
.BackendSystems
2
Perspectivesin2010,IVS2004
GeneralMeetingProceedings,2004,80
~
84
[2]
ArthurNiell,AlanWhitney,BillPetrachenko
etal.
VLBI2010:CurrentandFutureRequirementsforGeodet
2
icVLBISystems,IVSMemoranda2006
2
008v01
[3]
GinoTuccari,AlanWhitney,HansHinteregger
etal.
TetsuroKondo.
System,IVSMemoranda2006
2
003v01
[4]
GinoTuccari,WalterAlef,AlessandraBertarini
etal.
DBBCDevelopmentStatus,in:ProgressinTechnology
DevelopmentandtheNextGenerationVLBISystem,The5thIVSGeneralMeetingProceeding,2008,376
~
380
[5]
pmentofaDigitalBaseBandConverter
(
DBBC
)
:basicElementsandPreliminaryRe
2
sults,in:NewTechnologiesinVLBI,ASPConferenceSeries,2003,306:
[6]
-aWideBandDigitalBaseBandConverter,IVS2004GeneralMeetingProceedings,
2004,234
~
237
[7]
GinoTucari,SalvatoreButtaccio,GaetanoNicotra
etal
mforVLBIDataProcess
2
.
DBBC-AFlexiblePlatfor
ing,IVS2006GeneralMeetingProceedings,2006,185
~
189
[8]
2010DigitalBackend
(
DBE
)
Requirements,IVSMemoranda2008
2
014v01
[9]
2
CostWidebandDigitalBack-EndsforLOFAR
2
eVLBI
2
SKA,IVS2004GeneralMeet
2
ingProceedings,2004,238
~
242
[10]
y,an,BrianFanous,HansF
etal
BandVLBIDigitalBackend
.
AWide
2
System,IVS2006GeneralMeetingProceedings,2006,72
~
76
[11]
MamoruSekido,YasuhiroKoyama,uctiontoK5System,FifthIVSTechnicalOpera
2
tionsWorkshop,2009
[12]
XiangYing,GinoTuccari,plementationinDBBC,IVS2006GeneralMeetingPro
2
ceedings,2006,190
~
194
[13]
项英
.VLBI
数据采集终端中数字基带转换器的研究和设计
(
博士学位论文
)
,
上海
:
中国科学院上海
IVS-WG3ReportontheBackend
天文台
,2005
[14]
ZhangXiuzhong,WeiWenren,XiangYing
etal.
ProgressofWidebandVLBIDigitalSystemDevelopmentat
SHAO,ProgressinTechnologyDevelopmentandtheNextGenerationVLBISystem,The5thIVSGeneral
MeetingProceeding,2008,381
~
385
[15]
XilinxOPBPCIv1.02aUserGuide
[16]
XilinxOPBPCIFullBridge
(
v1.02a
)
Datasheet
总第
30
期 吴亚军等
:DBBC
数字部分控制功能的设计与实现
59
THEDESIGNOFCONTROLLINGIP
COREOFDBBCDIGITALPART
WUYa
2
jun
1,2
XIANGYing
ZHANGXiu
2
zhong
ZHAORong
2
bing
111
(
aiAstronomicalObservatory,ChineseAcademyofSciences,Shanghai200030;
teSchooloftheChineseAcademyofSciences,Beijing100049
)
Abstract
DBBC
(
DigitalBase
2
BandConverter
)
isthekeyequipmentofVLBI2010developmentplansof
theInternationalVLBIServiceforGeodesyandAstrometry
(
IVS
)
.BecauseofChina
’
slunarexplo
2
rationprogram,Ccon
2
sistsoftwoparts:trollingfunctionofdigitalpartis
responsibleforsuchtasks:configuringFPGA
(
FieldProgrammableGateArray
)
,settingBBCpa
2
rameters
(
frequencyandbandwidth
)
,readingBBCparametersandmonitoringthestatusofDBBC.
InthisarticleanembeddedsystembasedonPowerPC
(
hardcore
)
andPCIbuscontroller
(
soft
core
)
,whichareimplementedinXilinxFPGAFX60,ingtotheorderswhich
aresentbythecontrollingcomputer,theembeddedsystemexecutesdifferentprogramstoobtainthe
controllingfunction.
Keywords
DBBC
—
controllingpart
—
FPGA
—
PowerPC
—
OPB_PCI


发布评论