当前位置:首页 > 嵌入式 > 嵌入式硬件

SDR是使用一个简单的终端设备通过软件重配置来支持不同种类的无线系统和服务(包括2G、3G移动通信系统和WLAN)的新技术。它具有较强的开放性和灵活性,硬件采用标准化、模块化结构,可以随着器件和技术的发展而更新和扩展;软件模块可以进行加载和更改,根据需要不断升级。软件无线电的结构如图1所示,主要分为实时信道数据处理部分、环境管理部分、系统分析和功能强化部分。实时信道数据处理部分包括A/D、D/A、变频、信道分离、调制解调以及码流处理等数据模块。



SDR的核心是联合战术无线电系统JTRS(Joint Tactical Radio System)的SCA规范,它对模块化可编程无线通信系统的硬件体系结构、软件体系结构和安全体系结构以及应用程序接口(API)规范进行了描述,同时引入了嵌入式微处理器系统、总线、操作系统、公共对象请求代理体系(CORBA)、面向对象的软件和硬件设计等一系列计算机技术,并采用了“波形应用”和“资源”可裁剪、可扩充的设计思想,从而保证了软件和硬件的可移植性和可配置性。

以接收机为例,SDR中A/D模块之后的部分通过软件来实现。本文在FPGA平台上实现信号的调制解调,以满足高速数字信号处理发展的需求。在Xilinx Virtex2Pro FPGA硬件平台上实现了美国军方短波通信系统标准MIL-STD-188-110B调制解调器,其中引入了动态部分可重构技术,提高了配置速度和硬件资源的利用率。

满足SCA规范的波形组件之间通过CORBA总线通信,而FPGA平台的专用处理器要实现对CORBA的支持比较困难。本文利用SCA规范中的SHP组件兼容性补充协议CP289提出了这一问题的具体解决方案。

1 FPGA的动态部分可重构技术

FPGA的动态可重构技术是指对时序变化的数字逻辑系统,其时序逻辑的发生不是通过调用芯片内不同区域不同逻辑资源的组合实现,而是通过对具有专门缓存逻辑资源的FPGA进行局部或全局芯片逻辑的动态重构而实现。部分重构是指重构器件或系统的一部分,在此过程中,其余部分的工作状态不受影响。

FPGA部分可重构有多种实现方法,较为常用的是基于模块化设计方法和EAPR(Early Access Partial Reconfiguration)设计流程,后者较前者而言,是一种较新的设计方法,并且有相应的软件可以代替命令行方式进行实现,本文采取的就是这种实现方法。

图2所示为一个简单的基于EAPR设计流程生成的部分动态可重配置系统。整个系统划分出静态模块和动态模块,之间的通信通过总线宏来进行。该系统通过FPGA板子上的dip开关为输入引脚提供输入数据,确定计数器的初始值。通过下载不同部分的比特流可以实现加、减计数功能的动态切换。计数结果通过值传递模块接到FPGA板子上的LED管脚。整个设计过程可以概括为:



(1)模块划分:静态模块和动态模块;

(2)顶层模块与静态和动态子模块的设计及综合;

(3)编写初始用户约束文件,主要指定I/O管脚约束和时钟约束;

(4)在PlanAhead中进行EAPR设计:

①建立局部可重构工程;

②为每一个PRM定义可重配置实体;

③为PRM规定可重配置区域;

④放置总线宏和全局时钟逻辑;

⑤运行DRC检查;

⑥分别实现静态逻辑和PR模块;

⑦装配并生成全局和部分比特流。

2 基于FPGA的SDR硬件体系结构及DPR实现

Xilinx Virtex2Pro FPGA内含处理器,通过一定的软件编程,可根据环境及外部需求采用不同的调制解调算法处理通信系统中的数据。通过DPR技术,可以实时快速地调整算法中的参数或者实现不同算法之间的切换。

2.1 基于FPGA的SDR硬件平台

本文基于Xilinx Virtex2Pro FPGA,搭建的SDR硬件平台如图3所示。该系统以软核处理器 MicroBlaze为核心,DDR SDRAM Controller、OPB_HWICAP和UART Controller通过OPB总线与处理器通信。DDR SDRAM为片外处理器,UART为串口设备,ICAP为内部访问互连接口,主要用于部分重构。

function ImgZoom(Id)//重新设置图片大小 防止撑破表格 { var w = $(Id).width; var m = 650; if(w

