基于DSP的无人飞行器飞行控制系统设计

电子说

1.3w人已加入

描述

随着科技的发展以及军事战略思想的转变,无人飞行器在军事、民用领域具有广泛的应用前景和极其重要的现实意义。各国正在研制和开发各种性能独特的无人飞行器, 改造的核心就是飞行控制系统。

DSP以其丰富的指令系统、高速高精度的运算能力及丰富的片内外设资源等优势, 为飞控系统的发展提供了一个很好的平台。本系统选用的TMS320F2812(以下简称F2812)是TI公司开发的一款32位DSP芯片,采用高性能静态CMOS技术, 工作主频可达150MIPS。片内集成了128K字的FLASH存储器, 方便实现软件升级;还集成了丰富的外围设备, 如: 采样频率高达12.5MIPS的12位16路A/D转换器, 两个面向电机控制的事件管理器和多种标准串口通信外设。在此基础上设计出一种高精度、扩展性强、小型化和低成本的新型飞行控制系统。

1、硬件系统方案要求和设计

基于DSP的飞控系统硬件设计, 关键在于系统的整体方案设计。接口设计是一个重要环节, 将直接影响系统的性能。为了减轻系统的负担,外部输入信号用中断方式读入,信号输入输出时要考虑抗干扰性。

充分考虑TMS320F2812的片内资源以及系统的接口要求,仅需对DSP芯片进行少量的外部接口扩展, 即可满足飞控系统所有功能和未来扩展性的要求。同时由于系统的输入逻辑量较多,采用Altera公司CPLD芯片EPM7128,完成数据处理和逻辑运算功能,以减少控制电路的体积, 增加系统的可靠性, 实现对控制系统各单元状态的监视和控制。

系统整体方案设计如图1所示。以下将从系统各模块的实现加以说明。

飞行器

2、硬件实现

2.1 模拟信号接收

模拟信号经过信号调理模块输入,A/D转换选择12位逐次逼近A/D转换器AD1,其片内含有三态输出缓存电路和高精度参考电压源与时钟电路, 自带采样保持器。本设计采用的连接方式如图2所示,使AD1工作在全控模式下。在AD1的使用上采用程序启动、标志查询方式,启动信号和转换结束信号相配合,使AD1一旦转换结束就处于数据输出状态,同时产生AD结束标志, 提高多通道时的通过率。

飞行器

2.2 串口通信

F2812处理器提供两个串行通信接口(SCI) ,支持16级接收和发送FIFO,但仍然满足不了飞控系统与多外设的通讯要求。因此,系统选用异步串行接口扩展芯片SP2338,方便地将DSP的SCI1扩为3个全双工、波特率最高可达9600b/s 的异步串行通信接口,作为主控制器和专用的通信设备数据传输通道,进行控制系统和地面的通信传输,SCI2作为GPS与CPU的通信通道。SP2338使用简单,不需要底层软件支持,上电即可工作。

飞行器

串口扩展实现如图3:ADR10、ADR11是下行地址线,ADR10,ADR11=00,01,10是分别对应子串口0,1,2;ADR00, ADR01是上行地址线,ADR00,ADR01- 00,01,10是分别对应子串口0,1,2。

F2812的I/O口直接与SP2338的地址线相连。发送数据时,DSP通过改变I/O口的状态来改变下行地址, 选中特定的子串口;接收数据时,DSP通过读取I/O口的状态来判断数据具体来自哪一个子串口,从而对读取到的数据做出相应的处理。因此可以提高系统效率、降低软件消耗。通过外加电平转换芯片就可以实现RS232, RS422,RS485通讯。

2.3 存储器扩展

F2812上包含128K 16位的FLASH存储器。考虑到容量和速度, 所以必须对系统进行存储器的扩展。采用一片ISSI公司生产的64K字大小的IS61LV6416存储芯片作为程序扩展存储器。+3.3V供电,存取时间最大不超过12ns。不需要外加延时电路, 直接将其数据线、地址线分别和DSP的数据线、地址线相连。并将DSP的第51引脚R /W与61LV6416的片选信号CE引脚连接,DSP的读、写选通信号分别与61LV6416的读、写选通信号相连。

2.4 PWM波输出

无人飞行器伺服机构的舵机由PWM (脉宽调制)信号控制,利用占空比的变化,由DSP产生的多路并行PWM信号加上信号隔离驱动的舵机控制电路, 通过改变舵机的位置从而达到控制目的。

