注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 基于S3C2410的轮式移动机器人操作系统平台的构建  

2011-03-14 21:36:32|  分类: 机器人 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

谭玉林,费  

(西华大学机械工程与自动化学院,四川 成都  610039

摘要:文章介绍了基于S3C2410微处理器在轮式移动机器人中的一个实际应用,介绍了Windows CE操作系统内核的剪裁和文件系统的改造,对S3C2410的加载过程以及实时检测界面应用程序的开发过程,并进行实验验证了方案的可行性。

关键词:轮式机器人;S3C2410;智能化;嵌入式;操作系统

中图分类号:TP274      文献标识码:A      文章编号:1009-2374201001-0036-03

随着科学技术的发展,机器人的应用越来越广泛,几乎渗透到所有领域。移动机器人是机器人学中的一个重要分支。早上个世纪在60年代,就已经开始了关于移动机器人的研究。从移动方式上看,移动机器人可分为轮式、履带式、腿式(单腿式、双腿式和多腿式)和水下推进式。本文重点放在基于S3C2410轮式移动机器人操作系统平台的构建。

  一、S3C2410在轮式机器人中的应用背景

  随着电子技术的发展,单片机在轮式小车中的应用也相当的广泛,而且表现也不错。但在轮式小车上增加机器手臂和探路的摄像头后,单片机就显得力不从心了。移动机器人要走向实用,必须拥有能胜任的运动系统,可靠的导航系统,精确的感知能力和具有既安全又友好地与人一起工作的能力。移动机器人的智能指标为自主性,适应性和交互性。自主性是指机器人能根据工作任务和周围的环境情况,自己确定工作步骤和工作方式;适应性是指机器人具有适应复杂工作环境的能力(主要通过学习),不但能识别和测量周围的物体,还有理解周围环境和所要执行任务的能力,并做出正确的判断及操作和移动等能力;交互性是智能产生的基础,交互包括机器人与环境,机器人与人及机器人之间三种,主要涉及信息的获取,处理和理解。鉴于此,我们在轮式机器人上使用S3C2410处理器,让它在行走初步智能化以后的升级中还能应付自如。

二、S3C2410简介

  S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器。S3C2410芯片集成了大量的功能单元,包括:

  1.内部1.8V,存储器3.3V,外部I/O3.3V16KB数据Cache16KB指令CacheMMU

  2.内置外部存储器控制器(SDRAM控制和芯片选择逻辑)。

  3LCD控制器,一个LCD专业DMA

    44个带外部请求线的DMA

  53个通用异步串行端口(IrDA1.016-Byte Tx FIFO and 16-Byte Rx FIFO),2通道SPI

  6.一个多主I2C总线,一个I2S总线控制器。

  7SD主接口版本1.0和多媒体卡协议版本2.11兼容。

  8.两个USB HOST,一个USB DEVICEVER1.1)。

  94PWM定时器和一个内部定时器。

  10.看门狗定时器。

  11117个通用I/O

  1256个中断源。

  1324个外部中断。

  14.电源控制模式:标准、慢速、休眠、掉电。

  158通道10ADC和触摸屏接口。

  16.带日历功能的实时时钟。

  17.芯片内置PLL

  18.设计用于手持设备和通用嵌入式系统。

1916/32RISC体系结构,使用ARM920T CPU核的强大指令集。

  20.带MMU的先进的体系结构支持WinCEEPOC32Linux

  21.指令缓存(Cache)、数据缓存、写缓存和物理地址TAG RAM,减小了对主存储器带宽和性能的影响。

22ARM920T CPU核支持ARM调试的体系结构。

23.内部先进的位控制器总线(AMBA)(AMBA2.0AHB/APB)。

  S3C2410处理器最高可运行在203MHz。核心板的尺寸仅相当于名片的2/3大小,尺寸如此小巧的嵌入式核心板是国内首创。我们将它应用到轮式机器人上,最终使轮式机器人的移动满足我们的要求。

  三、嵌入式操作系统在轮式机器人中的构架

  (一)目前构架嵌入式系统软件最常用的方案

  目前构架嵌入式系统软件最常用的有三种方案:一种是基于uC/OS-II操作系统。uC/OS-II是一个完整的,可移植,可固化,可剪裁的占先式实时多任务内核。uC/OS-II是用ANSI  语言编写,包含一小部分汇编代码,使之可以供不同构架的微处理器使用。uC/OS-II可以管理64个任务,具有信号量,互斥信号量,事件标志组,消息邮箱,消息队列,任务管理,时间管理和内存块管理等系统功能。第二种是基于ARM Linux操作系统的。ARM LinuxLinux操作系统在ARM上的应用。Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux之所以受到广大计算机爱好者的喜爱,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能。第三种是基于Windows CE 操作系统的。Windows CE 也是具有多进程、多线程、可剪裁的操作系统,由于它跟现在的家庭用户的Windows 操作系统同是微软的产品,因此使用起来很容易上手。

  (二)构建基于S3C2410Windows CE.net 5.0

