基于RTX51的排爆机器人嵌入式控制器固件开发
时间:08-30
来源:互联网
点击:
2.3 排爆机器人嵌入式控制系统固件开发
上位机嵌入式控制器固件结构如图5所示。根据控制器要完成作业的独立性分割成几个任务片。图5表示了各任务之间的关系、与外设连接关系。整个系统被区分成三个层次。
减少上、下位机之间数据交换的次数及数据量有利于减少下位控制器中断机器人的运动控制转入通讯协议处理的几率,可以提高运动控制的质量。所以PBJ-1的通讯部分固件程序设计没有采用传统的定时向下位机传送输入设备的状态这种高通讯负担的方法,而是基于消息驱动的思想。通讯任务依靠输入设备检测任务执行的结果来决定是否激活、进入消息队列以实现控制器之间的通讯。这样只有当操作者实际改变了输入设备的状态,上位机才向下位机发送相应的信息。利用消息驱动思想来开发通讯程序十分方便、可靠,并且大大减少了通讯线路的负担。为了保证数据传输的高可靠性,每次数据交换都先经过握手以确保无误。下位机嵌入式控制器固件结构如图6所示。
图5 上位机嵌入式控制系统固件结构
图6 下位机嵌入式控制系统固件结构
由于有些任务不需要一直执行,例如机器人需要响应上位机的指令完成继电器的切换等,也将利用os_wait函数处理,使它们平时不进入RUNNING任务队列中,减少资源浪费。在下位机串口中断中利用isr_send_signal向该任务发送信号激活该任务,使得该要求得到执行。具体调用方法如下:
isr_send_signal(Task_ID); //从一个中断发送一个信号到Task_ID任务。
通过Windows消息驱动的思想和RTX51 Tiny实时操作系统的配合,合理分配了系统的资源。下位机控制器“集中精力” 完成机器人运动学解算及分解运动控制运算这些相当耗时的任务,实时控制机械臂运动。
在微控制器固件开发中嵌入操作系统还大大提高了系统的稳定性。即使某个外设或任务出现故障,与之无关的任务一般不会受到影响,不像传统的顺序循环机制的程序设计方法中如果某一环节出现问题会立刻造成整个系统的崩溃。
实际整个系统的上下位机微控制器都是仅仅利用运行于22.1184MHz频率下的AT89C55WD 就很好地达到了预期目标。该系统在随意频繁地分别开关上下位机电源、受到较强电磁干扰、大功率电机频繁启动、制动造成系统电源电压波动较大等苛刻的运行测试中均表现出了非常高的稳定性与数据传输准确性。整个系统在运行中即使出现了通讯失败(人为切断通讯线路或部分电源),当故障排除后,上、下位机可以迅速自动恢复正常的通讯状态没有出现误动作。
笔者为新型排爆机器人PBJ-1先后开发了两套控制器固件程序,采用完全一样的硬件平台。一套是基于传统的顺序循环机制,开始效果不理想,后来借鉴消息驱动思想改进程序架构才满足了要求。开发过程中花费了不少时间来调试。另一套就是本文所述的基于RTX51 Tiny嵌入式实时操作系统开发的,实际运行效果相当好,但是花费的时间很少,而且很容易增加新的功能。
实践表明, 在系统复杂、对实时性和精度要求比较严格,并且需要并行处理的任务较多的运动控制系统中,使用RTX51Tiny是一个较好的解决办法。此外,使用RTX51Tiny实时操作系统,会加快嵌入式控制系统的开发速度,降低软件编写的复杂度,提高产品的开发效率。维护和功能扩展都非常方便。
机器人 PLC 嵌入式 显示器 LED 电压 单片机 Keil 继电器 相关文章:
- 基于MSP430的自主式移动机器人设计与实现(06-12)
- 如何制作一个最简单的机器人(02-23)
- 机器人技术的新进展(02-23)
- CAN总线技术在工业码垛机器人控制系统中的应用研究(06-27)
- 制作机器人常用传感器盘点(02-23)
- 基于LabVIEW构建智能的移动机器人及无人驾驶车(10-27)