Uploaded by 906947885

基于Zynq的雷达信号处理系统软件模块的设计与实现

advertisement
基于Zynq的雷达信号处理系统软件模块的
设计与实现
作者姓名
陈
学校导师姓名、职称
杜军朝 教授
企业导师姓名、职称
唐文海 高工
申请学位类别
万方数据
聪
工程硕士
万方数据
学校代码
10701
学 号
分 类 号
TP311.5
密 级
1410122552
公开
西安电子科技大学
硕士学位论文
基于 Zynq 的雷达信号处理系统软件模块的设
计与实现
作者姓名: 陈 聪
领
域:软件工程
学位类别:工程硕士
学校导师姓名、职称: 杜军朝 教授
企业导师姓名、职称: 唐文海 高工
学
院:软件学院
提交日期:2017 年 5 月
万方数据
万方数据
Design and Implementation of Software
Module of Radar Signal Processing System
Based on Zynq
A thesis submitted to
XIDIAN UNIVERSITY
in partial fulfillment of the requirements
for the degree of Master
in Software Engineering
By
Chen Cong
Supervisor: Du Junzhao
Title: Professor
Supervisor: Tang Wenhai
Title: Senior Engineer
May 2017
万方数据
万方数据
西安电子科技大学
学位论文独创性(或创新性)声明
秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师
指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢
中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含
为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工
作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
学位论文若有不实之处,本人承担一切法律责任。
本人签名:
日
期:
西安电子科技大学
关于论文使用授权的说明
本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在
校攻读学位期间论文工作的知识产权单位属于西安电子科技大学。学校有权保留送交
论文的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采
用影印、缩印或其它复制手段保存论文。同时本人保证,获得学位后结合学位论文研
究成果撰写的文章,署名单位为西安电子科技大学。
保密的学位论文在
万方数据
年解密后适用本授权书。
本人签名:
导师签名:
日
日
期:
期:
万方数据
摘要
摘要
随着当今电子信息时代嵌入式应用技术的不断发展,基于传统单片机实现的嵌入
式系统面对很多复杂问题的解决方案上已经逐渐显得效率低下,成本过高。可编程片
上系统 SOPC(System On Programmable Chip)作为一种高效、灵活的嵌入式系统设计
解决方案自此应运而生。本论文的课题内容来源于国家部委项目“某专用数字信号处
理关键 IP 核的设计与实现”。脉冲多普勒雷达信号处理器作为雷达系统的核心部分,
具备处理过程复杂,结构可复用,参数可配置等多个特征,因而使得对于雷达信号处
理器的 IP 核功能仿真和整体样机实现工作难以开展。介于 SOPC 嵌入式系统的设计
方案多变,功能强大并且设计周期成本合理的特点,本次课题配合软硬件系统设计方
法学,以 Xilinx 公司的 Zynq 系列开发板为基础,提出了基于 SOPC 嵌入式设计方法
的雷达信号处理样机的整体实现方案并且对于该样机系统的软件模块进行设计实现,
使得雷达信号处理器设计功能得到全面直观的实现和仿真,也为后续的设计改良奠定
基础。
本文首先阐述嵌入式设计技术的发展现状以及多普勒雷达的发展和工作原理,着
重论述 SOPC 设计技术的研究意义和发展趋势。其次,本文对于多普勒雷达信号处理
器的工作流程进行分析,并对于 Zynq 系列开发板的体系架构进行深入的研究。然后,
配合软硬件协同设计方法学,本文提出基于 Zynq 的雷达信号处理样机整体实现方案
并对系统的软件模块设计框架进行论述,系统的软件模块有效实现通过软件高效地完
成对于雷达信号处理系统硬件部分的工作控制和参数配置。整个模块分为信号收发控
制和信号处理控制两大部分。信号收发控制部分基于 Zynq 系列开发板和 AD9361 射
频板搭建出的嵌入式软件无线电平台设计了驱动和应用,实现了通过软件控制雷达信
号收发的功能。信号处理部分针对信号处理的工作流程,并结合 Zynq 系列开发板体
系结构的优点进行设计,有效实现对于系统硬件层信号处理部分的工作控制和参数配
置。最后对于样机系统的软件模块进行了设计实现工作,主要包括系统驱动层,系统
层,应用层三个层次的设计,驱动层设计包括主要包括信号收发模块以及信号处理模
块的 DMA 数据传输控制驱动,信号处理部分参数配置驱动以及信号收发模块的 SPI
控制驱动的设计实现;系统层包括基于 Zynq 平台嵌入式 Linux 系统的建立以及位于
Zynq 上 QT 运行环境的构建;应用层基于系统的设计需求采用模块化设计方法实现,
包括数据传输控制模块,参数配置模块,数据处理模块以及用户交互模块四个模块的
设计实现。
关 键 词:可编程逻辑嵌入式设计,软硬件协同设计,雷达信号处理,可编程片上系
I
万方数据
西安电子科技大学硕士学位论文
统
II
万方数据
ABSTRACT
ABSTRACT
With the continuous development of embedded application technology in the electronic
information age, the embedded system based on traditional single chip microcomputer has
been gradually inefficient and costly to face many complex problems. Programmable
system-on-chip SOPC (System On Programmable Chip) as an efficient and flexible
embedded system design solutions since then came into being. The content of this thesis
comes from the design and implementation of the key IP core of a special digital signal
processing. Pulse Doppler radar signal processor as the core part of the radar system, with
complex processing, structural reusable, parameter configurable and other features, which
makes the radar signal processor IP core function simulation and the overall prototype to
achieve work Difficult to carry out. In this paper, based on the Xilinx Zynq series
development board, this paper proposes a new method based on SOPC embedded system,
which is based on SOPC embedded system. Design method of radar signal processing
prototype of the overall realization of the program system for the software module design
and implementation, making the radar signal processor design features are fully intuitive
implementation and simulation, but also for the subsequent design improvement to lay the
foundation.
This paper first describes the development of embedded design technology and the
development of Doppler radar and working principle, focusing on the SOPC design
technology research significance and development trends. Secondly, this paper analyzes
the work flow of Doppler radar signal processor, and makes an in-depth study on the
architecture of Zynq series development board. Then, with the hardware and software
collaborative design methodology, this paper presents the Zynq radar signal processing
prototype as a whole to achieve the program and the system design of the software module
framework, the system software module effectively through the software to complete the
entire radar signal processing system Hardware part of the work control and parameter
configuration. The whole module is divided into signal transmission and reception control
and signal processing control two parts. Signal transceiver control part based on the Zynq
series development board and AD9361 RF board to build the embedded software radio
platform designed to drive and application, to achieve through the software control radar
signal transceiver function. Signal processing part of the signal processing for the work
III
万方数据
西安电子科技大学硕士学位论文
process, combined with Zynq series development board architecture design advantages, the
effective realization of the system hardware layer signal processing part of the work
control and parameter configuration. Finally, the software module of the prototype system
is designed and implemented, including the design of the system, the system layer and the
application layer. The design of the driver layer includes DMA data transmission control,
which mainly includes the signal transceiver module and the signal processing module,
Signal processing part of the parameter configuration driver and the signal transceiver
module SPI control driver design and implementation; system layer includes Zynq
platform based on the establishment of embedded Linux system and Zynq QT operating
environment on the building; application layer based on the design requirements of the
system modular Design method implementation, including data transmission control
module, parameter configuration module, data processing module and user interaction
module four modules design and implementation.
Keywords: FPGA, Hardware and software co–design, Embedded design, Radar signal
processing, SOPC
IV
万方数据
插图索引
插图索引
图 2.1
PD 雷达信号处理工作流程 ................................................................................. 8
图 2.2
PD 雷达信号处理器结构图 ................................................................................. 8
图 2.3
数字下变频接口信息图 ....................................................................................... 9
图 2.4
动目标检测结果图 ............................................................................................. 11
图 2.5
Zynq 体系结构 .................................................................................................... 13
图 2.6
读通道结构 ......................................................................................................... 15
图 2.7
写通道结构 ......................................................................................................... 15
图 3.1
系统软硬件协同实现方案 ................................................................................. 19
图 3.2
AD-FMCOMMS3-EBZ 实物图.......................................................................... 21
图 3.3
信号收发模块总体方案图 ................................................................................. 22
图 3.4
雷达信号收发模块的层次化设计 ..................................................................... 23
图 3.5
信号处理模块层次设计方案 ............................................................................. 25
图 3.6
参数可配置系统实现方案 ................................................................................. 26
图 3.7
数据接口层可配置优化方案 ............................................................................. 27
图 4.1
雷达信号处理样机系统层次设计 ..................................................................... 29
图 4.2
内核配置菜单 ..................................................................................................... 33
图 4.3
Linaro 图形桌面运行图...................................................................................... 34
图 4.4
物理设备到应用程序的层次结构关系 ............................................................. 35
图 4.5
DMA 内部结构图 ............................................................................................... 38
图 4.6
DMA 寄存器配置状态图 ................................................................................... 40
图 4.7
缓存一致性问题 ................................................................................................. 41
图 4.8
SPI 通信方式图 .................................................................................................. 42
图 4.9
SPI 驱动实现流程图 ......................................................................................... 43
图 4.10 应用层模块化设计方案 ..................................................................................... 44
图 4.11 系统数据流通图 ................................................................................................. 46
图 4.12 QT 用户类静态关系图 ....................................................................................... 48
图 4.13 系统控制界面设计 ............................................................................................. 49
图 4.14 信号处理结果显示界面设计 ............................................................................. 51
图 4.15 射频模块控制监测界面 ..................................................................................... 53
图 4.16 控制配置区级联菜单 ......................................................................................... 54
图 4.17 QT 镜像库移植过程 ........................................................................................... 56
V
万方数据
西安电子科技大学硕士学位论文
图 5.1
系统运行硬件实物图 ......................................................................................... 59
图 5.2
射频模块测试功能流程图 ................................................................................. 60
图 5.3
500MHz 单脉冲信号配置界面 .......................................................................... 60
图 5.4
500M 单脉冲信号频谱仪测试图 ...................................................................... 61
图 5.5
500M 单脉冲信号系统频谱显示图 .................................................................. 61
图 5.6
3GHz 单脉冲信号配置界面 .............................................................................. 62
图 5.7
3G 单脉冲信号频谱仪测试图 ........................................................................... 62
图 5.8
3G 单脉冲信号系统频谱测试图 ....................................................................... 63
图 5.9
信号处理模块测试流程 ..................................................................................... 63
图 5.10 DAC buffer 工作模式配置界面 ......................................................................... 64
图 5.11 线性调频离散信号频谱 ..................................................................................... 64
图 5.12 信号处理参数配置界面 ..................................................................................... 64
图 5.13 输入信号时域波形显示图 ................................................................................. 65
图 5.14 单 PRT 信号处理输出结果图 ............................................................................ 65
图 5.15 信号处理输出结果 64 路归一化统计图 ........................................................... 65
图 5.16 误差分析流程图 ................................................................................................. 66
图 5.17 64*512 点数 MATLAB 处理和系统处理结果图 ............................................. 67
图 5.18 64*512 点数系统处理误差分析图 .................................................................... 67
图 5.19 32*1024 点数系统处理与 MATLAB 处理结果图 ........................................... 68
图 5.20 32*1024 点数系统处理结果误差分析图 .......................................................... 68
图 5.21 8*4096 点数系统处理与 Matlab 处理结果图................................................... 68
图 5.22 8*4096 点数系统处理结果误差分析图 ............................................................ 69
VI
万方数据
表格索引
表格索引
表 2.1
雷达信号处理关键 IP 核主要性能参数.................................................. 9
表 2.2
数字下变频模块接口信息说明 ............................................................. 10
表 2.3
脉冲压缩模块 IO 端口描述 ................................................................... 10
表 2.4
动目标检测模块的 IO 端口描述 ........................................................... 11
表 2.5
恒虚警处理模块 IO 信号端口 ............................................................... 12
表 3.1
雷达信号处理关键 IP 核主要性能参数................................................ 18
表 3.2
各种 DMA 方式性能对比 ...................................................................... 20
表 4.1
simple 方式 DMA 寄存器描述 .............................................................. 39
表 5.1
系统测试用例 ......................................................................................... 67
VII
万方数据
西安电子科技大学硕士学位论文
VIII
万方数据
符号对照表
符号对照表
符号
符号名称
B
脉冲信号带宽
Bit
位
MB/s
吞吐率单位
MHz
频率单位
Mbps
传输速率单位
Mb
存储单位
IX
万方数据
西安电子科技大学硕士学位论文
X
万方数据
缩略语对照表
缩略语对照表
缩略语
英文全称
中文对照
SOC
System on Chip
片上系统
SOPC
System on Programmable Chip
可编程片上系统
ARM
Advanced RISC Machines
精简指令集微处理器
PS
Processing System
处理系统
PL
Programmable Logic
可编程逻辑
DMA
Direct Memory Access
直接存储器存取
PD
Pulse Doppler
脉冲多普勒
IP
Intellectual Property
知识产权
CPU
central processing unit
中央处理器
DDR
Double Data Rate
同步动态随机存储器
DSP
Digital Signal Processor
数字信号处理器
ADC
Analog to Digital Converter
模拟数字转换器
DAC
DigitaltoAnalog Converter
数字模拟转换器
FPGA
Field Programmable Gate Array
现场可编程门阵列
DDC
Digital Down Converter
数字下变频
PC
Pulse Compression
脉冲压缩
MTD
moving targets detection
动目标检测
SRAM
Static Random Access Memory
静态随机存取存储器
CFAR
Constant False-Alarm Rate
恒虚警处理
AXI
Advanced Extensible Interface
高级可扩展接口
JTAG
Joint Test Action Group
联合测试行动小组
CPI
Coherent Processing Interval
相干处理间隔
PRT
Pulse Repeat Time
脉冲重复周期
FFT
Fast Fourier Transfirm
快速傅里叶变换
FSBL
First Stage Boot Loader
第一阶段启动加载器
SSBL
Second Stage Boot Loader
第二阶段启动加载器
SPI
Serial Peripheral Interface
串行外围设备接口
ADI
Analog Devices, Inc
亚德诺半导体
FMC
FPGA Mezzanine Card
可编程门阵列板卡
XI
万方数据
西安电子科技大学硕士学位论文
XII
万方数据
目录
目录
摘要 ........................................................................................................................................ I
ABSTRACT ........................................................................................................................ III
插图索引 .............................................................................................................................. V
表格索引 ............................................................................................................................VII
符号对照表 ......................................................................................................................... IX
缩略语对照表 ..................................................................................................................... XI
第一章
绪论 ..................................................................................................................... 1
1.1
研究背景 ............................................................................................................. 1
1.1.1 嵌入式技术发展现状 ............................................................................... 1
1.1.2 多普勒雷达的产生和发展 ....................................................................... 2
1.2
课题的研究来源和意义 ..................................................................................... 3
1.3
本文主要工作及内容安排 ................................................................................. 4
第二章
PD 雷达信号处理与 Zynq-7000 Soc 简述 ........................................................ 7
2.1
PD 雷达信号处理 ............................................................................................... 7
2.1.1 PD 雷达信号处理工作流程 ..................................................................... 7
2.1.2 雷达信号处理器关键 IP 核 ..................................................................... 7
2.2
Zynq-7000 SoC 简述 ........................................................................................ 12
2.2.1 Zynq 体系结构 ....................................................................................... 12
2.2.2 Zynq 软硬件接口 ................................................................................... 13
2.2.3 AXI 总线协议 ......................................................................................... 14
2.3
本章小节 ........................................................................................................... 16
第三章
基于 Zynq 的雷达信号处理系统的设计方案 ................................................. 17
3.1
雷达信号处理系统的总体设计方案 ............................................................... 17
3.1.1 雷达信号处理系统设计目标 ................................................................. 17
3.1.2 软硬件协同工作实现方案 ..................................................................... 17
3.1.3 基于 DMA 的系统总线传输方案.......................................................... 19
3.2
雷达信号收发模块设计方案 ........................................................................... 20
3.2.1 基于 AD9361 的硬件平台选择 ............................................................. 20
3.2.1 信号收发模块数据交互方案 ................................................................. 22
3.2.2 信号收发模块层次化设计 ..................................................................... 23
3.3
雷达信号处理模块设计方案 ........................................................................... 24
XIII
万方数据
西安电子科技大学硕士学位论文
3.3.1 信号处理模块工作流程 ......................................................................... 24
3.3.2 信号处理模块层次化设计 ..................................................................... 24
3.3.3 参数可配置设计方案 ............................................................................. 26
3.4
本章小节 ........................................................................................................... 27
第四章
基于 Zynq 的雷达信号处理系统软件模块的实现 ........................................ 29
4.1
引言 ................................................................................................................... 29
4.2
基于 Zynq 的嵌入式 Linux 系统实现 ............................................................. 30
4.2.1 交叉编译环境的搭建 ............................................................................. 30
4.2.2 启动加载器的自定义实现 ..................................................................... 31
4.2.3 Linux 内核以及设备树定制 .................................................................. 33
4.2.4 根文件系统的建立以及 Linux 系统启动 ............................................. 34
4.3
基于 Zynq 的雷达信号处理系统驱动程序的实现 ........................................ 35
4.3.1 PS 与 PL 之间数据传输的 DMA 驱动实现 ......................................... 36
4.3.2 PS 与 AD9361 信息交互的 SPI 驱动实现 ......................................... 41
4.3.3 信号处理参数配置模块驱动 ................................................................. 43
4.3.4 驱动的编译及加载 ................................................................................. 44
4.4
基于 Zynq 的雷达信号处理系统应用程序的实现 ........................................ 44
4.4.1 数据传输控制模块 ................................................................................. 45
4.4.2 数据处理模块 ......................................................................................... 46
4.4.3 参数配置模块 ......................................................................................... 47
4.4.4 用户交互模块 ......................................................................................... 47
4.5
本章小节 ........................................................................................................... 57
第五章
功能测试与结果分析 ....................................................................................... 59
5.1
运行环境 ........................................................................................................... 59
5.2
信号收发模块功能性测试 ............................................................................... 59
5.3
信号处理模块功能性测试 ............................................................................... 63
5.4
系统误差分析 ................................................................................................... 66
5.5
本章小节 ........................................................................................................... 69
第六章
总结与展望 ....................................................................................................... 71
6.1
全文总结 ........................................................................................................... 71
6.2
展望 ................................................................................................................... 71
参考文献 ............................................................................................................................. 73
致谢 ..................................................................................................................................... 77
作者简介 ..................................................................................................................... 79
XIV
万方数据
第一章 绪论
第一章
绪论
1.1 研究背景
1.1.1
嵌入式技术发展现状
嵌入式系统是围绕软件实现为核心,凭借现代信息技术为基础的功能服务性计算
机系统,其系统特征在于软硬件能够根据系统设计需求进行定制化实现进而满足系统
专用性要求。嵌入式系统区别于普通计算机系统的主要之处在于每个嵌入式系统的开
发都是面向具体需求和用途的,也就是它的专用性。除此之外,实时性也是嵌入式技
术开发的另一个特征需求,每个嵌入式系统都会根据性能需求对于软硬件进行相应利
用率最大的定制来尽可能兼顾其设计成本以及存储等因素的限制,另外每个嵌入式系
统都存在它专用的设计目的,因而也基于这两个优势通常嵌入式系统能够具备很强的
实时性[21]。自 20 世纪 90 年代至今嵌入式技术的概念逐渐渗透到人类生活生产的各个
领域,并伴随智能信息化产业的飞速发展也使其具备更为广阔的发展空间。嵌入式计
算机的发展使得计算机系统逐步分为通用计算机系统以及嵌入式系统两个发展方向,
对比通用计算机的发展更加趋向于功能化用以满足更多用户群体的需求,而嵌入式系
统的使用场景更趋于智能化,专业化,更加方便简化人类的生活方式[25]。嵌入式技术
同时应用于航天军工,医疗器械,汽车电子,消费电子等领域,具体有各种武器控制
装置,数字诊疗设备,手持电子设备,PDA 设备,车机,无人机等。近年来伴随物
联网概念的逐渐深入,未来融合物联网技术的嵌入式也将成为主要的发展趋势。
嵌入式系统围绕微控制器为硬件处理核心,并且附带所需的输入输出设备,存储
设备的一系列硬件外设进而构成了嵌入式系统的硬件架构。而近年来微处理器的成本
降低以及系统性能的不断强化也使得嵌入式技术能够得到越加广泛的应用。微控制器
方面,由 8 位到 32 位处理器使得处理器运算速度得到了长久的飞跃,而由过去的 CISC
演变成如今的 RISC 架构更是使处理器有本质的升级。如今流通与市场的微处理器主
要有 MIPS,ARM,PowerPC 等[10]。
操作系统作为嵌入式系统另一个主要的组成部分,主要用于作为较为复杂嵌入式
系统的软件应用平台,一方面操作系统将实用便捷的人机交互接口提供给使用者,另
一方面能够帮助提供对应的 API 接口以供软件开发者开发设计,而不需要过多考虑系
统的硬件结构,系统能够与实现使用者的实时控制,并且能够同时运行工作多个任务。
如今流通市场针对嵌入式的操作系统主要有 Linux、VxWorks、WinCE 等[12]。
根据统计资料显示,在嵌入式系统设计操作系统方案选择上,Linux 仍占据整个
开发软件平台市场接近一半的市场份额。也可以看出 Linux 依靠他独一无二的优势和
1
万方数据
西安电子科技大学硕士学位论文
极为普遍的应用领域,受到来自多数企业的嵌入式设计团队的青睐。而对于硬件开发
环境的选择而言,ARM 架构的处理器毋庸置疑的成为越来越多的设计团队的首选,
其在嵌入式处理器的使用比例中占据更是占据了 74%。也从而得之,ARM 处理器作
为硬件开发环境以及嵌入式 Linux 系统选择已经成为目前嵌入式行业中设计开发的
主流趋向[21]。介于嵌入式技术的不断成熟,也使得该项技术越来越多的应用于大型信
息处理系统的原型样机实现上,使得设计系统在全面应用前能够得到更加全面直观的
展现和功能仿真。本次设计中的雷达信号处理样机系统就是基于嵌入式系统设计方法
学,采用 ARM 处理器和 Linux 操作系统相结合的架构[27]。
与此同时,在嵌入式系统设计解决方案方面,可编程片上系统设计技术即 SOPC
技术作为电子信息时代发展的必然产物应运而生。21 世纪初美国 Alter 公司率先提出
SOPC 技术概念,该技术的理念核心主要是智能化和自动化[9]。该技术力求在保证系
统功能可靠性的同时尽可能提高电路的集成度,进而缩减规模和体积,进而实现将整
体完备的电子系统实现在同一块 FPGA 上,这样能够使得设计产品在生产成本,开发
周期,性能参数,硬件提升以及技术维护各个层面达到长足的改良提升[27]。真正筑成
SOPC 技术有所出众的是它对于 SOC(System On Chip)即片上芯片附加上了可编程的
特性,使得 SOC 技术的设计能力和应用领域得到了拓宽和延展。这种特性的核心概
念是以人的设计为主,设计人员基于 SOPC 系统能够充分利用自己的认知和理解做出
更加符合市场产品需求的设计[6]。SOPC 技术独有的同时涉及到底层硬件设计和系统
软件设计,给予设计人员更大的自由度,根据设计产品的特性具体定制软件和硬件系
统的构筑和分工,并且可利用其可编程特性与对应的 IP 核技术相辅相成,实现软硬
件编程和重构技术,进而设计出更多种类的协处理器以及处理器工作模式等。
1.1.2
多普勒雷达的产生和发展
20 世纪前叶,脉冲雷达作为电子工程领域的一项重大发明广泛应用于各国军事
领域,然而此期的雷达多半采用非相参体制,也就是单方面通过发射的探测波以及接
收到的目标返回信号波之间的时间差进而得探测目标的具体方位信息。而这种实现机
制很容易受到目标附近干扰因素的影响,进而造成无法精准锁定目标方位[33]。
20 世纪中叶后期军事作战中开始利用早期雷达这一弱点,借助地形和海洋杂波
的干扰有效采取低空突防战术,进而使得此期的雷达探测系统近乎瘫痪。面对突如其
来的低空突防战术,雷达系统的体制亟需更替改良。研究人员开始逐渐将日前在声光
领域中已应用成熟的相参技术实践应用到新一代雷达系统研发中,采用频率差将探测
目标的从相应的干扰场景中分离出来,进而代替无法辨别探测目标以及干扰场景的时
间差分析方案。依据多普勒效应为理论基础,地表固定的雷达探测系统相对于地表物
体是不构成相对位移的,从而地表物体的返回波的频率也会保持与雷达探测波的发射
2
万方数据
第一章 绪论
频率一致;但反观移动的探测目标,目标与地表背景之间是构成相对位移的,进而它
的返回波频率与探测波频率之间形成多普勒频移,频移大小与目标的径向速度呈正比
关系[37]。利用这一规律,多普勒雷达发射特定频率的高频脉冲,通过接受到的不同运
动状态的目标回波分析出具体探测目标的速度方位信息。如此再将这一技术应用至机
载雷达,虽然无论运动目标和地表背景相对于雷达均为运动状态,但可以借助地表与
战斗机的已知相对速度将探测的运动目标解析出来。
多普勒雷达的优势在于凭借极高的信噪比,进而具备较强的抗干扰以及抑制噪声
能力,能够在多变多干扰的检测环境中精准探测到目标的方位以及速度信息。同时应
用于军事领域机载预警,武器火控等,应用于生活中的气象观测等。多普勒雷达的主
要组成部分为天线部分、信号发射接受部分以及数字信号处理部分[33]等。本次论文利
用嵌入式系统开发技术,基于多普勒雷达信号处理器 IP 核提出了雷达信号处理样机
系统实现方案并对于样机系统的软件模块进行设计和实现[35]。
1.2 课题的研究来源和意义
本论文的课题内容来源于国家部委项目“某专用数字信号处理关键 IP 核的设计
与实现”。项目中的多普勒雷达信号处理器是一款基于专用集成电路开发的信号处理
器,处理器对数字信号回波进行数字下变频、脉冲压缩、动目标检测以及恒虚警四个
层次步骤的处理最终从信息回波中解析出探测目标的距离和速度信息。然而由于项目
中涉及的雷达信号处理器具备处理过程复杂,结构可复用,参数可配置等多个特征,
也使得该处理器 IP 核的整体功能仿真和样机实现工作难以开展。介于 SOPC 嵌入式
系统的设计方案多变,功能强大并且设计周期短,成本合理的特点,本次课题以 Xilinx
公司的 Zynq 系列开发板为基础,配合软硬件系统设计方法学,提出了基于 SOPC 嵌
入式系统的雷达信号处理样机的整体设计方案,系统具有高度的可配置性和可复用性,
有效避免了单纯使用软件仿真雷达处理器的耗时问题,同时也解决了 FPGA 原型仿真
信号处理器出现的资源不够的问题。并且对于该样机系统的软件模块进行实现,软件
模块有效实现了通过软件根据不同的使用场景高效地完成对于整个雷达信号处理系
统硬件部分的工作控制和参数配置,同时实现对于信号处理结果的波形显示,使得该
项雷达信号处理器设计功能得到全面直观的实现和仿真,也为后续的设计改良奠定基
础。
本文设计中应用的 SOPC 设计技术渗透了现在广泛应用的软硬件协同开发技术,
蕴含了嵌入式系统设计的各个层面,因而给予设计人员更大的自由度,根据设计产品
的特性具体定制软件和硬件系统的构筑和分工利用其可编程特性与对应的 IP 核技术
相辅相成,实现软硬件编程和重构技术,利用其开发出基于处理器的软件系统,例如
3
万方数据
西安电子科技大学硕士学位论文
实时多任务处理系统等。除了全球各大平台供应商因其芯片的系统完整性以及可拓展
性加入到 SOPC 设计的浪潮中,国内越来越多的研究机构,高校也越来越加大 SOPC
开发的研究力度,清华大学,中国科学院均在嵌入式微处理器研究开发方面有了技术
性突破,但实际产品应用还是缺乏[28]。所以能够对 SOPC 嵌入式开发技术加以钻研,
会为我国国内嵌入式技术应用的发展和嵌入式产品的性能优化和系统改良产生重大
的推动意义。
1.3 本文主要工作及内容安排
本次课题以 Xilinx 公司的 Zynq 系列开发板为基础提出了基于 SOPC 嵌入式系统
的雷达信号处理样机的整体设计方案,样机系统基于软硬件协同设计方法设计,采用
层次化设计方案实现,系统分为硬件层,硬件接口层,驱动层,系统层以及应用层五
个层次。其中硬件层与硬件接口层属于系统硬件模块,基于 Zynq 中 PL 部分的 FPGA
区域实现,主要负责信号处理模块实现以及射频外设控制功能;驱动层,系统层,应
用层属于软件模块,基于 Zynq 中 PS 部分的 ARM 处理器实现,主要承担系统的控制
中心,负责信号处理模块的数据预处理,处理模块之间数据传输的控制,以及系统的
参数配置功能;其次,对于雷达信号处理样机系统的软件模块进行了实现工作,系统
的软件模块分为信号收发控制和信号处理控制两大部分。信号收发控制部分实现对射
频信号的收发控制以及信号频谱监测;信号处理控制部分负责对于信号处理部分数据
传输控制以及参数配置实现。软件模块的设计工作包括驱动层,系统层,应用层三个
层面。驱动层包括对于射频模块 SPI 驱动,系统数据传输 DMA 控制驱动以及信号处
理参数配置模块的驱动进行设计实现;系统层实现工作为基于 Zynq 的嵌入式 Linux
系统的建立,包括 Linux 内核文件建立以及设备树文件的配置和编译等。应用层包括
对于系统控制配置模块,数据传输模块,数据处理模块,以及用户交互模块的设计实
现。
本文共分为五章,各章主要内容如下:
第一章:绪论。首先从嵌入式应用技术的发展以及多普勒雷达的发展和工作原理
两方面阐述了本文的研究背景,然后对于本文课题的来源以及研究意义进行论述,最
后概括了论文主要工作以及大致纲要。
第二章:多普勒雷达信号处理与 Zynq-7000 Soc 简述。本章首先分析课题中所实
现的多普勒雷达信号处理器的基本工作原理和流程,并重点依次描述了信号处理器数
字下变频,脉冲压缩,动目标检测以及恒虚警处理四个核心 IP 核的实现结构以及 IP
核 之 间 的 数 据 交 互 关 系 。 最 后 对 于 样 机 系 统 所 利 用 到 的 Zynq-7000 SoC 的
ARM+FPGA 体系结构进行研究分析,并具体论述了 Zynq 体系的具体软硬件接口以
4
万方数据
第一章 绪论
及总线协议,为后续章节的设计工作奠定基础。
第三章:基于 Zynq 的雷达信号处理样机系统的设计方案。首先对于雷达信号处
理样机系统的整体设计方案进行论述,并对于系统软硬件部分进行层次化划分。系统
基于软硬件协同工作方案实现:硬件部分负责完成系统信号处理部分 DDC ,PC,MTD,
CFAR 四个模块的功能实现,并且凭借射频板卡控制 IP 核对系统信号收发部分进行
工作状态和参数的控制;软件部分主要负责信号处理模块的数据预处理,模块之间数
据传输的控制,以及系统的参数配置功能。然后具体对于系统信号收发以及信号处理
两个部分的模块内部数据交互方案以及层次结构设计进行论述,并综合系统设计框架
明确系统中软件模块的设计内容,主要包括驱动层,系统层,应用层三个层次的设计。
第四章:基于 Zynq 的雷达信号处理系统软件模块的设计。本章内容针对第三章
提出的系统设计方案,完成样机系统中软件模块的设计实现工作,设计工作主要包括
系统层,驱动层,应用层三个层次的设计,系统层的设计主要为基于 Zynq 的嵌入式
Linux 系统的建立,包括 Linux 内核文件建立以及设备树文件的配置和编译;驱动层
的设计工作包括系统 DMA 数据传输控制驱动,信号处理部分参数配置驱动以及信号
收发模块的 SPI 控制驱动设计;应用层设计工作包括数据传输模块,数据处理模块,
参数配置模块以及用户交互模块四个模块的设计。
第五章:测试结果与分析。利用测试用例对于系统成果进行模块化的功能性能测
试,首先对信号收发和信号处理两部分分别进行测试,然后进行不同工作参数下的系
统测试结果的误差分析。
第六章:总结与展望。全面对于本次课题的工作进行总结,并且对于研究工作的
后续开展进行展望。
5
万方数据
西安电子科技大学硕士学位论文
6
万方数据
第二章 PD 雷达信号处理与 Zynq-7000 Soc 简述
第二章
PD 雷达信号处理与 Zynq-7000 Soc 简述
本章将首先对于课题中采用的 PD 雷达信号处理器的工作流程以及关键 IP 核的
原理结构进行分析;然后从 Zynq 体系结构、软硬件接口以及 AXI 总线协议三个层面
对 Zynq-7000 Soc 进行研究,为后续章节的系统实现方案的提出奠定基础。
2.1 PD 雷达信号处理
2.1.1
PD 雷达信号处理工作流程
多普勒雷达主要工作原理是对于信号频谱进行频率过滤,去除目标的谱线中的干
扰频谱,滤选出探测目标的多普勒频谱,如此的信号处理方式的优势在于能有效提高
信噪比,进而使解析出的目标信息更加精准[29]。
如图 2.1 所示,多普勒雷达信号处理的具体流程如下:
1、雷达接收的信号数据历经数模转换器转换并采样后变为离散的数字信号。
2、离散的数字信号进入数字下变频模块,模块首先对接收到的数字信号进行混
频处理将目标信号下变频至零中频,再将信号进行低通滤波处理,将带外的信号进行
过滤,保留带内信号。
3、处理信号若为阵列信号,信号需要通过 DBF(数字波束形成)处理,进而将处
理结果传送至脉冲压缩模块(PC);若非阵列信号,DDC 模块处理后信号直接进入脉
冲压缩模块。
4、脉冲压缩模块主要作用将对接收到的线性调频信号与相应的匹配系数相乘,
进而使宽脉冲信号成为窄脉冲信号,以此来提高目标回波中的距离分辨率。
5、经过脉冲压缩模块处理过的数据需要进行相参叠加,再将叠加积累的结果进
行判定是否需要波束相消,需要则先进行 MTI 处理,不需要则跳过 MTI 进行 MTD
处理,该模块从接收到的数据中提取出相应的多普勒频移信息。
6、CFAR 模块的作用主要是分析中信号回波中的虚警信息并加以筛除,更加提
高回波信号的信噪比,是解析出的目标信息更加准确。
雷达回波信号经过以上各模块的陆续依次处理,从而获得到雷达系统探测范围以
内目标的准确速度、距离信息。
2.1.2
雷达信号处理器关键 IP 核
如图 2.2 所示,该图为整个雷达信号处理器的结构流程图,其中核心 IP 核有:
DDC(数字下变频)模块,PC(脉冲压缩)模块,MTD(动目标检测)模块以及 CFAR
7
万方数据
西安电子科技大学硕士学位论文
(恒虚警处理)模块。回波数据经过数模转换采样之后,依次经过数字下变频和脉冲
压缩模块进行处理,再将处理的结果相参积累储存于 SRAM 中,待到累计脉冲达到
配置参数后,再将数据传送至动目标检测以及恒虚警处理模块。
ADC
DDC
阵列信号?
是
DBF
否
PC
是
波束对消?
MTI
否
MTD
求模与CFAR
输出结果
图2.1 PD 雷达信号处理工作流程
SRAM
AD
DDC
PC
MTD
图2.2 PD 雷达信号处理器结构图
8
万方数据
CFAR
第二章 PD 雷达信号处理与 Zynq-7000 Soc 简述
雷达信号处理部分核心 IP 核的数据吞吐率以及可配置参数如表 2.1 所示。
表2.1 雷达信号处理关键 IP 核主要性能参数
AD 采样频率
80Mhz*16bit
DDC 输入数据速率
1280Mbps
PC 输入数据速率
2560Mbps
MTD 输入数据率
2560Mbps
PC 模块处理点数
32~4096
一个 CPI 内的 PRT 个数
8~256
(1)数字下变频模块
数字下变频主要完成信号的混频、滤波和抽取处理,本次课题中的数字下变频模
块使用多相滤波结构实现,如图所示为数字下变频模块的接口描述。在表 2.2 中对于
下变频模块的接口进行了具体说明:其中 data_in_ready 作为输入使能信号,当其信
号保持高电平该模块启动数据的输入过程;coe_in 作为模块滤波的匹配系数的输入端
口,用以完成对于滤波匹配系数的设定;n_fir 则作为选择滤波阶数的特征信号,用
以选择不同阶数的滤波方式;n_decimate 则作为用来设定特定倍数抽取的特征信号,
能够选择特定的抽取倍数;clk_out 作为输出时钟脉冲信号,作为处理后的数据传出
的控制信号;data_out_ready 则是输出使能信号,控制输出数据的有效性;din_data
作为模块的 16 为输入数据端口;dout_I 和 dout_Q 分别为 I 路和 Q 路的输出数据。
图2.3
数字下变频接口信息图
9
万方数据
西安电子科技大学硕士学位论文
表2.2 数字下变频模块接口信息说明
Name
Width/bits
I/O
Descriptions
clk
1
I
时钟信号
rst_n
1
I
复位信号,低电平有效
data_in_ready
1
I
读入数据有效信号,高电平有效
din_data
16
I
输入数据
data_out_ready
1
O
输出数据有效信号,高电平有效
dout_I
16
O
输出数据的实部
dout_Q
16
O
输出数据的虚部
(2)脉冲压缩
现代雷达技术中为了使距离分辨率和速度分辨率两个指标变量都能够满足性能
要求,通常使用线性调频信号的压缩技术,此技术主要的特征为在信号发射时采用宽
脉冲信号达到较高的发射能量,进而雷达的作用距离得到提升,随之提升雷达的速度
分辨率。而在接受端对于接受的数据进行匹配滤波处理而获得窄的脉冲,因而同时提
升了雷达的距离分辨率,将接受的数据进行匹配滤波处理则为脉冲压缩步骤。这样的
技术设计使得对于雷达的距离分辨率和速度分辨率这两个重要性能指标同时得到了
兼顾[36]。脉冲压缩模块的主要作用是将对接收到的线性调频信号与相应的匹配系数相
乘,进而使宽脉冲信号成为窄脉冲信号,以此来提高目标回波中的距离分辨率。如表
2.3 所示为脉冲压缩模块 IO 端口描述。
表2.3 脉冲压缩模块 IO 端口描述
Name
Width/bits
I/O
Descriptions
clk
1
I
脉压时钟信号
rst_n
1
I
异步复位信号
din_r
16
I
输入实部数据
din_i
16
I
输入虚部数据
ready_data
1
I
输入使能信号
coe_r
16
I
脉压实部系数
coe_i
16
I
脉压虚部系数
coe_en
1
I
配置脉压系数使能
conf_in
8
I
配置参数
dout_r
16
O
输出实部数据
dout_i
16
O
输出虚部数据
ready_out
1
O
输出使能信号
10
万方数据
第二章 PD 雷达信号处理与 Zynq-7000 Soc 简述
(3)动目标检测
动目标检测模块事实上就为多普勒雷达的目标解析模块,该模块依据多普勒频移
原理实现,由于运动目标与干扰背景有速度差异,因而回波中运动目标的多普勒频移
有所区别从而得以区分。该模块通过采用合理的级联滤波器组完成对于目标信号的多
层滤波,从而获得有效目标的信号数据。该模块有效实现对于干扰杂波的滤除,使得
运动目标能够在杂波背景中得到探测,有力的改善了早期雷达易受干扰的缺陷。
可变点
FFT模块
截位
模块
图2.4 动目标检测结果图
动目标检测模块的滤波部分能够采用时域或频域方案实现。本次论文涉及到的动
目标检测模块采用的则是频域实现方案,如图 2.4 所示,FFT 模块将接收到的数据进
行 FFT 变化,截位模块相当于后续恒虚警模块数据的预处理,使后续模块得到的数
据位宽满足要求。如表 2.4 所示为为动目标检测模块的 IO 端口描述。
表2.4 动目标检测模块的 IO 端口描述
Name
Width/bits
I/O
Descriptions
clk
1
I
MTD 时钟信号
rst_n
1
I
异步复位信号
din_r
16
I
输入实部数据
din_i
16
I
输入虚部数据
data_ready_in
1
I
输入使能信号
n_1
16
I
PRT 个数
dout_r
16
O
输出实部数据
dout_i
16
O
输出虚部数据
data_ready_out
1
O
输出使能信号
11
万方数据
西安电子科技大学硕士学位论文
(4)恒虚警处理
雷达信号处理过程中,动目标检测处理模块对于信号数据中的运动目标进行解析
后的结果依然存在较强的背景噪声,则在目标分析时会出现虚警和漏警的情况。虚警
即为将背景杂波判定为目标,而漏警则是反之将目标误认为是探测目标。恒虚警模块
的处理则是针对不同探测环境下的噪声功率具体设置相对应的检测门限,当检测到的
单元低于门限则判定为背景噪声;同时当检测识别出的单元高于门限时则判定为探测
目标,进而使得目标解析结果的虚警率保持在恒定数值,因而称之为恒虚警。
本次课题中的恒虚警模块为可变性指示 VI-CFAR 检测模块,该模块设计的核心
在于并不具备特定的处理窗结构,而是能够根据干扰目标数量的变动以及目标的不同
分布情况设定对应的处理窗结构,从而实现在均匀背景,杂波边界环境以及多目标环
境下的自适应工作。如表所示为恒虚警模块的 IO 端口
表2.5 恒虚警处理模块 IO 信号端口
2.2 Zynq-7000 SoC 简述
Zynq-7000 是基于 Xilinx 全可编程的可扩展处理平台 (Extensible Processing
Platform,EPP)结构,该结构配备双核 ARM Cortex-A9 处理器外加基于 28nm Artix-7
或 Kintex-7 的可编程逻辑集成。Zynq-7000 SoC 将 ARM 处理器的软件可编程性与
FPGA 的硬件可编程性有机结合,不仅可用以实现重要分析与硬件加速,同时为复杂
嵌入式系统的软硬件协同工作方案提供平台结构支持。
2.2.1
Zynq 体系结构
Zynq 系列开发板均采用 ARM+FPGA 架构,将 FPGA(可编程硬件逻辑)和硬核
处理器有机结合,使得平台在软件和硬件方面均可实现可编程。该系列开发板内部集
成能够单独工作的双核 Cortex-A9 处理器作为整个平台的控制中心,同时该系列产品
12
万方数据
第二章 PD 雷达信号处理与 Zynq-7000 Soc 简述
创新地将 FPGA 当作外设集成于系统当中。如同图 2.5 所示,结构图左上方部分为系
统的 PS 部分即系统处理器结构,外围为 PL 即 FPGA 部分结构[28]。
图2.5 Zynq 体系结构
Zynq 系列开发板的 PS 部分均为相同结构,以 Cortex-A9 为核心,周边直接附带
内存控制器,片上两级缓存器以及一系列常用外设。PS 部分系统资源方面包括了系
统级别的控制寄存器,DMA 控制中心,中断控制单元以及片上存储器等;存储器接
口包括 DDR 控制接口,支持 16 和 32 位宽,四线 SPI 控制器端口以及 Flash 控制器
端口;同时 PS 部分外设接口资源主要有 QSPI、USB、千兆以太网、CAN、UART 串
口、SD 卡接口、GPIO 通用输入输出管脚、SPI 和 IIC 接口等[30]。
Zynq 的 PL 部分为可编程逻辑拓展单元,基于 Xilinx 公司第七代的 Artix-7 FPGA
硬件结构实现,使得开发设计者能够通过自主定义配置实现系统结构。包括:可配置
I/O、可配置模块(CLB)、时钟管理等。
2.2.2
Zynq 软硬件接口
Zynq-7000 Soc 的典型特征在于将 ARM 处理器以及 FPGA 集成到了同一块 Soc
上,为软硬件协同工作系统的实现提供了硬件平台的支持。然而这样的设计特征也同
时不仅加大了工艺实现的难度,在设计实现的过程中也需要着重考虑硬核处理器与
13
万方数据
西安电子科技大学硕士学位论文
FPGA 之间的数据通路的实现。为了力求设计出 ARM 与 FPGA 之间高效的数据交互
通路,本节中将重点分析 Zynq 上的软硬件接口为之后的系统设计奠定基础。
Zynq 上硬核处理器属于处理器系统 PS 部分的核心,FPGA 属于可编程逻辑 PL
部分,PS 与 PL 部分之间的交互接口主要有两种类型:

