一种用于星载数字信号处理器的在轨编程系统及设计方法

文档序号:9616146阅读:747来源:国知局
一种用于星载数字信号处理器的在轨编程系统及设计方法
【技术领域】
[0001] 本发明涉及数字信号处理器在星载信号处理系统的应用方法,具体涉及一种用于 星载数字信号处理器的在轨编程系统及设计方法。
【背景技术】
[0002] 星载DSP(DigitalSignalProcessing,数字信号处理)软件在轨编程是通过地 面遥控注数的方式,将可执行代码的二进制数据注入在轨DSP的内存RAM区,替换原程序的 执行指令或数据。星载DSP软件在轨编程按编程规模可分为两种:一种是单指令在轨编程, 直接更改DSP内存相应的某一指令;另一种是子程序在轨编程,将某个子程序模块的二进 制代码上注到在轨DSP内存的空白区域,然后替代原子程序运行。
[0003] 星载DSP通常采用一次性烧写的ROM芯片存放可执行程序。在DSP上电后,通过 BootLoader引导该程序加载到其内部内存RAM区域执行。要实现在轨编程功能,直接修改 ROM中的程序显然不可实现。现有技术从产品硬件上改进,采用增加FLASH芯片专门用于 在轨编程的方式,这样能简单有效的实现在轨编程,但需要增加相应的硬件成本和复杂度, 而且不适用于单指令的在轨编程。现有技术中还可以采用在编程设计时即建立子程序地址 表,主程序直接调用该地址表实现程序调用执行,在轨编程时通过注入子程序和修改地址 表中该子程序的入口地址实现在轨编程,该方法不需要增加额外的硬件,但在程序设计过 程中,更改子程序代码就需要变更子程序地址表,调试时较复杂,且不适用于单指令在轨编 程和规模较大、子程序较多的程序在轨编程。

【发明内容】

