APP下载

一种基于TMS320C6A8168的FPGA动态配置方法*

2016-12-01张德民刘贻静主父文刚

电子技术应用 2016年9期
关键词:配置文件基带串口

张德民,童 庆,刘贻静,主父文刚

(重庆邮电大学 重庆市移动通信技术重点实验室,重庆 400065)

一种基于TMS320C6A8168的FPGA动态配置方法*

张德民,童庆,刘贻静,主父文刚

(重庆邮电大学 重庆市移动通信技术重点实验室,重庆 400065)

针对基带处理系统中 FPGA传统上电配置中存在的速度和灵活性等问题,提出一种基于 TMS320C6A8168的SD卡和网口动态加载FPGA配置文件的方案。该方案以含有4片FPGA和1片C6A8168 ARM处理器所组成的嵌入式系统作为平台,通过修改U-boot中的代码使得基带系统上电运行U-boot时能够选择性地加载PC中 FPGA的配置文件,从而使FPGA完成相应的物理层算法及硬件加速。有效实现了对FPGA的配置,提高了FPGA系统配置的灵活性,在基带处理系统中有很好的应用前景。

TMS320C6A8168;FPGA;SD卡;基带处理系统

0 引言

基带处理系统中由于FPGA容量、速度、资源等方面的局限性,在完成某些复杂嵌入式系统的设计中存在很大困难。然而将复杂的系统设计分割为若干独立模块[1],每个模块由单个FPGA实现,并辅以多FPGA间的有效接口,则能很好地解决FPGA规模的局限性问题。另一方面,同一套硬件设备可加载不同的配置文件到多FPGA系统[2]中,以实现设备功能多变的应用需求。例如:在移动通信信令分析仪中,为了兼容全球移动通信系统(Global System for Mobile communication,GSM)、时分同步码分多址(Time Division-Synchronous Code Division Multiple Access,TD-SCDMA)、分时长期演进(Time Division Long Term Evolution,TD-LTE)、频分双工 LTE(Frequency Division Duplexing LTE,FDD-LTE)等不同的通信制式,就必须动态地对多FPGA进行配置。

1 Multi FPGA配置方案

传统多FPGA系统的解决方案大致可分为分散配置方案和集中配置方案两种,配置结构如图1所示。

图1 传统配置方案的配置结构

分散配置方案中各FPGA分别采用主模式加载外部带电可擦写可编程只读存储器(EEPROM)中的配置文件完成配置,需要设计多个独立的配置电路,从而增加了系统的复杂度和成本。集中配置会出现EEPROM容量不足,以及系统中的多片FPGA无法在不同版本的配置文件之间进行智能切换等问题。针对以上配置的不足,本文设计了基于ARM、SD卡、EMAC和串口的多FPGA命令选择配置方案,该方案使用ARM的人机交互接口读取用户选择命令,控制接口和数据接口按照配置时序完成配置,实现了用户可根据设备不同的功能要求,自主选择 FPGA配置文件[3-4]。

2 基于ARM的多FPGA串口命令选择配置的硬件设计

本方案选用TI公司双核处理器TMS320C6A8168作为系统的主控芯片。网卡选用LSI公司的ET1011C千兆网卡来加载网络端的 FPGA文件,大大提升了文件加载的效率。SD卡选用传输速度 30 MB/s、容量 16 GB的Kingston存储器,存储通用启动引导程序(Universal boot loader,U-boot)映像文件。辅助 FPGA采用专门应用于系统集成度高和安全性非常关键的非易失性领域Spartan-3AN系列的FPGA XC3S400AN。整个硬件电路框图如图2所示。

图2 Multi FPGA配置电路图

配置程序以及配置文件放在PC上,上电后ARM执行根据硬件信息定制的U-boot,并通过串口在超级终端上打印配置文件选择信息及对应的设备功能说明;然后根据用户输入的命令先将所选配置文件从PC通过TFTP方式下载到内存 DDR,再通过配置程序将DDR中的文件通过辅助FPGA分次写入待配置FPGA中,依次完成对FPGA的配置。其中FPGA的配置文件为.bit格式,加载配置文件的格式为.out,SD卡的启动引导文件为MLO,U-boot为u-boot.bin。整个文件的布局如图3所示[5]。

图3 各个文件布局

3 基于ARM的多FPGA串口命令选择配置的软件设计

系统上电后,ARM加载SD卡中的U-boot代码完成系统软硬件环境的初始化,然后将用户所选的配置文件依次拷贝到DDR中指定的位置。通过执行配置代码,利用FPGA逻辑可变性,按照时序[6]将DDR中的配置文件通过XC3S400AN依次写入到4片待配置FPGA中,实现所有FPGA的配置[7]。总流程如图4所示。

图4 烧写配置代码的流程图

3.1U-boot代码的设计

根据已有的C6A8168 U-boot代码更改[8-10],在U-boot/common/main.c源代码打印倒计时启动代码后面添加部分代码如下:

以上 Case语句能够实现对环境变量中的 fpga1-1指令读取和解析。其中 fpga1-1指令在 uboot/common/env_com-mon.c中添加:

FPGA1_1CONFIG_BOOTCOMMAND对应的命令为:tftp 0x82000000 fpga1-1.bit,在u-boot/common/ti8168_ evm.h中添加:

以上命令利用TFTP方式将配置文件 fpga1-1.bit和加载配置文件fpga_init.out下载到DDR的地址中,并执行该代码,以实现将配置文件加载到辅助FPGA中实现对FPGA1的配置[11]。

3.2U-boot编译

修改Makefile中ARCH与CROSS_COMPILE:

此时U-boot编译分为两步:

