基于1553B的DSP在轨编程设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

制导与引信
GUIDANCE & FUZE
第41卷第4期2020年12月
Vol. 4 1 No. 4
Dec. 2020
文章编号:1671-0576(2020)04-0033-05
基于1553B 的DSP 在轨编程设计与实现
张衡,顾泽凌,杨明远,赵建华,李鸿志
(上海无线电设备研究所,上海201109)
摘要:为了满足星载信号处理机快速稳定的在轨编程应用需求,基于1 553B 接口实现
了数字信号处理器(DSP)在轨编程与重构功能。

对要修改的DSP 程序进行编译,获取所需跳
转指令和功能程序的十六进制机器码,通过1 553B 接口将功能程序机器码注入DSP 在轨编程 专用地址。

经过内存下载确认无误后,将新的跳转指令机器码注入待替换的跳转指令所在地
址,发送启用指令,即可触发新的功能程序。

经过实验室仿真验证,该方法可以快速稳定地实 现功能程序的替换与启用,为星载信号处理机DSP 的在轨编程提供了设计参考。

关键词:数字信号处理器;1 553B ;在轨编程;跳转指令;十六进制机器码中图分类号:TP311
文献标志码:A
DOI : 10.3969/j.issn.l 671-0576.2020.04.007
Design and Realization of On-board Programming for
DSP Based on 1553B
ZHANG Heng , GU Ze-Ung , YANG Ming -yuan , ZHAO Jian -hua , LI Hong-zhi
(Shanghai Radio Equipment Research Institute, Shanghai 201109, China)
Abstract : In order to meet the requirements of high-rate and stable on-board
programming for sate l ite signal processing apparatus , on-board programming and
reconstruction for digital signal processor (DSP) are realized based on 1 553B interface. The
DSPprogram to be modifiediscompiledto obtain the hex machine codes ofthejump instructionandthefunctionprogram.Thefunctionprogram machinecodesareinjectedinto
the on-board programming specific address of DSP through the 1 553B interface. After the memory data which just been downloaded is confirmed to be correct , the new jump instruction machinecodesareinjectedintotheaddressoftheoldjumpinstructionwhichwi l
bereplaced.Then ,the new function program can be triggered by sending the start
instruction.Thesimulationresultsshowthatthe methodcanreplaceandstartthefunction program quickly and stably , which provides a design reference for DSP on-board programminginsate l itesignalprocessingapparatus.
Key words : DSP; 1 553B ; on-board programming ; jump instruction ; hex machine code
收稿日期:2020-09-03
作者简介:张 衡(1982—),男,硕士,高级工程师,主要从事星载信号处理技术研究。

E-mail : *****************
34制导与引信第41卷0引言
DSP具有运行速度快,接口形式多样,浮点
运算能力强,开发仿真简单快速的特点,在空间领
域已获得广泛应用[]。

但DSP对单粒子辐照等
空间特殊环境比较敏感,容易产生单粒子故障,加
上空间应用的不确定性,往往需要对DSP进行在
轨编程⑵。

随着空间载荷任务越来越多样,功能越来越复杂,对DSP在轨编程与重构的数据量和速度的要求越来越高。

而传统在轨编程采用RS422通信方式,存在传输速率低、稳定性差的缺陷,一般只能用于某个变量的在轨编程与重构,无法满足当前的应用需求°1553B作为成熟的空间通信总线接口,数据传输速率可达1Mbps[3],通常采用A/B两个通道互为备份,且具有勤务中断查询功能,稳定可靠,已经在空间领域获得广泛的应用⑷。

通过1553B接口实现DSP在轨编程与重构功能,既可确保传输数据的稳定可靠,又可大大提高数据传输速率。

1电路与软件设计
1.1接口电路设计
星载通信系统远程终端(RT)信号处理机1553B通信接口的组成如图1所示。

电路采用辐射加固1553B远程终端芯片B65170S6RH作为1553B接口控制器,选用1553B总线隔离变压芯片T31S01/B3226-S进行A/B总线变压器耦合囚。

由于B65170S6RH采用+5V供电,需要经过电平转换芯片JSR164245SA进行+3.3V 电平转换,再由FPGA进行DSP的外部存储器接口(external memory interfaces,EMIF)通道译码切换,连通B65170S6RH与DSP的数据通道。

1.2在轨编程软件设计
(1)跳转指令与验证程序设计
DSP在轨编程的基本原理是改变跳转指令编码让程序跳转到新函数。

当检测到在轨运行的DSP芯片出现单粒子故障并精确定位后,或用户提出扩展功能的要求后,需要对在轨程序进行修改或添加新的功能程序。

