摘 要:按照高性能和小型化的要求,设计并实现了基于DSP的新型无人机飞行控制计算机硬件的设计和开发。以TMS320C31 DSP为处理核心,采用CPLD实现外围扩展电路的片选、中断以及控制,包括AD转换、多串口
通道和外部存储器的扩展。从而实现了丰富的模拟接口、方便灵活的数字接口和串行通信接口。文中详细给出了系统整体方案的分析设计和具体的硬件选型及接口设计。
关键词:DSP;飞行控制;无人机;CPLD
引言
飞控计算机是无人机飞行系统的一个子系统。随着航空技术的发展,飞控计算机向着高精度和小型化方向发展。高精度要求无人机的制导控制精度高、稳定性好,能够适应复杂的外界环境。因此控制算法比较复杂、计算速度快、精度高。小型化则对控制系统的重量和体积提出了更高的要求,要求控制计算机的性能越高越好,体积越小越好。性能指标和体积限制迫切需要研制新型的飞控计算机。
飞控计算机要求具有实时性、可靠性和嵌入性等特点。实时性要求对输入的导航数据以最快的速度处理并以最短的延时输出控制信号。可靠性要求抗干扰能力强,要有较宽的工作温度范围和抗电磁干扰能力等。嵌入性要求尽量轻、小的体积重量。这些条件在设计系统时都要综合考虑以达到最优化的性能设计。
常用的飞行控制计算机的特点
基于PC机和基于单片机是目前常用的两种飞行控制计算机。基于PC机的飞控计算机是以Intel 80 86或80 88为CPU,外围加上相应的协处理器、内存、硬盘
、接口电路等组成。整体速度快,寻址能力强,但接口能力差,需要较多的外围接口器件配合,不易实现小型化。基于单片机的飞行控制计算机主要由以Intel
8031为核心的51系列单片机或96系列单片机组成中央处理器,外围配以少量的接口器件组成。其接口能力强、功耗大、体积小,可将RAM、ROM、CPU集成在单片上,减少了系统的复杂程龋岣吡丝煽啃裕度胄阅芎芎谩5湔寮扑阈阅懿睿挥懈〉阍怂阒噶睿薹ń懈丛拥募扑悖爸纺芰τ邢蓿薹ㄍ瓿墒凳奔扑阌敫呔鹊目刂迫挝瘛SP具备这两者的优点,可以同时满足高性能和小型化的要求。以美国德州仪器公司(TI公司)生产的DSP为例,就其第1代浮点DSP而言,MAC
已达60 ns,浮点位数已达40位,指令功能强,采用流水线操作,支持32位浮点乘法和并行指令;寻址能力强,计算速度和精度已达到甚至超过了PC机的CPU;体积小,具有丰富的硬件资源和灵活方便的接口,使得DSP
在要求高性能和小型化的飞行控制上具有良好的应用条件和前景。
飞控计算机与外围的接口设计要求
基于DSP的飞行控制计算机的设计,关键在于系统整体方案设计。接口设计是一个重要的环节,其设计质量将直接影响系统的性能。为了减轻计算机的负担,外部的输入信号用中断方式读入,信号输入输出时要考虑抗干扰性。所设计的整体方案要易于实现,对不同型号的无人机要有一定的适应性,对于要求相近的型号,应该以修改控制软件为主,以少改动或不改动硬件设计为好。这些要求都要在方案设计的各个环节中考虑。
首先要对无人机的飞控/导航任务和实现的目标作需求分析。根据飞行要求和控制对象的复杂程度,选择控制周期;按照控制周期内控制计算量来确定计算的类型和运算速度,并结合外部单元确定接口方案,以及对抗干扰因素的考虑,可确定整体的通讯协议和接口形式。
在无人机的飞行过程中,为了实现一定的飞行任务,需要对其飞行姿态进行控制,引导飞机按照一定的航线准确飞行。为了进行姿态控制,通常需要获得飞行姿态的实时参数以及遥控遥测参数。有了这些信息参数,经过计算机的控制算法计算,实时输出控制量到执行机构,从而实现控制/导航目的,其构成示意图见图1。
图1 飞控计算机的接口框图(略)
如图所示,垂直陀螺、三轴速率陀螺输出的是模拟信号,因此飞控计算机必须具备多路模拟信号的高精度采集能力。而磁航向传感器、V/H传感器以及与GPS和遥控遥测的等外围单元的数据交换则采用了RS-485、RS-232或RS-422
通讯协议,因此飞控计算机要具有多串口的通行能力。同时系统要求一系列的电平输出/输入接口。 舵机接收的信号形式是频率信号,因此飞控计算机必须将控制参数以频率量的格式输出。以上都是在硬件设计中必须考虑的内容。
DSP的选择
首先,考虑到计算精度的要求,选用浮点的DSP比较合适,其次从控制性能要求、接口、计算速度等方面考虑,DSP计算速度的选择仅从控制方案中控制方程计算量的大小来定,对于无人机,采用2ms控制周期,选用40MHz晶振的DSP即可满足需求。考虑到编程的方便和程序的移植性以及所需的硬件资源,选择了TMS320C31-40,使其工作在微计算机工作模式下即可。
图2 TMS320C31的功能模块图(略)
TMS320C3X作为业界第一个32位浮点DSP系列,其性能优良且价格适中。C3X的硬件资源和软件资源都相当丰富,具有一个40/32位的浮点/整数乘法器,这个乘法器可以在单周期内完成24位整数和32位浮点值的乘法,可以采用并行指令在单周期内完成一次乘法和ALU操作;32位桶形移位寄存器;
内部总线结构(CPU1/CPU2 和 REG1/REG2);辅助寄存器运算单元(ARAUs);CPU状态和控制寄存器。32位数据,24位地址总线,可寻址16M地址空间,以便更高速地实现并行运算及流水线操作。
TMS320C31的主要硬件资源包括:内部RAM 2K字;一个高速串行口;一个DMA通道;两个32位的定时器;4个外部中断源INT0~INT3;一个仿真器接口、两个互锁信号:XF0、XF1以及其他的保持、复位等信号。DSP上述功能和特点,使得复杂的控制算法完全可以在规定时间内完成,而且满足了精度要求。其具体的硬件资源如图2所示。
控制系统方案设计思路和设计阐述
充分考虑TMS320C31的片内资源以及系统的接口要求,设计的总体结构如图3所示。以下将从DSP芯片的选择、外部存储器的扩展、模拟信号接收、串口通信、频率信号的输出等几个模块的具体实现加以说明。
存储器的扩展
由于TMS320C31的片内存储器较小,所以程序和数据大多只能放在片外。因此要进行片外存储器的扩展。TMS320C31型DSP采用改进的哈佛结构,程序和数据统一存放,按照程序的大小扩展32位的RAM,所选择RAM的速度必须小于DSP的读写周期。TMS320C31-40全速运行时的读写周期为25
ns,因此,选择了4片15 ns的128 K 8位ISSI的IS61C1024RAM来组成系统的RAM ,程序就在这32K字的空间运行。当DSP工作在微计算机模式时,程序要存放在FLASH中,在系统上电时,由Bootlood
程序搬移到外部的RAM中运行。这时,同样需要考虑容量和速度,由于DSP总线最多有7个周期的延迟,因此,ROM的速度最慢不得超过该限制,容量要笥诔绦虻拇笮 U饫镅≡褚黄?56K
8位的AT29C020(FLASH MEMORY),作为程序的存储空间。此外,再用一片AT24C64(串行EEPROM)作为保存数据的空间,用于存储程序和初始化数据。
模拟信号接收
模拟信号首先经过信号调理模块输入,A/D转换选择AD1674,AD1674是一款常用的12位逐次逼近A/D转换器,片内含有三态输出缓存电路,含有高精度参考电压源与时钟电路,自带采样保持器。本设计采用其单端控制方式,即只有在行A/D转换时,控制R/C为低,其余时间为高。考虑到多路模拟信号的接收,可以采用多路开关扩展输入通道,选择了AD公司的十六选一模拟开关DG506A做为通道的选择。
串口通信
为了减少飞控计算机和外围单元串行通讯的时间开销,同时也为了减少接口器件的数目、提高整体系统的可靠性,选用UART通讯接口芯片,可实现异步串行通讯。UART芯片选用TI的TL16C554A。TL16C554A集成度高,性能稳定,其内部包含了四个可独立操作的可编程异步收发单元16C550,它的一大特点即无论接收还是发送数据都可以工作再先入先出方式(FIFO),因此可以提高系统效率、减低软件消耗。为了方便多个中断源的控制,可以采用一片8259A作为中断控制,这样,即使在多个串口中断密集发生的环境下,扩展的多个串行口仍可获得实时性和可靠性较高的中断响应。
图3 系统硬件结构框图(略)
由于DSP的I/O资源有限,需要控制大量外部接口线,在扩展I/O时,可直接借用UART控制器(如16C550,16C554)的闲置MODEM管
脚,而省去了扩展I/O带来的不可靠因素。
频率信号的输出
控制伺服机构常用的是4个舵机,飞行中要求这4个舵机同时动作,相互之间不能有延迟。 控制指令以频率信号的形式输出。按照舵机的工作方式和控制的实时性要求,在满足精度的前提下,因此采用四片82C54将按控制规律计算出控制量用脉冲信号的格式输出。对四片8254采取"逐个送数,同时输出"的方式控制,达到同时控制4个舵机的目的。
控制逻辑的设计
为了进行与外部数据的交换,需要片选、数据线、地址线等时序信号按照规定的逻辑关系工作,即系统要在逻辑控制关系的协调下,才能形成工作时序,系统才能正常工作。这种逻辑控制关系一般可用门电路或逻辑宏单元实现。为了实现通用性,同时也是为了减少硬件的数目,提高系统的可靠性,选用了逻辑宏单元。
CPLD主要是由可编程逻辑宏单元围绕中心的可编程互连矩阵单元组成,由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间的可测性。Altera公司的MAX7000系列是工业界中速度最快的高集成器件系列,在本设计选MAX7000S中EPM7128器件,它有128个宏单元,100个输入输出引脚。这一基于EEPROM的器件能够提供组合和传输延迟在15ns以内,它的输入寄存器建立时间非常短,而且能够提供多个系统时钟,具有可编程的速度/功率控制。通过对系统所需的逻辑控制信号数目的分析,调试硬件时更改逻辑控制信号。按照逻辑关系,编写出逻辑控制方程,MAX7000S通过JTAG接口在线动态可编程用专用电缆下载后,即可实现逻辑控制。
复位电路
TMS320C31和EPLD内部逻辑信号的初始化都必须由一复位信号控制,对于C31低复位信号至少应保持10个H1周期长,设计中采用了40MHz晶体振荡器,那么复位信号应至少保持500ns,并且系统加电后至少需要20ms时间,系统的晶体振荡器才会达到稳定状态。因此,本系统要求复位电路应能提供100ms、200ms的低脉冲。同时注意到在单片机系统的实际应用中常常会遇到系统电源电压瞬时欠缺和意外掉电情况,这样可能会导致程序"跑飞"或丢失重要的数据,使系统无法正常工作。为安全起见,应给系统加上掉电检测和保护电路。设计中选用MAXIM公司的MAX708芯片构成复位电路。该器件可提供如下4种功能:
·能够在加电、掉电及降压情况下提供复位信号
·独立的"看门狗"输出,如果"看门狗"的输入端在1.6s内还没被触发,"看门狗"输出为低
·当VCC降到复位门限电压以下时,RESET为低电平,在VCC上升超过门限电压之后,能保持复位信号200ms
·提供一个低有效的手动复位。系统中,C31为低有效复位,而EPM7128S选用的是高有效复位,可通过一反相器为EPLD提供复位信号。
此外,再加上适当的时钟、电源以及程序下载机接口电路即构成了完整的硬件系统。
硬件调试
硬件平台的调试主要包括AD采集模块、频率输出模块、串行通信模块三个部分的调试。系统的时序、片选、控制信号均有CPLD产生,EMP7128在本系统中的主要功能为:产生控制AD1674工作的信号;将AD转换的结果以三态的形式挂在DSP数据总线上;产生选通多路模拟开关各通道的信号,实现各通道自动切换,无须DSP干涉;产生与多个串口信号的逻辑控制功能;产生控制频率信号输出的控制信号。利用VHDL语言,可以较容易的完成从顶层实体到各功能模块的源程序编制。由于在本系统中的设计任务较简单,因此并没有采用行为级描述,而是直接从RTL级编写各功能模块源程序。调试时采用逐个模块分别调试的方式,即对各个模块适配后的结果进行仿真、校验,并及时修改源程序,直到仿真结果与设计要求相符。最后利用第三方软件SYNPLIFY对源程序进行编译产生.EDF文件,然后利用ALTERA公司的MAX+PLUSII软件对该网表文件进行综合。最后,通过ByteBlaster编程电缆卸载到电路板的器件上。在系统的调试中,很容易地对CPLD进行了几次动态重构,硬件设计软件化得到了充分的体现。
结束语
经过初步调试,该硬件平台各项功能均能达到设计目的。为了方便和硬件的联调,软件设计时考虑混合语言编程,对硬件接口控制多的地方,选用汇编语言;对算法复杂、计算量大的,采用C语言。软件和硬件调试分别通过后,可进行软件和硬件的联调。最后形成基DSP的新型飞行控制计算机。
该硬件系统体积小、成本低。设计中采用了模块化的结构形式,将主控制模块和信号调理模块及舵机控制信号的输出模块分开,那么将主控模块与不同的信号调理模块和输出信号相结合可以实现系统设计的通用性作为某型号的一系列无人机的飞控核心。随着技术的不断发展,DSP将以它特有的优越性能在军事和高科技中得到广泛的应用。
|