- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ARM微控制器无人机导航控制系统软件设计
摘要:导航控制系统是无人机实现自主飞行的控制核心,在采用ARM微控制器,角速率陀螺,加速度计、GPS、气压高度传感器、差压传感器等硬件基础上,结合导航控制律算法,在uC/OS-II嵌入式实时操作系统下设计实现无人机导航控制,实验表明其符合飞控系统的高精度、小型化、数字化发展趋势,具有研究价值和广泛的应用前景。
关键词:无人机;导航;ARM;uC/OS-II
中图分类号:TP391.8 文献标识码:A文章编号:1007-9599 (2011) 13-0000-02
ARM-Based Microcontroller UAV Navigation Control System Software Design
Zhu Dongliang
(Fujian Institute of Guomai Information Institute,Fuzhou350014,China)
Abstract:The cruise control system is to achieve autonomous flight control of UAVs core,the ARM microcontroller,angular rate gyro,accelerometer,GPS,pressure altitude sensors,pressure sensors and other hardware based on the combination of navigation control law algorithm,in uC/OS-II RTOS to design UAV navigation control,experiments show that compliance with the flight control system,high-precision,miniaturization,digital trends,research value and broad application prospects.
Keywords:UAV;Navigation;ARM;UC/OS-II
一、软件开发平台
(一)uC/OS-II简介
uC/OS-II是一种基于优先级的可抢先的硬实时内核。自从92年发布以来,在世界各地都获得了广泛的应用,它是一种专门为嵌入式设备设计的内核,目前已经被移植到40多种不同结构的CPU上,运行在从8位到64位的各种系统之上。尤其值得一提的是,该系统自从2.51版本之后,就通过了美国FAA认证,可以运行在诸如航天器等对安全要求极为苛刻的系统之上。鉴于uC/OS-II可以免费获得代码,对于嵌入式RTOS而言,选择uC/OS无疑是最经济的选择。
1.应用程序基本结构
每一个uC/OS-II应用至少要有一个任务。而每一个任务必须被写成无限循环的形式。以下是推荐的结构:
void task(void*pdata)
{
INT8U err;
InitTimer();//可选
For(;;)
{
//应用程序代码
OSTimeDly(1);//可选
}
}
2.main函数的结构
{
初始化系统硬件;
OSInit();
任务的建立,消息机制的建立;
OSStart();
}
在OSStart()执行之前不得启动中断,硬件系统还不能工作。必须先让软件系统进入工作状态后才行。
3.中断处理
为了减少中断事件的开销,中断服务程序用汇编语言来完成,下面给出示意代码。
4.用户中断服务程序
{
保存需要保护的CPU寄存器I
调用OSIntEnter()或OSIntNesting直接加1;//通知内核进入中断状态
执行用户代码做中断服务;
调用OSIntExit();//将中断嵌套层敬计数器减1
恢复保护的CPU寄存器;
执行中断返回指令;
}
5.任务管理与调度
在应用程序运行时,任务的优先级是不发生改变的,任务与它们的时间约束在编译的时候已经获得。传递任务地址和相关参数到OSTaskCreat()即可建立任务。当能够确保任务处在非空闲状态时,调用函数0STaskDel()即可删除任务。任务在等待延时期满时,是无法执行挂起操作的。挂起操作可通过调用OSTaskSuspen()来执行,通过调用OSTaskResume()恢复。
(二)工具介绍
ADS调试软件。ADS全称为ARM Developer
原创力文档


文档评论(0)