这种修改不能在原来的
图1接口电路示意图
程序上进行,而要建立新的功能程序,为新程序分配存放段地址,保证程序重启后,当其跳入新的指令编码时,运行的是新的功能程序。

以内部RAM存储空间为1MB的DSP为例,其内部RAM地址范围为0x00000000〜0x000FFFFF,如表1所示。

表1DSP部分存储空间分配表
存储部块描述空间容量/Byte地址范围(十六进制)
内部RAM1M00000000〜000FFFFF 保留256k00100000〜017FFFFF EMIF寄存器256k01800000〜0183FFFF
其他存储设备其他容量其他地址
外部存储器B64M60000000〜63FFFFFF
外部存储器A256M80000000〜8FFFFFFF
为在轨编程分配专用内存空间,并为新程序分配存放段地址,空间及地址分配流程如图2所示。

首先在分配内存空间的.cmd文件中选择某一区间作为在轨编程专用空间;然后指定好加载段地址,并指向ISRAM地址;最终在声明变量的.头文件中将要修改的新函数分配到上述指定的段地址[]。

需要强调的是地面使用的DSP 芯片型号规格及其程序必须与在轨运行的星载信号处理机中使用的一致。

验证程序是在原始的DSP程序中,设计一段测试程序,函数名为orbit_progne_test1。

其功能是设置2个局部变量a和b,若a〉b,则在轨编程测试标志test_orbit_flag输出为0xAA,并在上位机界面显示,否则输出为0x55。

新功能程序orbit_progme_test2则与之相反。

新的功能程序编辑完成后,在待替换程序入口处用新程序的函数名替换原程序的函数名,连接仿真器进行编译,编译无误后将新程序的.out文件加载到DSP芯片,在新程序入口处设置断点,选择机器码显示。

第4期张衡,等:基于1553B的DSP在轨编程设计与实现35
图2分配专用空间和指定新程序存放段地址流程图待替换功能程序与新功能程序及其机器码如表2所示。

由表2可知,该程序起始地址为图2指定的段地址0x00030000,地址0x00030000〜0x0003004C中存储的十六进制内存数据机器码就是需要上注到DSP的新功能程序代码。

跳转指令码替换程序流程如图3所示。

图中addre SS1为待替换跳转指令所在的内存地址(即原程序函数orbit_prognw_test1的入口地址),同时也是新的跳转指令所在的内存地址(即新程序函数orbit_progne_test2的入口地址),机器码jump_code1为待替换的跳转指令编码,机器码jump_code2为新的跳转指令编码。

当程序重启并运行到地址address1时,就会跳转到指令编码jump_code2指向的功能函数orbit_progme_test2而不是jump_code1指向的orbit_progme_test1o
表2待替换功能程序与新功能程序及其机器码表
待替换的功能程序新的功能程序
新的功能程序机器码
内存地址内存数据
void orbit_progme_testl(void) {void orbit_progme_test2(void)
{
0003000007BF005A
00030004020CA35A
int a=3;int a=3;00030008023C22F6
0003000C00002000
000300100214A35A int b=5;int b=5;00030014023C42F6
0003001800002000
0003001C02BC22E6
0003002000006000 if(a〉b)if(aVb)
000300240010AAFA
000300283007A120
0003002C0200552A test_orbit_flag=0xAA;test_orbit_flag=0xAA;
000300300201CE7E
0003003400002000 }}00030038000AA120 else else0003003C02002AAA {{000300400201CE7E test_orbit_flag=0x55;test_orbit_flag=0x55;0003004400000000 }}0003004807BD005A }}0003004C008CA362
(2)在轨注数与内存下载设计
在完成了指令编码跳转功能与验证程序设计之后,还需要将新的功能程序、新的指令编码及其所在内存地址的十六进制机器码上注到DSP之中。

传统的RS422通信根据帧头判断数据到来,并计算校验和以保证数据的正确性,这种方式已经无法满足当前在轨编程大数据量、快速可靠的要求。

而1553B接口通信是通过勤务指令触发中断寄存器,不需要DSP解析数据帧头,无需校验和,且传输速率能达到1Mbps,
远远高于
36
制导与引信
第 41 卷
图3跳转指令编码替换示意图
RS422 接口 , 确保了传输的可靠性与时效性。

本设计中1553B 采用的存储缓冲方式为循 环128字,每次总线控制(BC)端触发在轨编程勤
务中断寄存器时,DSP 将其循环128字存储器复 位,即每次从该循环128字存储器起始地址开始
存储数据[7]o 将新功能程序代码拆分为每包不超 过44字节的数据包,依次上注到在轨运行的DSP
芯片中,DSP 接收并将上注的代码数据依次写入 指定内存地址,程序流程如图4所示。

