首页 > 范文大全 > 正文

基于ARM9的机器人项目驱动嵌入式系统平台设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ARM9的机器人项目驱动嵌入式系统平台设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:随着嵌入式技术的发展,嵌入式系统将更广泛地应用于人类生活的方方面面。本文主要详细介绍了机器人项目驱动的嵌入式系统软硬件设计方案。项目开发程序是运行在硬件评估板和机器人小车上,既可用于软硬件协同验证也可以用于完成特定的项目。使学生和开发人员可以通过实验程序很快的了解ARM9的各硬件模块的编程。

关键词:嵌入式系统 ARM9 设计方案 项目驱动

中图分类号:TP242 文献标识码:A 文章编号:1672-3791(2014)05(c)-0017-03

随着信息化技术的发展,嵌入式系统已经成为当前IT产业界一个非常热门的话题。因其高可靠性、低成本、高效、丰富的代码以及应用程序可扩展性、可移植性等一系列优点,目前已越来越成为工业系统和民用系统的主力军,尤其在信息化产品中,越来越多地应用到嵌入式系统的概念。

嵌入式系统主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片机或微控制器(MCU)组成。相关支撑硬件包括显示卡、存储介质(ROM和RAM等)、通讯设备、IC卡或信用卡的读取设备等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存作为存储介质。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用软件等。

总体看来,嵌入式系统具有便利灵活、性能价格比高、嵌入性强等特点,可以嵌入到现有任何信息家电和工业控制系统中。从软件角度来看,嵌入式系统具有不可修改性、系统所需配置要求较低、系统专业性和实时性较强等特点。

1 嵌入式系统开发

1.1 嵌入式系统的开发模型

由嵌入式系统的组成可以看出,一个完整的嵌入式系统的开发一般分以下几个步骤:

(1)硬件平台的设计。

(2)BSP的开发和调试。

(3)嵌入式操作系统的裁剪。

(4)嵌入式操作系统内核的配置和编译。

(5)文件系统的建立。

(6)文件系统的建立。

(7)系统下载和脱机运行。

1.2 嵌入式系统的开发流程

嵌入式系统的开发通常采用“宿主机/目标机”方式。首先,利用宿主机上丰富的资源及良好的开发环境开发和仿真调试目标机上的软件。然后通过串行口或网络将交叉编译生成的目标代码传输并装载到目标机上,并用交叉调试器在监控程序或实时内核/操作系统的支持下进行实时分析和调度。最后,目标机在特定的环境下运行。嵌入式系统开发流程图如图1所示。

2 机器人项目驱动的嵌入式平台

2.1 平台概述

最近几年,在我国大学,机器人作为机械电子学、计算机技术、人工智能等的典型载体被广泛地用来作为工科本科生的讲授课程之一;在中学,模型机器人则逐渐成为素质教育,技能实践的选题之一,各种机器人比赛正蓬勃发展。

机器人技术大踏步向前发展,由于成本、功耗、功能的不断扩展、运行环境的不可预知性等因素起了极大的负面影响,制约了机器人技术的发展。基于嵌入式系统的机器人控制器以其功耗低、体积小、集成度高、可靠性强等无可比拟的优势,为机器人技术的发展提供了广阔的前景。本设计平台以S3C2440A arm9应用处理器为核心,开发和设计一款开放式的机器人控制系统,它包括机器人主控系统、机器人传感器系统、机器人执行系统、上层编程软件系统,其工作过程如图2所示。机器人上层编程软件系统编写机器人的应用控制程序,通过仿真器、UART 或USB 把应用程序下载到机器人主控系统中,根据机器人传感器系统采集的数据对机器人执行系统进行控制,从而实现机器人的执行功能。

2.2 机器人主控器系统

机器人主控器系统是机器人控制系统的核心,它有硬件系统和软件系统两部分组成。

(1)硬件系统。

机器人主控系统硬件包括:微处理器、存储器(FLASH存储器和SRAM存储器)、键盘电路、LCD液晶显示电路、I/O驱动电路、电源供电电路等。硬件电路框图如图3所示。

(2)软件系统。

机器人主控系统软件包括:系统启动程序、各模块硬件设备驱动程序、实时操作系统(Real Time Operating System,RTOS)等。

2.3 机器人传感器系统

机器人传感器系统起到了环境数据采集及处理的作用,它把处理的数据传给机器人控器系统。它有模拟量传感器系统和数字量传感器系统组成。

(1)模拟量传感器系统。

模拟量传感器系统包括:红外测距、灰度、接近开关、温度传感器等。

(2)数字量传感器系统。

数字量传感器系统包括:模拟量传感器扩展模块、电子罗盘、光电传感器扩展模块等。其组成包括:MCU、模拟量传感器、I2C通讯接口等,实现数据采集、数据处理和数据传输的功能。

2.4 机器人执行系统

机器人的所有动作均由起执行系统完成,对于小型机器人来说,它的执行系统一般由直流电机驱动机械传动机构来完成动作。本平台主要设计轮式机器人的执行系统,完成前进、后退、左转弯、右转弯等基本功能。

机器人本体设计包括传感器的位置安装、着地点的位置、重心位置等的设计;电机选择控制精度较高的步进电机;轮子驱动采用四轮驱动的方式。

3 硬件设计方案

根据上述描述,Microbot2440的硬件设计方案如图4所示。主要由5个部分组成:主控器、电源子系统、执行子系统、传感子系统和通信子系统。其中通信子系统用于连接通信模块,如Zigbee短距离通信模块等。

