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

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

ID:32636479

大小:57.78 KB

页数:6页

时间:2019-02-14

基于qnx工业机器人嵌入式示教盒设计和开发_第1页
基于qnx工业机器人嵌入式示教盒设计和开发_第2页
基于qnx工业机器人嵌入式示教盒设计和开发_第3页
基于qnx工业机器人嵌入式示教盒设计和开发_第4页
基于qnx工业机器人嵌入式示教盒设计和开发_第5页
资源描述:

《基于qnx工业机器人嵌入式示教盒设计和开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于QNX工业机器人嵌入式示教盒设计和开发摘要设计的机器人示教盒是人操控机器人的终端界面。工作人员利用示教盒可以控制各个关节运动。实现了基于QNX的新型工业机器人示教盒。在ARM11平台上设计了示教盒硬件,实现了数据实时显示、串口传输、键盘扫描、快速安装系统的功能。分析了操作系统的内核裁剪并提出了驱动和应用程序的设计方法。实验结果表明,实时性高,稳定性和可靠性高,完全满足工业要求。关键词机器人示教盒;ARM;QNX;驱动;应用程序中图分类号TP242文献标识码A文章编号1674-6708(2013)94-0203

2、-02目前,工业机器人已经在许多领域得到了应用。示教盒作为工业机器人的重要组成部分,是人跟机器进行信息交互的唯一界面。操作者利用示教盒可以操纵机器人各轴运动并存储位置信息,从而实现机器人的重复运动。示教盒嵌入的操作系统对实时性要求比较高。QNX是加拿大QSSL公司开发的一种理想的实时操作系统。它的内核非常小巧且运行速度极快。QNX除了具有实时系统的基本功能外,还有一个重要功能是分布式网络功能。1系统设计早期的工业机器人示教盒硬件多采用传统的MCS-51单片机,硬件结构比较简单,成本较低。但是受片内资源和运行频率限

3、制,不仅响应速度慢,稳定性和容错性不够高,而且显示界面不友好。设计的示教盒采用基于ARM1176JZF-S内核的三星S3C6410主处理器和QNX4.25的操作系统。2硬件设计整个硬件系统设计有用于快速启动的SD卡、控制机械臂急停等的开关按键、人机界面触摸屏、进行通信的RS232串口、程序仿真下载的USE接口和控制机械臂的操作杆。整个系统结构如图1所示。SDRAM是由两片K4X1G163型号的64MB的16bit位宽的SDRAM组成。NANDFlash采用三星公司的K9F2G08的8bit宽的NAND,用来存储B

4、ootLoader启动代码和操作系统的内核镜像。因为主处理器支持SD卡启动,设计上SD是为了简单的安装嵌入式系统。串口采用MAX232控制器,串口0用于调试,串口1则与机器人控制器之间进行数据传输。CPU集成了LCD控制器。10口有LCD接口、USB接口和便携式键3操作系统设计QNX在体系结构上采用的是”客户机/服务器”结构[2],如图2所示。微内核只实现操作系统的基本功能,其他功能都以服务器进程(如文件管理器)的方式来实现。3.1系统裁剪根据目标机的硬件配置,利用QNX生成目标机的引导系统。生成的系统直接拷贝到

5、媒介上。/etc/config目录下的sysinit.X(“X”代表节点号)文件配置外部加载的驱动模块、Shell环境参数等。保留/etc/config下的缺省引导配置文件Alt-sysinit,可以用来裁剪系统。当sysinit.X缺失或损坏时,按”ESC”键进入正常工作状态。3.2驱动程序3.2.1驱动概念QNX把硬件抽象层(HSL)和硬件获取层(HAL)清楚地区分开来,并提供了资源管理器:统一的HAL层设备驱动程序的编制框架。从本质上说,它是实现面向设备的服务进程,但又与一般的服务进程不同,表现在以下3个方

6、面:(1)需要注册路径名;(2)需要对一组定义好的消息进行特定的处理;(3)一般通过POSIXC函数来访问[3]。在QNX下的驱动当做一个普通的进程可以随意启动和停止。3.2.2驱动的编写1)管理和分配硬件资源。调用ThreadCtl(_NT0_TCTL_I0,0)这个函数来实现一个线程对端口的访问。得到权限后通过函数mmap_device_io()进行I/O的地址映射获取设备资源;2)使用dispatch_create()建立交互机制,初始化消息处理函数如下:iofunc_init();io_funcs.dev

7、ctl=io_devctl;//用户使用自己的消息处理函数;3)使用devctl()作为驱动程序与应用程序的接口函数,完成与操作系统的数据传输;4)返回与应答。从处理函数返回到设备有几种方法,但要填写正确的结构。例如:(1)返回错误:renturn(ENOMEM);(2)返回成功但无数据:return(EOK);或return(_RESMGR_NPARTS(0));等。5)设备中断。在驱动程序中把一个IRQ和一个事件绑定,这样系统的实时性大大提高。下面简单说明一下:(1)创建信息通道:ChannelCreate(

8、_NTO_CHF_DISCON_NECT_NTO_CHF_UNBLOCK);(2)将线程与通道连接:ConnectAttach(0.0,mypcip->chid,0,_NTO_SIDE_CHANNEL);(3)绑定中断:InterruptAttachEvent(mypcip->int_line,&event,_NTO_INTR_FLAGS_TRK_MSK);(4)创建my

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。