图4将新功能程序代码写入DSP 指定地址流程图
为了确保注入数据的正确性,需要内存下载 (也称为内存下卸)完成数据对比。

从DSP 内存
中读取之前注入的数据,每次至多读取48个字节
且为4的整数倍,组成24个字的1553B 内存下载 数据包,不够24个字时则用0xAAAA 补齐。

内 存下载工作流程如图5 所示。

图5 DSP 内存下载流程图
2实验验证与结果分析
2.1实验系统组成
采用带有1553B
板卡计算机的测试设备模
第4 期
张 衡,等:基于1553B 的DSP 在轨编程设计与实现
37
拟星载数管分系统BC 端,实验接口电路所在的 星载信号处理机为RT 端。

测试设备给星载信号
处理机供电,并通过2根双绞屏蔽线分别与星载 信号处理机的A/B 双通道进行1553B 通信。

实 验系统示意图如图6所示。

EC 端 RT 端
(测试设备)
(星载信号处理机)
丨上位机1显示供电 r
〒 A 总线卜
DSP
1553B
:板卡|花B 总线尸
图6 实验系统示意图
通过测试设备上位机的人机交互界面,可以
向星载信号处理机下发指令并接收其反馈的遥测 信息。

上位机软件采用LabView 语言编程,作为
面向用户的图形语言,其具有开发灵活、界面友好
的特点[]。

针对DSP 在轨编程,上位机软件主要
包括:在轨编程注数,即将新功能程序的十六进制 机器码上注到DSP 指定地址;内存下载,即从
DSP 指定地址下载一定数量的内存数据;待替换
跳转指令所在地址注入,即将图3中的address1
上注到DSP 暂存;新的跳转指令注入,即将图3 中的jump_code1上注到DSP 暂存;新功能程序
启用,即通过引导程序重新启动DSP 。

其中,每 次注入数据的字节数是4的整数倍且不超过44
字节,界面上的内存修改地址即为此次注入的在 轨编程数据机器码即将写入DSP 内存空间的首
地址,数据包长度由上位机自动识别。

内存下载 则需要输入即将读取的DSP 内存空间的首地址
以及数据长度(不超过48字节)上位机在轨编
程注数与内存下载界面如图7 所示。

T 内存下卸未准奮卜
L E-PDU i 『包j “包辰 j

003€
|]広赢
[pC004 |]卜0035
|]
读出数据长度内存数据苜地址
接口板读出y J
48内存下卸数护D1 -喇D9-D16J
D1T-D24
D25-D32
D33-D4Q D41-D48
注入数据
在轨编程数据注入—--------------------> 内存修改地址
接口板注数匸|导
B -00030000
,数据包序号_ 数据包长度
旷2
44
Dl
D9-D1EJ
D17-D24I D25-D32|D33-D40
D41-D44)07BF 005A 020C A35A 023C 22F6 0000 2000
0214 A35A 023C 42F6 0000 2000 02BC 22E6
0000 6000 0010 MFA 3007 Al 20
内存下卸指令卜
内存数揺首地址
接口板读出匸|制 00030000
005A 020C A35A
023C 22F6 0000 2000
0214 A35A 023C 42F6 0000 2000 02BC 22E6 0000 6000 0010 AAFA 3007 A120 48CB 3A29
读出数抿长度
内存下老诙请求
2.2实验过程及结果分析
实验过程步骤如下:
a ) 将新功能程序 orbit_progme_test2 的 80
个字节内存数据十六进制机器码分为2包,每包
40个字节,起始地址分别为0x00030000与 0x00030028;
b ) 将内存数据上注到对应的内 存地址, 内 存
数据及其对应的内存地址如表2所示;
c ) 当步骤b )的第1包数据上注完成后,从地
址0x00030000开始下载40个字节,与步骤b )注
入的数据进行对比,确认数据传输无误;
d ) 重复步骤b )与步骤c )从地址0x00030028
开始进行第2 包数据注入与下载;
e ) 第2包数据上注完成并确认无误后,在上
位机注入待替换跳转指令所在地址address1与
新的跳转指令jump _ code2 ,此时address1与
jump_code2以随机变量形式存在DSP 中;
f ) 发送在轨编程启用指令,DSP 会将 jump_code2写入地址address1中以替换原来的
jump_code1,并引导程序重新启动DSP 从地址 0x00000000开始运行,当运行到address1时就会
转入跳转指令jump_code2,指向程序orbit_
progme_test2 并执行程序 orbit_progme_test2 o
经过步骤a )到步骤f ),上位机在轨编程标志 由0x55变为0xAA,完成在轨编程°经测试,
1553B 接口数据率达到了 1 Mbps,且运行周期稳
定, 满足设计要求。

