基于DSP的TMS320F2812单片机无人飞行器飞行控制系统
基于DSP的TMS320F2812单片机无人飞行器飞行控制系统设计
随着科技的发展以及军事战略思想的转变,无人飞行器在军事、民用领域具有广泛的应用前景和极其重要的现实意义。各国正在研制和开发各种性能独特的无人飞行器,改造的核心就是飞行控制系统。
本系统选用的TMS320F281是TI公司开发的一款32位DSP芯片,采用高性能静态CMOS技术,工作主频可达150Mips。片内集成了128K字的FLASH存储器,方便实现软件升级;还集成了丰富的外围设备,如:采样频率高达12.5MIPS的12位16路A/D转换器,两个面向电机控制的事件管理器和多种标准串口通信外设。
在此基础上设计出一种高精度、扩展性强、小型化和低成本的新型飞行控制系统。
2硬件系统方案要求和设计
基于DSP的飞控系统硬件设计,关键在于系统的整体方案设计。接口设计是一个重要环节,将直接影响系统的性能。为了减轻系统的负担,外部输入信号用中断方式读入,信号输入输出时要考虑抗干扰性。
充分考虑
TMS320F2812的片内资源以及系统的接口要求,仅需对DSP芯片进行少量的外部接口扩展,即可满足飞控系统所有功能和未来扩展性的要求。同时由于系统的输入逻辑量较多,采用Altera公司CPLD芯片EPM7128,完成数据处理和逻辑运算功能,以减少控制电路的体积,增加系统的可靠性,实现对控制系统各单元状态的监视和控制。
F2812处理器提供两个串行通信接口,支持16级接收和发送FIFO。但仍然满足不了飞控系统与多外设的通讯要求。因此,系统选用异步串行接口扩展芯片SP2338,方便地将DSP的SCI1扩为3个全双工、波特率最高可达9600b?s的异步串行通信接口,作为主控制器和专用的通信设备数据传输通道,进行控制系统和地面的通信传输,SCI2作为GPS与CPU的通信通道。SP2338使用简单,不需要底层软件支持,上电即可工作。
图3串口扩展框图。
串口扩展实现如图3,ADRI0、ADRI1是下行地址线,ADRI0,ADRI1=00,01,10是分别对应子串口0,,l2;ADRO0,ADRO1是上行地址线,ADRO0,ADRO1-00,01,10是分别对应子串口0,1,2。
F2812的I/O口直接与SP2338的地址线相连。发送数据时,DSP通过改变I/O口的状态来改变下行地址,选中特定的子串口;接收数据时,DSP通过读取I/O口的状态来判断数据具体来自哪一个子串口,从而对读取到的数据做出相应的处理。因此可以提高系统效率、减低软件消耗。通过外加电平转换芯片就可以实现RS232,RS422,RS485通讯。
3.3存储器扩展
F2812上包含128K16位的FLASH存储器。考虑到容量和速度,所以必须对系统进行存储器的扩展。采用一片ISSI公司生产的64K字大小的IS61LV6416存储芯片作为程序扩展存储器。+3.3V供电,存取时间最大不超过12ns。不需要外加延时电路,直接将其数据线、地址线分别和DSP的数据线、地址线相连。并将DSP的第51引脚R/W与61LV6416的片选信号CE引脚连接,DSP的读、写选通信号分别与61LV6416的读、写选通信号相连。
TMS320F2812集成了PWM控制信号发生器,每个事件管理器能够产生8路PWM输出。由于TMS320F2812芯片输出的PWM高电平为+3.3V,而舵机控制信号输入PWM脉宽调制信号的高电平需要+5V,因此DSP输出的脉宽调制信号的高电平需要经过电平转换后才能驱动舵机工作。为了避免电机驱动板卡对主控板卡的干扰,采用高速光耦隔离器件74LS245将PWM信号隔离,阻断电机驱动板卡对主控板卡的传导干扰。
软件系统采用TI公司DSP集成开发工具CCS中集成的嵌入式实时操作系统DSP/BIOS,采用C语言与汇编语言混合编程实现。
系统初始化模块设定SJA1000的工作模式,且其初始化只能在复位模式下进行。初始化流程图如图4所示。
初始化流程框图。
系统控制流程图如图5所示。数据存储放置在任务线程中,其过程是将飞行数据分析结果等值存储在Flash中。检测任务线程可以通过周期函数PRD来完成。PRD可以根据实时时钟来确定函数运行的时间。这里,设置检测任务100ms运行1次。