功能接口。主要有输入输出外设的控制接口,DMA 流控制接口,AXI 总线
接口以及拓展 MIO 接口等,这些接口主要在系统 PL 部分自定义设计 IP 核用以将 IP
核连入系统。

配置接口。主要有处理器配置访问端口,编程/初始化接端口,配置信号端
口,单事件翻转端口。这些端口主要提供给 PS 对 PL 部分配置块中固定信号的控制。
PL 部分功能设计所涉及到的软硬件接口类型则主要为 AXI 接口,Zynq 上的 AXI
接口存在三种类型共计九个,分别是 4 个 AXI_HP 接口,1 个 AXI_ACP 接口和 4 个
AXI_GP 接口:
1)AXI_HP 作为传输性能高,传输带宽高的系统接口将 PL 视为主设备,在 Zynq
中提供了四个从设备接口。每个接口均可进行 32 位或者 64 位的位数配置,通过该接
口用以完成 PL 部分对于 PS 部分 DDR 中的数据访问,通常采用基于 DMA 控制器的
的工作完成数据的访问和交互而代替了 CPU 的参与从而提高了系统的运行效率。
2)AXI-ACP 接口作为一种针对 ARM 多核架构定义的接口,也称作加速性一致
接口。该接口可以用于 PL 部分对于 PS 部分 Cache 缓存区中的数据进行即时访问,
SCU 模块的参与用以实现一致性。通过该接口 PL 部分不仅能对读取缓存区数据,并
且能够将 PL 部分的数据处理结果存储于缓存区中,一般用于专用指令的加速模块接
口。
3)AXI-GP 接口作为 AXI 的通用接口,Zynq 上提供了四个,该类接口相比 HP
接口和 ACP 接口的工作性能较差一些,通常用于对于 FPGA 部分 IP 核的寄存器配置
控制。
2.2.3
AXI 总线协议
AXI(Advanced eXtensible Interface)作为一种传输性能高、传输带宽宽的 Soc 总线协
议,是 ARM 公司提出的 AMBA 协议中的核心成分,由 Xilinx 公司从 6 系列的 FPGA
开始逐步引用[31]。AXI 协议中涵盖了 5 个不同的通道分别是:读、写地址通道,读、
写数据通道和写响应通道。
如图 2.6,图 2.7 中所示则分别为 AXI 协议下读写步骤的响应实现过程,主要基
于读写地址以及读写数据通道的数据交互。协议中的每个数据通道均为单向传输,控
制通道与数据通道分开工作达成了控制信号与传输数据的独立传输,协议支持显著操
作通常先发送地址再进行数据的传输。另外读写通道接口的相对独立进而实现了协议
14
万方数据
第二章 PD 雷达信号处理与 Zynq-7000 Soc 简述
的全双工工作方式,极大提高了总线传输的工作效率。
读地址通道
地址和控制
主
接
口
从
接
口
读数据通道
读数据
...
读数据
图2.6 读通道结构
写地址通道
地址和控制
主
接
口
写数据通道
...
写数据
写数据
写响应通道
从
接
口
写响应
图2.7 写通道结构
AXI 协议的主要特性主要有四点[32]:
1)能够实现多项数据的交换。基于并行猝发工作机制,有效提高了多任务工作
的协作效率,数据传输速率有了明显的提升,与此同时也降低了工作功耗。
2)地址和数据通道相互分离。负责读写的地址和数据通道彼此分开,能够根据
实际时序需求分别配置每个通道,在提高时钟频率的同时降低延时率。
3)单向数据传输通道体系,每个通道结构中只支持单方向的数据流通,如此能
够减少时钟域之间的桥接。
4)强大的灵活性。AXI 协议特有的对称主从接口结构使得在不管单线路还是复
杂结构的系统都能够巧妙灵活的利用 AXI 技术。
在 Xilinx 的 AXI 总线协议中涵盖了三种协议接口,分别是 AXI4、AXI-Stream 和
AXI-Lite[32]。下面对于三种接口特性进行比较:
1)AXI4(Memory-Mapped)协议采取猝发式机制传输,其接口面向地址映射,传
输数据类型为内存映射类型,能够实现高效工作的互联结构通道,可以支持点放方式
工作,点放的数据最大纯属个数为 256 个。
2)AXI-Stream 协议与 AXI4 协议相比去除了传输地址项,工作方式类似 FIFO,
点放传输模式的个数无限制。通常该协议应用于高吞吐率数据交互需求的系统设计。
15
万方数据
西安电子科技大学硕士学位论文
3)AXI4-lite 协议作为 AXI4 协议的子集,是一个突发长度为 1,轻量级的地址
映射单次传输接口[35],该类协议接口只占据极少的系统资源,性能也较低,通常实现
对 PL 部分单元模块的控制寄存器配置。
2.3 本章小节
本章主要分为两个部分,第一部分首先对于雷达信号处理器的工作流程进行了分
析,其次对于 PD 雷达信号处理器数字下变频,脉冲压缩,动目标检测以及恒虚警处
理四个核心 IP 核的实现结构以及 IP 核之间的数据交互关系关键 IP 核的工作原理和
结构进行论述;第二部分首先论述了 Zynq 体系 ARM+FPGA 结构特征以及软硬件协
同工作优势,并具体论述了 Zynq 体系 PS 部分与 PL 部分之间的软硬件接口以及 AXI
总线协议,本章节主要为后续章节的系统实现方案的提出奠定基础。
16
万方数据
第三章 基于 Zynq 的雷达信号处理系统的设计方案
第三章
基于 Zynq 的雷达信号处理系统的设计方案
本章主要依据软硬件协同设计方法提出基于 Zynq 的雷达信号处理系统设计方案,
首先对样机系统总体设计方案进行概述,并对系统进行软硬件层次划分,然后针对系
统功能需求对于样机系统的信号收发模块以及信号处理模块进行具体的模块方案设
计,进而明确系统中软件模块的主要设计内容。
3.1 雷达信号处理系统的总体设计方案
3.1.1
雷达信号处理系统设计目标
本次设计中的雷达信号处理样机系统来源于实验室项目“某专用数字信号处理关
键 IP 核的设计与实现”。课题中的多普勒雷达信号处理器是一款基于专用集成电路开
发的信号处理器,处理器对数字信号回波进行数字下变频、脉冲压缩、动目标检测以
及恒虚警四个步骤的处理最终从信息回波中解析出探测目标的距离和速度信息。为了
将雷达信号处理器设计的功能进行全面直观的仿真实现,本次课题中的雷达信号处理
样机系统依据项目中的数字信号处理关键 IP 核为基础,对于雷达信号发射接收再到
信号的处理解析过程进行了一体化的实现,主要设计目标如下:
1)系统应具备信号收发以及信号处理两部分的功能,能够通过系统发射并接收
调制的线性调频信号;并且将接收到的信号数据依次完成数字下变频、脉冲压缩、动
目标检测以及恒虚警四个模块的信号处理,实现对于信号中的预调目标进行解析。
2)系统能够具备可复用性以及可配置性,能够支持对雷达信号处理的多组工作
参数进行配置并且完成可复用式的功能实现。
3)系统应提供较为直观的结果显示界面用以显示目标解析的结果使系统更具可
观测性,同时系统应提供较为友好的用户交互界面,用以人机交互完成系统参数配置
以及状态控制。
3.1.2
软硬件协同工作实现方案
根据 SoC 功能验证方法学,传统对于硬件电路设计进行功能验证仿真的方式主
要有两种,分别是软件仿真和硬件 FPGA 仿真。如果单纯使用软件方法进行硬件电路
建模的方式对硬件设计进行功能模拟仿真,那么实现的复杂度会随着设计规模的提高
而指数提升,如此方法显然不适用于我们课题中的庞大系统采用。
另一方面,如若课题中样机系统的信号处理模块实现采用单纯 FPGA 实现搭建,
虽然整个仿真模拟的效果更能与课题中本身芯片性能相近。但与此同时又会出现下面
17
万方数据
西安电子科技大学硕士学位论文
这些弊端:
1)首先,FPGA 原型平台需要从通过 PC 中的相应 Xilinx 开发组件控制对应开发
板上的 FPGA 模块,整个数据通信方式多数采用 JTAG 或者串口通信,那么这两种传
输方式的传输速率实际上无法满足我们雷达系统的对于数据的实时性处理要求。
2)其次,本次课题中的雷达系统为 PRT 个数和 FFT 点数均可配置的系统,那么
使用 FPGA 实现样机则无法体现系统的动态可配置性以及可复用性,每次重设参数时,
需将对应的硬件综合过程重复,也无法直观体现系统的工作过程。
3)最后,在本次课题中的雷达信号处理系统中,数据经过脉冲压缩处理以后,
需要对于处理结果进行若干个 PRT 的相参积累,进而以供后续动目标检测模块按列
提取数据进行每个距离上的目标频谱分析。因此在脉冲压缩和动目标检测模块之间则
需要一块满足存储条件的 RAM 用来存储中间数据。根据脉冲压缩可以处理的点数以
及 FFT 处理点数范围我们列出了每组点数所需的 RAM 最低存储对照表 3.1 所示,由表
可以看出我们如需完成最大点数处理功能的实现,我们至少需要 195Mb 存储的 RAM
资源,而实际 FPGA 上的 RAM 中只支持最大 10Mb 的存储空间,并不能满足我们系
统的硬件配置要求。
表3.1 雷达信号处理关键 IP 核主要性能参数
AD 采样频率
80Mhz*16bit
DDC 输入数据速率
1280Mbps
PC 输入数据速率
2560Mbps
MTD 输入数据率
2560Mbps
PC 模块处理点数
32~4096
一个 CPI 内的 PRT 个数
8~256
综合以上,本文提出来软硬件协同实现方案来实现样机系统,整个系统的信号处
理模块控制由运行于 ARM 处理上的软件部分负责,信号处理实现部分,由 FPGA 构
成硬件单元仿真真实的芯片模型,具体完成各个模块的功能实现。这种利用 FPGA 原
型进行 IP 核建模的方式比事务级的仿真模式降低了计算量,使得系统的运行效果更
加接近芯片的效果,基于这样的优势本次设计采用 FPGA 原型建模方式。具体实现框
架如图 3.1 所示,PS 部分为整个系统的控制中心,主要负责各个处理模块的信号数据
预处理,模块之间数据传输的控制,以及系统的参数配置功能;而 PL 部分凭借射频
板卡控制 IP 核对信号收发部分进行工作状态和参数的控制,并且接收 PS 部分的数据
通过运行于 FPGA 上的信号处理 IP 核完成信号处理的相继步骤最后将处理结果回传
至 PS 部分,每个模块的具体实现层次将在后文中详细论述。
18
万方数据
第三章 基于 Zynq 的雷达信号处理系统的设计方案
图3.1 系统软硬件协同实现方案
3.1.3
基于 DMA 的系统总线传输方案
在本次课题中的设计的样机系统运行过程中,数据由 PS 部分传输至 PL 部分进
行信号处理以后再将处理结果返回送至 PS 部分进而用于用户程序读取显示处理结果。
因而整个过程中数据传输量巨大,对于数据传输的实时性要求高。因而本节主要介绍
本次设计经过比较分析得出的比较合理的总线传输方案。
本次课题系统中的 PS 部分处理的数据类型为 Memory Map(用户内存映射)类型
数据而 PL 部分数据为 Stream(媒体流)类型数据,因而需要在传输接口上对于 PS
和 PL 部分发送的数据进行协议转换。本次系统设计采用基于 DMA 的总线传输方案
实现对于 PS 和 PL 之间数据的类型转换和数据高速传输。在 DMA 工作方式下,DMA
控制器会对总线进行直接控制。数据能够在不通过处理器控制的情况下,由 DMA 控
制器控制直接完成位于输入输出外设与系统内存之间的交换,如此数据流通速率会大
幅度提升。本次样机实现使用的 Zedboard 上有着两种 DMA 传输实现方式,第一种
位于 PS 部分,在系统处理部分的 APU 附带了一个 DMA 控制器,利用这个控制器能
够搬运繁多的处理数据。第二种则是在 PL 部分,Xilinx 官方的 IP 核库中涵盖了用于
DMA 数据传输的 DMAC IP 核,DMAC 能够通过 AXI interconnect 和 AXI-GP 接口、
19
万方数据
西安电子科技大学硕士学位论文
AXI-HP 接口或者 AXI-ACP 接口配合实现 DMA 传输。如下表 3.2 为对于以上四类
DMA 总线传输方式的性能以及优劣进行比较。
表3.2 各种 DMA 方式性能对比
方式
优点
缺点
吞吐率
DMAC 配置有一定难度
600MB/s
最少的逻辑资源
中等吞吐率
PS 部分的 DMAC
多个通道
逻辑接口简单
最高吞吐率
AXI-HP 和 PL 内 DMAC
多个接口
只能访问 DDR/OCM
逻辑设计复杂
有 FIFO 缓存
AXI_ACP 和 PL 内 DMAC
AXI-GP 和 PL 内 DMAC
最高吞吐率
共享了处理器的带宽
最低延时
更复杂的逻辑设计
中等吞吐率
更复杂的逻辑设计
1200MB/s
1200MB/s
600MB/s
本文中系统采用的是 PL 和 PS 部分协同工作方式,对于系统而言合理高效数据
传输方案是系统实时高效工作的基准。介于本次设计的雷达样机数据处理量巨大,实
时性要求高,吞吐率是我们首要考虑评估的性能指标。另外我们的待处理数据储存于
PS 部分的 DDR 存储器中,因而我们选用 AXI-HP 接口和 PL 内 DMAC 配合传输的总
线方案方为其中最为合适的系统传输方式,不仅相较其他方案具备了很高的数据传输
速率,另外还提供了更多的接口选择以供系统设计使用。
最终系统设计中的双向数据传输接口均基于 DMA 工作方式设计,通过 DMAC IP
核、AXI interconnect 和 AXI-HP 接口配合实现,分别应用于信号收发部分以及信号处
理部分的数据传输。由于 DMAC,AXI interconnect 以及 AXI-HP 接口均为全双工工
作模式,因而在系统工作中数据能够同时双向运输,并且互不干扰。AXI interconnect
又称为互联矩阵,也是 Xilinx 提供的官方功能 IP 核,主要功用将主设备与不同的从
设备衔接,达到资源交换共用。
3.2 雷达信号收发模块设计方案
3.2.1
基于 AD9361 的硬件平台选择
本次设计中的样机系统分为信号收发模块和信号处理两部分,信号收发模块主要
负责发射预调制的线性调频信号并通过馈线接收信号将接收到的数据传输至信号处
理模块进行处理,该模块的设计使得整个雷达信号处理系统的功能更加完整。
20
万方数据
第三章 基于 Zynq 的雷达信号处理系统的设计方案
本次设计中的信号收发模块 AD9361 为 ADI 公司开发设计的高度集成的具有较
高使用性能的双通道捷变收发器,早期的射频模块多采用独立元器件组件而成,这种
设计给二次开发,系统应用,器件调试带来了很大的不便。相比早期设计,AD9361
成功地实现了芯片的高度集成,将射频信号收发过程中所需的数模转换模块,滤波放
大模块,增益控制以及频率合成等模块都整合到了一块集成芯片上。这样的集成设计
不但节约了收发模块的成本,降低了成本功耗,并且在性能上能够适用目前多数信号
处理需求,整个模块的工作频率处于 70MHz 和 6GH 之间,带宽为 200kHz 和 56MHz
之间。
AD9361 的收发通道皆具备优良的噪声系数以及线性度,同时能够用于多发多收
系统,单块 AD9361 具备双收双发通道,用户能够对每个通道的增益参数以及滤波参
数进行设定。AD9361 支持软件编程,能够与系统的 FPGA 模块相连通,AD9361 的
设计样板上提供了 FMC 硬件接口,并且将 SPI 总线也涵盖其中。设计者能够设计调
用 SPI 控制接口,对 AD9361 内部相关控制寄存器进行参数配置,实现对于 AD9361
工作模式进行配置。AD9361 是目前仅有的将射频多个模块集成于一块芯片的解决方
案,因而选用 AD9361 作为样机射频模块的硬件支持能够有效降低系统的功耗和实现
成本。
图3.2 AD-FMCOMMS3-EBZ 实物图
本次设计中使用的 AD-FMCOMMS3-EBZ 为 ADI 公司基于 AD9361 设计生产的
高速模拟模块,模块通过 FMC 硬件接口与系统开发板之间进行控制信号以及数据传
输。同时 Zynq 系列开发板还提供了 SPI 接口与该模块相连进而通过特定管脚实现对
于该模块的控制。如图 3.2 所示 AD-FMCOMMS3-EBZ 的主要模块有接收发送通路,
时钟和电源。另外该模块的发送接收通路皆位于 AD9361 结构当中,并且应用于系统
21
万方数据
西安电子科技大学硕士学位论文
中需要控制平台的介入,能够支持的平台主要为 Zynq 系列开发板,如 ZC702,
ZC706,Zedboard 等,本次系统中采用的 Zedboard 平台。
3.2.1
信号收发模块数据交互方案
本次样机系统的信号收发模块主要负责完成系统射频信号的调制,解调,收发以
及接收信号的跟踪绘制等功能,主要工作流程如下:
1)通过对于射频模块的控制配置,将预调入目标的线性调频信号凭借射频模块
的发射部分进行发射再通过 AD9361 的接收装置接收馈线传输回的信号并对信号进
行采样、模数转换处理。
2)AD9361 将处理得到的数字基带信号先发送给 Zynq 中的 PL 部分,PL 部分
的 AD9361 控制处理 IP 核对数字信号有效处理后再将信号数据通过 PS 与 PL 之间的
数据传输接口传输至 PS 部分的 DDR 中的指定区域进行存储。
3)存储于 DDR 中的离散信号数据进而等待信号处理模块提取进而进行信号中目
标的解析与分析。同时离散信号数据在由 PS 部分控制进行 FFT 变换将频谱波形显示
于上位机界面。
图3.3 信号收发模块总体方案图
针对以上工作流程,本次系统设计出软硬件协同工作的数据交互方案,如图 3.3
所示,图中 AD9361 通过 FMC 硬件接口与 Zynq 相连接。AD9361 与 Zynq 之间的数
据交互模块主要有参数传输和数据传输两个模块,参数配置完成对于 AD9361 工作参
数工作状态的控制,主要通过 Zynq 上的 SPI 接口模块与 AD9361 的控制使能器连接,
SPI 接口模块为 Zyqn 运行于 PL 部分的总线接口 IP 核,其与 PS 部分通过 AXI-LTE
总线接口与 PS 部分的 GP 接口相连。数据传输模块主要负责信号数据的处理以及与
Zynq 之间信号数据的传输,该部分由 AD9361 接口 IP 核与 AD9361 上的数据接口进
22
万方数据
第三章 基于 Zynq 的雷达信号处理系统的设计方案
行互通实现,AD9361 接口 IP 同样运行于 Zynq 上的 PL 部分,功能由 FPGA 实现,
其与 PS 部分的数据双向通道通过 DMA 控制器搭配 Stream 总线与 PS 部分的 HP 相
连。
信号收发模块层次化设计
3.2.2
基于 3.2.1 节中数据交互方案设计,如图 3.4 所示本文提出信号收发模块的层次
化设计方案实现该模块的软硬件协同工作机制,主要层次分为硬件层,硬件接口层,
驱动层,系统层,应用层五个层次。
频谱显示模
块
雷达信号源
载波信号合
成
系统数学
库
回波信号解
调
射频控制模
块
应用层
软件
模块
系统I/O库
设备树
系统层
系统驱动
数据注入接
口
DMA驱动
数据收集接
口
SPI接口
驱动
驱动层
配置接
口
硬件接口层
AD9361 core
硬件
模块
硬件层
ENSM使
能状态机
图3.4 雷达信号收发模块的层次化设计
硬件层:基于 AD9361 捷变收发器进行实现,AD9361 通过 FMC 接口与 Zynq 连
接经由 Zynq 上 PL 部分 AD9361 接口 IP 核控制。二者协同完成线性调频信号的发射
与接收工作。
硬件接口层:包括配置接口与数据传输接口两部分,用以实现 PS 与 PL 部分之
间的数据交互,配置接口通过 SPI 配置接口进行实现与硬件层 AD9361 中的使能状态
机互联;数据传输通道基于 DMA 控制器实现,通过 AXI-Stream 总线配合 PS 部分
HP 接口实现 PS 与 PL 部分 AD9361 接口 IP 核数据互联。
驱动层:主要涵盖 SPI 驱动和 DMA 驱动,用以在 PS 运行的 Linux 系统中注册
23
万方数据
西安电子科技大学硕士学位论文
对应设备模块,并提供对于相应模块操作控制接口。
应用层:负责信号数据的合成和解调,以及对于接收信号数据的频谱波形图绘制。
应用层同时包括信号收发模块的数据传输控制应用以及参数配置应用,分别设备驱动
函数进行实现完成对于模块工作参数和状态的配置和控制。
3.3 雷达信号处理模块设计方案
3.3.1
信号处理模块工作流程
样机系统核心部分为信号处理模块,信号处理模块是对于雷达信号处理器的功能
实现,主要用以完成对于各个模块的处理功能以及对于每个处理模块的控制,参数配
置以及模块之间的数据互联,根据课题中雷达信号处理器的 IP 核分布以及工作流程,
信号处理模块的工作流程如下:
1)PS 部分从 DDR 的指定位置中读取待处理数据,即加入目标回波的信号的线
性调频信号时域数据。
2)通过 PS 部分控制模块控制将数据读入 DDC 模块,数据经过多倍抽取,滤波,
并将结果存入 DDR 中。
3)DDC 处理的结果从 DDR 中注入 PC 处理模块,对数据进行 FFT 运算。同时
可通过参数配置模块对该模块处理点数进行配置,配置过程由用户通过上位机交互界
面完成,具体配置为 32~4096 范围内的 2n 个 FFT 可变点数。同样结果收集暂时存储
于 DDR 中。
4)PC 模块的处理结果在 DDR 中进行相参积累形成数据矩阵后按列注入进 MTD,
MTD 模块对其注入激励进行多普勒频移分析,进而分析出频谱中运动目标的径向速
度以及距离信息。同样用户可通过上位机交互界面进行参数配置,配置具体参数为一
个 CPI 内处理的脉冲积累个数为 8~256。
5)MTD 中的数据结果经过存放于 DDR 中再按列提取注入进 CFAR 模块,进而
进行噪声滤波,虚警消除处理,得到最终更为准确的信号处理结果,并将最终结果通
过二维绘制图像显示于上位机用户显示界面中。
3.3.2
信号处理模块层次化设计
为了完成以上工作流程,经过分析本文样机的信号处理模块需要具备以下功能:
1)控制模块通过接收用户设定参数对硬件层关键 IP 核的工作参数完成配置。
2)模块启动工作后,通过激励注入模块将待处理数据相继注入到每个相应的处
理模块中等待处理。
3)响应收集模块将每个模块的处理结果储存于 DDR 的指定位置中并将结果按需
24
万方数据
第三章 基于 Zynq 的雷达信号处理系统的设计方案
处理注入到后续模块。
4)将系统的处理结果通过二维绘图方法绘制出结果图显示于上位机显示界面中。
基于以上功能,本文提出了如图 3.5 所示的模块层次设计方案,有效实现信号处
理部分的实时高效性以及可复用性的性能需求。
信号解调模
块
结果对比模
块
激励注入模
块
系统数学
库
响应收集模
块
控制模块
应用层
软件
模块
系统I/O库
设备树
系统层
系统驱动
数据注入接
口
DMA驱动
数据收集接
口
参数配置
驱动
驱动层
配置接
口
硬件接口层
雷达信号处
理模块
硬件
模块
硬件层
Wrapper
图3.5 信号处理模块层次设计方案
由以上系统层次图可知,整个信号处理部分分为硬件层,数据接口层,驱动层,
系统层,应用层五个层次。
硬件层:位于 PL 部分 FPGA 部分实现,由对应信号处理的 IP 核封装形成各个
模块,与 PS 部分数据交互通过数据接口层实现。
数据接口层:也称为软硬件接口层,基于 DMA 工作的总线传输方案实现。为驱
动层提供对于硬件层控制的通信方式,同时为硬件层提供对应 IP 核封装所需遵循的
总线协议。
驱动层:为应用层提供对于系统外设的控制接口,该模块的驱动主要包括 DMA
控制驱动以及参数配置驱动,分别为应用程序通过 DMA 控制数据传输以及进行参数
配置提供软件接口。
应用层:包括数据传输模块,数据处理模块,参数配置模块以及用户交互模块。
数据传输模块控制每个处理模块的数据注入以及数据收集,数据处理模块完成数据的
25
万方数据
西安电子科技大学硕士学位论文
中间处理,参数配置模块负责对于特定处理模块的参数配置,用户交互模块完成以上
模块的用户交互接口设计并且完成对于数据结果的绘制显示。
3.3.3
参数可配置设计方案
合理高速的数据交互传输方案为样机系统的实时高效工作提供了性能保障,然而
本次设计中的样机系统还需要达到可复用,参数可配置的系统要求。为此在本节中主
要介绍本次设计中的参数可配置的具体设计方案。
根据需求分析,本次系统中的信号处理模块需要满足如下配置功能:
1)实现通过上位机交互界面实现对底层硬件层的工作参数的配置,并且系统的
驱动程序以及应用程序均可满足多个配置参数下可复用性使用要求。
2)具体来说,PC 模块配置的参数是 32~4096 范围内的 2n 个 FFT 可变点数;MTD
模块配置的参数为一个 CPI 内处理的脉冲积累个数,范围为 8~256 中的 2n 个。
DDR
PS
Cache
APU
Memory
Interface
GIC
GP
AXI
interconnect
控
制
/
配
置
接
口
数
据
注
入
接
口
Interrupt
HP
AXI
interconnect
数
据
收
集
接
口
DMAC
Wrapper
Radar DSP
PL
图3.6 参数可配置系统实现方案
为了达到以上系统的配置功能要求,本文提出如图 3.6 所示的系统配置方案,并
将在下文中详细介绍数据接口层到应用层的层次化实现方案。
如图 3.6 所示,系统基于软硬件协同工作方案实现,PS 部分与 PL 部分之间不仅
包含数据传输总线的联通用来实现处理数据的注入和收集,另外涵盖了配置模块完成
了 PS 部分对于 PL 硬件实现层参数寄存器的访问进而实现对于工作参数的配置。
26
万方数据
第三章 基于 Zynq 的雷达信号处理系统的设计方案
Wrapper
数据
注入
接口
数据
协议
转换
模块
DUV
数据
协议
转换
模块
数据
收集
接口
conf_in
Register
IPIF
配置模块
配置接口
图3.7 数据接口层可配置优化方案
数据接口层:如图 3.7 所示,在 IP 核封装过程中添加参数配置模块,IP 核顶层
预留参数寄存器,用以接收上位机发送传递的参数。配置模块主要由 IPIF(IP 接口)和
配置寄存器构成。配置接口由 AXI-GP 接口以及 AXI 互联矩阵实现。IPIF 主要用来
完成寄存器与 AXI 互联矩阵之间的数据双向联通。预留的配置寄存器用来接收配置
参数,并将具体参数传递至硬件实现层。另外由于加入了配置模块,因而 PL 部分总
线协议应在原先的 Stream 总线类型信号中加入 AXI-lite 总线类型信号,采用
AXI-Steam&lite 总线进行数据传输。
驱动层:驱动层部分需要设计各个配置模块驱动,主要作用是将物理地址映射到
虚拟地址上,完成对目标寄存器的赋值。另外对于需要对 DMA 控制驱动进行优化,
使得 DMA 驱动的开辟空间应该至少满足每个模块最大配置数的要求。
应用层:设计实现参数配置模块,实现获得用户输入的参数并通过驱动层完成对
底层硬件工程的配置;优化控制模块,实现根据不同设定参数完成对应的数据处理以
及工作流程的控制。
3.4 本章小节
本章内容中主要配合软硬件协同设计方法提出了基于 Zynq 的雷达信号样机系统
的设计方案。内容分为三个部分,第一部分为系统的总体实现方案,首先对于样机系
统的设计目标进行了整体概述,其次提出了软硬件协同工作的整体实现框架,并对于
系统的软硬件实现进行了划分,然后着重阐述了系统设计方案中基于 DMA 工作实现
的 PL 与 PS 之间数据总线传输方案;第二部分为信号收发模块的设计方案提出,首
先针对该模块的设计需求进行了基于 AD9361 的硬件平台选择,其次根据该模块工作
27
万方数据
西安电子科技大学硕士学位论文
流程提出了对于该模块实现的数据交互方案,最后提出了该模块硬件层,硬件接口层,
驱动层,系统层,应用层五个层次的层次化设计方案;第三部分为信号处理模块的设
计方案提出,首先对于信号处理模块的工作流程进行阐述,其次根据模块工作流程提
出该模块的硬件层到应用层的层次化设计方案,最后从硬件接口层,驱动层,应用层
三个层面重点论述了信号处理模块参数可配置方案的设计。
28
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
第四章
基于 Zynq 的雷达信号处理系统软件模块的实现
本章内容主要完成了雷达信号处理样机软件模块的设计实现工作,即包括系统驱
动层,系统层,应用层的设计实现工作。本章节将主要从基于 Zynq 的嵌入式 Linux
系统实现,系统驱动层开发以及应用层设计三个方面具体论述整个系统软件模块的实
现工作。
4.1 引言
根据本文第三章所述系统设计,综合系统信号收发以及信号处理两部分的设计方
案,本次课题中的雷达信号处理样机整体系统设计如图 4.1 所示包含五个层次结构,
分别为硬件层,数据接口层,驱动层,系统层,应用层五个层次,其中硬件层与硬件
接口层属于系统硬件模块工作于 Zynq PL 部分的 FPGA 区域,而系统的软件模块主要
包括驱动层,系统层,应用层三个层次,运行于 PS 部分的 ARM 处理器区域。
硬件层
硬件接
驱动层 系统层
口层
应用层
系统内部框架
雷达信号
源
频谱显示
模块
载波信号
合成
回波信号
解调
激励注入
模块
射频控制
模块
DMA驱
动
数据注入
接口
响应收集
模块
雷达参数
控制模块
软件
模块
系统I/O
库
系统数学
库
AD9361
AD9361 core
core
设备树
雷达模块
设备驱动
SPI驱动
数据收集
接口
结果显示
模块
DMA驱
动
数据注入
接口
配置接口
数据收集
接口
Radar
DSP
Core
ENSM使
能状态机
硬件
模块
Wrapper
图4.1 雷达信号处理样机系统层次设计
如下为系统五个层次的依次概述:
硬件层:位于 PL 部分 FPGA 上实现,由 IP 核封装形成负责数据处理以及射频
控制的模块,与 PS 部分数据交互通过数据接口层实现;
29
万方数据
西安电子科技大学硕士学位论文
数据接口层:也称为软硬件接口层,负责 PS,PL 之间控制信号以及处理数据的
传输,为驱动层提供对于硬件层控制的通信方式,同时为硬件层提供对应 IP 核封装
所需遵循的总线协议。
驱动层:为应用层提供对于系统外设的控制接口,运行于基于 Zynq 的 Linux 系
统内核空间中。主要包括信号收发模块以及信号处理模块的 DMA 控制驱动,信号处
理部分参数配置驱动以及信号收发模块的 SPI 控制驱动。
系统层:为应用程序与驱动程序之间的接口,设计工作主要包括基于 Zynq 平台
嵌入式 Linux 系统的建立以及位于 Zynq 上 QT 运行环境的构建等,为系统提供数学
函数库,输入输出接口以及设备树文件等。
应用层:包括整个系统的数据传输模块,数据处理模块,参数配置模块以及用户
交互模块。数据传输模块控制每个处理模块的数据注入以及数据收集,数据处理模块
完成数据的中间处理包括信号数据的合成和解调以及信号处理数据的预处理,参数配
置模块负责对于系统信号收发模块以及信号处理模块的参数配置,用户交互模块完成
以上模块的用户交互接口设计并且实现对于数据结果的绘制显示。
本章工作将根据第三章中的系统设计方案完成雷达信号处理样机软件模块的具
体实现工作,即包括系统驱动层,系统层,应用层三个层次的设计实现。本章将主要
从嵌入式 Linux 系统实现,系统驱动层开发以及应用层设计三个方面具体论述整个系
统软件模块的实现工作。
4.2 基于 Zynq 的嵌入式 Linux 系统实现
本次样机系统的软件模块运行于基于 Zynq 实现的 Linux 系统上,实际由 Zedborad
开发板 PS 部分的 ARM 处理器作为运行硬件基础,因而系统 Linux 是本次课题中的
系统软件模块实现的根基。本小节将从交叉编译环境搭建,引导程序的设计实现,内
核的定制以及嵌入式文件系统的建立四个层次进行论述在 Zynq 上实现嵌入式 Linux
系统的具体流程。
4.2.1
交叉编译环境的搭建
在嵌入式系统设计工作中,通常会使用两台开发的硬件设备。一台主要作为所要
设计的嵌入式系统实现的平台基础称为目标机,例如本次设计中的 Zedborad 开发平
台,用于实现基于 Zynq 的嵌入式系统。但由于一般目标机上资源有限,无法提供设
计者合适的开发环境,因而需要另外一台更高性能的机器用来设计编译软硬件代码,
通常使用 PC 机和一些服务器平台等,称为宿主机。由于宿主机开发编译的程序目的
是在目标机上工作运行,因而我们利用交叉编译环境的建立来消除这种跨平台所带来
30
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
的影响,进而使得编译出的程序具备跨平台型。交叉编译的特征在于某一硬件设备编
译的代码并非在本地运行,而在另一个硬件设备上工作运行。通常硬件开发时采用目
标开发板和工程计算机进行交叉编译,软件开发时利用与目标平台兼容的编译工具。
交叉编译后设计者一般通过串口通信或者 SD 卡拷贝的方式将编译完成的程序转移到
目标机上。
本次设计的系统基于 Xilinx 公司的 Zynq 系列开发平台实现,通过一下步骤建立
交叉编译环境:
1)安装交叉编译工具链。下载 Xilinx 官方提供的交叉编译工具链安装文件
arm-xilinx-linux-gnueabi.bin,将安装文件拷贝到宿主机的 Linux 文件系统中,并更改
可执行权限后在对应工作路径下进行安装。
2)添加交叉编译环境变量。通过 GNU 工具修改 bash_profile 环境变量配置文件,
在设置路径条目后面将交叉编译与已安装的交叉编译工具链相对应。
3)更新当前用户的环境变量。利用 source 指令更新环境变量,如此能够保证在
通过 Makefile 编译程序时直接定位安装的 Xilinx 的交叉编译工具进行编译。如果没
有进行环境变量的修改,则需要在每个 Makefile 文件中注明编译工具的执行路径。
通过以上步骤,即能够在宿主机器上建立完成交叉编译环境,进而能够在宿主机
器上开发编译生成能够在目标机上运行的程序。
4.2.2
启动加载器的自定义实现
启动加载器即 Bootloader,对于嵌入式系统而言就相当于 BOIS 对于计算机系统
的地位一样,主要用来在系统运行前对于硬件以及底层内核进行初始化配置即引导,
以此来加载系统。系统启动时,Bootloder 会在启动的第一阶段进行执行。设计者需
要通过对于 Bootloader 的自定义设计进而对于整个系统的硬件平台进行初始化配置,
构建内存映射关系,让整个系统的软硬件部分均处于支持正常运行的状态,为之后的
Linux 系统运行做好准备。不同的硬件平台需要定制不同的 Bootloader 加以执行,因
而具体的硬件平台对应相应的 Bootloader,只有采用的 Bootloader 与硬件平台高度匹
配,才能够保证嵌入式 Linux 系统运行过程的足够稳定也会降低 Linux 移植过程的成
本。
本此课题采用的 Zynq 系列开发平台启动过程与通常 ARM 开发平台类似,同样
分为三个阶段:
1)接入电源后,平台进入到第 0 启动阶段,这一阶段主要通过 BootROM 中的
的程序对于平台的硬件以及各种外设进行初始化配置,并且会通过开发平台上特定引
脚的状态选择对应的平台启动方式。以本次设计为例,使用 SD 卡启动方式,则需要
将对应 MIO[2~8]引脚设置成[X011XXX]。这一阶段结束后,平台会将控制权交给
31
万方数据
西安电子科技大学硕士学位论文
FSBL,进入第一启动阶段。
2)进入第一启动阶段,这一阶段主要由 FSBL 控制,PS 部分通过 FSBL 中的代
码进行初始化配置;比特流文件在这一阶段写入 PL 部分进而对 FPGA 进行配置;最
后将第二阶段启动文件 U-boot 加载到内存区中,使进程进入第二阶段启动阶段。
3)第二阶段启动开始,这一阶段启动文件 SSBL 即为 U-boot 文件,U-boot 引导
Linux 系统启动,并为 Linux 系统进行初始化工作。这一阶段 U-boot 文件将操作系统
加载到了内存空间中,并将系统的控制权交给 Linux 系统。
经过以上阶段,平台的 Linux 系统加载运行完成,综上所述,所用到的文件有
FSBL 文件,U-boot 文件,以及 System.bit 硬件比特流文件。下面具体论述这三个文
件建立过程。
首先是生成硬件比特流文件,涵盖对于硬件部分的配置信息。文件的生成过程在
Xilinx 提供的开发工具 XPS 中完成,硬件工程基于 Zedborad 的开发板模板进行定制
化设计。主要工作是根据第三章节中的系统设计架构将硬件部分封装完成的 IP 核以
及所用到的官方库中的 IP 核添加到系统工程中,并选择相应的总线协议连接 PL 与
PS 部分,对于系统中的外设根据需求进行配置,最终生成所需的 System.bit 硬件比
特流文件。
对于本次课题的系统而言,硬件比特流文件生成主要经历以下几个步骤:
1)将库中的标准 DMA 核添加进工程中,并对 DMA 核的寄存器有效宽度等参
数进行配置。
2)创建雷达信号处理各模块以及射频接口模块 IP 核,总线接口类型均选择
Axi-lite 并将 AXI-Stream 总线的信号端口添加到各个 IP 核的总线接口中,最后将创
建的 IP 核导入到工程中,并且将对应 IP 核总线与 DMA 总线以及 PS 部分系统总线
相连接。
3)根据系统设计需要,设定对应时钟频率,本次设计中信号处理需要用到八分
频时钟,因而我们将 CLK0 的频率设定为 CLK3 的 8 倍,分别是 40MHz 和 5MHz。
再将各个 IP 核的时钟端口以及复位端口与系统中对应端口口连接。
4)最后为每个 IP 核的寄存器分配特定的物理映射地址,在开发平台中编译系统
工程整合软硬件配置信息生成硬件比特流文件。
系统比特流文件生成以后,将系统的比特流文件导入到 SDK 开发工具中,新建
FSBL 模板,并在 FSBL 中将代码改为复位重启。SSBL 启动文件 U-boot 在宿主机器
的 Linux 系统中生成,本次设计采用的开发系统为 Ubuntu14.01,进入 u-boot 源码包
的下载目录下,对于 u-boot 进行配置最后编译生 u-boot 文件。联合上文的第一阶段
启动文件 FSBL,系统比特流文件 System.bit,第二阶段启动文件 u-boot 即可生成最
终的 Bootloader 文件 BOOT.bin。
32
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
4.2.3
Linux 内核以及设备树定制
内核是操作系统最为核心的部分,Linux 系统也无不例外。在 Linux 系统中,内
核的作用主要是对于系统进程,文件系统,系统设备,网络状况以及资源存储等的一
系列管理,其中最主要就是实现对于处理器以及内存资源的调用和共享。Linux 的内
核对于系统的设备管理以及存储空间访问均有最高的权限,也是系统中仅有的能够使
用 root 命令的程序。内核运行承载第三方软件后则形成我们熟知的操作系统,内核中
的函数可供程序开发者在应用中使用,开发者只需要借助程序接口即可直接调用一些
内核中的函数,同时用户指令也能够通过作业接口使用内核中的函数,例如文件管理
的打开,关闭函数等。因而对于 Linux 而言内核可谓之系统中不可分割的重要组成部
分。下面主要介绍本次设计中 Linux 内核的构建过程:
1)首先获取官方提供的 linux-digilent 3.6.0 的内核源码包,此处多用的 linux 版
本应该上文 4.2.2 中的 u-boot 版本一直,否则会影响系统的正常启动。
图4.2 内核配置菜单
2)在内核源码的工作目录下,对于内核进行初始化配置处理,再进行内核的自
定义配置,如图 4.2 所示。通过配置菜单能够加载外部配置文件对于系统内核进行定
制化配置,另外还能够根据需要选择需要加载的设备驱动将不需要的设备驱动去除以
此释放一定内核空间。
3)在内核源码目录下,使用本文 4.2.1 节中安装的交叉编译工具链进行内核编译,
生成内核镜像文件,以备系统启动使用。
Linux 系统中访问都是虚拟地址,需要对存储地址进行虚拟地址和物理地址的转
换系统,需要设备树为系统提供硬件外设的物理地址。系统启动时设备树将硬件信息
传递给内核,提供硬件外设的物理地址。设备树对于系统的引入有效降低了内核对于
硬件设备的依赖性,实现内核的可复用性,同时节约了 Linux 系统开发的成本。因而
设备树对于 Linux 系统的建立至关重要。
33
万方数据
西安电子科技大学硕士学位论文
本次设计中内核编译完成后初始设备树源文件同时建立,开发过程中需要对设备
树源文件进行修改,具体来说需要添加系统中的硬件配置信息,主要有信号处理各个
模块的设备结点,DMAC 设备结点,AD9361 接口模块的设备结点等。具体的结点信
息包括模块的物理地址,模块的位宽以及一些模块结点的属性例如 DMAC 的 DRE 参
数,双通道的传输突发长度,异步时钟的使用等。设备树文件修改完成后将设备树源
文件编译生成设备树,以备系统启动。
4.2.4
根文件系统的建立以及 Linux 系统启动
嵌入式根文件系统是除了上文提到的的启动加载文件,内核镜像文件以及设备树
文件之外必不可少的系统文件,也是保障嵌入式 Linux 系统正常运行的关键所在。个
文件系统的主要作用的为用户提供系统中数据交互的存储空间,也是一种解决系统中
存储文件的方案,主要包括操作权限管理,资源管理,存储结构,文件命名几个部分。
对于 Linux 用户而言,所有系统中可见的目录,文本,设备,文件信息或者软链
接都凭借文件的形式存在于系统当中。对于嵌入式开发者而言常常需要通过应用对系
统外设进行操作,同样能够利用驱动提供的接口将这一步骤等同于对于文件的管理操
作。在设计过程中可以使用原版 Linaro,也能够通过软件工具对文件系统进行按需裁
剪后使用。本次设计考虑到设计的灵活多变以及系统界面的友好,采用的是基于
Ubuntu 的 Linaro 系统架构,他的优势在于涵盖全面的文件系统的同时,能够给予使
用者类似 Ubuntu 系统高度友好的用户体验,也与 SOC 系统相互兼容。
首先利用 fdisk 指令将 SD 卡进行分成两个分区,第一分区为 1G 存储空间的 FAT32
格式分区,用以存放启动所需文件;第二个分区为 ext4 格式分区,用以存放文件系
统。然后将 Linaro 的源码包进行解压,将解压出的文件系统利用 rsync 指令同步到
SD 卡的第二分区中,rsync 指令完全能够保留文件系统的结构以及文件权限。最后对
于分区进行设计所需编译库的移植。本次设计中需要移植的是 QT 库文件,用以实现
后续章节 QT 工程的编译和运行。库文件移植后 SD 卡中的文件系统即已建立。
图4.3 Linaro 图形桌面运行图
34
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
至此,所有系统启动文件均以准备就绪,将上文中准备好的 BOOT.bin 启动加载
器文件,dtb 设备树文件拷贝到 SD 卡的第一分区中。将 Zedboard 与外设以及显示屏
连接,通过 SD 卡启动 Zedboard 开发板可见嵌入式 linux 系统正常启动,如图 4.3 所
示。
4.3 基于 Zynq 的雷达信号处理系统驱动程序的实现
驱动程序作为硬件设备与软件系统之间的接口,需要为系统控制外设提供对应的
控制函数。驱动程序的存在能够使得底层硬件设备对于应用程序来说相当于对应的文
件,进而软件模块在对于硬件进行操作的时,类似于对于通常文件的操作。
驱动程序的目的是在于对于底层硬件的具体信息进行封装,使得应用程序毋需考
虑硬件部分的具体细节,只需要通过驱动程序提供的接口,如同操作文件一般管理硬
件设备,所以通常也可以把驱动程序类比为用来管理硬件设备的应用程序。驱动程序
的主要工作有:完成对于硬件设备的初始配置,为硬件设备与软件模块之间的数据传
输提供接口,以及实时对于硬件设备进行状态检测和反馈。如图 4.4 为 Linux 系统下
从硬件物理设备到应用程序的层次结构关系。
图4.4 物理设备到应用程序的层次结构关系
由图中可以看出,设备驱动工作时实际是需要预先加载到内核中,设备驱动程序
通过对于设备控制器的控制进而控制物理设备,在本文设计中即为 FPGA 部分
AD9361 的控制模块以及各个信号处理模块的 IP 核。设备控制器通常有两种方法获取
系统请求:一种是循环访问查询某一特定位置,这种方式有利于简化设备的读写操作
但同时也使得工作效率下降;另外一种则是常用的中断方式实现对于获取系统请求的
实现对于随机请求的响应,能够实现对于当前任务的进度保存后再去响应任务[38]。
Linux 系统驱动的使用方式通常有两种,一种是在内核编译时事先将驱动配置于
35
万方数据
西安电子科技大学硕士学位论文
内核源码中在进行内核编译,则内核启动时会自动加载所需的驱动;另一种方式是采
用将驱动程序通过交叉编译工具编译成具体模块程序再凭借模块的形式加载到系统
中。这两种方式各有利弊:第一种方法的优势在于驱动无需安装使用者能够任何时候
调用;劣势在于一方面提高了内核空间的占用比,另一方面使得驱动的改进以及更新
工作难以开展,在每次对于驱动程序进行定制化改动时,设计者需要将内核重新进行
编写再编译,并且内核中的驱动必须遵循 GPL 协议,如此大大提升了开发人员的设
计周期。第二种加载模块的方法相比第一种,虽然使得由于查找模块驱动耗费系统的
资源和响应时间,但使得开发人员的设计纠错工作方便起来,在更新驱动时只需要将
之前的驱动卸载再加载更新后的驱动即可。对比两种驱动的比较,基于对于开发过程
灵活性的需求,本次设计中采用的驱动程序基于模块加载的方式实现[39]。
对于本此课题中的雷达信号处理系统而言,整体工作模块分为信号收发以及信号
处理两个部分,需要开发设计的驱动程序主要有四个模块。首先是信号收发部分,信
号收发部分基于 AD9361 实现,Zynq 的 PL 部分通过 SPI 接口将控制配置信号发送至
AD9361 对其进行控制,同时 AD9361 通过 SPI 将控制反馈信息返送至 Zynq。因而需
要开发设计 Zynq 上 PL 部分与射频板之间的 SPI 驱动,用来实现控制信号以及控制
反馈信号的传输。进而射频模块的 PL 部分以及 PS 部分基于 DMA 工作实现数据传
输交换,因而需要设计实现 DMA 模块的驱动控制 DMA 实现射频信号的数据发送和
接受;其次是信号处理部分,信号处理部分 PL 与 PS 之间的数据传输同样基于 DMA
实现因此需要开发对应 DMA 控制模块的设备驱动,除此之外还需要设计完成各个信
号处理模块的模块驱动完成对于模块参数的配置读写。下文中将着重介绍这三种类型
的的驱动设计流程。
4.3.1
PS 与 PL 之间数据传输的 DMA 驱动实现
本次课题的系统中信号收发部分和信号处理部分数据在 PS 和 PS 之间的总线传
输均基于 DMA 工作实现,信号收发部分射频频谱数据通过 DMA 由 PS 部分发送至
射频模块的发送缓存区中,射频模块接收到的数据同样由 DMA 传输回 PS 中,因而
DMA 驱动设计对于系统的实现尤为关键。
首先对 DMA 的工作模式进行分析。DMA 启动工作后先对其控制寄存器进行复
位操作,再在存储区间中申请一部分特定空间用以缓存发送过程中的数据。驱动中会
指定两个虚拟指针,分别指向源数据地址和目的数据地址,传输过程中会通过对于指
针变量的值的比较来定义传输过程是否继续。
针对以上工作流程,本次设计中的 DMA 驱动依旧沿用字符设备驱动类型,驱动
的整体实现架构如下:

