基于DSP的无人飞行器飞行控制系统设计
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 的稳压模块提供。
此外, 为了调试方便, 系统由T I 公司的TPS3307提供手动复位。复位信号经CPLD 译码后输出高、低两种电平, 对复位电平要求不同的元件分别复位。手动按钮和AT bus所有复位源都引入CPLD, 由CPLD 内建的R eset Log ic处理驱动, 再输出至复位目的地。
4.系统软件设计
软件系统采用T I公司DSP集成开发工具CCS中集成的嵌入式实时操作系统DSP /B IOS, 采用C语言与汇编语言混合编程实现。
系统初始化模块设定SJA1000 的工作模式, 且其初始化只能在复位模式下进行。初始化流程图如图4所示。
图4 初始化流程框图
系统控制流程图如图5所示。数据存储放置在任务线程中, 其过程是将飞行数据分析结果等值存储在F lash 中。检测任务线程可以通过周期函数PRD来完成。PRD 可以根据实时时钟来确定函数运行的时间。这里, 设置检测任务100m s运行1次。
图5 系统控制流程图
所有任务的启动都和飞控系统总线上的小周期计数息息相关, 其中与接收总线数据相关的任务都是由消息分发线程启动, 当接收的消息为PSP发送的同步数据码时, 终端对象同步自己的小周期计数, 并按现在所处的小周期启动相应的任务。所有的任务都包含在消息处理线程中, 每个终端都有一个这样的线程, 各个线程独立工作, 使各个终端处于并行工作方式。系统全部逻辑控制功能, 均采用周期运行方式, 每隔10ms由定时中断程序唤醒。利用CPLD 进行逻辑运算及数据处理, 并检测模拟量输入信号, 判断各监控对象的工作状态并按照系统控制逻辑决定输出量。在其状态发生变化时通知DSP, 协助DSP完成系统的自检测功能。在状态监测中, 将当前检测到的状态量与存储的上一个状态量相比较, 如果两次状态相同, 则不进行任何操作; 如果发生变化,则向DSP发出中断信号INT, 通知DSP读取数据。
在接收DSP发送的控制指令时, 将该指令与当前状态相比较, 若符合就不再发送控制指令, 这样就能防止多次发送控制指令引起的误动作。
在飞行过程中, 控制系统的任务主要包括采集无人机的姿态数据, 计算控制量并输出到舵机等执行机构, 接受地面站的指令并传输无人飞行器的位置等信息。利用设计的控制板进行伺服控制算法的实现, 完成对执行机构舵机的控制。图6为控制系统输出的其中一路舵机的PWM 控制信号波形。
图6 舵机控制信号
5 结束语
采用多外设的高性能DSP 芯片TMS320F2812结合CPLD, 并采用DSP /B IOS 为实时操作系统, 进行实时多任务设计, 有效提高了系统的可靠性和实时性。经过调试, 该系统在实际运行中性能稳定, 达到了设计要求。本系统体积小、重量轻、成本低, 具备一定的扩展性, 适合于构成较强的实时性、小型化和低成本的小型无人飞行器。
- 基于SmartFusion的无人机飞行控制系统设计(08-01)
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)