[0004] 本发明的目的在于提供一种用于星载数字信号处理器的在轨编程系统及设计方 法,采用星载计算机、设备管理器、可编程只读存储器及数字信号处理器建立在轨编程系 统;本发明公开的在轨编程设计方法实现单指令在轨编程或修改子程序跳转指令实现子程 序在轨编程。本发明易于实现,对原软件的规模、复杂度和健壮性影响小,程序设计、编码和 调试中没有反复更改子程序地址表的繁琐,且可实现数字信号处理器内存任意地址上的指 令和数据的在轨更改。
[0005] 为了达到上述目的,本发明通过以下技术方案实现: 一种用于星载数字信号处理器的在轨编程系统,其特点是,该在轨编程系统包含: 星载计算机,用于提供要求增加的在轨编程子程序及其数据; 设备管理器,与所述星载计算机连接; 可编程只读存储器,与所述设备管理器连接; 数字信号处理器,与所述设备管理器连接。
[0006] 优选地,所述在轨编程系统还包含: 第一外部存储器接口,分别与所述设备管理器、所述数字信号处理器连接;该数字信号 处理器通过所述第一外部存储器接口经过该设备管理器分别与所述星载计算机进行双向 数据通讯; 第二外部存储器接口,分别与所述设备管理器、所述数字信号处理器连接;该数字信号 处理器通过所述第二外部存储器接口经过该设备管理器与所述可编程只读存储器进行单 向数据通讯。
[0007] 优选地, 所述设备管理器作为所述可编程只读存储器的设备管理器,用于实现所述数字信号处 理器对上述设备访问; 所述数字信号处理器通过所述可编程只读存储器加载原始数字信号处理系统软件; 由所述星载计算机提供的在轨编程子程序及其数据,通过所述第一外部存储器接口分 别送入所述数字信号处理器。
[0008] -种用于星载数字信号处理器的在轨编程设计方法,其特点是,该在轨编程设计 方法包含: S1,进行在轨编程子程序设计; 52, 外部程序编译器生成在轨编程子程序的二进制代码; 53, 所述数字信号处理器采用遥控注数的方式将在轨编程子程序的二进制代码注入该 数字信号处理器的内部存储器中相应目的地址; 54, 在该在轨编程子程序启动前,所述外部程序编译器设计新的调用跳转指令; 55, 所述数字信号处理器通过单指令在轨编程方式,将原子程序的调用跳转指令替换 为新的调用跳转指令; 56, 所述数字信号处理器运行在轨编程子程序。
[0009] 优选地,所述步骤S1包含: 根据实际需求在原星载程序的源代码中增加实现在轨编程功能的子程序及通信数据, 并将该在轨编程子程序及编译后将通过所述设备管理器、所述第一外部存储器接口分别送 入所述数字信号处理器。
[0010] 优选地,所述步骤S2包含: S2. 1,在所述外部程序编译器进行程序编译钱,将获取的在轨编程子程序分配在该数 字信号处理器的内部存储器中的在轨编程存放区域; 52. 2,通过该外部程序编译器将在轨编程子程序添加到原程序的源代码中进行编译, 并通过混合编程模式查看并记录该在轨编程子程序的二进制代码。
[0011] 优选地,所述步骤S3包含: 53. 1,所述数字信号处理器判断当前运行程序是否处于在轨编程状态,当处于该状态 时,执行步骤S3. 2;否则,结束; S3. 2,所述数字信号处理器采用遥控注数的方式将在轨编程子程序二进制代码的数据 包序号进行保存,并提取该二进制代码的长度; S3. 3,所述数字信号处理器提取保存在其内部存储器的需要修改内容的目的地址,并 将在轨编程子程序的二进制代码输入该目的地址; S3. 4,当确认该在轨编程子程序的二进制代码完全注入在上述目的地址后,反馈已注 数完成的数据包信号,标志着在轨编程子程序的二进制代码遥控注入完成。
[0012] 优选地,所述步骤S4包含: S4. 1,在该在轨编程子程序启动前,所述数字信号处理器根据主程序中调用原子程序 的跳入指令,计算在轨编程子程序的跳入指令; 54. 2,所述数字信号处理器的主程序通过所述步骤S4. 1计算在轨编程子程序的跳入 指令直接调用在轨编程子程序,经程序编译器编译后,采用混合编译模式查看所述跳入指 令所在地址的下一个地址对应指令即为该在轨编程子程序的跳出指令。
[0013] 优选地,所述步骤S5包含: 55. 1,所述数字信号处理器判断当前运行程序是否处于在轨编程状态,当处于该状态 时,执行步骤S5. 2;否则,结束; S5. 2,所述数字信号处理器从注入的在轨编程子程序二进制代码的数据包里提取运行 该在轨编程子程序跳入指令对应的内存地址; 55. 3,所述数字信号处理器根据所述步骤S5. 2获取的该在轨编程子程序跳入指令对 应的内存地址提取该在轨编程子程序跳入指令。
[0014] 优选地,所述步骤S6包含: 56. 1,判断所述数字信号处理器是否处于待机状态,当处于待机状态时,执行步骤 S6. 2 ;否则,结束; S6. 2,所述数字信号处理器将原子程序运行跳入指令地址对应跳转指令修改为运行所 述步骤S5. 3提取出的在轨编程子程序跳入指令; S6. 3,所述数字信号处理器设置在轨编程子程序启用标志有效,输出相应的在轨编程 参数及遥测量,主程序跳转至起始地址,执行该在轨编程子程序。
[0015] 本发明与现有技术相比具有以下优点: 本发明公开的一种用于星载数字信号处理器的在轨编程系统及设计方法,采用星载计 算机、设备管理器、可编程只读存储器及数字信号处理器建立在轨编程系统;本发明公开的 在轨编程设计方法实现单指令在轨编程或修改子程序跳转指令实现子程序在轨编程,最终 能够实现星载数字信号处理器的在轨功能扩展、在轨纠错和在轨维护的目的。本发明易于 实现,对原软件的规模、复杂度和健壮性影响小,程序设计、编码和调试中没有反复更改子 程序地址表的繁琐,且可实现数字信号处理器内存任意地址上的指令和数据的在轨更改; 在不需要在轨编程是对原程序的运行没有影响。
【附图说明】
[0016] 图1为本发明一种用于星载数字信号处理器的在轨编程系统的整体结构示意图。
[0017] 图2为本发明一种用于星载数字信号处理器的在轨编程设计方法的整体流程图。
[0018] 图3为本发明一种用于星载数字信号处理器的在轨编程设计方法的实施例示意 图之一。
[0019] 图4a为本发明一种用于星载数字信号处理器的在轨编程设计方法的实施例示意 图之二。
[0020] 图4b为本发明一种用于星载数字信号处理器的在轨编程设计方法的实施例示意 图之三。
【具体实施方式】
[0021] 以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
[0022] 如图1所示,一种用于星载数字信号处理器的在轨编程系统,该在轨编程系统包 含:星载计算机1、设备管理器2、可编程只读存储器4及数字信号处理器5。
[0023] 其中,设备管理器2分别与星载计算机1、可编程只读存储器4及数字信号处理器 5连接。
[0024] 本发明公开的一种用于星载数字信号处理器的在轨编程系统还包含:第一外部存 储器接口、第二外部存储器接口。
[0025] 其中,第一外部存储器接口分别与设备管理器2、数字信号处理器5连接。第二外 部存储器接口分别与设备管理器2、数字信号处理器5连接。数字信号处理器5通过第一外 部存储器接口经过该设备管理器2分别与星载计算机1进行双向数据通讯。数字信号处理 器5通过第二外部存储器接口经过该设备管理器2与可编程只读存储器4进行单向数据通 讯。
[0026] 本发明中,星载计算机1用于提供要求增加的在轨编程子程序及其数据。设备管 理器2作为可编程只读存储器4的设备管理器2,用于实现数字信号处理器5对上述设备访 问。数字信号处理器5通过可编程只读存储器4加载原始数字信号处理系统软件。由星载 计算机1提供的轨编程子程序及其数据,通过第一外部存储器接口分别送入数字信号处理 器5。
[0027] 本实施例中,米用FPGA(FieldProgrammableGateArray,现场可编程门阵列) 芯片作为设备管理器2。星载计算机1与设备管理器2之间采用RS422通信总线进行二者 之间的数据通讯。数字信号处理器5采用TI公司的64XX系统的数字信号处理器。
[0028] 如图2所示,一种用于星载数字信号处理器的在轨编程设计方法,该在轨编程设 计方法包含: S1,在轨编程子程序进行设计。该步骤S1包含: 根据实际需求在原星载程序的源代码中增加实现在轨编程功能的子程序,该在轨编程 子程序将通过设备管理器2、第一外部存储器接口分别送入数字信号处理器5。
[0029] 本实施例中,设计的在轨编程子程序在TI公司的64XX系统的数字信号处理器中, 跳转至主程序首地址指令如下:
其中,_c_int00为程序的入口地址,且上述指令是在C语言中嵌套汇编语言实现寄存 器赋值和程序执行跳转的操作。
[0030] S2,生成在轨编程子程序的二进制代码。该步骤S2包含: S2. 1,编译前将获取的在轨编程子程序分配在该数字信号处理器5的内部存储器中的 在轨编程存放
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1