TMS320F2812集成了PWM控制信号发生器,每个事件管理器能够产生8路PWM输出。由于TMS320F2812芯片输出的PWM高电平为+3.3V,而舵机控制信号输入PWM脉宽调制信号的高电平需要+5V, 因此DSP输出的脉宽调制信号的高电平需要经过电平转换后才能驱动舵机工作。为了避免电机驱动板卡对主控板卡的干扰, 采用高速光耦隔离器件74LS245将PWM信号隔离, 阻断电机驱动板卡对主控板卡的传导干扰。

2.5 复位、电源电路

在整个硬件设计中,主要用到的直流电源有+1.8V、+3.3V、+5V和+12V。板上电源采用TI的TPS767D318, 通过5V稳压电源, 提供DSP所需的1.8V电压和DSP及外围电路所需的3.3V电压。

所有信号与F2812连接时需考虑电平匹配问题, 通过加降压芯片的方式来解决。+ 12V的直流电源由蓄电池提供,其他直流电压可以通过DC/DC转换模块得到。+5V 电压通过集成稳压模块LM7805获得。考虑到本系统中还需1.8V 和3.3V两种电压,所以选用了IDT公司的LM1117芯片对输入到DSP的5V 电压进行电平转换, 可使5V 输入电压降为1.8V和3.3V。LM1117提供电流限制和热保护。目标板上的所有电源都可以用一个5V的稳压模块提供。

此外, 为了调试方便,系统由TI公司的TPS3307提供手动复位。复位信号经CPLD译码后输出高、低两种电平, 对复位电平要求不同的元件分别复位。手动按钮和AT bus所有复位源都引入CPLD, 由CPLD内建的Reset Logic处理驱动, 再输出至复位目的地。

3、系统软件设计

软件系统采用TI公司DSP集成开发工具CCS中集成的嵌入式实时操作系统DSP/BIOS,采用C语言与汇编语言混合编程实现。

系统初始化模块设定SJA1000的工作模式, 且其初始化只能在复位模式下进行。初始化流程图如图4所示。

飞行器

系统控制流程图如图5所示。数据存储放置在任务线程中, 其过程是将飞行数据分析结果等值存储在Flash中。检测任务线程可以通过周期函数PRD来完成。PRD可以根据实时时钟来确定函数运行的时间。这里,设置检测任务100ms运行1次。

飞行器

所有任务的启动都和飞控系统总线上的小周期计数息息相关,其中与接收总线数据相关的任务都是由消息分发线程启动, 当接收的消息为PSP发送的同步数据码时,终端对象同步自己的小周期计数,并按现在所处的小周期启动相应的任务。所有的任务都包含在消息处理线程中,每个终端都有一个这样的线程,各个线程独立工作,使各个终端处于并行工作方式。系统全部逻辑控制功能, 均采用周期运行方式, 每隔10ms由定时中断程序唤醒。利用CPLD进行逻辑运算及数据处理, 并检测模拟量输入信号,判断各监控对象的工作状态并按照系统控制逻辑决定输出量。在其状态发生变化时通知DSP, 协助DSP完成系统的自检测功能。在状态监测中, 将当前检测到的状态量与存储的上一个状态量相比较,如果两次状态相同,则不进行任何操作;如果发生变化,则向DSP发出中断信号INT,通知DSP读取数据。

在接收DSP发送的控制指令时, 将该指令与当前状态相比较, 若符合就不再发送控制指令,这样就能防止多次发送控制指令引起的误动作。

在飞行过程中,控制系统的任务主要包括采集无人机的姿态数据,计算控制量并输出到舵机等执行机构,接受地面站的指令并传输无人飞行器的位置等信息。利用设计的控制板进行伺服控制算法的实现, 完成对执行机构舵机的控制。图6为控制系统输出的其中一路舵机的PWM控制信号波形。

飞行器

4、结束语

采用多外设的高性能DSP芯片TMS320F2812结合CPLD,并采用DSP/BIOS为实时操作系统, 进行实时多任务设计,有效提高了系统的可靠性和实时性。经过调试,该系统在实际运行中性能稳定,达到了设计要求。本系统体积小、重量轻、成本低,具备一定的扩展性,适合于构成较强的实时性、小型化和低成本的小型无人飞行器。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分