网站大量收购独家精品文档,联系QQ:2885784924

基于QNX工业机器人嵌入式示教盒设计和开发.docx

基于QNX工业机器人嵌入式示教盒设计和开发.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于QNX工业机器人嵌入式示教盒设计和开 发 摘要设计的机器人示教盒是人操控机器人的终 端界面。工作人员利用示教盒可以控制各个关节运动。实现 了基于QNX的新型工业机器人示教盒。在ARM 11平台上设计 了示教盒硬件,实现了数据实时显示、串口传输、键盘扫描、 快速安装系统的功能。分析了操作系统的内核裁剪并提出了 驱动和应用程序的设计方法。实验结果表明,实时性高,稳 定性和可靠性高,完全满足工业要求。 关键词机器人示教盒;ARM; QNX;驱动;应用程序 中图分类号TP242文献标识码A文章编号1674-6708 (2013) 94-0203-02 目前,工业机器人已经在许多领域得到了应用。示教盒 作为工业机器人的重要组成部分,是人跟机器进行信息交互 的唯一界面。操作者利用示教盒可以操纵机器人各轴运动并 存储位置信息,从而实现机器人的重复运动。示教盒嵌入的 操作系统对实时性要求比较高。QNX是加拿大QSSL公司开发 的一种理想的实时操作系统。它的内核非常小巧且运行速度 极快。QNX除了具有实时系统的基本功能外,还有一个重要 功能是分布式网络功能。 1系统设计 早期的工业机器人示教盒硬件多采用传统的MCS-51单 片机,硬件结构比较简单,成本较低。但是受片内资源和运 行频率限制,不仅响应速度慢,稳定性和容错性不够高,而 且显示界面不友好。设计的示教盒采用基于ARM1176JZF-S 内核的三星S3C6410主处理器和QNX4. 25的操作系统。 2硬件设计 整个硬件系统设计有用于快速启动的SD卡、控制机械 臂急停等的开关按键、人机界面触摸屏、进行通信的RS232 串口、程序仿真下载的USE接口和控制机械臂的操作杆。整 个系统结构如图1所示。 SDRAM是由两片K4X1G163型号的64MB的16bit位宽的 SDRAM组成。NAND Flash采用三星公司的K9F2G08的8bit 宽的NAND,用来存储BootLoader启动代码和操作系统的内 核镜像。因为主处理器支持SD卡启动,设计上SD是为了简 单的安装嵌入式系统。串口采用MAX232控制器,串口 0用 于调试,串口 1则与机器人控制器之间进行数据传输。CPU 集成了 LCD控制器。10 口有LCD接口、USB接口和便携式键 3操作系统设计 QNX在体系结构上采用的是”客户机/服务器”结构 ,如图2所示。微内核只实现操作系统的基本功能,其 他功能都以服务器进程(如文件管理器)的方式来实现。 3. 1系统裁剪 根据目标机的硬件配置,利用QNX生成目标机的引导系 统。生成的系统直接拷贝到媒介上。/etc/config目录下的 sysinit.X ( “X”代表节点号)文件配置外部加载的驱动模 块、Shell环境参数等。保留/etc/config下的缺省引导配 置文件Alt-sysinit,可以用来裁剪系统。当sysinit. X缺 失或损坏时,按” ESC”键进入正常工作状态。 3. 2驱动程序 3. 2. 1驱动概念 QNX把硬件抽象层(HSL)和硬件获取层(HAL)清楚地 区分开来,并提供了资源管理器:统一的HAL层设备驱动程 序的编制框架。从本质上说,它是实现面向设备的服务进程, 但又与一般的服务进程不同,表现在以下3个方面:(1)需 要注册路径名;(2)需要对一组定义好的消息进行特定的处 理;(3) 一般通过POSIX C函数来访问[3]。在QNX下的驱 动当做一个普通的进程可以随意启动和停止。 3. 2. 2驱动的编写 1 )管理和分配硬件资源。调用ThreadCtl (_NT0_TCTL_I0, 0)这个函数来实现一个线程对端口的访 问。得到权限后通过函数mmap_device_io ()进行I/O的地 址映射获取设备资源; 使用dispatch_create ()建立交互机制,初始化消 息处理函数如下: iofunc_init (); io_funcs. devctl=io_devctl ; //用户使用自己的消息 处理函数; 使用devctl ()作为驱动程序与应用程序的接口函 数,完成与操作系统的数据传输; 返回与应答。从处理函数返回到设备有几种方法, 但要填写正确的结构。例如: (1)返回错误:renturn (ENOMEM); (2 )返回成功但无数据:return (EOK );或return (_RESMGR_NPARTS (0));等。 设备中断。在驱动程序中把一个IRQ和一个事件绑 定,这样系统的实时性大大提高。下面简单说明一下: (1 ) 创 建信息 通道:ChannelCreate (_NTO_CHF_DISCON_NECT_NTO_CHF_UNBLOCK); (2 )将线程与通道连接:ConnectAttach ( 0. 0 , mypci

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档