1  Windows CE操作系统的剪裁和文件系统的改造

  在本次研究中,我们选择的是Windows CE操作系统。Windows CE系统的设计主要包括内核的剪裁和文件系统的改造。构建Windows CE.net 5.0的开发平台,首先必须在PC机上安装Windows CE.net 5.0开发环境,Windows CE.net 5.0安装完成后,将包括以下开发工具:

  1Microsoft Platform Builder 5.0 。该工具是用于定制Windows CE .net 5.0嵌入式操作系统的集成开发环境(IDE)。

  2.运行于不同CPU构架的Windows CE.net 5.0操作系统。

  3Microsoft Platform Builder 5.0测试工具。

  4Microsoft Platform Builder 5.0部分源代码。

  以上开发工具都是可选安装的,我们选择了Platform Builder 5.0Windows CE .net 5.0进行一些文件的加入选取。在经过PC机上的Platform Builder 5.0软件的编译后生成操作系统二进制镜像文件nk.binnk.bn0。然后通过下载工具下载到S3C2410上并运行起来。

  四、构建轮式移动机器人小车的上位机实时监测界面

  为了达到轮式机器人的交互性,我们用VC++构建了上位机的实时检测界面。

  

  

 

 

 

 

2  VC++软件生成观察界面流程图

  观察界面的部分程序代码如下:

  // 读按钮操作,打开串口,构建命令帧,启动发送

  void CTalkToCarDlg::OnRead

  {

         // TODO: Add your control notification handler code here

         this->UpdateDatatrue);                       

  // 将对话框中的地址等数据取回

         ifopen_CommPort())

         {

                m_iReadMemContent = GENERAL_DATA

                makeSendFrameREAD_BYTE&m_baSendFrame);                                                               // 构建发送帧

                m_iRcvStat = NO_RCV                                                                                              // 初始化接收状态

         m_ctrlCommToCar.SetOutput((COleVariantm_baSendFrame);        // 启动发送

                m_baSendFrame.RemoveAll();

         }

         else

         {

         m_ctrlCommToCar.SetPortOpenfalse);

         }    

 }

  // 写按钮操作,打开串口,构建命令帧,启动发送

  void CTalkToCarDlg::OnWrite()

  {

         // TODO: Add your control notification handler code here

         this->UpdateDatatrue);// 将对话框中的地址等数据取回

         ifopen_CommPort())

         {

                makeSendFrameWRITE_BYTE&m_baSendFrame);                                               // 构建发送帧

                m_iRcvStat = NO_RCV           // 初始化接收状态

                m_ctrlCommToCar.SetOutput((COleVariantm_baSendFrame); // 启动发送

                m_baSendFrame.RemoveAll();

         }

         else

         {

         m_ctrlCommToCar.SetPortOpenfalse);

         }           

  }

  通过无线通讯模块(我们在实际应用中采用了HOPE公司的RFM12B无线收发模块)随时可以观察和了解轮式移动机器人的工作状态。构建好在运行中得到的反馈数据如图3

所示:

  

  

 

 

 

 

 

3  上位机实时监测界面

  图3反馈回来的数据显示了轮式移动机器人在运动的过程中S3C2410的工作状况。

  五、实验与结论

  根据以上的设计,我们在实验室的一个移动轮式机器人上进行了初步的实际实验运行,收到了良好的效果。通过实验,我们可以看到,此研究平台可以方便快捷地获取机器人运行中的大量数据与信息,对轮式移动机器人以后的智能化研究具有非常重要的应用价值。

  

参考文献

[1]何宗键.Windows CE 嵌入式系统[M].北京航空航天出版[2]周立功,等.S3C2410 &Windwows CE net 5.0试验教程[M].广州志远电子有限公司,2006

[3]Samsung公司.S3C2410A users manual Revision 1.0[M]Samsung2004

[4]陈元琰.Visual C++ 6.0编程实用技术与案例[M].清华大学出版社,2001

 

  作者简介:谭玉林(1983-),男,湖南衡阳人,西华大学机械工程与自动化学院硕士研究生,研究方向:网络化制造技术。

  评论这张
 
阅读(317)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017