2.3 DSP软件结构
软件部分包括系统软件框架和各处理软件模块、中断服务程序等;程序的流程和数据处理控制,都依赖于由DSP地址映射的寄存器的状态。
2.3.1 DSP在FPGA中的存储器映像寄存器及其作用
这一组寄存器都是在FPGA中实现的。作业(指令)采用16位寄存器,由于DSP地址空间较大,为了方便编程,寄存器不采用拼位的方法。系统的工作 受CEU的控制。CEU发送过来的指令格式如图5(a),其中DT表示CEU传来的数据类型,00表示数据、01表示观测指令、10表示CCD标定、11表示自测。接收时,若是命令则直接写到JOB或放入命令队列;若是数据,根据类型存放到相应的位置。Parameters是各种工作状态参数,如待机/自测要求的参数、测试的要求(内容、测试选择)、响应信息要求、观测模式和次数、CCD标定要求的参数、标定的内容等,以便于DSP查看。

图5(a) CEU命令格式 图5(b) 系统作业格式
如图5(b),当CEU送来命令DT=01时,即为观测命令。观测作业的格式如:00表示无作业待机、01表示观测指令、10表示CCD标定、JT=11表示自测;mode是当前观测模式标志,001表示爆发模式、010表示活动区模式、100表示宁静模式;Observ_Num是连续观测同一种模式的次数标志。
(1)作业类型寄存器(JOB):标识系统工作内容(作业类型),如CCD标定、观测、自测试等;(2)模式寄存器(MODE):标识观测的模式,爆发模式、活动区模式、宁静模式;(3)观测次数寄存器(OBSN):用于保存一次作业的观测次数;(4)宁静态的观测次数寄存器(RESTN):只用于宁静模式的观测,当为宁静态模式时,用它来标志3min观测的次数;(5)帧计数器(FRMN):用于计数爆发模式、活动区模式及宁静模式下的前24帧图像,以便用于高位清零信号生成和地址高位生成;(6)SW电路控制寄存器(SWCTRL):控制多路开关的切换;(7)reset寄存器(FRST):用于DSP控制FPGA中INT单元的时序逻辑复位,每次观测结束,必须复位一次;(8)清零标识寄存器(ZERO):由DSP根据FRMN的值修改它,以实现高位的清零任务;(9)分量寄存器(COMPO):由DSP根据FRMN的值修改它,以实现高位地址的形成;(10)作业结束寄存器(END):当一个作业结束时,用次寄存器进行标志,以便将程序的PC跳到作业检查入口;(11)数据状态寄存器(DAST):DSP存储区数据状态标识:没有数据、爆发模式的待处理数据、活动区模式的待处理数据、宁静模式的待处理数据、宁静模式处理好数据及待送出数据等。DSP根据数据状态和观测模式,可以进行相应的处理;(12)相关数据状态(CORR):标识相关运算用的数据的状态。
2.3.2 DSP的存储器空间分配
DSP的SYSCON寄存器的15~12位(MSIZE),可以设置以MS0~MS3作为片选信号时,每个分组的空间大小。其公式为:MSIZE=log2(块大小)-13;取每个块的大小为16MB,因此MSIZE=1011。
·片内空间:0000,0000H~0007,FFFFH;
·MS0——数据空间:0040,0000H~13F,FFFFH;数据是倒序放置的,最后一个单元放第一个数据;其中:
SQa:40,0000~5F,FFFF SQb:60,0000~7F,FFFF
SUa:80,0000~9F,FFFF SUb:a0,0000~bF,FFFF