3结论
本文针对星载信号处理机DSP 芯片在轨编
程数据量大且可靠性要求高的难题,基于1553B 接口完成了接口电路及在轨编程软件设计,并搭
建实验系统,完成了实验验证,为星载信号处理机 的DSP 在轨编程方案设计提供了参考。

参考文献
[1 ]刘浩,李荣冰,刘建业,等.基于串口通信的DSP
在线烧写技术研究[].电子测量技术,2017,
40(7):184-187.
(下转第42页)
图7上位机数据上注及其下载界面
48
42制导与引信第41卷
4结论
本文提出了一种三维破碎海面激光近程散射特性的仿真分析方法。

相比于传统的激光海面散射分析方法,该方法耦合了海面散射和海洋粒子散射的共同影响,更准确地反映了高海情下的光辐射传输特性。

在实现手段上,该方法对整个破碎海面的三维空间进行了分析,结合流体力学与海洋粒子统计特性,给出了适应光学仿真计算的精细化建模方法。

进一步地,采用基于体网格的蒙特卡罗算法,计算并分析了激光照射在破碎区域波前面的双向反射分布特性。

参考文献
:1]柳有权,刘学慧,朱红斌,等.基于物理的流体模拟动画综述[j].计算机辅助设计与图形学学报,
2005,17(12):2581-2589.
[2]LE H,MO1N P.An improvement of fractional-
step methods for the incompressible Navicr-Stokcs
equations[J].Journal of Computational Physics,
1991,92(2):369-379.
[3]LAUNDER B,SPALDING D B.The numerical
computation of turbulent flows[J].Computer
Methods in Applied Mechanics and Engineering,
1974,3:269-289.
[4]HOFFMAN J,JOHNSON C.A new approach to
computational turbulence modeling[J].Computer
(上接第37页)
[2]李雁斌,吉峰,黄勇.一种星载DSP软件的在轨
编程方法制导与引信,2011,32(4):37-41. [3]周炜,王冬华.1553B总线通信系统可靠性研究
数字通信世界,2018(6):152,145.
[4]朱亚杰,池卫红,蔡帅,等.一种通用化1553B总
线软件设计方法单片机与嵌入式系统应用,
2020(3):67-69,73.
[5]俞胜男,王大庆,董超,等.一种星载1553B总线
远程终端设计空间电子技术,2019(5):27-
32.
Methods in Applied Mechanics and Engineering,
2006,195(23/24):2865-2880.
[5]OSH ER S,SETHIAN J A.Fronts propagating
with curvature-dependent speed:algorithms based
on Hamilton-Jacobi formulations:NASA-CR-
178382[R].Hampton,VA:NASA Langley
Research Center,1988.
[6]ZHAO X Z,HU C H,SUN Z C.Numerical
simulation of extreme wave generation using VOF
method EJ].Journal of Hydrodynamics,2010,
22(4):466-477.
[7]ZHU L X,WANG B,HUO Y W,et al
Investigation of laser impulse broadening and
spectral reflectance of breaking wave by the Monte
Carlo method[C]//Proc.SPIE10850,Ocean
Optics and Information Technology.[S.l.:SPIE
Press,2018:1085006.
[8]ZHAN E Q,WANG H Y.Research on spatial
spreading effect of blue-green laser propagation
through seawater and atmosphere[C]//2009
International Conference on E-business and
Information System Security.Piscataway,NJ:
IEEE,2009:5138057.
[9]FANG Q.Mesh-based Monte Carlo method using
fast ray-tracing in Pluckcr coordinates]」].
Biomedical Optics Express,2010,1(1):165-175.
[10]WANG L H,JACQUES S L,ZHENG L Q.
MCML-Monte Carlo modeling of light transport in
multi-layered tissues E J].Computer Methods and
Programs in Biomedicine,1995,47(2):131-146.
[6]杨斌,吕伟,马慧斌.基于RS485的多DSP系统
在线升级程序方法研究JJ].电子设计工程,2019,
27(13):118-123.
[7]Data Device Corporation.ACE/mini-ACE series
BC/RT/MT advanced com m unication engine
integrated1553terminal user's guide[Z].Rev L
ed.New York:Data Device Corporation,2005. [8]于亚萍,董桂梅,杨仁杰,等.基于IabVIEW多
路数据采集系统的设计与实现机电工程技
术,2020,49(1):63-64,121。

相关文档
最新文档