2.2 DPR在SDR硬件平台中的应用

如图3所示,平台的顶层为调制解调算法模块。本文以美国军方短波通信系统标准MIL-STD-188-110B调制解调算法的实现进行说明,图4所示为其实现框图。



该标准支持不同的比特速率和交织长度,在调制算法中格雷映射、符号生成和同步前导头与训练序列有所差别,故将其划分为动态模块,其余为静态模块。相应的,在解调模块当中,符号解析、格雷映射和解交织模块算法有所差别,划分为动态模块。在硬件实现过程中,由于不同模块处理数据的速率不相同,因此需增加一个时钟生成模块,并将其划分为动态模块。

之后,根据EAPR设计流程生成不同条件下的不同功能的部分比特流及全局静态比特流。设计实现的动态部分可重构调制解调器框图分别如图5、图6所示。与模块化设计方法相比,设计过程中动态和静态区域并不需要占据FPGA的整列,提高了FPGA的资源利用率。另一点不同之处在于模块化设计方法中总线宏是基于TBUF的,而EAPR总线宏是基于slice的。





实验表明,发射机系统的一个部分重配置比特流的大小为269 KB,为全局比特流(1 415 KB)的19.0%,因而所需的用于存储配置比特流的空间较小,配置速度相对较快,所需配置时间约为全局配置时间的19.0%。

3 FPGA组件在SCA中的集成

根据参考文献[4]的内容,可加载到软件无线电平台上的波形组件分为运行于通用处理器上的SCA组件和运行于专用硬件处理器(SHP)上的组件。FPGA组件属于SHP组件中的RPL(寄存器传输级可编程逻辑)组件,用HDL语言实现功能,但不支持CORBA。为使该类型的组件能够集成到SCA系统中,必须在设计时使其接口满足特定的规范,使之具有可移植性和可复用性。本文中FPGA组件按照OCP协议进行接口封装。参考文献[5]介绍了关于整个OCP协议的接口设置、工作原理和时序逻辑。

3.1 FPGA组件的代码生成

由于波形应用是由波形组件和域描述文件组成的,波形组件完成相应的功能,域描述文件提供组件之间的装配、连接、属性等信息,因此需要通过解析软件组件描述(SCD)文件和接口定义来获得OCP接口。SCD文件中定义了组件的端口列表,OCP模块就是要实现的组件。在接口库中已经定义好了各种接口类型。通过查询接口库,可以获得符合要求的接口,具体要实现的功能则由接口的参数决定。最终需要产生一个OCP接口配置文件,它以文本的形式描述了组件的内核和接口信息。

通过分析OCP接口配置文件,可以生成OCP接口的VHDL代码。代码中包括一个实体描述和空结构体以及一个VHDL语言包,实体表示满足OCP接口封装的组件,OCP接口则对应于实体的端口,端口的类型由其所在接口的类型决定。组件开发者将完成特定需求功能的代码移入空的结构体中,便得到组件的完整的VHDL代码。

3.2 FPGA组件在SCA中的集成

SCA组件都需要通过CORBA进行通信,而FPGA组件不使用CORBA,它的实现可分为实现体(worker)和通用代理(generic proxy)两部分。其中worker是在SHP容器中执行的功能组件实体;generic proxy相当于SCA中的适配器。

通用代理是SCA适配器概念的实例化,是由SHP逻辑设备的每一个“执行”操作创建的CORBA对象,类似于应用工厂在每一次“创建”操作时创建CF∷Application对象以及域管理器在每一次“安装”操作时创建应用工厂。当要求SHP逻辑设备实例化SHP组件时,通过使用load、execute命令创建代表SHP容器中实体的本地CORBA对象。它可以与SHP容器通信,用于下载、创建、控制和配置worker。相对于GPP逻辑设备的执行操作会产生一个GPP组件实现本身所对应的CORBA对象索引,SHP逻辑设备的执行操作会产生相应的通用代理的CORBA对象索引。

本文基于FPGA主要实现了动态部分可重构实验平台,并将其应用到SDR硬件平台调制解调算法实现中,提高了系统的灵活性和可扩展性。同时讨论了FPGA组件集成到SCA中的设计方法以及相关的技术,从而能够缩短系统的开发设计时间,增强组件的可移植性、可复用性和重新被设计的能力。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