其中CPU采用的是Samsung公司的S3C2440A型ARM9处理器。这款处理器为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。为了降低整体系统成本,S3C2440A提供了一下丰富的内部设备,采用了ARM920T的内核,0.13um的CMOS标准宏单元和存储器单元。其低功耗,简单,优雅,且全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构Advanced Micro controller Bus Architecture (AMBA)。

S3C2440A的杰出的特点是其核心处理器(CPU),是一个由Advanced RISC Machines有限公司设计的16/32位ARM920T 的RISC处理器。ARM920T实现了MMU, AMBA BUS和Harvard高速缓冲体系结构构。这一结构具有独立的16KB指令Cache 和16KB数据Cache。每个都是由具有8字长的行组成。通过提供一套完整的通用系统外设,S3C2440A减少整体系统成本和无需配置额外的组件。

4 软件设计方案

软件设计主要由三部分构成:交叉开发工具、板载软件和项目开发程序。交叉开发工具为PC机软件,用户通过ARM Developer Suite(ADS)集成开发平台在PC机上进行嵌入式软件的开发,然后通过JTAG编程器写入到硬件评估板中运行。板载软件即固化在评估板的Flash存储器中的程序,包括Bootloader和Linux,有了操作系统,开发人员不需要了解硬件就可以编写应用程序。项目开发程序是运行在硬件评估板和机器人小车上,即可用于软硬件协同验证也可以用于完成特定的项目。学生和开发人员可以通过实验程序很快的了解ARM9的各硬件模块的编程。

4.1 交叉开发工具

交叉开发工具是提供给用户在PC机上开发ARM9嵌入式软件的工具,Microbot 2440教学实验平台为用户提供了ARM Developer Suite(ADS)集成开发平台和JTAG编程器,可以帮助开发者进行高效的软件开发。

(1)ARM Developer Suite(ADS)集成开发平台。

基于ARM的集成软件开发平台ARM Developer Suite(ADS)集成开发平台)对于工程研发人员来说是一个功能强大的开发工具。在EWARM环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。比较其他的ARM开发环境,ADS集成开发平台具有入门容易、使用方便和代码紧凑等特点。其主要功能包括:

①可编译生成ARM平台的机器码。

②工程管理功能。

④对目标硬件编程功能。

图5为ARM Developer Suite(ADS)的模块图。以工程管理模块为核心,负责管理一个用户工程的源文件、工程设置等信息,同时根据IDE图形界面的菜单、工具栏、热键事件来进行相应的操作,例如编译工程、下载、信息输出、文件操作等。

(2)JTAG编程器。

Microbot2440教学实验平台使用的S3C2440也遵循了IEEE 1149.1,在其芯片中设计了测试访问接口和边界扫描链。利用这一特点,设计了JTAG编程器,它可以用于对评估板上Flash存储器进行编程。编程器由软硬件两部分构成:PC机高端软件和JTAG编程线。JTAG编程线可以使PC机通过并行口来连接S3C2440A的TAP信号线,达到直接控制处理器的边界扫描链,进而控制外部总线来对Flash存储器编程。

4.2 板载软件

(1)引导程序。

引导程序是固化在Flash中,在CPU上电启动时首先执行的程序,它负责进行系统初始化的工作,还可以用来引导其它的程序。Microbot2440教学实验平台提供了两个引导程序:bootFlash和U-Boot。前者负责从Flash上电启动后初始化系统,后者是一个二级引导程序,由bootFlash引导,它可以进而实现对Flash编程、通过以太网下载程序、引导Linux等功能。

(2)ARM Linux 2.4.27.

ARM Linux 2.4.27是标准Linux内核的ARM平台版,Microbot2440平台在提供给用户之前已经将其固化在评估板的Flash存储器中。开发者和学习者可以通过它熟悉嵌入式Linux编程,不需要有很高的硬件知识。开发人员只需要在操作系统和驱动程序之上开发应用软件,不需要了解底层硬件的机制。

5 结语

后PC时代是一个真实的阶段,而且是一个可以预测的时代。嵌入式系统就是与这一时代紧密相关的产物,它将拉近人与计算机的距离,形成一个人机和谐的工作与生活环境。从某一个角度来看,嵌入式系统可应用于人类工作与生活的各个领域,具有极其广阔的应用前景。嵌入式系统在传统的工业控制和商业管理领域已经具有广泛的应用空间,如智能工控设备、POS/ATM机、IC卡等;在家庭领域更具有广泛的应用潜力,如机顶盒、数字电视、WebTV、网络冰箱、网络空调等众多消费类和医疗保健类电子设备等;此外还有在多媒体手机、袖珍电脑、掌上电脑、车载导航器等方面应用,将极大地推动嵌入式技术深入到生活和工作的方方面面。它在娱乐、军事方面的应用潜力也是巨大的,而且是有目共睹的。面对全球嵌入式系统工业化的潮流,适应我国加速知识创新和建立面向21世纪知识经济的需要,必须加强高等院校嵌入式系统的教学,培养高层次、实用型、复合型、国际化的嵌入式系统应用人才,使我国嵌入式系统应用水平获得跨越式发展。

参考文献

[1] 李善平,刘文峰,王焕龙,等.Linux与嵌入式系统[M].清华大学出版社,2002:133-135,146-153.

[2] 吕京建,肖海桥.ICI向二十一世纪的嵌入式系统综述[EB/OL].http:///.

[3] 常薇,张明武.硬件与电子技术课程网上虚拟实验教学模式研究[J].中山大学学报论丛,2005(3):80-82.

[4] 王仁之,王雷,等.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社.

[5] 慕春棣,主编.嵌入式系统的构建[M].清华大学出版社,2004.

[6] 陈莉君.深入分析Linux内核源代码[M].人民邮电出版社,2002.