CN102999363B - 一种fpga/dsp嵌入式系统的启动方法 - Google Patents
一种fpga/dsp嵌入式系统的启动方法 Download PDFInfo
- Publication number
- CN102999363B CN102999363B CN201210512838.XA CN201210512838A CN102999363B CN 102999363 B CN102999363 B CN 102999363B CN 201210512838 A CN201210512838 A CN 201210512838A CN 102999363 B CN102999363 B CN 102999363B
- Authority
- CN
- China
- Prior art keywords
- fpga
- dsp
- chip
- niosii
- embedded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
一种FPGA/DSP嵌入式系统的启动方法,基于一种FPGA专用的主动串行配置芯片EPCS,通过嵌入式软核处理器NIOS?II,控制完成FPGA的重配置和DSP的启动过程。相对于基于外部并行FLASH芯片的启动方法,降低了FPGA/DSP嵌入式系统的板级PCB布线复杂度和系统体积。
Description
技术领域
本发明涉及一种FPGA/DSP架构的嵌入式系统的启动方法,属于FPGA/DSP架构的嵌入式系统的软硬件设计领域。
背景技术
FPGA/DSP架构的嵌入式系统作为一种典型的嵌入式系统,具有较强的逻辑控制能力和计算能力,在军事、医疗、工业等诸多场合下都有应用。通常,FPGA作为系统控制核心,控制外围数据的采集,处理以及实现各种通信协议,DSP为系统的计算核心,负责实现系统的核心算法,其通过EMIF和FPGA进行数据传递。然而,FPGA和DSP作为智能处理器件,其本身都不能存储应用程序,所以这种架构的嵌入式系统需要一片外部存储芯片用来存储FPGA硬件配置数据和DSP的应用程序数据。当前,一般设计都选取外部并行FLASH芯片来完成这一工作。并行FLASH芯片的数据线和地址线会占据比较多的PCB布局布线资源,从而增加了PCB布线复杂度和系统体积。
发明内容
本发明所解决的问题是:针对传统的FPGA/DSP+FLASH架构的嵌入式系统的不足,提出一种FPGA/DSP+EPCS架构的嵌入式硬件平台,并给出系统启动方法。
本发明的技术解决方案是:
一种FPGA/DSP架构的嵌入式系统的启动方法,所述FPGA/DSP嵌入式系统包括FPGA芯片、DSP芯片和EPCS芯片,所述启动方法的步骤如下:
(1)将所述FPGA芯片设置为主动配置模式,并使能FPGA芯片的远程配置功能,将DSP芯片设置为从SPI启动模式;
(2)在FPGA芯片中实现NIOSII嵌入式软核处理器系统;
(3)所述FPGA/DSP嵌入式系统上电之后,FPGA芯片通过主动配置模式完成第一次配置,所述NIOSII嵌入式软核处理器系统开始运行,
(4)NIOSII嵌入式软核处理器系统通过SPI接口与DSP芯片建立通信;
(5)NIOSII嵌入式软核处理器系统读取EPCS芯片中的DSP应用程序数据并且写入DSP芯片的RAM中,之后控制DSP芯片启动;
(6)DSP芯片启动之后,NIOSII嵌入式软核处理器系统发起FPGA芯片重新配置命令,FPGA芯片通过EPCS芯片中的用户FPGA配置数据完成第二次配置,即FPGA/DSP架构的嵌入式系统完成启动。所述EPCS芯片中预置有DSP应用程序数据和用户FPGA配置数据。
本发明与现有技术相比的有益效果是:
相对于传统FPGA/DSP+FLASH架构的嵌入式硬件平台,发明灵活运用各类器件的有益特性,提出一种FPGA/DSP+EPCS架构的嵌入式硬件平台,并给出系统启动的方法,在保证此类嵌入式硬件平台优越性能的同时,降低了板级PCB布线的复杂度和产品的体积。
附图说明
图1为本发明系统硬件结构框图
图2为EPCS16中的程序地址分配图
图3为本发明方法流程图
图4为NIOSII与DSP建立连接流程图
图5为NIOSII与DSP确定连接流程图
图6为sectionload命令格式
图7为DSP_APP数据格式
图8为jumpclose命令格式
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
图1为本发明采用的硬件结构。FPGA/DSP嵌入式系统包括FPGA芯片、DSP芯片和EPCS芯片,本法发明选用ALTERA公司的cycloneIII系列FPGA芯片,该系列FPGA支持远程配置技术。选用TI公司的C67XX系列DSP芯片,该系列DSP芯片支持从模式SPI启动方式。FPGA专用配置芯片选用EPCS16,用来存储FPGA硬件配置数据和DSP应用程序数据,其具有16Mbit的存储空间。
如图3所示,本发明提供了一种FPGA/DSP架构的嵌入式系统的启动方法,FPGA/DSP嵌入式系统包括FPGA芯片、DSP芯片和EPCS芯片,EPCS芯片中预置有DSP应用程序数据和用户FPGA配置数据;
启动方法的步骤如下:
(1)将所述FPGA芯片设置为主动配置模式,并使能FPGA芯片的远程配置功能,将DSP芯片设置为从SPI启动模式;
(2)在FPGA芯片中实现NIOSII嵌入式软核处理器系统;
(3)所述FPGA/DSP嵌入式系统上电之后,FPGA芯片通过主动配置模式完成第一次配置,所述NIOSII嵌入式软核处理器系统开始运行,
(4)NIOSII嵌入式软核处理器系统通过SPI接口与DSP芯片建立通信;
(5)NIOSII嵌入式软核处理器系统读取EPCS芯片中的DSP应用程序数据并且写入DSP芯片的RAM中,之后控制DSP芯片启动;
(6)DSP芯片启动之后,NIOSII嵌入式软核处理器系统发起FPGA芯片重新配置命令,FPGA芯片通过EPCS芯片中的用户FPGA配置数据完成第二次配置,即FPGA/DSP架构的嵌入式系统完成启动。
基于QuartusII提供的SOPCbuilder构建NIOSII系统,如下表所示,
组件名称 | 描述 |
cpu_0 | NIOS II Processor |
jtag_uart_0 | JTAG UART |
onchip_ram | On-chip Memory(RAM or ROM) |
epcs_flash_controller | EPCS Serial Flash Controller |
remote_update_cyclone III | Remote Update Controller(cyclone III) |
uart | UART(RS-232 Serial Port) |
spi | SPI(3 Wire Serial) |
sysid | System ID Peripheral |
cpu_0为NIOSII处理器。jtag_uart_0为NIOSII的调试JTAG口。onchip_ram为48K的FPGA片上RAM,其为NIOSII的运行空间。epcs_flash_controller为EPCS控制器,用来访问EPCS16,NIOSII提供访问接口函数。remote_update_cycloneiii为CYCLONEIII系列FPGA的远程配置控制器,用来实现FPGA的远程重配置。SPI实现NIOSII和DSP的通信,用来启动DSP。受制于FPGA片上RAM的大小,所以要对定制的NIOSII系统做一定程度的简化,以控制整个NIOSII程序数据及其运行空间的大小。
图2为EPCS16中各种程序的地址分配图,其中FPGA_BOOT为NIOSII系统的硬件配置数据,NIOSII_BOOT为NIOSII程序数据。这两部分数据可通过NIOSII自带的FLASHProgrammer工具下载至EPCS16的基地址处。发明所选用的NIOSII系统的硬件配置数据大小为200Kbyte左右,NIOSII程序数据也不会很大,所以预留384Kbyte的空间存储这两部分数据。0X060000-0X100000空闲不用。从0X100000起开始存放用户FPGA配置数据FPGA_APP,这部分数据大小也为200Kbyte左右,预留384Kbyte空间。从0×160000开始,最大有640Kbyte的空间,可用来存放DSP的用户应用程序。
下面通过图4~图8来具体说明本发明方法。
系统上电后,通过主动串行配置模式(AS),FPGA用FPGA_BOOT完成的自身的第一次配置。然后epcs_flash_controller中的一小段bootloader把NIOSII_BOOT从EPCS16中复制到NIOSII的运行空间onchip_ram中,完成NIOSII系统的加载启动。NIOSII程序开始运行后,完成DSP程序数据的加载和启动,然后通过用户FPGA配置数据完成FPGA的重配置。
1)DSP的启动
DSP应用程序的启动过程由DSP的从SPI启动模式来决定,整个过程可分为三步:
第一步:建立连接
如图4,NIOSII发送标志字1(0X5853),然后接收一个字,判断其是否为标志字2(0X5253)。如果是,则进入下一步骤,如果不是,重复发送标志字1(0X5853)。
第二步:确定连接
如图5,第一步成功结束后,NIOSII发送标志字3(0X5853590B),DSP返回应答标志字4(0X5253590B),然后NIOSII发送一个整数N,DSP返回同一整数N。最后,NIOSII发送整数序列1...N,DSP返回同一整数序列作为应答。
第三步:数据传递
第二步结束后,NIOSII和DSP之间建立了稳定可靠的连接,可以进行数据传递,如图6,数据传递过程主要通过sectionload命令,将EPCS16中DSP_APP数据复制到DSP内部RAM的指定位置处。DSP_APP在EPCS16中的存储格式如图7,NIOSII负责格式的解析以及数据的传递。数据复制完毕后,如图8,NIOSII发起jumpclose命令,使DSP程序指针跳转至用户程序入口地址处。
2)FPGA的重配置
FPGA的重配置过程通过remote_update_cycloneiii完成,在完成DSP的启动后,NIOSII发起重配置命令,利用用户FPGA配置数据完成自身的第二次配置。
本发明说明书中未作详细描述的内容属于本领域技术人员的公知技术。
Claims (1)
1.一种FPGA/DSP架构的嵌入式系统的启动方法,其特征在于:所述FPGA/DSP嵌入式系统包括FPGA芯片、DSP芯片和EPCS芯片,所述启动方法的步骤如下:
(1)将所述FPGA芯片设置为主动串行配置模式,并使能FPGA芯片的远程配置功能,将DSP芯片设置为从SPI启动模式;
(2)在FPGA芯片中实现NIOSII嵌入式软核处理器系统;
(3)所述FPGA/DSP嵌入式系统上电之后,FPGA芯片通过主动串行配置模式完成第一次配置,所述NIOSII嵌入式软核处理器系统开始运行,
(4)NIOSII嵌入式软核处理器系统通过SPI接口与DSP芯片建立通信;
(5)NIOSII嵌入式软核处理器系统读取EPCS芯片中的DSP应用程序数据并且写入DSP芯片的RAM中,之后控制DSP芯片启动;
(6)DSP芯片启动之后,NIOSII嵌入式软核处理器系统发起FPGA芯片重新配置命令,FPGA芯片通过EPCS芯片中的用户FPGA配置数据完成第二次配置,即FPGA/DSP架构的嵌入式系统完成启动;
所述EPCS芯片中预置有DSP应用程序数据和用户FPGA配置数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210512838.XA CN102999363B (zh) | 2012-11-30 | 2012-11-30 | 一种fpga/dsp嵌入式系统的启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210512838.XA CN102999363B (zh) | 2012-11-30 | 2012-11-30 | 一种fpga/dsp嵌入式系统的启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999363A CN102999363A (zh) | 2013-03-27 |
CN102999363B true CN102999363B (zh) | 2015-11-25 |
Family
ID=47927968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210512838.XA Active CN102999363B (zh) | 2012-11-30 | 2012-11-30 | 一种fpga/dsp嵌入式系统的启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999363B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320531A (zh) * | 2014-07-15 | 2016-02-10 | 北京自动化控制设备研究所 | 一种基于MicroBlaze软核的FPGA软件在线升级方法 |
CN106886427A (zh) * | 2015-12-15 | 2017-06-23 | 西安富成防务科技有限公司 | 一种dsp与fpga统一启动架构 |
CN107168720B (zh) * | 2017-06-06 | 2020-09-08 | 武汉虹信通信技术有限责任公司 | 一种基于fpga的spi接口配置方法 |
CN112148341B (zh) * | 2020-10-29 | 2023-11-21 | 合肥埃科光电科技股份有限公司 | 一种基于NiosII软核的FPGA在线升级方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030064039A (ko) * | 2002-01-25 | 2003-07-31 | 삼성전자주식회사 | 원격 에프피지에이 프로그램 업그레이드 방법 |
CN101795019A (zh) * | 2010-01-19 | 2010-08-04 | 东南大学 | 基于软核的光电电流互感器合并单元 |
CN102760106A (zh) * | 2011-04-28 | 2012-10-31 | 北京京师励耘教育科技有限公司 | Pci学业数据挖掘芯片及其运行方法 |
CN102779079A (zh) * | 2011-05-12 | 2012-11-14 | 中国科学院空间科学与应用研究中心 | 一种用于长期在轨工作的星载sram型fpga的配置方法及系统 |
-
2012
- 2012-11-30 CN CN201210512838.XA patent/CN102999363B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030064039A (ko) * | 2002-01-25 | 2003-07-31 | 삼성전자주식회사 | 원격 에프피지에이 프로그램 업그레이드 방법 |
CN101795019A (zh) * | 2010-01-19 | 2010-08-04 | 东南大学 | 基于软核的光电电流互感器合并单元 |
CN102760106A (zh) * | 2011-04-28 | 2012-10-31 | 北京京师励耘教育科技有限公司 | Pci学业数据挖掘芯片及其运行方法 |
CN102779079A (zh) * | 2011-05-12 | 2012-11-14 | 中国科学院空间科学与应用研究中心 | 一种用于长期在轨工作的星载sram型fpga的配置方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于EPCS Flash配置的Altera SOPC启动及更新研究;杨钊等;《中国西部数据》;20090131;第8卷(第1期);第2-3页,图1-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN102999363A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019779B (zh) | 一种fpga/dsp嵌入式系统的程序更新方法 | |
CN105637498B (zh) | eUICC的管理方法、eUICC、SM平台和系统 | |
CN102999363B (zh) | 一种fpga/dsp嵌入式系统的启动方法 | |
CN106502960A (zh) | 一种基于sip封装的无线通信芯片 | |
CN109391444A (zh) | 一种bwp的激活控制方法、用户设备及基站 | |
CN102883012B (zh) | 移动终端电流的测试系统及测试方法 | |
CN103259936A (zh) | 移动终端操作系统升级方法及其装置 | |
CN104461649B (zh) | 芯片兼容方法及装置 | |
CN111010317A (zh) | 一种基于串口和蓝牙低能耗双协议的蓝牙产测方法及系统 | |
CN105573798B (zh) | 一种可快速重新配置fpga的方法及电路 | |
CN104991806A (zh) | 单片机程序远程固件升级系统和方法 | |
CN103389904A (zh) | 空调系统的更新方法和数据处理平台 | |
CN104461660A (zh) | 一种异构系统的多模式动态加载方法 | |
CN108196929B (zh) | 一种智能加载系统、方法、存储介质及设备 | |
CN103106088B (zh) | 硬件固件独立升级系统及方法 | |
CN107622027A (zh) | 一种多合一Flash控制器及制卡方法 | |
CN112565029A (zh) | 接入物联网方法、系统、终端和计算机可读存储介质 | |
CN201001123Y (zh) | 一种无线传感器网络节点 | |
CN113703689B (zh) | 智能电表的数据存储方法、装置、智能电表以及存储介质 | |
CN204680000U (zh) | 一种dsp程序代码无线更新器 | |
CN105828421A (zh) | 一种终端及终端省电的方法 | |
CN202940971U (zh) | 一种具有无线与移动存储功能的sim卡 | |
CN110113730A (zh) | 网络接入方法、装置、物联网模块和存储介质 | |
CN110796321B (zh) | 站场运行方案的确定方法、装置及存储介质 | |
CN110188490B (zh) | 提高数据仿真效率的方法及装置、存储介质和电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |