《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 多操作机排牙机器人的下位机控制系统设计

多操作机排牙机器人的下位机控制系统设计

2008-07-22
作者:张永德, 姜金刚, 赵燕江, 汪

    摘 要: 为了满足多操作机排牙机器人实现人类全口义齿排牙对实时性" title="实时性">实时性和准确性的需要以及解决对大批量步进电机" title="步进电机">步进电机进行控制的难题,提出采用主从式单片机控制方案,开发了基于MSP430单片机的多操作机排牙机器人下位机" title="下位机">下位机控制系统" title="控制系统">控制系统。详细介绍了多操作机排牙机器人的结构及工作过程、多操作机排牙机器人下位机控制系统的硬件实现和软件系统。实验结果表明,该控制系统设计合理,具有控制精确、开放性好、可靠性高等优点。
    关键词: 多操作机  全口义齿  步进电机  MSP430

 

    长期以来,口腔修复医学都是以视觉效果的评价和手工操作为基础,以经验积累和归纳总结为主要发展方式,以形象思维和形式逻辑为主要思维方式的形象科学[1]。正是由于这种原因导致在临床医疗过程中存在很大的随机性和局限性,同时也极大地阻碍了口腔修复医学的发展,并使口腔修复医学的发展水平远远落后于世界科学技术的发展水平。为此,本文提出利用多操作机机器人来辅助设计制作全口义齿人工牙列,这不但可以实现比高级口腔修复医疗专家更精确的重复动作操作,同时还能避免专家因疲劳、疾病、情绪、疏忽等原因造成的失误。这将彻底改变靠医生个人经验设计和手工制作全口义齿的落后方式,使全口义齿的设计与制作进入到既能满足无牙颌患者个体生理功能及美观的要求,又能达到规范化、标准化、自动化、工业化的水平[2]。同时又解决了目前单操作机排牙机器人难以实现复杂人工牙的精确抓取和定位问题[3],极大地提高了制作效率和质量。
    为了实现多操作机排牙机器人的高可靠性、高精度的特点,以及满足患者对全口义齿生理功能和美观的要求,排牙机器人控制系统整体性能的实现起着关键作用。因此,开发价格相对低廉并具备高精度特性的排牙机器人控制系统将拥有良好的应用前景。为了实现上述功能并基于性价比考虑,本文提出由TI公司的MSP430F149单片机构成主从式单片机控制单元,并与PC机构成主从式控制系统的系统实现方案。为了实现多任务的处理,软件部分采用时间片轮转技术,并利用IAR 嵌入式工作平台Embedded Workbench对排牙机器人下位机控制软件进行编制。
1 多操作机排牙机器人的工作过程
    多操作机排牙机器人的结构图如图1所示。具体的工作原理:通过钢丝软轴进行传动以适应传动过程中可动件与不动件的连接,同时用一个弹性可变形材料作为牙弓曲线发生器,通过电机驱动形成牙弓曲线,将14个操作机安装在弹性材料上,操作机可以在上面进行滑动,以适应不同人的牙弓长度;利用Matlab进行拟合并进行误差分析;利用5个点来拟合牙弓曲线可以得到较好的效果,由于其中位于对称线上的点是固定的,所以最终只需要通过滑台机构的运动改变弹性材料上4个点的位置就可以改变曲线形状,使其逼近真正的牙弓曲线;同时下电机控制牙齿唇舌向的转动和上下移动,上电机控制牙齿近远中向的转动,进而实现多操作
机排牙的目的。

 


2 控制系统总体设计
    多操作机排牙机器人控制系统总体组成框图如图2所示。为保证控制的实时性及准确性, 机器人辅助全口义齿系统采用PC机与基于MSP430F149单片机构成的控制单元相结合的主从式控制结构。根据全口义齿排牙机器人实际的运行特点,实际的排牙过程对电机速度没有过多的要求,所以该控制系统只需要实现步进电机的位置控制和方向控制即可。在该系统中,PC机运行三维交互式全口义齿排牙软件,三维交互式全口义齿排牙软件根据人的牙弓参数和颌弓参数实现预排牙,再根据预排牙的结果进行单颗牙齿位置和姿态的调整,并将根据最终每颗牙齿的位置和姿态参数进行机构的轨迹规划和逆运算得出每个时刻电机运行的脉冲数目,传递给由MSP430F149构成的下位机控制器,驱动各步进电机以一定的方向、速度、次序运动,同时对驱动电源过流报警信号和电机运动中的限位等输入信号进行处理。

 


3 下位机控制系统硬件设计及实现
    在该控制系统中,各功能模块主要有:核心微控制器MSP430F149、存储器扩展单元、PC机与主单片机的通信模块、主从单片机通信模块、MSP430F149复位电路和晶振电路,MSP430F149的JTAG接口模块以及光电隔离模块。为了更好地实现人机交互,该控制器还有键盘模块和液晶显示模块" title="液晶显示模块">液晶显示模块。
3.1 核心微控制器模块
    核心微控制器模块所用单片机为TI公司的MSP430系列, 其具有体积小、运行速度快、工作稳定、处理能力强、片内外设丰富、功耗低、开发环境方便高效以及品种繁多等优点。
    MSP430F149单片机构成的控制单元采用了主、从单片机控制方案[4-5]。其中主单片机主要负责与PC机和五个从单片机进行通信。主单片机实时接收来自于PC机以及键盘发出的控制指令并进行指令解释,以判断对某个从单片机进行电机参数和命令参数的传递,以及处理从从单片机反馈回来的限位和报警等信号。从单片机单元主要是对主单片机传输过来的指令进行具体的操作,每个从单片机负责10个步进电机的控制;从单片机单元完成对50个步进电机方向及位置的控制并记录当前位置信息。
3.2 存储器单元
    采用美国Atmel公司的E2PROM存储芯片AT24C16作为存储单元。AT24C16具有2KB存储容量,并且它的数据接口符合I2C总线标准,进行读写操作非常方便。I2C总线是一种由飞利浦公司开发的串行总线,传输速率可达100Kb/s。由于MSP430F149本身不具备I2C总线接口,故采用由两个普通I/O模拟I2C总线来进行存储器的读写操作。
3.3 人机交互模块
    人机交互模块分为键盘模块和液晶显示模块。键盘模块采用3×3键盘,采用程序扫描方式来实现。其中基于应急考虑,为了在使用过程中一步到位,设定每个按键对应一个命令。液晶显示模块采用128×64点阵式的LM12864。液晶显示模块主要功能有:电机状态的显示,可以在液晶屏幕上显示当前每个电机的状态;电机位置的显示,可以在液晶屏幕上显示当前每个电机的位置参数,包括电机的转角和脉冲数。
4 下位机控制系统软件设计
    控制系统软件包括三维交互式全口义齿排牙软件和单片机软件,单片机软件即是下位机软件。下位机软件主要由主单片机软件与从单片机软件两部分组成。考虑到软件开发效率及可维护性,下位机软件设计采用模块化结构,用C语言编写程序代码,开发工具使用IAR Systems公司的IAR Embedded Workbench。
    主单片机软件由如下功能模块组成:键盘模块、与从单片机通信的模块、数据存储模块、液晶显示模块、与上位机通信的模块。图3是主单片机程序流程图。

 


    从单片机软件由如下功能模块组成:与主单片机通信的模块、步进电机控制模块和位置监控模块。图4为从单片机程序流程图。其中步进电机控制模块脉冲信号的产生主要靠定时器定时地响应中断对I/O口取反而产生的,并在中断服务程序中实现对步进电机步数的精确计数,达到系统所要达到的精度要求;转速的控制可以通过改变定时器中断的时间长短的方法来实现。通过串口或键盘向CCRX写入新的计数值,以获得新的脉冲信号周期。该方式可以实现步进电机脉冲周期的精确控制,从而实现对步进电机速度的精确控制;通过设置通用I/O口的状态可以实现对步进电机方向的控制。

 


4.1 批量步进电机控制的并发实现
    计算机控制的设计思想有两种:以程序员为中心,面向过程的单任务编程;以事件为中心,面向对象的多任务编程[6]。在传统的单任务机制下,各功能模块按特定的顺序形成一个单一的任务,通过循环结构往复运行。程序一经建立,各模块的执行顺序就随之固定;模块间的耦合也比较强,程序控制流程和系统功能的可扩展性比较差。时间片轮转技术在单片机多任务编程中的应用,可以将单片机控制系统分解成多个相对独立的模块,并将各个模块理解为一个个单一的任务,每个任务在任务调度程序的管理下独立地占用一定数量的CPU时间片,就可以实现多任务并发处理机制。在这种崭新的程序结构下,各个模块间耦合度低,并且彼此处于相同的地位,通过任务调度程序轮流交替执行各模块[7]
    由于每个从单片机需要协调控制10个步进电机,在此采用时间片轮转技术配合多任务机制来实现。为此,设计了一个可用于实时控制系统的简洁高效的调度算法,其核心是采用单片机的内部定时器中断服务程序作为调度主程序,以产生精确的单位时间片;同时在定时器中断服务程序中设置一个软件计数器,由计数器的现行值作为各个模块入口的阈值。每个子单片机由10个任务构成,每个任务对应一个步进电机控制模块。软件计数器采用一个8位的存储单元作为软件计数器的计数单元。假定控制系统由k个任务构成,每个任务对应一个电机驱动模块,第i个任务的优先级用ni(i=1~5)表示,优先级最高的任务规定ni=1。优先级最高的任务ni越小,在单位时间内执行的次数就越多,从而实现了多任务多优先级的并发实现,也就实现了批量步进电机的控制。为了使机器人各部分协调地运动以及本身机构的对称性,不同的任务,优先级可能相同。为了防止计数单元的溢出,任务调度程序的入口判断条件设置为i=0。系统功能的增加和删除只需要修改子任务和任务调度程序的入口阈值即可,所以具有良好的可扩展性。具体的任务调度算法如图5所示。

 


4.2 主从单片机的多机通信
    主单片机一方面需和键盘通信,另一方面还需要和五个从单片机进行通信,这使得主单片机必须具备六个串行通信接口。而MSP430F149本身只含两个UART,因此,就需要对MSP430F149的串口进行扩展。经综合考虑,主单片机的UART1单独用于和键盘进行通信,UART2采用多机通信方式,分别与从单片机串口相连实行串口分时复用。在此,采用地址位方式实现主机对多从机的寻址,从机以总线方式与主机连接。
    主单片机向从单片机发送的数据帧格式中,其中数据块的第一个字符是一个带有置位功能的地址位,用以表明该字符是一个地址,地址帧的取值范围为1~5,即主机可以呼叫五个从机之一。当实现主机向多个从机发送字符串的功能时,主机以从机地址呼叫,只有地址相符的从机能识别呼叫并做出响应,接着数据帧的第1~第8位发送字符串,最后发送帧尾0结束。从机识别呼叫地址,发现相符时接收后续数据,接收到帧尾为0时结束。
    当实现主机接收从机数据的功能时,在采用上面的帧格式形式的同时,补充修改了以上的通信协议,增加了下面一些功能:(1)主机以特定字符串请求从机发送数据,在帧发送完一定时间内等待从机响应。(2)如果主机在请求从机发送后规定的时间内未收到响应,即认为超时出错,结束等待。(3)从机在收到请求发送字符串后,发送数据帧响应。
    本文针对多操作机机器人排牙对实时性和准确性的要求,开发了基于MSP430的多操作机排牙机器人下位机控制系统。实验结果表明:该控制系统由于采用主从式单片机结构进行系统设计,大大提高了系统的实时性,降低了软件开发的复杂度,同时配合采用高性能细分驱动器SH-2H042Ma,使得最终设计出的多操作机排牙机器人控制系统能够实现定量排牙、确保义齿质量,提高工作效率等功能,并具有高精度、成本低及可靠性高等优点。
    该系统还存在一些问题,需要进一步加以解决:(1)在通信方式上采用RS-232实现PC机与下位机控制系统的通信,由于RS-232传输速度的限制,影响了PC机与下位机控制系统通信的实时性,有必要开发基于USB总线的运动控制器。(2)由于需要对大批量微型步进电机进行控制,所以还难以实现多操作机排牙机器人所有关节的同时联动。在今后的工作中, 将针对这些问题开展深入的研究。
参考文献
[1] ZHANG Yong De, ZHAO Zhang Fang. Tooth arrangement for the manufacture of a complete denture using a robot[J].Industrial Robot: An International Journal,2001,28(5): 420-425.
[2]  张永德,赵占芳.机器人在全口义齿制作中的应用研究[J].机器人,2001,23(2):156-160.
[3]  吕培军,王勇.机器人辅助全口义齿排牙系统的初步研究[J]. 中华口腔医学杂志,2001,36(2):139-144.
[4]  BRUNNERT R. Multiprocessing with microcontrollers[J]. Elektronik, 2002,26(4):44-48.
[5]  吴益飞,李胜.基于MSP430单片机的云台控制系统设计与实现[J].微计算机信息,2004,22(4):90-93.
[6]  崔贺峰,古志民.基于能力的动态任务委派机制[J].微机发展,2005,15 (10):82-87.
[7]  吴益飞,李胜.基于完成时间的任务分配方案与性能分析[J]. 计算机研究与发展,2004,42(8):1397-1402.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。