基于ARM的嵌入式系统在机器人控制系统中的应用
1前言
随着科学技术的发展,机器人将在太空探测、救灾防爆、海洋开发等领域有着广阔的应用前景,因而其发展正在成为国内外研究人员关注的焦点[1,2,3]。分析上述各种用途的机器人,其构成不外乎机构本题和控制系统两大部分。机构本体在体现机器人特色的同时,也决定了其必然是无人系统,在恶劣的
环境下,机器人要具备一定的自主能力。这就要求机器人有一定的“判断能力”和“想法”,需要复杂的算法,包括运动算法和模式识别算法。一般的微处理器是无法完成这项任务,而上述各种机器人又无法使用计算机控制作业,32位微处理器和嵌入式操作系统的出现解决了此问题。
嵌入式系统是指以应用为核心、以计算机技术为基础、软硬件可裁剪,以及适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统[4,5,6,7]。作为嵌入式系统的核心,嵌入式微处理器为8位、16位或32微处理器。但由于8位和16位微处理器的运行速度、寻址能力和功耗等问题,已较难满足相对复杂的嵌入式应用场合。在32位嵌入式应用领域内,ARM(Advanced RISC Machine)获得了巨大的成功[8,9,10,11]。 ARM微处理器一般具有体积小、低功耗、低成本、高性能的特点;例如,由于它有大量的使用寄存器,指令执行速度更快,于是大多数数据操作都在寄存器中完成;它的寻址方式灵活简单,执行效率高,指令长度固定等。在ARM中,可以嵌入嵌入式操作系统,在此系统上可完成复杂的算法,可以代替PC机完成各种任务。
本文首先介绍了嵌入式系统的结构,然后介绍如何利用嵌入式操作系统和ARM 、DSP构建机器人控制系统,最后说明使用此控制系统控制7自由度串联机器人[12]。
2嵌入式系统的结构
嵌入式系统主要由嵌入式操作系统和承载操作系统的硬件组成。
2.1 嵌入式操作系统
嵌入式操作系统是嵌入式系统的控制中心,主要用于对系统的信息处理部件和用户交互界面加以控制。
2.1.1嵌入式操作系统的实时性
在嵌入式领域中,实时是一个非常重要的概念。实时系统是指在确定的时间内完成规定功能,并能对外部异步事件作出正确响应的计算机系统。
实时系统的核心是必须在确定的时间内执行完一项预先定义的操作,否则将引起性能下降甚至系统崩溃等严重后果。需要说明的是,实时系统并不是说系统的响应和处理速度非常快,实时系统的实时性的实现需要软硬件的配合来完成。首先应该保证硬件的处理速度满足实时性的要求,同时相对软件而言,实时性体现在组成软件系统的各个任务的执行时限。
在嵌入式系统中,评价一个实时系统的性能要从任务调度功能、内存管理功能、最小内存开销、任务切换时间、最大中断禁止时间等方面考虑。
2.1.2 嵌入式系统中的软件
嵌入式系统的软件部分,具有以下特点:
1) 嵌入式软件的开发与硬件紧密相关。由于嵌入式软件的开发式针对具体硬件平台进行的,它往往牵涉硬件驱动方面的一些软硬结合部分。
2) 软件代码要求高效率和高可靠性。嵌入式系统中软件运行空间有限,内存空间非常宝贵,在软件的编程过程中需时刻考虑软件的运行效率。在实时系统中,处理器必须严格处理异步发生的各种任务。此外,嵌入式软件系统还应有异常处理、快速复位等特点。
3) 软件一般固化在FLASH或ROM中。为了提高执行速度和系统的可靠性,同时缩短系统复位时间,一般在嵌入式软件调试完毕后,会下载固化到目标板中的FLASH或ROM中。
2.1.3 嵌入式系统的应用
嵌入式系统产品遍布人们的日常生活,从手机、PDA到家中的空调、冰箱,从小汽车到波音飞机,甚至武器库中的巡航导弹,都有它的踪迹。嵌入式产品已经在很多领域得到广泛的使用,如国防、工业控制、通信、办公自动化和消费电子领域等。
2.2 嵌入式系统的硬件系统
与普通的PC硬件相比,嵌入式系统的硬件系统具有以下特性:
1) 体积小,集成效率高。嵌入式系统去除了冗余,力争用最小的系统完成目标功能。
2) 面向特定应用。
3) 低功耗,电磁兼容性好,能在恶劣环境下工作,死机时能够快速重启。
嵌入式系统硬件在价格、功能、体积、重量、能耗等方面都有严格的限制。
3系统功能与设计
3.1 系统功能
本着既能满足多种类型机器人的实际需 要,又尽量节约资源的原则,控制系统提供的功能如下:
1) 上位机监控.响应控制台发出的指令. 向下位机发送数据和命令;
2) 通讯总线. 现场总线,用于和其他控制器信息交互;
3) 传感器集成.直接集成姿态、位置、深度、高度、速度、加速度等传感器,或者预留接口;
4) 脉宽调制.用于调整电机的速度和位置,从而控制机器人的速度和姿态等;
5) A/D采集.监视工作电
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)