SHENANPOLYTECHNICUNIVERSITY结课论文1无人机课程结课论文题目:基于VxWorks的无人直升机控制系统设计学院(系):土木学院专业:工程力学班级:13-2姓名:张芙豪学号:311307090221成绩:任课教师:赵运基2016年6月12日SHENANPOLYTECHNICUNIVERSITY结课论文2目录1.报告摘要........................................................................................................................................32.目的意义........................................................................................................................................33.设计内容........................................................................................................................................43.1控制系统整体结构.....................................................................................................................43.2控制系统硬件结构.....................................................................................................................43.3控制系统软件设计.....................................................................................................................53.4基于优先级的消息队列.............................................................................................................53.5基于看门狗的多任务调度.........................................................................................................63.6地面基站控制效果图.........................................................................................................74.结束语............................................................................................................................................8参考文献...........................................................................................................................................8SHENANPOLYTECHNICUNIVERSITY结课论文31.报告摘要组建了一种基于嵌入式实时操作系统VxWorks平台的无人直升机控制系统,实现远距离无人直升机飞行状态信息传输,接收地面基站命令后完成自主定点飞行任务。主要利用基于优先级的消息队列方法和嵌入式操作系统VxWorks的信号量与看门狗定时功能实现多任务间调度,获得飞行状态数据向地面基站传输与自主定点飞行的同步。通过实验飞行,该系统的正确性与可靠性得到了验证。2.目的意义毕业设计是对自己大学四年所学知识的一个融合和总结,平常我们所学到的知识是零散的理论的,毕业设计可以把我们学到的这些知识运用到实践当中去。这次实习是为了在毕业进入社会前,将自己的理论知识与实践融合,并且完成从理论到实践的过渡我认为大学生的实习是自我完善的重要的一步,也是大学生正视社会和正视自己,走出自我,真正融入社会生活工作的第一步,而且很多时候通过实践,尤其在不同的职业中的实践才会真正找到自己感兴趣并适合自己的行业,也是完成从空想到现实转变的第一步。通过实习我们可以快速从学校到职业的转变,为以后的工作做充足的准备。通过实习,可以学会如何用理论解决实际问题,我们可以把毕业设计当做一个项目,学习如何查阅资料,如何解决实际问题,如何与他人沟通。在实习期间,需要我们一个人面对众多的难题,独立思考,每一个难题都是一个考验,也是一个突破自我的机会。实习要求我们不能懈怠,必须务实苦干,也锻炼了自己的意志。大一期间,我学习了51单片机,并熟练掌握。大二期间,我又学习了STM32单片机,这次实习,是我对自己所学知识的实际应用,增加了我对理论知识的深刻理解,在此期间,我遇到过很多困难和问题,在导师的帮助下,顺利解决了这些问题,并让我对相关知识有了更深的理解。总的来说,通过毕业实习,我能够用理论联系实际,用自己所学的知识解决实际问题,学会了用更清楚的眼光看待问题,用更多不同的方法去解决困难,学习到了更多。经过了四年大学的学习,毕业实习是人才培养方案的重要环节,旨在培养学生的实践能力、分析问题和解决问题的能力。在实习指导老师的指导下,使学生将所学基本理论、基本知识与社会实践相结合,迅速转化为实际工作能力,增强适应市场需要的能力。SHENANPOLYTECHNICUNIVERSITY结课论文43.设计内容毕业设计题目--基于VxWorks的无人直升机控制系统设计3.1控制系统整体结构无人直升机控制系统包括以下七个部分:无人直升机、机载控制计算机、机载平衡模块、机载导航模块、手动远控模块、地面基站与其他机载模块,其他机载模块根据系统扩展的需要进行添加【4】。系统的结构图见图一图一无人直升机控制系统结构图通过手动远控使无人直升机腾飞,腾飞后远控器触动多路选择器,把无人直升机的控制权交与机载控制计算机。机载控制计算机开始传输飞行状态数据给地面基站。地面基站发送自主飞行命令给机载控制计算机使得它启动自主定点飞行任务,控制无人直升机定点飞行,飞行任务结束后返回状态信息给地面基站。3.2控制系统硬件结构此无人直升机控制系统的控制对象是模型直升机JRVoyagerGSR260,机载导航模块包括Crescent的GPS与HONEYWELLHMR3300型号的电子罗盘。机载控制计算机是由三星公司生产的16/32位RISC处理器S3C44B0X搭建的硬件平台,控制系统硬件结构图见图二。图二中由于S3C44B0X的UART单元提供了两个独立的异步串行I/O端口,每个端口都可以在DMA模式下工作,使得CPU和串行I/O口之间直接进行数据传输,另外GPS与电子罗盘提供的是标准RS-232接口,这SHENANPOLYTECHNICUNIVERSITY结课论文5与S3C44B0X系统所定义的高低电平不同,所以需要通过电平转换芯片MAX232C来进行转换。由于S3C44B0X片内不带以太网接口,所以选用RTL8039作为以太网接口芯片与地面基站控制系统进行通讯。S3C44B0X根据内部程序输出5路PWM波控制无人直升机的5个舵机,完成自主定点飞行任务。74LS128芯片作为多路选择器,切换手动远控模式与自主定点飞行模式。另外还扩展大容量的外部寄存器,其中8MB的HY57V641620作为SDRAM存储器存储程序运行中的中间数据,2MB的SST39VF1601存储器作为FLASH存储源程序。图二无人直升机控制系统硬件结构图3.3控制系统软件设计无人直升机控制系统的软件包含四大部分:一是根据S3C44B0X重新配置VxWorks系统的BSP。二是基于优先级的消息队列实现,消息队列中包含飞行状态信息与自主定点飞行信息。三是基于看门狗与信号量的多任务调度,实现自主定点飞行与实时飞行状态信息传输的功能。四是基站控制软件的设计。系统上电后初始化socket套接字,网络联通后采用UDP协议通讯。下面将着重先容基于优先级的消息队列与基于信号量与看门狗的多任务调度。3.4基于优先级的消息队列在控制系统中,不能由于执行机载设备的数据传输命令而拒尽执行地面基站的自主飞行命令。为解决这一题目,本控制系统建立了基于优先级的消息队列机SHENANPOLYTECHNICUNIVERSITY结课论文6制。系统在RAM中开辟一个区域用于建立消息队列,队列中指针指向的是各个信息的内存块地址。各个任务将根据这些指针指向的数据来进行实际操纵。(1)基于优先级的消息队列方法。首先信息接收任务接收信息后根据信息头地址内容判定信息优先级,地面基站的自主飞行命令优先级为最高,把它插进到消息队列的队列头,而机载电子罗盘与GPS发送的数据信息优先级低,按照时间顺序排列在消息队列的队列尾。信息解释任务从消息队列头逐一取出信息然后进行处理。(2)消息队列的实现。通过单向链表来实现消息队列的添加与删除。每个链表元素是一个结构体STructmessageChain,结构体包含头指针pBuff与指向下一个元素的指针pNext。同时使用两个全局变量直接表示链表头与链表尾,一个全局变量表示链表长度,这样可以直接处理链表头或者链表尾的内容以简化查找过程。3.5基于看门狗的多任务调度VxWorks系统可以为每个任务设定特定的任务名与任务优先级,系统支持256个优先级。为了调试的方便,在本控制系统中设定的任务优先级在60到100之间,这是由于由程序发起的任务优先级要高于Tornado开发环境中shell发起sp的任务优先级即小于100,同时也要低于系统任务的优先级即大于60【5】。控制系统包含了信息接收任务,信息解释任务,信息发送任务,网络监测任务,定时轮询任务,自主飞行任务等多任务。流程图见图三。SHENANPOLYTECHNICUNIVERSITY结课论文7图三任务调度流程图任务的操纵使用的是VxWorks系统中的taskLib()与taskInfo()库函数。看门狗时钟精确定时用到函数wdCreate(),wdStart()等,任务间的同步调度使用的是信号量,包括有二进制信号量与计数信号量。信息接收任务把网络中传输的信息按照高低优先级在消息队列中添加元素,并存放信息到特定的内存块中,然后启动计数型的信号量,信号量的值对应于当前消息队列中还没有被执行命令的个数,每增加一个消息命令后,计数型信号量就开释,消息解释任务获得开释的信号量后从消息队列头获得最应被优先执行的命令,根据内存中的首地址信息,调用相应的执行函数。假如判定是无人直升机飞行状态信息,调用信息发送任务把实时信息传送给地面基站。如判定是无人直升机自主飞行命令,则调用自主飞行任务,在此任务中要定时查询无人直升机飞行状态信息并与命令中信息做比较,控制舵机动作以完成自主定点飞行任务。在定时查询机载设备信息以确定飞行状态时,用taskDelay()函数不能满足精确定时的要求。VxWorks系统提供得看门狗它可以保证严格的定时,在调用自主飞行任务时创建看门狗。经过1s的时间延时后运行查询无人直升机飞行状态信息的函数,比较信息后控制舵机动作,直到完成无人直升机的自主定点飞行任务后取消看门狗。切换到信息发送任务,发送飞行状态信息到地面基站监控系统。3.6