一种星载DSP软件任务动态重构电路及重构方法技术领域
本发明涉及一种星载DSP软件任务动态重构电路及重构方法,属于星载DSP任务重
构技术领域。
背景技术
随着微纳卫星、片上卫星的快速发展,对其电子系统的微小型化、低功耗的需求日
趋明显。集成微系统作为扁平化设计的新模式,将信息感知、数据处理、驱动控制等功能单
元,采用MCM、SIP、TSV等封装技术,集成在一个芯片大小的封装体内,极大地提升了系统的
集成度。
DSP作为高性能处理单元,采用修正的哈佛结构和专用的硬件乘法,可以快速实现
各种信号处理算法,已被广泛的应用在航天的各个领域。因此,将DSP集成到微系统中将极
大提高微系统的处理器能力,将满足各类运算任务的需求。
然而,目前的DSP的工作模式主要作为主机单独运行,采用DSP+PROM的系统架构,
系统上电时由PROM加载程序数据到DSP的运行空间中,该方法虽然可以满足程序启动,但是
只能实现惟一任务的加载。无法在处理器调度下动态加载程序来支撑复杂任务的动态切换
要求。目前,已有研究提出DSP作为从处理器,在主控处理器的调度下执行任务的工作模式,
以及相应的主控理器+DSP+总线隔离芯片的系统架构。然而,该方式对于微系统而言,由于
引入了总线隔离芯片,必然带来系统面积、功耗的增加。同时,较低的总线隔离芯片利用率
也降低了系统的功能密度。
综上可知,目前已有的板级设计方法,都不能较好的满足微系统中DSP软件任务动
态重构的需求。
因此,FT-6713的任务如果能够满足动态重构或切换,将极大提升星载电子系统的
灵活性。然而,目前的FT-6713的工作机制是采用PROM+FT-6713的模式,FT-6713的任务被初
始化在存储器中,系统上电后,对任务进行加载,FT-6713所执行的任务将受到限制,与微纳
卫星快速集成、灵活应用的设计理念相悖。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种星载DSP软件任务动
态重构电路及重构方法,解决了星载DSP芯片动态重构的问题,同时不增加额外芯片和功
耗。
本发明的技术解决方案是:
一种星载DSP软件任务动态重构电路,包括:FPGA芯片、DSP芯片、CPU芯片、第一
Flash芯片、第一SRAM芯片和第二SRAM芯片;
地面站将DSP重构程序上注到CPU芯片中,第一Flash芯片和第一SRAM芯片用于存
储上注到CPU芯片的DSP重构程序,CPU芯片从第一SRAM芯片中读取数据,并通过FPGA传输给
DSP芯片,从而对DSP芯片进行软件任务动态重构;第二SRAM芯片用于存储DSP重构程序。
所述FPGA芯片、DSP芯片、CPU芯片、第一Flash芯片、第一SRAM芯片和第二SRAM芯片
均为卫星上的原有芯片。
FPGA芯片、DSP芯片、CPU芯片、第一Flash芯片、第一SRAM芯片和第二SRAM芯片均以
同一个SIP芯片的形式实现。
所述FPGA芯片采用BQ2V1000型号,DSP芯片采用FT-6713型号,CPU芯片采用BM3101
型号。
一种星载DSP软件任务动态重构方法,步骤如下:
(1)地面站生成针对星载DSP芯片的配置文件,即DSP重构程序;
(2)令DSP芯片和CPU芯片上电启动,将DSP芯片设置为HPI引导模式;
(3)地面站将生成的DSP重构程序上注给CPU芯片,CPU芯片判断所述DSP重构程序
的大小,与预设的CPU存储阈值进行比较,如果DSP重构程序的大小超过所述CPU存储阈值,
则地面站上注的DSP重构程序同时存入第一Flash芯片和第一SRAM芯片中,否则,地面站上
注的DSP重构程序同时存入第一Flash芯片和CPU芯片的内部RAM中;
(4)上注的DSP重构程序存储完毕之后,CPU芯片将第一SRAM芯片中的数据发送给
FPGA芯片,FPGA芯片与DSP芯片之间实现HPI通信,将DSP重构程序发送给DSP芯片;FPGA芯片
判断所述DSP重构程序的大小,与预设的DSP存储阈值进行比较,如果DSP重构程序的大小超
过所述DSP存储阈值,则所述DSP重构程序存入第二SRAM芯片中,否则,DSP重构程序直接存
入DSP芯片内部RAM中;
(5)DSP芯片根据存储在第二SRAM芯片中的DSP重构程序或者存储在DSP芯片内部
RAM中的DSP重构程序进行重构操作,重构完成后,FGPA芯片将FPGA芯片与DSP芯片之间的通
信管脚置为三态,将FPGA芯片与CPU芯片之间的通信管脚也置为三态。
FPGA芯片与DSP芯片之间实现HPI通信具体为:
其中,HCNTL1、HCNTL0、HHWIL为DSP芯片的HPI控制管脚,HPIA、HPIC和HPID为DSP芯
片内的HPI控制寄存器。
本发明与现有技术相比的有益效果是:
(1)通过实时动态重构提升DSP任务执行的灵活性。可以在轨动态重新注入FT-
6713所执行的新任务,而不是通过任务调度机制来增加或减少某个任务。提高了任务重构
的范围,减小了传统方法的局限性;
(2)利用资源复用的方式实现了总线信号隔离。传统的方法利用总线隔离器件来
完成不同总线接口器件的通信,增加了系统的体积和功耗,所隔离信号数量同时受到总线
隔离器件接口的限制。本发明采用BQ2V1000,在内部实现了灵活的接口转换逻辑。而
BQ2V1000是星载电子系统的一部分,本设计进行了复用,既实现了总线的隔离,又降低了系
统的体积。
(3)通过动态重构的方式进一步降低了系统功耗。采用动态重构技术所实现的配
置通路,在非注入状态下,接口设计为高阻态进行总线隔离,内部逻辑恢复初始态,不产生
通路电流,在工作状态下,内部逻辑选通,实现配置通路。通过动态切换的模式,实现了低功
耗设计。
附图说明
图1为本发明电路结构示意图;
图2为本发明方法流程图;
图3为本发明HPI加载软件流程。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
1系统架构
本方法基于资源复用的思路,力争在不增加器件的基础上,实现DSP任务的动态重
构。本方法主要利用了系统中集成的FPGA芯片作为构建BM3101处理器和DSPHPI接口的配
置通路,并由BM3101处理器中运行的软件程序,驱动BM3101处理器总线时序的变化来实现
DSP程序的动态加载和启动。本方法的设计由2部分构成,即硬件配置通路和软件驱动。其系
统架构如图1所示。
硬件部分,是完成DSP任务重构的物理连接部分。它包括BM3101处理器和FPGA的互
联、DSP的HPI接口与FPGA的互联、BM3101处理器与FLASH的互联、BM3101处理器与SDRAM的互
联、DSP处理器与SDRAM的互联。
软件部分,是完成DSP软件任务数据的加载和启动。该部分由数据加载模块和程序
启动模块构成。
如图1所示,本发明提供的一种星载DSP软件任务动态重构电路,包括:FPGA芯片、
DSP芯片、CPU芯片、第一Flash芯片、第一SRAM芯片和第二SRAM芯片;
地面站将DSP重构程序上注到CPU芯片中,第一Flash芯片和第一SRAM芯片用于存
储上注到CPU芯片的DSP重构程序,CPU芯片从第一SRAM芯片中读取数据,并通过FPGA传输给
DSP芯片,从而对DSP芯片进行软件任务动态重构;第二SRAM芯片用于存储DSP重构程序。
所述FPGA芯片、DSP芯片、CPU芯片、第一Flash芯片、第一SRAM芯片和第二SRAM芯片
均为卫星上的原有芯片。
FPGA芯片、DSP芯片、CPU芯片、第一Flash芯片、第一SRAM芯片和第二SRAM芯片均以
同一个SIP芯片的形式实现。
所述FPGA芯片采用BQ2V1000型号,DSP芯片采用FT-6713型号,CPU芯片采用BM3101
型号。
(1)FT-6713与BQ2V1000互联设计
FT-6713地址线A2接到BQ2V1000的IO_L04P_2,FT-6713地址线A3接到BQ2V1000的
IO_L04N_2,FT-6713地址线A4接到BQ2V1000的IO_L24N_2,FT-6713地址线A5接到BQ2V1000
的IO_L24P_2,DSP地址线A6接到BQ2V1000的IO_L03P_2/VREF_2,DSP地址线A7接到BQ2V1000
的IO_L03_2,DSP地址线A8接到BQ2V1000的IO_L02N_2/VRP_2,DSP地址线A9接到BQ2V1000的
IO_L22N_2,DSP地址线A10接到BQ2V1000的IO_L49P_2,DSP地址线A11接到BQ2V1000的IO_
L49N_2,FT-6713地址线A12接到BQ2V1000的IO_L04N_1,FT-6713地址线A13接到BQ2V1000的
IO_L48N_2,FT-6713地址线A14接到BQ2V1000的IO_L48P_2,FT-6713地址线A15接到
BQ2V1000的IO_L02P_2/VRN_2,FT-6713地址线A16接到BQ2V1000的IO_L06P_1,FT-6713地址
线A17接到BQ2V1000的IO_L19N_1,FT-6713地址线A18接到BQ2V1000的IO_L49P_1,FT-6713
地址线A19接到BQ2V1000的IO_L05P_1,FT-6713地址线A20接到BQ2V1000的IO_L43P_2,FT-
6713地址线A21接到BQ2V1000的IO_L54P_2,FT-6713数据线D0接到BQ2V1000的IO_L22N_3,
FT-6713数据线D1接到BQ2V1000的IO_L54N_3
FT-6713数据线D2接到BQ2V1000的IO_L51N_3/VREF_3,FT-6713数据线D3接到
BQ2V1000的IO_L51P_3,FT-6713数据线D4接到BQ2V1000的IO_L94P_3,FT-6713数据线D5接
到BQ2V1000的IO_L94N_3,FT-6713数据线D6接到BQ2V1000的IO_L91P_2,FT-6713数据线D7
接到BQ2V1000的IO_L96N_3,FT-6713数据线D8接到BQ2V1000的IO_L96P_3
FT-6713数据线D9接到BQ2V1000的IO_L94P_2,FT-6713数据线D10接到BQ2V1000的
IO_L94N_2,FT-6713数据线D11接到BQ2V1000的IO_L93P_2/VREF_2,FT-6713数据线D12接到
BQ2V1000的IO_L93N_2,FT-6713数据线D13接到BQ2V1000的IO_L51P_2/VREF_2,FT-6713数
据线D14接到BQ2V1000的IO_L91N_2,FT-6713数据线D15接到BQ2V1000的IO_L46P_2,FT-
6713数据线D16接到BQ2V1000的IO_L22P_1,FT-6713数据线D17接到BQ2V1000的IO_L05N_1,
FT-6713数据线D18接到BQ2V1000的IO_L24P_1,FT-6713数据线D19接到BQ2V1000的IO_
L02P_1,FT-6713数据线D20接到BQ2V1000的IO_L02N_1,FT-6713数据线D21接到BQ2V1000的
IO_L03P_1/VRN_1,FT-6713数据线D22接到BQ2V1000的IO_L03N_1/VRP_1,FT-6713数据线
D23接到BQ2V1000的IO_L06N_1,FT-6713数据线D24接到BQ2V1000的IO_L19P_2,FT-6713数
据线D25接到BQ2V1000的IO_L21N_2,FT-6713数据线D26接到BQ2V1000的IO_L01N_2
FT-6713数据线D27接到BQ2V1000的IO_L01P_2,FT-6713数据线D28接到BQ2V1000
的IO_L19N_2,FT-6713数据线D29接到BQ2V1000的IO_L04P_1/VREF_1,FT-6713数据线D30接
到BQ2V1000的IO_L22P_2,FT-6713数据线D31接到BQ2V1000的IO_L21P_2/VREF_2,FT-6713
字节控制信号BE0接到BQ2V1000的IO_L52N_2,FT-6713字节控制信号BE1接到BQ2V1000的
IO_L54N_2,FT-6713字节控制信号BE2接到BQ2V1000的IO_L22N_1,FT-6713字节控制信号
BE3接到BQ2V1000的IO_L54N_1,FT-6713片选信号CE0接到BQ2V1000的IO_L52P_2,FT-6713
片选信号CE1接到BQ2V1000的IO_L51N_2,FT-6713片选信号CE2接到BQ2V1000的IO_L52P_1,
FT-6713片选信号CE3接到BQ2V1000的IO_L51N_1/VREF_1,FT-6713异步存储器读使能、
SDRAM列地址、SBSRAM地址控制信号ARE/SACAS/SSADS接到BQ2V1000的IO_L49N_1,FT-6713
的EMIF输出时钟信号ECLKOUT接到BQ2V1000的IO_L95N_1/GCLK1P,FT-6713异步存储器输出
使能、SDRAM行地址选通、SBSRAM输出使能信号AOE/SDRAS/SSOE接到BQ2V1000的IO_L24N_1,
FT-6713异步存储器写使能、SDRAM写使能、SBSRAM写使能信号AWE/SDWE/SSWE接到BQ2V1000
的IO_L21P_1,FT-6713信号ARDY接到BQ2V1000的IO_L45P_2/VREF_2,FT-6713信号BUSREQ接
到BQ2V1000的IO_L24P_3,FT-6713信号ECLKIN接到BQ2V1000的IO_L43N_2,FT-6713信号GP6
接到BQ2V1000的IO_L01P_3,FT-6713信号GP7接到BQ2V1000的IO_L93N_3/VREF_3,FT-6713
信号HAS接到BQ2V1000的IO_L48P_3,FT-6713信号HCNTL0接到BQ2V1000的IO_L24N_3,FT-
6713信号HCNTL1接到BQ2V1000的IO_L48N_3,FT-6713信号HCS接到BQ2V1000的IO_L43P_3,
FT-6713信号HD0接到BQ2V1000的IO_L45P_3,FT-6713信号HD1接到BQ2V1000的IO_L49N_3,
FT-6713信号HD2接到BQ2V1000的IO_L02N_3/VRP_3,FT-6713信号HD3接到BQ2V1000的IO_
L19N_4,FT-6713信号HD4接到BQ2V1000的IO_L06N_4,FT-6713信号HD5接到BQ2V1000的IO_
L49P_3,FT-6713信号HD6接到BQ2V1000的IO_L03P_3,FT-6713信号HD7接到BQ2V1000的IO_
L03N_3/VREF_3,FT-6713信号HD8接到BQ2V1000的IO_L21N_3/VREF_3,FT-6713信号HD9接到
BQ2V1000的IO_L04P_3,FT-6713信号HD10接到BQ2V1000的IO_L19N_3,FT-6713信号HD11接
到BQ2V1000的IO_L04N_3,FT-6713信号HD12接到BQ2V1000的IO_L21P_3,FT-6713信号HD13
接到BQ2V1000的IO_L06N_3,FT-6713信号HD14接到BQ2V1000的IO_L19P_3,FT-6713信号
HD15接到BQ2V1000的IO_L06P_3,FT-6713信号HDS1接到BQ2V1000的IO_L45N_3/VREF_3,FT-
6713信号HDS2接到BQ2V1000的IO_L46P_3,FT-6713信号HHWIL接到BQ2V1000的IO_L52P_3,
FT-6713信号HINT接到BQ2V1000的IO_L54P_3,FT-6713信号HOLD接到BQ2V1000的IO_L43N_
3,FT-6713信号HOLDA接到BQ2V1000的IO_L01N_3,FT-6713信号HR/W接到BQ2V1000的IO_
L46N_3,FT-6713信号HRDY接到BQ2V1000的IO_L52N_3。
(2)FT-6713与SDRAM42SM32400F的连接
SDRAM选用42SM32400F芯片,空间大小为1M×32Bits×4Banks,连接关系如下:
FT-6713的地址信号EA2接SDRAM的A0,FT-6713的地址信号EA3接SDRAM的A1,FT-
6713的地址信号EA4接SDRAM的A2,FT-6713的地址信号EA5接SDRAM的A3,FT-6713的地址信
号EA6接SDRAM的A4,FT-6713的地址信号EA7接SDRAM的A5,FT-6713的地址信号EA8接SDRAM
的A6,FT-6713的地址信号EA9接SDRAM的A7,FT-6713的地址信号EA10接SDRAM的A8,FT-6713
的地址信号EA11接SDRAM的A9,FT-6713的地址信号EA12接SDRAM的A10,FT-6713的地址信号
EA13接SDRAM的A11,FT-6713的地址信号EA14接SDRAM的BA0,FT-6713的地址信号EA15接
SDRAM的BA1,FT-6713的数据信号ED0接SDRAM的DQ0,FT-6713的数据信号ED1接SDRAM的DQ1,
FT-6713的数据信号ED2接SDRAM的DQ2,FT-6713的数据信号ED3接SDRAM的DQ3,FT-6713的数
据信号ED4接SDRAM的DQ4,FT-6713的数据信号ED5接SDRAM的DQ5,FT-6713的数据信号ED6接
SDRAM的DQ6,FT-6713的数据信号ED7接SDRAM的DQ7,FT-6713的数据信号ED8接SDRAM的DQ8,
FT-6713的数据信号ED9接SDRAM的DQ9,FT-6713的数据信号ED10接SDRAM的DQ10,FT-6713的
数据信号ED11接SDRAM的DQ11,FT-6713的数据信号ED12接SDRAM的DQ12,FT-6713的数据信
号ED13接SDRAM的DQ13,FT-6713的数据信号ED14接SDRAM的DQ14,FT-6713的数据信号ED15
接SDRAM的DQ15,FT-6713的数据信号ED16接SDRAM的DQ16,FT-6713的数据信号ED17接SDRAM
的DQ17,FT-6713的数据信号ED18接SDRAM的DQ18,FT-6713的数据信号ED19接SDRAM的DQ19,
FT-6713的数据信号ED20接SDRAM的DQ20,FT-6713的数据信号ED21接SDRAM的DQ21,FT-6713
的数据信号ED22接SDRAM的DQ22,FT-6713的数据信号ED23接SDRAM的DQ23,FT-6713的数据
信号ED24接SDRAM的DQ24,FT-6713的数据信号ED25接SDRAM的DQ25,FT-6713的数据信号
ED26接SDRAM的DQ26,FT-6713的数据信号ED27接SDRAM的DQ27,FT-6713的数据信号ED28接
SDRAM的DQ28,FT-6713的数据信号ED29接SDRAM的DQ29,FT-6713的数据信号ED30接SDRAM的
DQ30,FT-6713的数据信号ED31接SDRAM的DQ31,FT-6713的信号ECLKOUT接SDRAM的CLK,FT-
6713的信号CE2接SDRAM的CS,FT-6713的信号OE接SDRAM的RAS,FT-6713的信号DS接SDRAM的
CAS,FT-6713的信号WE接SDRAM的WE,FT-6713的信号BE0接SDRAM的DQM0,FT-6713的信号BE1
接SDRAM的DQM1,FT-6713的信号BE2接SDRAM的DQM2,FT-6713的信号BE3接SDRAM的DQM3.
(3)BM3101与BQ2V1000互联设计
BM3101地址信号EA0接到BQ2V1000的IO_L22N_4,BM3101地址信号EA1接到
BQ2V1000的IO_L91N_4/VREF_4,BM3101地址信号EA2接到BQ2V1000的IO_L96N_7,BM3101地
址信号EA3接到BQ2V1000的IO_L19P_5,BM3101地址信号EA4接到BQ2V1000的IO_L19N_5,
BM3101地址信号EA5接到BQ2V1000的IO_L22P_6,BM3101地址信号EA6接到BQ2V1000的IO_
L03N_6/VREF_6,BM3101地址信号EA7接到BQ2V1000的IO_L43P_6,BM3101地址信号EA8接到
BQ2V1000的IO_L04N_6,BM3101地址信号EA9接到BQ2V1000的IO_L21N_5/VREF_5,BM3101地
址信号EA10接到BQ2V1000的IO_L51P_4/VREF_4,BM3101地址信号EA11接到BQ2V1000的IO_
L05N_5/VRP_5,BM3101地址信号EA12接到BQ2V1000的IO_L49P_4,BM3101地址信号EA13接到
BQ2V1000的IO_L49N_4,BM3101地址信号EA14接到BQ2V1000的IO_L54P_4,BM3101地址信号
EA15接到BQ2V1000的IO_L24N_4,BM3101地址信号EA16接到BQ2V1000的IO_L51N_5/VREF_5,
BM3101地址信号EA17接到BQ2V1000的IO_L92P_4,BM3101地址信号EA18接到BQ2V1000的IO_
L04P_6,BM3101地址信号EA19接到BQ2V1000的IO_L21N_6/VREF_6,BM3101地址信号EA20接
到BQ2V1000的IO_L43N_6,BM3101地址信号EA21接到BQ2V1000的IO_L24P_6,BM3101地址信
号EA22接到BQ2V1000的IO_L03P_6,BM3101地址信号EA23接到BQ2V1000的IO_L24N_6,
BM3101地址信号EA24接到BQ2V1000的IO_L02P_6/VRN_6,BM3101地址信号EA25接到
BQ2V1000的IO_L54N_6,BM3101地址信号EA26接到BQ2V1000的IO_L52P_6,BM3101地址信号
EA27接到BQ2V1000的IO_L49N_6,BM3101数据信号ED0接到BQ2V1000的IO_L51P_6,BM3101数
据信号ED1接到BQ2V1000的IO_L04P_4,BM3101数据信号ED2接到BQ2V1000的IO_L45P_6,
BM3101数据信号ED3接到BQ2V1000的IO_L21N_4,BM3101数据信号ED4接到BQ2V1000的IO_
L21P_4/VREF_4,BM3101数据信号ED5接到BQ2V1000的IO_L22P_4,BM3101数据信号ED6接到
BQ2V1000的IO_L04N_4/VREF_4,BM3101数据信号ED7接到BQ2V1000的IO_L24P_4,BM3101数
据信号ED8接到BQ2V1000的IO_L21P_6,BM3101数据信号ED9接到BQ2V1000的IO_L01N_6,
BM3101数据信号ED10接到BQ2V1000的IO_L01P_6,BM3101数据信号ED11接到BQ2V1000的IO_
L54N_4,BM3101数据信号ED12接到BQ2V1000的IO_L06P_5,BM3101数据信号ED13接到
BQ2V1000的IO_L04N_5,BM3101数据信号ED14接到BQ2V1000的IO_L51N_4,BM3101数据信号
ED15接到BQ2V1000的IO_L49P_5,BM3101数据信号ED16接到BQ2V1000的IO_L06N_5,BM3101
数据信号ED17接到BQ2V1000的IO_L24P_5,BM3101数据信号ED18接到BQ2V1000的IO_L52N_
5,BM3101数据信号ED19接到BQ2V1000的IO_L02N_6/VRP_6,BM3101数据信号ED20接到
BQ2V1000的IO_L49N_5,BM3101数据信号ED21接到BQ2V1000的IO_L94N_4/VREF_4,BM3101数
据信号ED22接到BQ2V1000的IO_L94P_4,BM3101数据信号ED23接到BQ2V1000的IO_L92N_4,
BM3101数据信号ED24接到BQ2V1000的IO_L02P_6/VRN_6,BM3101数据信号ED25接到
BQ2V1000的IO_L94P_5/VREF_5,BM3101数据信号ED26接到BQ2V1000的IO_L54N_5,BM3101数
据信号ED27接到BQ2V1000的IO_L54P_5,BM3101数据信号ED28接到BQ2V1000的IO_L94N_5,
BM3101数据信号ED29接到BQ2V1000的IO_L52P_5,BM3101数据信号ED30接到BQ2V1000的IO_
L91N_5,BM3101数据信号ED31接到BQ2V1000的IO_L91P_5/VREF_5,BM3101信号INQIN5接到
BQ2V1000的IO_L52N_4,BM3101信号INQIN6接到BQ2V1000的IO_L05P_4/VRN_4,BM3101信号
IOSN接到BQ2V1000的IO_L93P_4,BM3101信号OE接到BQ2V1000的IO_L93N_4,BM3101信号
PIO26接到BQ2V1000的IO_L22P_3,BM3101信号PIO28接到BQ2V1000的IO_L91P_3,BM3101信
号PIO36接到BQ2V1000的IO_L06P_4,BM3101信号READ接到BQ2V1000的IO_L52P_4,BM3101信
号WR接到BQ2V1000的IO_L04P_5/VREF_5,BM3101信号PIO60接到BQ2V1000的BUSY,BM3101信
号PIO61接到BQ2V1000的CCLK,BM3101信号PIO63接到BQ2V1000的CS_B,BM3101信号PIO55接
到BQ2V1000的D0,BM3101信号PIO54接到BQ2V1000的D1,BM3101信号PIO53接到BQ2V1000的
D2,BM3101信号PIO52接到BQ2V1000的D3,BM3101信号PIO51接到BQ2V1000的D4,BM3101信号
PIO50接到BQ2V1000的D5,BM3101信号PIO49接到BQ2V1000的D6,BM3101信号PIO48接到
BQ2V1000的D7,BM3101信号PIO58接到BQ2V1000的DONE,BM3101信号PIO56接到BQ2V1000的
INIT_B,BM3101信号PIO57接到BQ2V1000的PROG_B,BM3101信号PIO62接到BQ2V1000的RDWE_
B。
(4)BM3101与FLASHMX29LV640互联设计
FLASH选用MX29LV640芯片,空间大小为8M×8/4M×16。连接关系如下:
BM3101的地址信号EA1接FLASH的A0,BM3101的地址信号EA2接FLASH的A1,BM3101
的地址信号EA3接FLASH的A2,BM3101的地址信号EA4接FLASH的A3,BM3101的地址信号EA5接
FLASH的A4,BM3101的地址信号EA6接FLASH的A5,BM3101的地址信号EA7接FLASH的A6,
BM3101的地址信号EA8接FLASH的A7,BM3101的地址信号EA9接FLASH的A8,BM3101的地址信
号EA10接FLASH的A9,BM3101的地址信号EA11接FLASH的A10,BM3101的地址信号EA12接
FLASH的A11,BM3101的地址信号EA13接FLASH的A12,BM3101的地址信号EA14接FLASH的A13,
BM3101的地址信号EA15接FLASH的A14,BM3101的地址信号EA16接FLASH的A15,BM3101的地
址信号EA17接FLASH的A16,BM3101的地址信号EA18接FLASH的A17,BM3101的地址信号EA19
接FLASH的A18,BM3101的地址信号EA20接FLASH的A19,BM3101的地址信号EA21接FLASH的
A20,BM3101的数据信号ED16接FLASH的Q0,BM3101的数据信号ED17接FLASH的Q1,BM3101的
数据信号ED18接FLASH的Q2,BM3101的数据信号ED19接FLASH的Q3,BM3101的数据信号ED20
接FLASH的Q4,BM3101的数据信号ED21接FLASH的Q5,BM3101的数据信号ED22接FLASH的Q6,
BM3101的数据信号ED23接FLASH的Q7,BM3101的数据信号ED24接FLASH的Q8,BM3101的数据
信号ED25接FLASH的Q9,BM3101的数据信号ED26接FLASH的Q10,BM3101的数据信号ED27接
FLASH的Q11,BM3101的数据信号ED28接FLASH的Q12,BM3101的数据信号ED29接FLASH的Q13,
BM3101的数据信号ED30接FLASH的Q14,BM3101的数据信号ED31接FLASH的Q15/A-1,BM3101
的写信号WR接FLASH的WE,BM3101的信号OE接FLASH的OE,BM3101的片选信号ROMSN0接FLASH
的CE。
(5)BM3101与SDRAM42SM32400F互联设计
SDRAM选用42SM32400F芯片,空间大小为1M×32Bits×4Banks,连接关系如下:
BM3101的地址信号EA2接SDRAM的A0,BM3101的地址信号EA3接SDRAM的A1,BM3101
的地址信号EA4接SDRAM的A2,BM3101的地址信号EA5接SDRAM的A3,BM3101的地址信号EA6接
SDRAM的A4,BM3101的地址信号EA7接SDRAM的A5,BM3101的地址信号EA8接SDRAM的A6,
BM3101的地址信号EA9接SDRAM的A7,BM3101的地址信号EA10接SDRAM的A8,BM3101的地址信
号EA11接SDRAM的A9,BM3101的地址信号EA12接SDRAM的A10,BM3101的地址信号EA13接
SDRAM的A11,BM3101的地址信号EA15接SDRAM的BA0,BM3101的地址信号EA16接SDRAM的BA1,
BM3101的数据信号ED0接SDRAM的DQ0,BM3101的数据信号ED1接SDRAM的DQ1,BM3101的数据
信号ED2接SDRAM的DQ2,BM3101的数据信号ED3接SDRAM的DQ3,BM3101的数据信号ED4接
SDRAM的DQ4,BM3101的数据信号ED5接SDRAM的DQ5,BM3101的数据信号ED6接SDRAM的DQ6,
BM3101的数据信号ED7接SDRAM的DQ7,BM3101的数据信号ED8接SDRAM的DQ8,BM3101的数据
信号ED9接SDRAM的DQ9,BM3101的数据信号ED10接SDRAM的DQ10,BM3101的数据信号ED11接
SDRAM的DQ11,BM3101的数据信号ED12接SDRAM的DQ12,BM3101的数据信号ED13接SDRAM的
DQ13,BM3101的数据信号ED14接SDRAM的DQ14,BM3101的数据信号ED15接SDRAM的DQ15,
BM3101的数据信号ED16接SDRAM的DQ16,BM3101的数据信号ED17接SDRAM的DQ17,BM3101的
数据信号ED18接SDRAM的DQ18,BM3101的数据信号ED19接SDRAM的DQ19,BM3101的数据信号
ED20接SDRAM的DQ20,BM3101的数据信号ED21接SDRAM的DQ21,BM3101的数据信号ED22接
SDRAM的DQ22,BM3101的数据信号ED23接SDRAM的DQ23,BM3101的数据信号ED24接SDRAM的
DQ24,BM3101的数据信号ED25接SDRAM的DQ25,BM3101的数据信号ED26接SDRAM的DQ26,
BM3101的数据信号ED27接SDRAM的DQ27,BM3101的数据信号ED28接SDRAM的DQ28,BM3101的
数据信号ED29接SDRAM的DQ29,BM3101的数据信号ED30接SDRAM的DQ30,BM3101的数据信号
ED31接SDRAM的DQ31,BM3101的信号SDCLK接SDRAM的CLK,BM3101的信号SDCSN0接SDRAM的
CS,BM3101的信号SDRASN接SDRAM的RAS,BM3101的信号SDCASN接SDRAM的CAS,BM3101的信号
SDWR接SDRAM的WE,BM3101的信号SDDQM0接SDRAM的DQM0,BM3101的信号SDDQM1接SDRAM的
DQM1,BM3101的信号SDDQM2接SDRAM的DQM2,BM3101的信号SDDQM3接SDRAM的DQM3。
如图2所示,基于上述电路,本发明还提供了一种星载DSP软件任务动态重构方法,
步骤如下:
(1)地面站生成针对星载DSP芯片的配置文件,即DSP重构程序;
(2)令DSP芯片和CPU芯片上电启动,将DSP芯片设置为HPI引导模式;
(3)地面站将生成的DSP重构程序上注给CPU芯片,CPU芯片判断所述DSP重构程序
的大小,与预设的CPU存储阈值进行比较,如果DSP重构程序的大小超过所述CPU存储阈值
64KB,则地面站上注的DSP重构程序同时存入第一Flash芯片和第一SRAM芯片中,否则,地面
站上注的DSP重构程序同时存入第一Flash芯片和CPU芯片的内部RAM中;
(4)上注的DSP重构程序存储完毕之后,CPU芯片将第一SRAM芯片中的数据发送给
FPGA芯片,FPGA芯片与DSP芯片之间实现HPI通信,将DSP重构程序发送给DSP芯片;FPGA芯片
判断所述DSP重构程序的大小,与预设的DSP存储阈值64KB进行比较,如果DSP重构程序的大
小超过所述DSP存储阈值,则所述DSP重构程序存入第二SRAM芯片中,否则,DSP重构程序直
接存入DSP芯片内部RAM中;
(5)DSP芯片根据存储在第二SRAM芯片中的DSP重构程序或者存储在DSP芯片内部
RAM中的DSP重构程序进行重构操作,重构完成后,FGPA芯片将FPGA芯片与DSP芯片之间的通
信管脚置为三态,将FPGA芯片与CPU芯片之间的通信管脚也置为三态。
BM3101通过HPIC、HPIA、HPID和16位数据线与FT-6713进行程序数据的注入和中断
控制。程序加载实现的流程如图3所示。
为了实现总线变化以满足DSP程序注入接口的时序要求,同时满足快速访问的性
能要求,根据上述BM3101与FT-6713HPI接口的连接情况,对HPIC、HPIA、HPID的相应地址访
问进行了如下的定义:
基于以上地址定义,按照流程图的执行顺序,执行以下操作:
(1)配置HPIC
在访问数据之前,必须先初始化HPIC中的HWOB位,该比特位设置第一个半字是所
传32位数据的高16位(MSB16)还是低16位(LSB16)。在这里需要注意HHWIL信号线与HWOB位
所起作用的不同,两者的共同协作才能确保数据的正确传输。需要注意的是,HPIC的高16位
和低16位内容是相同的,所以写入相同的数据进行设置。
(2)配置HPIA
将操作地址写到HPIA中。由前所述,FT-6713要从0地址处开始执行程序。因此需要
将程序加载到0地址开始的内存中。
(3)写入数据到HPID
存取HPID时,通过控制HCNTL[1:0]信号可选择带地址自增的读写操作或是不带地
址自增的读写操作。当访问连续的FT-6713存储空间时,使用带地址自增的读写操作只需要
对HPIA寄存器赋值一次即可,能够给数据存取操作带来很大的方便。本文操作的是连续地
址,因此使用带地址自增的HPID,这样仅需要进行一次设置HPIA,之后便不用再对其进行设
置。
(4)发送数据传输完毕中断
当加载数据全部写入完成后,通知FT-6713数据加载完毕,这需要通过设置HPIC中
的FT-6713INT位来完成,这样当主机向FT-6713发送了DSPINT中断后,FT-6713会从0地址
处开始执行。
在以上执行过程中,当主机发起对HPI寄存器的读或写命令时,主机送出的硬件信
号为HSTROBE(由HCS,HDS1/2产生),HR/W,HCNTL0/1,HWIL,以及HD[0:n]。HPI在HSTROBE的下
降沿采样控制信号HR/W,HCNTL0/1,HWIL判断主机的操作命令,并根据控制信号做出相应的
响应。
写(HR/W为低)命令时,在HSTROBE的上升沿将数据线上的信号锁存到HCNTL0/1和
HWIL指向的寄存器。当对HPID写操作完成后,HPID的内容会通过DMA送到HPIA指向的内存单
元。
读命令(HR/W为高)时,对HPIC、HPIA寄存器进行操作时,HPI将寄存器的值直接送
到数据总线上;对HPID寄存器进行操作时,HPI将HRDY置为忙状态,HPIDMA将数据从HPIA指
向的内存单元读到HPID,再送到数据线上,并清除HRDY忙状态,在读HPID后半字时,数据从
寄存器直接送到数据总线上,不会出现HRDY信号忙状态。
为实现FT-6713任务的动态加载,FT-6713采用HPI引导模式,上电后其他外设启
动,FT-6713内核仍处于挂起状态;此时外部主机通过HPI接口对FT-6713进行配置,将代码
和数据加载到FT-6713的内存中;当主机完成程序加载后,主机向HPIC寄存器中的DSPINT位
写1,向FT-6713发出中断;FT-6713收到中断后,FT-6713内核从挂起状态唤醒,从0地址处启
动,开始执行程序。
对于FT-6713的C程序来说,是要从_c_int00处而不是0地址启动执行,因此,设计
时,在0地址处增加跳转指令,并将目标地址执行了_c_int00处,从而实现FT-6713程序的正
确启动。
实施例:
将以上的方法,应用到所设计的微系统芯片中。微系统芯片的架构包括:BM3101处
理器、FT6713DSP、BQ2V1000FPGA、SDRAM、FLASH。
(1)根据本方法的硬件连接方案,对系统硬件部分进行设计与实现;
(2)本文使用TI公司提供的工具hex6x.exe和hex2aray.exe对TICCS3.1IDE下生
成的原始文件进行格式的转换。将.out文件转换为16进制配置数组。
(3)将FT6713程序配置数组、BQ2V1000中的时序转换逻辑IP核烧写到BM3101处理
器的FLASH中。
(4)上电启动,由BM3101将转换逻辑IP核和FT6713程序配置数组依次读取到
BM3101的SDRAM中。
(5)动态加载转换逻辑IP核,在BQ2V1000中生成转换逻辑构建BM3101处理器和DSP
的配置通路;
(6)在BM3101中,应用所提出的软件部分实现方法,依次读取FT6713程序配置数组
的数据,并通过读写HPIC、HPIA、HPID等寄存器,实现DSP软件任务的动态加载;
(7)在BM3101处理器中,根据本文所提出的软件部分DSP启动方法,通过BM3101的
软件驱动,实现FT6713的任务驱动。
基于以上所实现的微系统,利用提出的DSP软件任务动态重构电路和方法,实现了
由BM3101处理器向FT6713DSP的程序注入和启动,结果表明,本方法可在135ms的时间内,实
现280KBDSP软件任务的注入和启动。相比其他方法,即实现了高性能,同时利用自身集成
资源,减少了芯片的数量、系统体积和功耗。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。