先用 make distclean将之前的编译过程中生成的代码删除,其次由于 SD卡启动时U-boot镜像文件通常小于125 KB,所以此处用 make ti8168_evm_min_sd来实现SD卡启动时配置;运用 make u-boot.ti编译代码,最终生成u-boot.min.sd,然后将u-boot.min.sd重命名为MLO作为u-boot的第一阶段;

以上代码编译生成 Nandflash版的 u-boot.bin,这里用于SD卡启动的第二阶段。

经过以上两步可以得到 MLO和 u-boot.bin启动文件。

3.3TFTP的配置用于EMAC加载PC上的FPGA配置文件

考虑到加载速度问题,本方案采用千兆网口加载,选择PC作为服务器使用。基帶板的IP与PC的IP在同一网络中:将PC和基帶板中的EMAC网卡的IP分别设置为192.168.1.11、192.168.1.22,子网掩码为 255.255.255.0,网关为 192.168.1.1;此时,上电时在倒计时3 s之内,通过按下选择对应的FPGA配置文件的按键,就会利用TFTP方式从 PC上加载所选择的代码。没有在倒计时3 s之内按下选择按键,根据U-boot会加载默认的配置文件。

4 数据测试及结果

根据测试对象及环境的不同,加载不同制式的配置文件使仪表兼容GSM、TD-SCDMA、TD-LTE、FDD-LTE 4种通信网络,满足不同环境的测试环境以及5 M、10 M、15 M、20 M 4种带宽,模拟单小区多用户、单天线、多天线等配置,实现了动态加载配置文件的需求。

在移动通信信令分析仪中对该方案测试配置时间。在不同的ARM时钟频率和平均配置文件下多次测得并完成FPGA配置所需的时间如表1所示。

表1 系统启动与配置完成总时间

5 结论

本方案通过ARM的启动选择性地加载FPGA配置文件,实现基带系统的上电自启动。并且从系统结构、原理设计、硬件构造、软件实现等方面给出具体实现,其中软硬件设计较为独立完整,在通信电子、计算机领域具有一定的应用价值。

[1]张倩莉,于芳,刘忠立,等.结合用户约束文件的高效多FPGA系统分割方法[J].哈尔滨工业大学学报,2012,44 (7):144-148.

[2]LADDHA S,DE K B.EDA tools and design methodology for multi-FPGA designing/prototyp-ing[EB/OL].[2015-1-26].http://www.design-reu-se.c-om/articles/22074/formulti-fpga-designing-prototyping.html.

[3]陈曦,沈佐峰.一种可靠的FPGA动态配置方法及实现[J].通信技术,2012,45(3):105-110.

[4]张承畅.多 FPGA系统的关键问题及应用研究[D].重庆:重庆大学,2011.

[5]YAN D G,ZHANG C C,TONG R J.A new configuration scheme for multi-FPGA systems based on XCF32P[C].International Conference on Industry,Information System and Material Engineering,2011:1014-1017.

[6]纪斌.Xilinx FPGA上电时序分析与设计[J].电讯技术,2012,52(4):591-594.

[7]李飞飞,苏延川,王鹏.基于DSP的 FPGA配置方法研究与实现[J].现代电子技术,2011,34(24):60-62.

[8]杨宗富.基于 ARM的系统启动过程研究与系统移植[D].北京:北方工业大学,2014.

[9]PETER B,PATRICK C.Linux for embedded and real-time applications(Third Edition)[M].Great Britain:Elsevier,2013:225-232.

[10]Xilinx Inc.Spartan-3AN FPGA family data sheet[EB/OL].[2015-1-26].http://www.xilinx.com/support/documentation/data_sheets/ds557.pdf.

[11]Texas Instruments Inc.DM816x AM389x PSP flashing tools guide[EB/OL].[2015-1-26].http://processors.wiki.ti.com/index.php/DM816x_AM389x_PSP_Flashing_Tools_Guide.

A method of FPGA dynamic configuration based on TMS320C6A8168

Zhang Demin,Tong Qing,Liu Yijing,Zhufu Wengang
(Key Laboratory of Mobile Communication Technology of Chongqing,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)

Aiming at the problem of speed and flexibility in traditional FPGA booting allocation in baseband processing system, this paper presents a method of dynamic loading FPGA configuration file through SD card and network based on TMS320C6A8168.The program has embedded system platform composed of four pieces of FPGA and an ARM C6A8168 processor,by modifying the U-boot code makes the baseband system selectively load FPGA configuration file in PC when running the U-boot,so that the FPGA can complete the corresponding physical layer algorithms and hardware acceleration.It effectively achieves the configuration of the FPGA, improves the flexibility of the FPGA system configuration,and has a good application prospects in the base band processing system.

TMS320C6A8168;FPGA;SD card;baseband processing system

TP273+.5

A

10.16157/j.issn.0258-7998.2016.09.014

国家科技重大专项(2012ZX03001-009-004)

张德民(1955-),男,教授,主要研究方向:信号处理与通信系统。

童庆(1991-),男,硕士研究生,主要研究方向:移动通信与嵌入式系统。

刘贻静(1994-),女,本科,主要研究方向:基于 FPGA的物理层算法研究。

中文引用格式:张德民,童庆,刘贻静,等.一种基于 TMS320C6A8168的 FPGA动态配置方法[J].电子技术应用,2016,42 (9):55-57,61.

英文引用格式:Zhang Demin,Tong Qing,Liu Yijing,et al.A method of FPGA dynamic configuration based on TMS320C6A8168[J].Application of Electronic Technique,2016,42(9):55-57,61q.

猜你喜欢

配置文件基带串口
Ag元素对Ni-7at.%W合金基带织构形成的影响
浅谈AB PLC串口跟RFID传感器的通讯应用
互不干涉混用Chromium Edge
苹果推出自研基带芯片要过几道坎?
苹果10亿美元为5G买“芯”
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索