为了实现机器人应用系统的协调问题,实现多个控制模块之间的通信,现设计并实现了一种基于UART的机器人分布式控制通信协议。硬件上采用RS-485型电气接口,分析了控制网络的信息模型,实现了令牌环控制现场总线的实时信息调度算法设计,通信协议采用令牌环原理调度每一个控制模块,从而实现基于UART的无主机分布式现场控制。
机器人智能化程度越来越高,那么对机器人控制应用复杂性也相应需要提高。每丰富一个功能,就需添加一个由微控制器连接相应的传感器、执行器等组成的模块来实现。机器人的功能越丰富,机器人控制系统的微控制模块就越多, 因此以UART 组成的现场总线网络[1]为基础的分布式控制系统在机器人控制中取得了广泛的应用。通过UART 总线实现系统中多个控制模块的互联,它们之间进行信息交换, 然而这些信息的传送有时间要求,在此现场总线网络中对信息传送实时性有关键性影响的是控制模块访问控制协议,即信息调度算法。另外,由于每一个控制模块的CPU 字长不同,通信方式有多种,为了能够实现通信,需要采用一种通用的通信方式,而每一个微控制器都有的通信方式是UART。但仅靠微控制器自带电平的UART 接口传输距离较近,且只能实现主机、从机之间的通信,不能实现任意两个设备之间的通信,不完全符合现场总线网络控制模块之间的要求。
为实现现场总线网络功能, 需要设计一套通信协议, 实现机器人分布式控制通信。
硬件上采用RS-485型电气接口,提高通信距离,用于机器人复杂应用的控制模块之间通信。
2. 硬件结构设计 由于机器人功能的丰富,在机器人内部嵌入的控制模块就会越多,且这些控制模块之间需要协调一致的工作,在机器人的这个可编程控制系统中,模块与模块之间实现无主机的多机通信[2],每一个模块本身在系统中具有双重功能, 既是一个主控模块, 又是从控模块。
模块与模块之间采用RS-485 总线通信, 由MAX487 担任串口的电平转换器,MAX487 是一种RS-485 标准接口的电平转换芯片。RS-485 采用差分式半双工通信方式,真正实现多点总线连接,具有传输距离远可靠性高的特点。
每个控制模块是采用字长不同、种类不同的微控制器构成的嵌入式控制模块,模块与模块之间通过串口进行信息通信,系统的总线硬件结构如图1 所示,每个控制模块通过电平转换芯片MAX487 连接在RS-485 总线上,模块与模块之间借助总线进行数据传输,数据传输稳定,方便扩展。各个模块采用一字节的地址编码,对应的编码范围为0~255,因此接收总线的控制模块最多可以达到255 个,满足机器人应用系统的需求,灵活性比较大。