设备的加载和卸载函数
36
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现

设备操作结构体

核心操作函数 ioctl()

虚拟地址映射

一致性 DMA 映射
(1)设备的加载和卸载
驱动的加载函数主要是用于将模块加载到系统中,并注册相应的设备号,通常有
主次设备号之分,主设备号能够定位驱动程序而此设备号决定的是特定的设备。本次
设计中采用的混杂设备的主设号则统一为 10,但都有特定的次设备号。所有注册为
混杂设备的驱动会以链表的形式存在,可以通过具体的此设备号进行查找进行具体混
杂设备的访问。在定义一个混杂设备的时候需要构建特定的 miscdevice 结构体,利用
misc_register 注册函数在设备的加载函数中完成注册[30]。具体结构如下:
static struct miscdevice radar_dma =
{.minor = MYDRV_MINOR,
.name =“radar_dma”,
.fops=&radar_dma_fops,
};
从结构体可以看出主体参数有 MYDRV_MINOR 是给予 DMA 特定独有的固定次
设 备 号 , 通 过 该 设 备 号 能 够 定 位 到 DMA 驱 动 , 同 样 也 可 以 通 过
MISC_DYNAMIC_MINOR 这样的宏指令将动态的设备号分配给 DMA; radar_dma
则为这个混杂设备的设备名,在调用打开时会使用;同时 radar_dma_fops 则为该设备
特定的操作结构体,会在下个部分定义。
(2)文件操作结构体
这一部分的定义相当于将硬件设备的操作函数例如读写打开等函数封装在一个
统一的结构体中,使得上层应用程序调用时能够有统一的 API 接口访问硬件设备。如
此在 Linux 系统中,应用程序毋需考虑硬件部分的具体细节,只需要通过驱动程序提
供的接口,如同操作文件一般管理硬件设备。相当于应用层不需要直接对硬件进行控
制,而是通过 API 调用对应的驱动去控制硬件。文件操作接口提则是将一系列的与系
统调用的 I/O 库函数相对应的设备操作函数封装起来,系统工作时通过访问设备号定
位到该操作结构体中的函数,这样设备才能通过这些操作函数陆续执行应用程序指定
的操作。
根据本次设计中的 DMA 工作原理,主要需要完成的功能为完后才能 PS 到 PL
部分的数据传输,因而结构体中应该包含设备读写,设备打开关闭以及设备的寄存器
控制操作函数。结构体如下所示:
37
万方数据
西安电子科技大学硕士学位论文
static struct file_operations radar_dma_fops =
{.owner = THIS_MODULE,
.open = radar_dma_open,
.write = radar_dma_write,
.unlocked_ioctl = radar_dma_ioctl,
.read = radar_dma_read,
.release = radar_dma_ release
};
(3)设备操作函数
文件操作结构体中包含设备操作函数,这些函数主要功能是通过对于 DMA 的状
态,控制等寄存器进行配置完成对于 DMA 的初始化以及数据传输过程的启动和结束,
与此同时实现数据位于用户空间以及内核空间之间的交换,具体实现的操作函数有设
备读写函数,以及寄存器配置函数 ioctl( )。
首先是设备的读写函数,通常在了 Linux 系统中用户与内核空间被严格划分,互
相之间并不能直接互相访问,应用程序运行于用户区间而驱动在内和空间运行,由于
系统稳定性的要求,应用程序无法直接读取内核空间的数据,并且通常指针之类的方
法也无法使用于内核驱动和用户空间之间交互数据。在 Linux 系统中用户和内核交换
数据通常使用 COPY_TO USER(),COPY_FROM_USER,ACCESS_OK()等一系列系
统 提 供 的 数 据 访 问 接 口 函 数 。 以 本 此 设 计 中 使 用 的 COPY_TO USER() ,
COPY_FROM_USER()函数为例,通常两函数的参数分别为数据接收的目标地址,数
据发送的源地址,以及传送数据的字节数。
AXI4 Memory
Map read
AXI Stream (MM2S)
MM2S 数据传输模块
AXI Control Stream
MM2S 控制/状态模块
Option AXI4 Memory Map
scatter/gather read/write
AXI-lite
寄存器模块
S/G
S2MM 控制/状态模块
AXI4 Memory
Map write
AXI-Stream (S2MM)
S2MM 数据传输模块
图4.5 DMA 内部结构图
38
万方数据
AXI Status Stream
(S2MM)
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
其次操作函数中的寄存器控制函数 ioctl(),其核心实现方案是对于 DMA 控制
器的不同寄存器进行状态配置,完成对于 DMA 数据传输的整体控制,如图 4.5 所示
为 DMA 的内部结构图。从结构图中可以看出 DMA 内部有两个并行工作的数据传输
模块,分别是 MM2S 数据传输模块以及 S2MM 数据传输模块,分别负责 PL 与 PS 之
间两个方向的数据传输,MM2S 通道将 PS 部分用户内存映射类型的数据转换成 PL
部分的 stream 流类型数据,S2MM 通道则是刚好相反。两个数据传输模块分别由各
自的控制状态寄存器进行配置控制工作方式。如表 4.1 为 DMA 内部特定控制信号在
各自具体寄存器中的偏移地址。
表4.1 simple 方式 DMA 寄存器描述
以 MM2S 通道为例,DMA 工作启动到完成的寄存器配置状态图如图 4.6 所示,
由图可以看出 DMA 中 MM2S 的启动过程如下:
1)先通过控制寄存器中的复位数位 MM2S_DMACR.RESET 将 MM2S 和 S2MM
分别通道复位。
2 ) 通 过 设 置 MM2S_DMACR.RS 来 启 动 MM2S 通 道 的 工 作 状 态 , 并 等 待
DMASR.Halted 跳变成 0 后代表通道启动。
3)将数据源地址写入到 MM2S_SA 寄存器中。
4)最后将传输数据的字节数写入 MM2S_LENGTH 寄存器中,由于该寄存器中
内容一旦写入,传输过程立即开始,因而要最后一步写入。
39
万方数据
西安电子科技大学硕士学位论文
(4)内存映射
通常,应用程序对设备的控制操作实质上是对于设备特定物理地址的操作。在
Linux 中为了保证系统的安全性,一般将物理地址映射成 PS 部分可以直接访问的虚
拟地址。映射函数为 ioremap,具体使用方法是:
REG=ioremap(PHY_ADDR, REG_NUM);
其中 REG 参数为定义的虚拟指针,而 ioremap 函数中的参量分别为映射的物理
地址以及位数。
DMACR.RESET=0x04
DMA通道复位
MM2S_DMACR.RS=0x01
S2MM_DMACR.RS=0x01
DMA的S2MM通
道启用
DMA的MM2S通
道启用
MM2S_SA=XXX
S2MM_SA=XXX
数据源地址配
置完成
数据源地址配
置完成
MM2S_LENGTH=N
S2MM_LENGTH=N
数据传输开始
数据传输开始
S2MM_DMASR&0x1000=1
MM2S_DMASR&0x1000=1
数据传输结束
图4.6 DMA 寄存器配置状态图
(5)DMA 一致性映射
Cache 为系统 PS 部分的高速缓存区。如图 4.7 所示,为了使数据的读写传输速率
跟上处理器的处理运算速度,处理器通过从 Cache 缓存区中读取数据进而访问 DDR
40
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
中的数据,这样的过程中必须要求 Cache 中的数据是处理器实时需要处理的数据,才
能保证处理结果的正确。然而,在使用 Zyqn 的 FPGA 模块进行硬件部分数据处理时
会对于 DDR 中的数据执行循环读写,这样会使得 Cache 中的数据与 ARM 处理器中
需要的数据不能匹配,因而 ARM 通过 Cache 中读到了错误的数据。同样,对于相反
的过程,处理器处理结束的数据传输进入 Cache 缓存区中,但在 Cache 中的数据完全
传入 DDR 中之前 PL 对于 DDR 中数据进行读写并且处理也会造成运算结果错乱。以
上即是高速缓存区的一致性问题。
ARM
PL加速模块
DDR
Cache
图4.7 缓存一致性问题
通常对于 PL 加速模块造成的高速缓存区一致性问题的解决方案有两种:分别是
流式 DMA 映射以及一致性 DMA 映射。第一种流式 DMA 映射通常用于一次 DMA
的传输,每次传输后需要将映射取消,如果进行多次 DMA 流映射并且需要保证 DMA
数据传输过程中对数据进行访问则需要对缓存区的数据进行实时同步,如此处理器和
外界设备能够获取缓存区实时更新的数据,流式映射的缺陷在于作用的周期较短,并
且在缓存区的开辟之时 Cache 无法使用,也会造成工作效率低下。对比流式映射,一
致性映射的一致性实际上意味着同步性,一致性 DMA 映射通常在驱动初始化时就完
成映射,驱动退出时取消映射。
4.3.2
PS 与 AD9361 信息交互的 SPI 驱动实现
对于 Linux 系统而言设备通常分为字符设备,块设备和网络接口设备三种。本次
设计中的 SPI 实为一种串行接口,属于字符设备类型。字符设备指的是没有缓存空间
的设备,字符设备的驱动用以实现对于字符设备类似文件的访问和操作,核心操作主
要有打开,关闭设备以及对于设备的读写操作。然而字符设备与通常文件之间的不同
之处在于一般文件能够支持在区间上的往返读写,但常见字符设备作为数据通道只支
持连续顺向的读写,少数字符设备能够支持跳读中间的数据。
41
万方数据
西安电子科技大学硕士学位论文
作为字符设备,
SPI 的驱动程序主要包含的设备函数有设备加载函数,卸载函数,
打开函数,相应读写及操作函数以及退出函数等。加载函数的主要作用在于对于模块
的驱动进行初始化,其核心在于利用系统提供的注册函数将该模块的驱动注册成指定
类型的设备,可以为加载于内核中的静态设备,也可以为系统单独的模块。本文中设
计的驱动注册采用的为混杂设备(Miscdevice)类型,这种设备类型的优势在于能够节
省主设备号,将一系列设备用链表的形式进行串联,查找时使用此设备号有所区分,
通常使用 module_init 将模块加载函数进行注册。其次是设备的卸载函数,用于 rmmod
卸载指令的调用,对相应模块进行卸载,通常使用 module_exit 将模块卸载函数进行
注册。设备的打开函数主要为应用程序使用设备提供调用驱动的接口,同时在第一次
使用设备时会对设备进行初始化,本次 SPI 驱动的设计中主要是进行 SPI 接口参数的
配置。打开函数对应释放函数,当应用不再使用该设备时,对设备进行关闭释放操作。
打开和释放函数均封装于字符设备的文件操作结构体 file_operation 中,本次 SPI 驱动
的核心操作函数为 spi-ioctl 函数同样封装于该结构体中,用于实现配置参数的传输,
完成应用层对于 SPI 接口的配置。下文将对于该函数进行具体研究。
SCK
主控制设备
MOSI
MISO
被控制器A
被控制器B
SS1
SS2
被控制器C
SS3
图4.8 SPI 通信方式图
如图 4.8 所示,SPI 通信为收发同步全双工式的通信方式,一般为一个主机和多
个从机完成工作,总线通常由四根线组成,分别是 MOSI– SPI 负责信号由主机向从
机的发送,MISO– SPI 负责从机向主机的发送,SCK 为主机提供的时钟信号,本文
中 Zynq 上 PS 部分决定。两根传输线支持同时单向的数据收发,实现总线的全双工
工作机制。
如图 4.9 所示为系统 PS 部分中 SPI 驱动完成射频模块 AD9361 的具体实现流程
图。首先驱动程序对 SPI 进行初始化后,传输通路保持待工作状态中。通过应用程序
将配置参数传递给 ioctl 主函数,my-spi-ioctl()函数中的参数主要有 cmd 选择参数,
置 0 则表示对 SPI 进行初始化操作,置 1 则表示将配置参数的传输给 AD9361 配置寄
存器中。arg 参数代表的所需要传输的配置数据的具体物理地址,数据传输过程主要
42
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
由系统中的 copy-data-from-user()函数实现,用以将用户空间的数据发送到驱动层
中,接着驱动层的数据通过 SPI 发送至 AD9361 的控制寄存器,对于设备进行初始化
以及配置操作,配置完成后再由 SPI 将反馈结果传送回 PS 部分。该驱动有效实现了
应用程序通过对于指定位置的 SPI 数据发送完成对于 AD9361 的设备配置。
图4.9 SPI 驱动实现流程图
4.3.3
信号处理参数配置模块驱动
根据本文 3.3.3 节雷达信号处理模块参数可配置方案设计,本次样机系统的参数
配置模块需要对于每个信号处理模块定制设计对应的参数配置驱动。该驱动模块的主
要作用在于将硬件实现层的参数寄存器的物理地址映射成 PS 部分能够直接访问的虚
拟地址,提供给上层应用程序直接访问的接口,进而对硬件实现层的具体参数进行具
体配置和控制。
本驱动模块所要实现的具体参数配置主要有:PC 模块配置的参数为 32~4096 范
围内的 2n 个 FFT 可变点数;MTD 模块配置的参数为一个 CPI 内处理的脉冲积累个数,
范围为 8~256 中的 2n 个。因而需要对 PC 和 MTD 处理模块分别设计配置驱动。本次
驱动依然沿用字符设备驱动的设计方式,主要包括物理地址映射,设备操作结构体,
寄存器控制函数,设备的注册释放几个部分。地址映射部分采用 ioremap 函数将物理
地址映射为虚拟地址以供 PS 部分应用层直接访问;设备注册采用静态混杂设备的定
义方式,注册时自动获取次设备号;设备操作结构体的主要函数包括设备读写以及
43
万方数据
西安电子科技大学硕士学位论文
ioctl 寄 存 器 配 置 函 数 , 读 写 函 数 通 过 Linux 系 统 函 数 copy_to_user( ) 和
copy_from_user( )函数进行实现,而 ioctl 函数主要实现对于设备寄存器的参数配置。
4.3.4
驱动的编译及加载
至此,上述章节中完成了信号收发部分数据传输的 DMA 控制驱动,负责参数配
置的 SPI 接口驱动以及信号处理部分数据交互的 DMA 控制驱动和参数配置模块驱动。
完成以上驱动后需要进行驱动的编译及加载工作。
在 PS 部分应用程序调用到以上部分驱动接口之前,需要预先将驱动编译到系统
中。首先在 4.2 小节宿主机建立完成的交叉编译环境中将驱动进行交叉编译,再将所
需用到的驱动模块利用 insmod 命令动态加载至目标机的嵌入式 Linux 运行环境中,
以备应用程序调用。模块加载后可以使用 lsmod 命令进行已加载模块的查看,rmmod
命令进行模块的卸载。
4.4 基于 Zynq 的雷达信号处理系统应用程序的实现
本节主要介绍雷达信号处理样机系统的应用程序的设计,应用程序作为本次样机
系统的主要功能控制实现部分,有以下几个设计目标和要求:
1)负责系统各模块之间的数据传输控制,实现样机激励数据以及响应激励的实
时传递。
2)提供高度友好的人机交互界面,能够实现样机系统信号处理和信号收发部分
参数的配置以及工作控制,并实时显示接收信号频谱以及信号处理的分析结果。
3)整个应用程序秉承一体化的设计,控制界面之间过渡清晰流畅,有效实现整
体系统功能的可复用性。
图4.10
应用层模块化设计方案
44
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
针对以上设计目标,如图 4.10 所示本次设计采用模块化设计方案,如此方案能
够使得整个系统更具稳定性和可拓展性。本次设计中的应用程序由雷达控制部分和射
频应用部分两部分组成,主要归类于四个模块,分别是数据传输控制模块,参数配置
模块,数据处理模块以及用户交互模块。
数据传输控制模块:该模块主要有两个功能。首先是基于对 DMA 的控制完成数
据在 PL 与 PS 之间的调度;其次是完成各个处理模块的激励注入以及响应收集。
参数配置模块:依次调用驱动程序接口对模块参数寄存器进行赋值,进而完成应
用程序对于硬件实现层的参数配置。射频模块通过调用 SPI 驱动接口对于 AD9361 寄
存器参数进行配置,主要包括 AD9361 工作方式,使能方式,中心频率等;信号处理
模块通过调用配置参数驱动对硬件层进行参数配置,主要包括 PC 模块的 FFT 可变点
数和 MTD 模块的 PRT 个数。
数据处理模块:该模块主要完成数据在 PS 部分所需的中间处理,其中包括射频
模块信号发送部分数据的预处理和数据接收端的回波解析处理,信号处理各模块之间
的数据中间处理。
用户交互模块:该模块主要将前序模块进行整体封装成用户友好的交互界面,提
供用户对于系统的参数配置及工作控制接口,并且提供直观的显示界面,主要用以显
示发射信号的动态频谱波形图以及接收信号的结果分析图。
以下章节将重点从四个模块的设计实现过程论述样机系统软件模块的实现。
4.4.1
数据传输控制模块
根据系统的实现方案,本次样机系统的具体数据流向如图 4.11 示为:
1)将定制加入运动目标的射频信号预先存储于 DDR 空间中,通过 PS 部分将数
据从 DDR 中读取,将预存数据的物理地址映射至射频发射模块的 DMA 控制器 MM2S
通道的发送区间,对 DMA 的传输长度进行配置并启动对应的工作方式,最后利用
DMA 状态寄存器状态判断数据传输结束并进入下一步骤。
2)数据进入到 DAC 缓存空间,通过参数配置模块进行 AD9361 配置为 DAC
buffer 发射模式,射频信号进行发射后通过闭环馈线接收至射频模块的接收模块。
3)接收模块数据再次通过射频接收端 DMA 的 S2MM 通道传输回 PS 部分,同 1
步骤中对 DMA 寄存器进行控制完成数据从 PL 到 PS 部分的传送,并存入到指定的
DDR 位置中。
4)将存储于 DDR 中的回波数据信号分双向进行传输,一方面进行 FFT 变换生
成频谱数据上传至上层应用中的波形显示模块,一方面发送至信号处理模块执行信号
处理。
5)通过对于信号处理各个模块 DMA 的控制完成各个处理模块激励数据的注入
45
万方数据
西安电子科技大学硕士学位论文
以及响应数据的收集。将最终处理结果上传至上层结果显示模块。
PL
PS
DDC
PC
Wave
Display
DMA
MTD
CFAR
AD
DDR
DAC
DMA
ADC
图4.11
系统数据流通图
上述数据传输控制的主要核心是通过对于 DMA 寄存器的工程完成数据位于 PL
与 PS 之间的调度,下面具体介绍实现过程,根据本文 4.3.1 节中 DMA 的工作流程介
绍,寄存器的配置过程如下所示:
1)调用 DMA 设备驱动打开 DMA 设备,将待传送数据区写入 DMA 开辟的源缓
存区中。
2)将 DMA 的 MM2S 和 S2MM 的复位寄存器进行置 0 操作,待复位寄存器恢复
常态代表复位完成。
3)将对应工作通道的状态控制寄存器进行置 1 操作,待工作通道进入启动准备
阶段。
4)最后对于工作通道的传输长度寄存器进行赋值,通道开始进入数据传输状态,
通过对于状态寄存器状态的判断等待数据传输过程完成。将回传至用户空间的数据结
果存储至 DDR 中指定区域。
4.4.2
数据处理模块
本次系统中的数据处理模块主要完成数据在 PS 部分所需的中间处理,其中包括
射频模块信号发送部分数据的预处理和数据接收端的回波解析处理,信号处理各模块
之间的数据中间处理。
信号预处理:本次设计样机主要用于对于预调的雷达线性调频信号进行信号分析
处理,解析出运动目标的距离速度信息,因而在信号预处理模块需要合成包含运动目
标信息的线性调频信号,并且为了实现系统的整体性,一般信号采用包含约束的随机
46
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
信号。预处理模块根据带宽,中心频率等具体指标产生连续的线性调频信号,并且根
据采样指标完成对于连续信号的离散采样,最终再将运动目标信息加入到离散的线性
调频信号中,形成信号处理模块所需的激励存入到 DDR 中等待射频模块发射。
信号回波解析:射频模块接收到的为预处理完的线性调频信号,显示模块对于接
收到的信号数据进行实时频谱显示,因而需要将时域信号进行 FFT 变换得到对应频
谱信息,此处 FFT 变换采用的 FFT 库为 fftw-3.3.3。
信号处理数据的处理:此部分的数据处理主要针对信号处理的各个模块而言,该
部分根据用户配置的特定参数对数据进行二维矩阵排布,使得数据能够按指定 PRT
个数或 FFT 点数进行周期性循环激励注入。并且由于 PC 模块与 CFAR 模块为按行存
取,而 MTD 模块处理为按列存取,因而该模块需要将 PC 模块和 MTD 模块处理的
数据分别进行矩阵转置,使得后续处理过程顺利实现。同时为了达到系统更准确的实
现精度,MTD 模块处理后续的求模操作利用软件部分实现。
4.4.3
参数配置模块
参数配置模块主要包括射频模块的控制配置以及信号处理部分参数配置。射频模
块的参数配置主要利用 SPI 接口实现对于 AD9361 射频收发器的使能状态寄存器的配
置进而控制 AD9361 的工作方式以及工作参数。信号处理部分参数配置主要调用 4.4.
节的配置模块驱动,将硬件实现层预留的参数寄存器物理地址映射至用户空间的虚拟
地址进而对其具体参数进行配置,主要目标为设计出支持模块参数配置的用户接口,
以供上层用户交互模块调用。
信号处理部分的参数配置模块的实现过程为:首先调用配置模块驱动打开对应模
块,将配置模块加载到系统中,再利用设备驱动操作结构体中的读写接口将用户空间
中的配置参数传递至设备参数寄存器对应的物理地址,完成参数的写入。配置流程首
先对与 PC 模块的 FFT 处理点数进行参数配置,再对 MTD 模块的 PRT 个数进行配置。
预留的 32 位参数寄存器中采用 25~21 位代表 n_1 参数,对应特定的 FFT 处理点数,
20~16 位对应 n_2 参数对应特定的 PRT 点数,而最后 15~0 位代表一个周期的数据处
理量。在应用程序中将不同标志参数封装于同一数组列表中完成用户对应具体参数的
自定义配置。
4.4.4
用户交互模块
用户交互模块为应用程序部分与用户通信交互的媒介,也是作为本次设计的系统
样机控制以及结果显示的可视化界面。由于本次设计的样机系统功能复杂,参数配置
灵活因而需要高度友好的用户界面作为用户与系统通信的支持。
用户交互模块主要完成的功能有:1)动态配置 PC 模块的 FFT 点数以及 MTD
47
万方数据
西安电子科技大学硕士学位论文
的 PRT 个数;2)系统射频模块的具体参数配置以及工作控制;3)用户对系统信号
处理部分工作状态进行控制;4)对于射频信号频谱波形的实时显示以及信号处理模
块出处理结果的直观显示。
界面设计中的主要要求有:1)控制界面之间过渡流畅,能够根据用户需求在波
形显示界面以及参数配置界面之间自由切换;2)菜单选项采用多级菜单显示,提供
用户对于模块不同工作方式和工作状态的配置;3)波形显示界面为了达到实时性视
图要求,需要实时动态显示频谱图像,实现对射频模块收发信号的监测。
根据上文中设计需求和设计目标,本次系统设计的用户交互模块基于 QT 设计软
件完成,QT 开发环境中提供了种类齐全的部件类以及工具类对象,本次的交互模块
设计主要基于 QT 丰富的用户类,如图 4.12 所示为 QT 库中的用户类的静态关系图。
整个用户交互模块主要由系统控制界面,信号处理结果显示界面,射频模块控制监测
界面三个界面组成。每个界面的功能区主要包括波形绘图区,控制配置区,以及状态
显示区三个区域。下文将具体阐述系统控制主界面,信号处理结果显示界面,射频模
块控制监测界面三个界面的设计实现过程。
Qobject
QPaintDevice
objectName : QString
QQObject(QObject*parent =
0)
QPaintDevice(uint devflags )
int x11AppScreen ()
int x11AppDepth ()
QWidget
QSize baseSize,QString
caption
void update (),void show ()
QDialog
bool sizeGripEnabled
void accept (), void
reject()
QMainWindow
QFrame
QRect frameRect
void setFrameShadow (
Shadow
),Shape frameShape () const
QLable
QColorDialog
QAbstractButton
bool dockWindowsMovable
QWidget * centralWidget ()
const
QPushButton
QCheckBox
QAbstractScrollArea
QLCDNumber
QFileDialog
QFontDialog
图4.12
bool isCheckable() const
bool autoExclusive() const
QInputDialog
QLineEdit
bool edited
virtual void setFrame (bool)
QCommandLinkButton
QMessageBox
QT 用户类静态关系图
(1)系统控制主界面
层次化的人机交互界面设计构成完整的样机可视化交互模块,整个系统工程位于
QT 开发环境下进行设计实现,其中系统控制界面作为整个可视化交互模块的控制枢
纽,一方面为用户提供便捷又好的主页面服务,另一方面将信号处理模块和射频模块
48
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
的两个监测界面进行了层次化的联接,使得用户能够在三个控制界面之间自由切换。
该模块的主要功能是:
1)提供将页面切换到射频监测模块以及信号处理结果显示模块的链接接口,利
于用户进行页面之间的切换。
2)提供用户对于信号处理模块参数的配置接口,使用户能够自由配置信号处理
模块 PRT 个数和 FFT 处理点数。
3)提供信号处理模块的工作启动控制选项以及控制系统退出选项,便于用户对
信号处理模块执行工作状态的控制。
该界面的主要设计排布及设计思路如图 4.13 所示:窗口链接区主要用于置放与
其他控制界面的链接,采用 QT 工程中的 commandLinkButton 类进行实现;参数配置
区用于配置信号处理模块的关键参数,采用 QT 中的 Qlabel 类配合 QlineEdit 类进行
实现;而主选项按钮区负责程序的主控制和退出功能,则利用 Qpushbutton 类进行实
现。
在关键技术方面,主要应用的就是 QT 中的部件对象,信号,以及槽机制构建出
整个界面控制部件的关系映射,完成不同功能部件的设计。首先 Qpusbutton,Qlabel
一系列部件类帮助设计者定义不同类型各司其职的部件对象,每个部件对象均涵盖不
同的信号函数,以 Qpushbutton 为例,由于它继承于 QAbstractButton 类,因而继承抽
象按键类的信号函数,每个信号函数对应于不同的控制方式,可以为 click()单击
信号,pressed()按压信号或者 released()释放信号。槽则也是一种函数,在窗口
对象中必须声明为 slots,该函数为用户自主定义的一种特殊事件,不同槽对应不同事
件,可以为切换到其他窗口,显示特定数值或是特定模块程序的启动和结束等。
窗口链接区
参数配置区
背景区域
主选项菜单区
图4.13
系统控制界面设计
以本文设计为例对应窗口切换操作的实现,首先创建在窗口对象中创建创建一个
49
万方数据
西安电子科技大学硕士学位论文
LinkButton 对象,再在头文件 mydialog.h 的 mydialog 类声明的结尾声明对应的槽事
件 ShowAnalog():
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
Public slots:
void ShowAnalog();
}
之后,需要在 mydialog.cpp 文件中对具体函数的实现过程进行具体声明:
void MainWindow:: ShowAnalog ()
{
this->hide();
AnalogDialog.show();
AnalogDialog.exec();
this->show();
}
最后再将对应的槽函数与部件信号函数利用 connnect()函数连接起来,connect
()函数作为 QObject 类的函数,由于部件类都继承于 QObject 类,因而可以直接调
用,connect()函数的四个参数主要是信号产生的对象,信号类型,接收信号指令的
对象以及槽事件,信号需要用 SIGNAL 进行包涵而槽事件采用 SLOT 进行包涵。实
现如下所示:
myDialog::myDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::myDialog)
{
ui->setupUi(this);
connect(ui->ShowAnalogButton,SIGNAL(clicked()),this,SLOT(ShowAnalog()));
}
50
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
综合上述方法同样能够实现界面中其他控制部件的实现,参数配置区采用数值传
递的方式将用户设定的参数数值传递至应用程序的参数配置模块,再将主选项按钮的
信号与信号处理控制程序的事件槽相连接,完成界面三个区域的具体实现。
(2)信号处理结果显示界面
信号结果显示界面作为系统信号处理模块处理结果的显示模块,主要用于显示信
号处理数据输入到输出的处理过程和结果,使得整个系统的运行过程具备更强的直观
性和可察性。该界面包括模块选择区,提供给用户切换各个模块的处理结果的选项,
以及波形绘图区用以显示不同模块的处理结果,两个区域的功能相辅相成,共同构成
用户自由查看各个模块处理的数据时域统计结果。
如图 4.14 为该界面的设计排布,模块选择区位于界面的上端,分别为 input,pc,
mtd,cfar 选项按钮依次排布,该区域的设计采用 commandLinkButton 类进行实现,
同样运用系统控制主界面中采用的信号和槽机制完成控件信号与绘图事件触发的关
系映射。在本次设计的绘图事件中,由于信号处理的各个模块处理后的数据会存放于
PS 部分 DDR 中的指定区域,该区域的绘图槽将对应模块处理后的数据从 DDR 中读
取,进而采用二维离散绘图的方法将数据的时域统计结果绘制于该界面的波形绘图区。
模块选择区
波形绘图区
图4.14
信号处理结果显示界面设计
波形绘图区同样为一个界面建立的 widget 对象,在该对象中需要采用 QT 中绘图
技术进行坐标系网格以及波形图的绘制。坐标系网格的排布根据数据的具体跨度进行
设置,本次设计中主要使用的 5*6 以及 6*6 的网格设计排布。在 QT 中绘图的实现主
要基于 QPainter,QPaintDevice 和 QPaintEngine 三种类的配合使用,QPainter 作为绘
图事件的执行者,为绘图提供了多样的图形绘图函数,例如 drawPoint()点绘制函
数,drawRect()矩形绘制函数,drawLine()线条绘制函数等。在本次设计中坐标
系的网格的绘制则运用到 drawRect()矩形绘制函数,而波形图的绘制则利用到
drawLine()线条绘制函数。而 QPainter 绘图对象所调用的绘图工具则可以通过 Qpen
51
万方数据
西安电子科技大学硕士学位论文
()画笔函数或是 QBrush()画刷函数进行定义具体线宽,线条类型,线条颜色风
格等。本次设计中的网格则采用 DashLine 虚线类型进行绘图;而波形图则采用
SolidLine 实心线类型进行绘制。绘图不仅需要绘图的工具和绘图函数还需要绘图设
备,而 QpainterDevice 类则为设计者提供了绘图设备,相当于现实中的画板。但作为
所有可绘制图像的基类,QPainterDevice 提供的是二维抽象存在的绘图空间。绘制过
程中实际是通过像素的坐标系定位实现绘图事件在绘图空间上的物理定位,通常绘图
空间的左下方为逻辑坐标的原点,向上向下进而递增横轴纵轴的坐标。绘图中一般通
过逻辑坐标与坐标之间的转换进行实现。而对于不同绘图设备,绘图接口有所区别,
QPaintEngine 则为 QPainter 在不同设备上绘图提供接口支持。
下面是代码具体主要实现部分,首先是坐标系网格的绘制过程:
void Widget::drawscale(QPainter *painter)
{
QPen pen;//新建画笔工具类对象
int penwid = 1;
pen.setWidth(penwid);
QColor pencolor = Qt::black;//定义画笔颜色
pen.setColor(pencolor);
Qt::PenStyle penStyle = Qt::SolidLine;//定义画笔线条类型
pen.setStyle(penStyle);
QBrush brush;//新建画刷工具类
QColor brushcolor = Qt::black;//定义画刷颜色
brush.setColor(brushcolor);
Qt::BrushStyle style = Qt::SolidPattern;定义画刷类型
brush.setStyle(style);
painter->fillRect(0,0,width(),height(),Qt::White);//填充背景色
painter->setPen(pen);
painter->drawRect(70,40,600,400); //绘制外部矩形
int i;
for(i=70;i<670;i+=60) //按照等份绘制网格横线x/div = 60 6:5
painter->drawLine(i,40,i,440);
for(i=40;i<400;i+=50) //按照等份绘制网格横线,y/div = 50
painter->drawLine(70,i,670,i);
}
52
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
其次是波形的绘制过程,该函数通过 drawLine()线条绘制函数进行实现:
void Widget::drawwave(QPainter *painter)
{
int i;
QPen pen;
int penwid = 1;
pen.setWidth(penwid);
QColor pencolor = Qt::red;
pen.setColor(pencolor);
Qt::PenStyle penStyle = Qt::SolidLine;
pen.setStyle(penStyle);
painter->setPen(pen);
for(i=70;i<669;i++)
painter->drawLine(i,data[i-70],i+1,data[i+1-70]);
//data用以存放离散时域数据的数组
}
(3)射频模块控制监测界面
最后是射频控制监测界面的设计,射频控制监测用以对于射频模块进行工作参数
配置以及接收波形的监测。其涵盖波形绘图区,菜单配置区以及三个状态显示区四个
功能区。如图 4.15 所示,具体而言每个功能区的作用如下所示:
菜单配置区
频谱
状态
显示
区1
波形绘图区
频
谱
状
态
显
示
区
3
频谱状态显示区2
图4.15
射频模块控制监测界面
控制配置区:该部分采用级联菜单的方式实现,用以配置射频模块信号收发的工
作方式和工作参数等,例如信号发射方式以及射频信号中心频率,工作通道选择等。
53
万方数据
西安电子科技大学硕士学位论文
参数显示区一:上方主要用于显示频谱波形顶点对应的频率以及幅度,下方显示
显示模块的频率显示范围。
参数显示区二:这一部分主要用于显示频谱图像单格显示的幅度分度值,以及电
平参考值的大小。
参数显示区三:该部分用于显示射频信号的工作频率,工作带宽以及分辨率带宽
大小。
波形绘制区:以网格化的坐标系作为绘图基底,在基底上描绘接收端射频信号的
频率响应图,整个坐标系呈现横向 10 个,纵向 8 个的设计排布。总体能够显示的频
率范围与射频模块 AD9361 的工作频率相对应,为 70MHz~6GHz。为了能够实时监
测接收信号频谱的动态变化,本次的波形绘图采用双缓存技术有效达到频谱波形图的
无跳帧显示。
恢复出厂设置
用户设置
功能设置
初始化设置
保存文件
中心频率设置
开始频率设置
频率设置
主菜单
结束频率设置
分辨率带宽设置
幅值设置
返回上
一级
输入通道1开/关
输入通道2开/关
通道设置
输入通道1开/关
输入通道1开/关
图4.16
控制配置区级联菜单
该界面的控制配置区采用 PushButton 结合 QMenu 类实现多级菜单功能,并利用
控件,信号,槽三者的关系建立起功能到配置到具体按键工作的映射,如图 4.16 所
示,控制配置区的配置接口主要射频模块功能配置,频率配置,幅值配置,通道配置
四个层面。功能配置区主要包括恢复出厂,用户自定义,设备初始化,保存文件四个
菜单,用户设置选项会进入模块配置的三级窗口;频率配置主要对频谱显示区的中心
频率,起始频率,终止频率以及分辨率带宽进行配置;幅值配置则是对于界面波形图
的参考电平,幅值单位,布局单位大小等进行配置;通道配置则能够对于双发双收的
54
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
射频模块进行工作通道选择。参数显示区主要利用 label 显示窗口进行实现,将具体
的显示数值与系统的对应工作数值相关联进而完成各个显示区域的关键数值显示。
本界面设计中最为核心的即为实时频谱波形图的绘制,继承前文中的网格坐标系
和波形的绘制方法,即可完成射频模块的静态频谱波形图像。此后为了显示实时动态
频谱波形图,需要引入定时器以及双缓存绘图技术的应用。由于频谱图是随着接收时
间推移逐渐变化的,因而实时显示频谱图需要进行循环短周期的绘图刷新。首先定义
QTimer 对象,将其定时对象等待计时结束的信号与刷新绘图时间槽利用 Connect()
联接函数相关联。具体实现代码如下:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
ui->setupUi(this);
timer = new QTimer ( this );// 定义定时器对象
refresh();// 绘制初始图像
connect(timer,SIGNAL(timeout()),this,SLOT(refresh()));
// 将定时器信号与重绘刷新时间槽联接
timer-> start( 10 );
}
为了使得波形图定时刷新过程中不会出现过度跳帧闪烁的状况,本次设计特应用
双缓存绘图技术,该技术的核心在于绘图过程中数据接收之后会在一段临时开辟的缓
冲区中进行绘图,进而等待数据接收完整后再将完整的图形绘制于主窗体界面中,如
此波形图像能够在数据接收完之后直接显示出来,而跳过了数据等待的时间,进而达
到消除跳帧和重影的情况。本文的设计实现中首先定义出一个临时绘图设备 QPixmap,
绘图过程中先咋到该临时设备上图像绘制完后,最后直接将绘图图像的结果复制粘贴
到主界面设备上,如下为具体实现代码:
void Widget::paintEvent(QPaintEvent * /* event */)
{QPainter painter(this);
painter.drawPixmap(0,0,*pixmap);}
void Widget::Refresh()
{QPainter painter(pixmap);
MeshGrid(&painter);
DataReceive();
WaveDrawer(&painter);
QWidget::update ();}
55
万方数据
西安电子科技大学硕士学位论文
在绘制过程中,Refresh()函数负责具体实现绘图工作的主要执行和刷新显示。
QPainterpainter(pixmap)函数基于双缓存技术用以具体实现实时频谱波形图的绘制;
MeshGrid(&painter)用以绘制根据用户参数设定的网格坐标系;WaveDrawer 函数用
于实现波形图到最终界面设备上的显示;DataReceive()函数用于提取指定通道的接
收数据,并将数据传递至绘图函数;ZoomView()函数则用于观察图像视角的缩放,
使得观察者能够观察具体较窄频段的波形频谱图。
(4)QT 设计程序在 Zynq 上的实现
综上基于 QT 工程开发的用户界面已经设计完成,由于最终的用户程序需要于目
标机 Zynq 上运行工作,因而在运行前需要对 Zynq 的运行环境进行配置,使得宿主
机中开发设计的 QT 工程经过交叉编译能够跨平台运行于目标机上。本文采取的实现
方式是为 Zynq 平台移植 QT 镜像库的方式进而实现 QT 开发工程位于 Zynq 上的编译
和运行。主要配置过程如图 4.17 所示,首先需要为 Zynq 平台安装必须的 QT Lib,再
为 ZedBoard 制作预编译 QT 库镜像,最后编译 QT 工程并运行工程编译生成的程序。
编译QT库镜
像
安装Zynq平台
Qt_lib
图4.17
编译QT工程并
运行
QT 镜像库移植过程
1)Zynq 平台 QT Lib 的安装
前文 4.2.1 节中已然对宿主机器交叉编译环境的环境变量进行了预先配置,此处
还需对 ZYNQ_QT_BUILD,ZYNQ_QT_INSTALL,PATH 三个环境变量进行配置,
分别指向 QT 源码路径,QT Lib 的安装目录路径以及 Qmake 程序的存储路径;之后
将 QT 源码解压至 ZYNQ_QT_BUILD 指定的工作目录下,将 qt_build_src.tar 中的
qmake.conf 配置文件存储到源码目录下具体交叉器编译器目录下,本文使用的是
inux-arm-gnueabi-g++交叉编译器,通过配置文件告知系统编译工程所使用的编译器。
最后对 QT 的编译目标设备类型等参数进行配置,配置完成后进行交叉编译再执行安
装则完成了 QT Lib 的安装。
2)QT 库镜像的移植
由于启动 SD 卡装置采用的系统 rootfs 内存有限,因而直接复制 QT 库,该镜像
空间略显空间不足,因而在此本文中将 QT 支持库做成镜像的形式进而移植到 SD 卡
中,通过 mount 模块加载指令进行装载,有效提高了内存资源的利用率。镜像生成主
要使用 Xilinx 提供的镜像制作方法,首先创建具备读权限的镜像空间,再将 qt 库复
制到镜像空间中,生成 qt_lib.imgQT 运行库镜像。
3)QT 工程的编译和运行
56
万方数据
第四章 基于 Zynq 的雷达信号处理系统软件模块的实现
首先将工程位于宿主机器中利用第一步中安装的 Zynq 平台 QT Lib 进行依次
qmake,make 编译。之后将生成的可执行文件以及第二步中制作的 QT 库镜像拷贝到
启动 SD 装置中。目标机启动运行后,将 SD 卡中的 QT 库镜像 mount 加载最后执行
QT 可执行程序即可运行系统用户界面。
4.5 本章小节
本章内容中主要根据第三章中雷达信号处理系统的设计方案对于雷达信号处理
系统的软件模块进行实现,软件模块有效实现了通过软件根据不同的使用场景高效地
完成对于雷达信号处理系统硬件部分的工作控制和参数配置。系统软件模块的设计实
现主要分为系统层,驱动层以及应用层三个层次的设计工作。本章主要分为三个部分,
第一部分为系统层的实现,主要阐述了 Zynq 平台上构建嵌入式 Linux 系统的全过程,
该部分首先论述了交叉编译环境的构建,其次对于系统启动加载自定义实现过程加以
论述,然后是 Linux 内核以及设备树的定制,最后是根文件系统以及 Linux 系统的启
动;第二部分为驱动层的设计,驱动程序基于 Linux 系统上运行,为用以实现雷达信
号处理系统软件控制硬件部分的接口程序,该部分主要包括信号收发模块以及信号处
理模块的 DMA 控制驱动,信号处理部分参数配置驱动以及信号收发模块的 SPI 控制
驱动;第三部分是应用层的实现,主要论述了数据传输模块,数据处理模块,参数配
置模块以及用户交互模块四个模块的设计实现方法。
57
万方数据
西安电子科技大学硕士学位论文
58
万方数据
第五章 功能测试与结果分析
第五章
功能测试与结果分析
本章将主要对于设计完成的系统软件模块依次进行功能测试以及运行结果误差
分析。功能测试部分分别从信号收发和信号处理两个部分进行测试,最后对于系统整
体不同配置参数下的处理结果进行误差分析。
5.1 运行环境
本次设计中的软件模块运行于 Zynq 系列开发板 Zedborad 的 ARM 处理器上,协
同运行于系统 PL 部分 FPGA 区域 IP 核设计共同完成系统工作。将编译完成的
BOOT.bin 启动加载器文件,系统驱动文件,内核镜像文件,设备树文件以及可执行
应用程序聚集于启动 SD 卡的第二分区中。将开发板配置成 SD 卡启动模式后启动系
统进入 Linux 系统运行界面。整体系统运行实物图如图 5.1 所示。
图5.1 系统运行硬件实物图
5.2 信号收发模块功能性测试
本次设计中的信号收发模块工作流程为:模块经过上层软 件配置能够控制
AD9361 发射模块发射数字基带信号,其中配置信号通过 SPI 接口进行传输实现;再
通过射频收发器的接收装置接收信号数据;然后接收模块对信号采样以及模数转换的
等处理后将基带信号传输给 Zynq 上的 PL 区域,使得 PL 区域的 AD9361 数据处理 IP
核将接收到的数据分析生成 I,Q 两路数据存储于数据缓冲区域中,最后借助 DMA 传
输将数据传输至 PS 部分存储于 DDR 中,数据经过 FFT 处理后将信号波形绘制于用
59
万方数据
西安电子科技大学硕士学位论文
户界面。
如图 5.2 射频模块功能测试流程图所示,本次模块测试首先通过用户参数配置使
射频模块通过 AD9361 射频收发器依次发射 500MHz 和 3GHz 两个特定频率的单脉冲
信号,再用射频信号接收模块以及频谱测试仪分别对发射信号进行测量,最后对具体
接收到的信号结果进行功能性对比。
开始
配置射频模
块参数
发射特定频
率射频信号
射频信号接收模块
频谱仪测量显示
发射端信号
测量显示发射端信号
结果分析对比
结束
图5.2 射频模块测试功能流程图
(1)500MHz 单脉冲信号测试
1)如图 5.3 所示首先通过用户界面射频控制界面对发射端工作参数进行配置,
配置通过 TX1 通道发射 500MHz 的单脉冲信号,将展频设置为 40MHz,分辨率带宽
设为 390KHz。
图5.3 500MHz 单脉冲信号配置界面
60
万方数据
第五章 功能测试与结果分析
2)如图 5.4 所示用频谱仪测量发射端信号,从测量图可以明显看出测量结果图
中的尖脉冲为 500MHz,可见用户界面正确完成射频发射模块发射 500MHz 单脉冲信
号的参数配置。
3)将射频发射端口与接收端口用馈线连接形成闭环,利用样机系统中的射频模
块频谱显示模块对接收到的信号进行测量,测量结果图如图 5.5 所示。对二者测量结
果图进行对比,可知均能感测到 500MHz 的单脉冲信号,可证明样机系统频谱接收模
块功能正确。
图5.4 500M 单脉冲信号频谱仪测试图
图5.5 500M 单脉冲信号系统频谱显示图
(2)3GHz 单脉冲信号测试
1)如图 5.6 所示首先通过用户界面射频控制界面对发射端工作参数进行配置,
配置通过 TX1 通道发射 3GHz 的单脉冲信号,将展频设置为 40MHz,分辨率带宽设
61
万方数据
西安电子科技大学硕士学位论文
为 390KHz。
图5.6 3GHz 单脉冲信号配置界面
2)如图 5.7 所示用频谱仪测量发射端信号,从测量图的参数可以明显看出测量
结果图中的尖脉冲为 3GHz,可见用户界面正确完成射频发射模块发射 3GHz 单脉冲
信号的参数配置。
3)将射频发射端口与接收端口用馈线连接形成闭环,利用样机系统中的射频模
块频谱显示模块对接收到的信号进行测量,测量结果图如图 5.8 所示。对二者测量结
果图进行对比,可知均能感测到 3GHz 的单脉冲信号,可证明样机系统频谱接收模块
功能正确。
图5.7 3G 单脉冲信号频谱仪测试图
62
万方数据
第五章 功能测试与结果分析
图5.8 3G 单脉冲信号系统频谱测试图
5.3 信号处理模块功能性测试
信号处理模块主要完成对信号处理硬件实现层的工作参数配置以及工作状态控
制。主要工作流程为:首先用户通过交互界面对信号处理模块 FFT 点数和 PRT 个数
两个核心处理参数进行定制,通过工作控制选项启动信号处理模块;由于信号收发模
块接收到的线性调频信号数据存放于 PS 部分的 DDR 中,信号处理模块则从指定区
域提取接收到的预调制线性调频信号数据,并进行信号处理,最终分析出探测目标具
体的目标位置信息,以文本的形式将处理结果输出。信号处理结果显示界面则会直观
显示数据处理的结果。如图 5.9 所示为信号处理模块测试流程。
开始
配置DAC工
作方式
载入预调制
激励源文件
配置信号处
理参数
控制启动信
号处理模块
观察处理结
果
结束
图5.9 信号处理模块测试流程
63
万方数据
西安电子科技大学硕士学位论文
1)首先如图 5.10 所示将信号收发模块配置成 DACbuffer 发射模式,发射预加入
两个运动目标的线性调频离散信号,配置完成后射频模块进入工作可见频谱监测界面
如图 5.11 所示。
图5.10
图5.11
DAC buffer 工作模式配置界面
线性调频离散信号频谱
2)然后对雷达信号处理模块执行 64 个 PRT,512 个 FFT 参数配置后控制系统进
入信号处理环节。如图 5.12 为参数配置界面。
图5.12
信号处理参数配置界面
64
万方数据
第五章 功能测试与结果分析
3)最后利用信号处理结果界面可观测到数据处理的过程,图 5.13 为信号输入的
部分时域波形。图 5.14 则为信号处理分析出的目标结果,处理结果在 Matlab 中的仿
真结果如图 5.15 所示,其结果与预调制的目标距离信息一致,可证明信号处理模块
参数配置和处理控制功能正确,具体误差分析将在下文中进行分析。
图5.13
图5.14
图5.15
输入信号时域波形显示图
单 PRT 信号处理输出结果图
信号处理输出结果 64 路归一化统计图
65
万方数据
西安电子科技大学硕士学位论文
5.4 系统误差分析
本次设计中的雷达信号处理样机系统对于信号处理的数字下变频,脉冲压缩,动
目标检测,恒虚警进行了四个模块的功能实现和仿真,并且能够用户交互界面对于信
号处理具体参数进行自定义配置,有效实现系统的可配置化和可复用性。本节中将重
点对于系统不同参数下的处理结果进行误差分析。分析过程如图 5.16 所示,将预调
入目标的相同激励源分别通过数学模型以及样机系统的处理,再将样机系统处理得到
的结果与数学模型处理结果进行归一化误差分析。具体将按照表 5.1 中的测试用例进
行测试。
开始
配置硬件层
注入激励源
样机系统处理
数学模型处理
数据对比
误差分析
工作参数是否全部
验证?
是
结束
图5.16
误差分析流程图
66
万方数据
否
第五章 功能测试与结果分析
表5.1 系统测试用例
输入激励
配置条件
预期输出
64*512 处理方式下
PRT 个数为 64
生成 64 组数据,每组 512 个
的激励源
FFT 点数为 512
离散点,包含目标信息
32*1024 处理方式下
PRT 个数为 32
生成 32 组数据,每组 1024
的激励源
FFT 点数为 1024
个离散点,包含目标信息
8*4096 处理方式下
PRT 个数为 8
生成 8 组数据,每组 4096 个
的激励源
FFT 点数为 4096
离散点,包含目标信息
1)如图 5.17 所示为 PRT 个数为 64,FFT 点数为 512 的数据激励经过本样机系
统处理后在 Matlab 中统计出的最终结果图,再将处理结果与数学模型处理的结果进
行归一化误差分析可得图 5.18,可见误差在 10-4 数量级,得以验证雷达信号处理样机
在 FFT 处理点数为 512,PRT 个数为 64 的参数配置下对于激励处理结果的正确性。
图5.17
64*512 点数 MATLAB 处理和系统处理结果图
图5.18
64*512 点数系统处理误差分析图
2)如图 5.19 所示为 PRT 个数为 32,FFT 点数为 1024 的数据激励经过本样机系
统处理后在 Matlab 中统计出的最终结果图,再将处理结果与数学模型处理的结果进
67
万方数据
西安电子科技大学硕士学位论文
行归一化误差分析可得图 5.20,可见误差在 10-3 数量级,得以验证雷达信号处理样机
在 FFT 处理点数为 1024,PRT 个数为 32 的参数配置下对于激励处理结果的正确性。
图5.19
图5.20
32*1024 点数系统处理与 MATLAB 处理结果图
32*1024 点数系统处理结果误差分析图
3)如图 5.21 所示为 PRT 个数为 8,FFT 点数为 4096 的数据激励经过本样机系
统处理后在 Matlab 中统计出的最终结果图,再将处理结果与数学模型处理的结果进
行归一化误差分析可得图 5.22,可见误差在 10-3 数量级,得以验证雷达信号处理样机
在 FFT 处理点数为 4096,PRT 个数为 8 的参数配置下对于激励处理结果的正确性。
图5.21
8*4096 点数系统处理与 Matlab 处理结果图
68
万方数据
第五章 功能测试与结果分析
图5.22
8*4096 点数系统处理结果误差分析图
经过对多个配置参数情况处理结果验证,可得出样机系统处理的误差均在
10-4~10-3 数量级,主要误差原因在于信号处理过程中采用了多次数据截位处理,而根
据相关文献[41]介绍,该相对误差也满足了数字信号处理的基本要求。进而得出本次的
雷达信号处理样机系统功能正确且误差满足设计需求。
5.5 本章小节
本章中对雷达信号处理系统各个模块的功能进行了测试,本章分为三个部分,首
先对于系统信号收发模块进行了单脉冲信号的发射接收测试,其次对信号处理模块进
行了信号处理功能测试,最后将系统配置成不同工作参数,将系统不同参数工作下的
结果与数学模型的结果进行比对得到归一化误差并进行误差分析。
69
万方数据
西安电子科技大学硕士学位论文
70
万方数据
第六章 总结与展望
第六章
总结与展望
6.1 全文总结
随着嵌入式应用技术的不断发展和广泛应用,可编程片上系统 SOPC(System On
Programmable Chip)技术作为一种高效、灵活的嵌入式系统设计解决方案,正越发广
泛的应用于嵌入式领域。面对如此的发展趋势,本文中依借 SOPC 技术的设计优势配
合软硬件协同设计方法学,以 Xilinx 公司的 Zynq 系列开发板为基础,提出了基于
SOPC 嵌入式设计方法的雷达信号处理样机的整体实现方案并且对于该样机系统的
软件模块进行设计实现,系统具备高度的可配置性,可复用性以及可观测性,使雷达
信号处理器设计功能得到全面直观的样机实现和仿真。主要工作和取得成果如下:
1)首先对多普勒雷达信号处理器的工作结构以及原理进行了研究,并深入研究
了信号处理关键 IP 核的原理结构,其次对于 Zynq 系列开发板的体系架构进行了研究,
然后基于 Zynq 开发板 ARM+FPGA 体系结构优势以及信号处理器的工作流程,配合
软硬件协同设计方法提出了雷达信号处理样机系统软硬件协同工作的层次化实现方
案,其中硬件层和硬件层基于 PL 部分 FPGA 实现,而驱动层,系统层以及应用层运
行于 PS 部分的 ARM 处理器中。
2)根据层次化设计方案的提出,完成了雷达信号处理样机系统的软件模块设计
实现工作。软件模块作为系统的主要控制中心,有效实现了通过软件根据不同的使用
场景高效地完成对于整个雷达信号处理系统硬件部分的工作控制和参数配置,同时实
现对于信号处理结果的波形显示,使得该项雷达信号处理器设计功能得到更加全面直
观的实现和仿真,也为后续的设计改良奠定基础。系统软件模块的设计工作主要包括
系统层,驱动层以及应用层三个层次的设计实现工作。系统层的实现工作主要为 Zynq
平台上构建嵌入式 Linux 系统,包括交叉编译环境的构建,系统启动加载自定义实现
过程,Linux 内核以及设备树的定制,根文件系统的创建以及 Linux 系统的启动;驱
动层的设计主要包括信号收发模块以及信号处理模块的 DMA 控制驱动,信号处理部
分参数配置驱动以及信号收发模块的 SPI 控制驱动的设计工作;应用层采用模块化设
计方法实现,主要包括数据传输模块,数据处理模块,参数配置模块以及用户交互模
块四个模块的设计实现。
6.2 展望
本文主要以 Zynq 系列开发板为基础,提出了基于 SOPC 嵌入式设计方法的雷达
信号处理样机的整体实现方案并且对于该样机系统的软件模块进行设计实现,使雷达
71
万方数据
西安电子科技大学硕士学位论文
信号处理器设计功能得到更加全面直观的样机实现和仿真。但由于本人时间有限,才
疏学浅,系统中仍存在很多不足,需要弥补完善的地方。
首先,软件模块可视化界面的功能能够更加完善,例如将数学函数库的处理过程
利用软件进行实现,进而能够利用参考模型对激励同时进行处理,再将参考模型处理
结果与系统运行结果进行直观误差分析,毋需借助 Matlab 进行结果误差分析。
其次,目前结果显示模块只能显示单个 PRT 的数据统计波形结果,无法统计多
个 PRT 的结果,如此可以在 QT 环境中加入 3D 图像绘制函数,进而绘制三维数据统
计结果。
最后,目前信号收发模块仍以闭环馈线形式连接发射接收通路,之后可以加入天
线模块与外界实现信号互通,完成样机系统对于周围运动目标的检测。
72
万方数据
参考文献
参考文献
[1]
高健,李涛.三种软硬件划分算法的比较分析[J]. 计算机工程与设计 2007 年 7 月第 28 卷
第 14 期
[2]
姚晋鹏. SoC 软硬件协同验证平台监控系统设计与实现及综合测试[D]. 四川成都: 电子科
技大学, 2006.
[3]
赵丽莎, 罗胜钦. SOC 技术及系统级低功耗设计[J]. 电子与封装, 2008, 第 9 期: 27-31.
[4]
Nakamura Y, Hosokawa K, Kuroda I, et al. A fast hardware/software co-verification method
for system-on-a-chip by using a C/C++ simulator and FPGA emulator with shared register
communication[C]. Proceedings of the 41st annual Design Automation ConferenceACM, 2004 :
299-304.
[5]
梁双杰. SOC 软硬件协同设计系统级验证方法研究[D]. 陕西西安: 西安电子科技大学,
2014.
[6]
殷燎. 面向 SoC 的 IP 核及嵌入式处理器功能验证方法研究[D]. 浙江杭州: 浙江大学,
2010.
[7]
唐思章,黄勇.SOPC 与嵌入式系统软硬件协同设计[J].单片机与嵌入式系统应用.2005-12.
[8]
张宇,冯丹.基于 Xilinx SOPC 的可重构嵌入式计算系统的研究与设计[J].计算机科
学.2010-05.
[9]
Jae-Gon Lee, Chong-Min Kyung. Predictive Packetizing Scheme for Reducing Channel Traffic
in Transaction-Level Hardware/Software Co-Emulation[C]. IEEE TRANSACTIONS ON
COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2006, 25
(10): 1935-1949.
[10]
路后兵.Xilinx FPGA 的嵌入式系统开发过程[J].单片机与嵌入式系统应用.2012-11.
[11]
丰玉田, 付宇卓,赵峰. 大规模 SoC 设计中的高效 FPGA 验证技术的研究与实现[J]. 电子技
术应用, 2006, 02 (2): 110-114.
[12]
夏玮玮,沈连丰,肖婕等.嵌入式系统关键技术分析与开发应用[J].单片机与嵌入式系
统应用.2003-02.
[13]
Huang S Y, Cheng K T. Formal Equivalence Checking and Design DeBugging[M]// Kluwer
Academic Publishers, 1998.
[14]
Jain H, Pixley C P. Equivalence checking between two or more circuit designs that include
division and/or square root circuits: US, US20140033151 A1[P]. 2014.
[15]
王莹.Xilinx 可拓展处理平台 ZYNQ 嵌入式处理器与 FPGA 集成的独特创举[J].电子产
品世界.2012-02.
73
万方数据
西安电子科技大学硕士学位论文
[16]
Kong Meiyun,Li Jun,and Wang Fengming.Study on educational mode of Linux majors in
colleges[C].International Conference on Artificial Intelligence and Education (ICAIE).2010.
[17]
汪洋. SOC 软硬件协同验证平台的联合架构设计[D]. 上海: 上海交通大学, 2013.
[18]
逄杰. 多核网络处理器软硬件协同验证关键技术研究[D]. 陕西西安: 西安电子科技大学,
2012.
[19]
M.Al Kadi,P.Rudolph,D.Gohringer,et al.Dynamic and partial reconfiguration of Zynq 7000
underLinux[C] . International Conference onReconfigurable Computing and FPGAs
(ReConFig).2013.
[20]
冯博凌. 基于混合建模方法的 SoC 软硬件协同验证环境的设计研究[D]. 四川成都: 电子
科技大学, 2009.
[21]
刘陆陆. 基于 FPGA 和 IP 软核的嵌入式系统可重用设计方法的研究[D]. 北京: 北京交通
大学, 2006.
[22]
ED Sontag. Comments on integral variants of ISS[J]. Systems & Control Letters, 1998, 34(98):
93-100.
[23]
Cmelik B, Keppel D. Shade. A Fast Instruction-Set Simulator for Execution Profiling[J]. Fast
Simulation of Computer Architectures, 1993: 128-137.
[24]
G.Valentino,S.Zammit.A technique for automatically reprogramming an embedded Linux
system[C].EUROCON-International Conference on Computer as a Tool (EUROCON).2011.
[25]
王俊雄,黄铉,刘正义.基于 FPGA 的嵌入式系统设计[J].电子工程师,2006,32(10):67-70
[26]
刘福才,赵佳伟,汤丽娜.基于嵌入式 Linux 系统的 Qt/Embedded 图像处理界面开发[J].
计算机应用于软件,2009,26(11):35-37
[27]
王立华. 基于 FPGA 的片上系统(SoC)原型验证的研究与实现[D]. 山东济南: 山东大学,
2006.
[28]
何宾. Xilinx All Programmable Zynq-7000 SoC 设计指南[M]. 北京: 清华大学出版社, 2013.
[29]
全英汇, 陈杰, 邢孟道等. 基于 Zynq 系列 FPGA 的雷达成像方法 Zynq series FPGA based
radar imaging methods: CN, CN103616681 A[P]. 2014.
[30]
陆佳华. 嵌入式系统软硬件协同设计实战指南[M]. 机械工业出版社, 2014.
[31]
Math S S, Manjula R B, Manvi S S, et al. Data transactions on system-on-chip bus using AXI4
protocol[C]. Recent Advancements in Electrical, Electronics and Control Engineering
(ICONRAEeCE), 2011 International Conference on IEEE, 2011: 423-427.
[32]
杨舜琪. AMBA AXI4 总线的研究与实现[D]. 黑龙江哈尔滨: 哈尔滨工业大学, 2011.
[33]
陈全斌. 基于脉冲多普勒理论的高精度雷达测速技术[D]. 江苏南京: 南京理工大学, 2006.
[34]
张璐. 数字下变频及数字波束形成的设计与实现[D]. 陕西西安: 西安电子科技大学, 2014.
[35]
丁赤飚, 明乔,张培杰等. 一种宽带合成孔径雷达的有源外定标器及其定标方法: CN,
74
万方数据
参考文献
CN100526912 C[P]. 2009.
[36]
贾琳黎. 雷达信号处理中可配置脉冲压缩的设计与实现[D]. 陕西西安: 西安电子科技大
学, 2014.
[37]
陈付锁. 雷达信号处理动目标检测的设计与实现[D]. 陕西西安: 西安电子科技大学, 2014.
[38]
周立功, 陈明计, 陈渝. ARM 嵌入式 Linux 系统构建与驱动开发范例[M]. 北京: 北京航空
航天大学出版社, 2006.
[39]
秦娟. 嵌入式 Linux 的调试及设备驱动的开发[D]. 天津: 天津理工大学, 2006.
[40]
翟友恒.基于 QT 的管理系统与定制 Linux 桌面系统的设计[D].昆明:昆明理工大学,
2013,35
[41]
郭连平,田书林,王志刚. 数字信号处理过程中信号截位误差抑制方法研究[J]. 信号处理,
2013,05
75
万方数据
西安电子科技大学硕士学位论文
76
万方数据
致谢
致谢
时光荏苒,白驹过隙,面对此时将要告别的学生生涯,心中不禁有着说不出的感
慨,回首一幕幕走过的岁月一切好似历历在目,却又有着再也回不到那时那刻的无奈。
在西电的三年时光里,自己的确成长了很多,学习到了很多,每个出现过的人,每件
经历的事,每次重要的抉择,每次无悔的坚持都悄然无息的不断改变着自己的命运,
最终铸成了如今的自己。特别在这里遇到很多有见识,有耐心的老师同学们,在此向
那些年帮助过的人表示由衷的感谢。
首先,感谢我的导师杜军朝老师,杜老师一丝不苟的科研作风一直深深感染着我。
在我的科研方向、论文选题和论文撰写方面他都给予了全面悉心的指导和照顾;不仅
如此,同时他平易近人、和蔼可亲的人格魅力使我受益匪浅。从他身上我不仅学到了
优秀的科研态度和学习态度,积极向上的人生态度更是让我受益终生。
感谢史江一老师,史老师为人正直、谦和、沉稳,对科研项目严谨认真的态度一
直激励着我前进。史老师每周都会抽出时间耐心听取我们的项目报告,提出指导性的
意见,给予了我很大帮助和支持,使我少走了很多弯路。在史老师指导着我从一个只
会看书的本科生程成长为一名能够发现问题并解决问题的研究生。
感谢马佩军老师,马老师执着的科研精神、严谨的治学态度熏陶着我,热情的生
活态度、对人生的深刻思考尤其值得我学习。在科研和生活上,马老师给了我们悉心
的指导,提出了很多宝贵的意见,让我对科研对生活有了更深层次的理解。
感谢实验室的舒浩师兄,舒师兄项目经验丰富,对科研项目严谨认真,为人热情,
在我的项目研究过程中给了我很多建议和帮助,对我的科研能力的提升有着很大的帮
助。
感谢实验室同学刘丙亚,张春焱,李钊,崔廷立,余文哲,姜楠,刘宏伟,马骉,
徐圆,闫琪。大家相处融洽,在实验室里一块科研,相互学习,共同奋斗,为实验室
营造了良好的氛围。
感谢室友吴亚鹏,朱俊,史丰,许孟,刘文博,我们一起生活和学习了两年半,
尤其是晚上的长谈,我从他们身上学到了很多人生哲理和处事方式。
最后感谢将我含辛茹苦养育成人,在我彷徨迷茫时始终支持我的父母,感谢他们
一直以来对我的信赖和包容。
77
万方数据
西安电子科技大学硕士学位论文
78
万方数据
作者简介
作者简介
1. 基本情况
陈聪,男,安徽芜湖人,1992 年 7 月出生,西安电子科技大学软件学院软件工
程专业 2014 级硕士研究生。
2. 教育背景
2010.09~2014.07 南京理工大学,本科,专业:光电信息工程
2014.09~2017.07 西安电子科技大学,硕士研究生,专业:软件工程
3. 攻读硕士学位期间的研究成果
3.1 发表学术论文
3.2 申请(授权)专利
3.3 参与科研项目及获奖
[1] 部 委 项 目 , 某 专 用 数 字 信 号 处 理 关 键 IP 核 的 设 计 与 实 现 ,
2015.03.10-2017.03.01,作者负责雷达信号处理样机系统软件模块的设计与实
现。
[2] 陕西省电子设计大赛省三等奖.2016.7.31.
79
万方数据
西安电子科技大学硕士学位论文
80
万方数据
Download