基于PIC芯片嵌入式电机控制器的研究
时间:11-05
来源:互联网
点击:
3 通 信
3.1 控制系统连接方式
由于该控制器的通信接口为RS 485,PC机一般只有常用的RS 232串行通信口,主控微机通过转换器将标准的RS 232C转换为RS 485后与控制器连接。一个串口可接16个控制器。控制器包括串联通信接口,电机位置传感器脉冲接收接口,电机电流检测A/D转换接口,PWM控制输出接口和其他I/O接口。主控微机、控制器、驱动器和电机的连接如图7所示。
当主控微机对控制器进行控制时,所有的控制器均接收指令。每个控制器对接收的指令首先要进行ID校验,如果接收的数据ID与本身的ID号一致,则执行该指令,否则忽略该指令,如图8所示。
3.2 通信时间
主控微机和控制器之间的通信速率为38 400 b/s。在每一个控制周期,设计了两次接收和送信程序,即控制器在一个控制周期最多可同时接收和送出两个字节的数据。需要注意的是,主控微机和控制器之间采用的是10位为一帧的异步串行通信方式,因此每个字节的通信时间还应包括帧的起始位和停止位的传输时间。若传输两个字节的数据,则通信时间为[2×(8+2)×1 000]/38 400=0.521 ms,依此类推,即可计算出各指令的通信时间。主要指令及其通信时间如表1所示。
3.3 通信错误处理机制
由于外界干扰或电压波动等原因,主控微机和控制器之间的通信可能会出现错误,导致数据丢失,受信侧不能正常接收数据或系统运行错误。为了确保通信的连续性和可靠性,设计了通信错误处理机制。
由于各指令的通信时间均在2 ms之内,如果受信侧在2 ms之内依然没有接收到完整的数据,则认为通信出现错误,系统将进行恢复处理。受信侧会把已接收的数据清零并等待重新接收,送信侧将再次发送数据。如此循环,如果发送三次之后依然不能恢复正常通信,系统将停止运行。
3.4 通信协议软件
通信协议软件在Windows XP操作系统上用汇编语言开发而成,其编制方案简要介绍如下:
(1)主控微机发送数据
当主控微机发送数据时,需要自动记录指令的命令字节,即需要记录接收该指令的控制器ID号以及指令号Code。
(2)控制器接收数据
控制器接收数据时,首先将会进行ID校验,如果一致则接收,然后根据指令号Code决定需要接收的数据字节数。如果指令ID号与自身的ID号不一致或者在2 ms内没有接收到完整的数据,控制器将会把已接收的数据清零并等待主控微机重新发送。
(3)控制器发送数据
当控制器接收到询问指令,并确认ID一致后,将返回该指令的命令字节(ID+Code)和相应的询问数据。对于控制指令和设定指令,则只返回一个命令字节(ID+Code)。
(4)主控微机接收数据
主控微机接收到控制器返回的数据后,对于控制和设定指令,将会把返回的数据与发送记录相比较,如果一致则删除发送记录,否则,认为通信有误,进行出错处理;对于询问指令,将把接收到的数据显示或储存以备后用。
4 实 验
图9是开发出来的控制器和驱动器。根据软件设计方案编制和调试程序后进行了位置控制、速度控制、电流控制的实机实验。
位置控制实验结果如图10所示。位置控制的单位是编码器的脉冲数(Pulse)。图10指出当目标位置是2 795时,位置控制能够精确地控制电机到达指定的位置。通过多次重复实验,其误差均小于±0.2脉冲。
速度控制实验结果如图11所示。速度控制以脉冲数/周期(Pulse/0.4 ms)为单位。
图11指出当目标速度是30 Pulse/O.4 ms时,速度控制能够精确地控制电机以指定的速度运行。通过多次重复实验,其误差均小于±2 Pulse/O.4 ms。
电流控制实验结果如图12所示。电流控制以电机的额定电流与最大指令比(A/7 FH)为单位。图12指出当目标电流是2 A时,电流控制能够精确地控制电机在指定的电流下运行。通过多次重复实验,其误差均小于±O.1 A。
实验表明本文提出的控制器位置精度、速度精度、电流精度能满足多轴服务机器人的需要。
5 结 语
提出的控制器为嵌入式服务机器人控制器的研究和开发提供了一种新的控制和通信模式。实验结果指出该控制器的控制精度能满足多轴服务机器人的需要。该项目的研究将有助于推动我国服务机器人控制器的发展,具有较好的应用前景。
3.1 控制系统连接方式
由于该控制器的通信接口为RS 485,PC机一般只有常用的RS 232串行通信口,主控微机通过转换器将标准的RS 232C转换为RS 485后与控制器连接。一个串口可接16个控制器。控制器包括串联通信接口,电机位置传感器脉冲接收接口,电机电流检测A/D转换接口,PWM控制输出接口和其他I/O接口。主控微机、控制器、驱动器和电机的连接如图7所示。
当主控微机对控制器进行控制时,所有的控制器均接收指令。每个控制器对接收的指令首先要进行ID校验,如果接收的数据ID与本身的ID号一致,则执行该指令,否则忽略该指令,如图8所示。
3.2 通信时间
主控微机和控制器之间的通信速率为38 400 b/s。在每一个控制周期,设计了两次接收和送信程序,即控制器在一个控制周期最多可同时接收和送出两个字节的数据。需要注意的是,主控微机和控制器之间采用的是10位为一帧的异步串行通信方式,因此每个字节的通信时间还应包括帧的起始位和停止位的传输时间。若传输两个字节的数据,则通信时间为[2×(8+2)×1 000]/38 400=0.521 ms,依此类推,即可计算出各指令的通信时间。主要指令及其通信时间如表1所示。
3.3 通信错误处理机制
由于外界干扰或电压波动等原因,主控微机和控制器之间的通信可能会出现错误,导致数据丢失,受信侧不能正常接收数据或系统运行错误。为了确保通信的连续性和可靠性,设计了通信错误处理机制。
由于各指令的通信时间均在2 ms之内,如果受信侧在2 ms之内依然没有接收到完整的数据,则认为通信出现错误,系统将进行恢复处理。受信侧会把已接收的数据清零并等待重新接收,送信侧将再次发送数据。如此循环,如果发送三次之后依然不能恢复正常通信,系统将停止运行。
3.4 通信协议软件
通信协议软件在Windows XP操作系统上用汇编语言开发而成,其编制方案简要介绍如下:
(1)主控微机发送数据
当主控微机发送数据时,需要自动记录指令的命令字节,即需要记录接收该指令的控制器ID号以及指令号Code。
(2)控制器接收数据
控制器接收数据时,首先将会进行ID校验,如果一致则接收,然后根据指令号Code决定需要接收的数据字节数。如果指令ID号与自身的ID号不一致或者在2 ms内没有接收到完整的数据,控制器将会把已接收的数据清零并等待主控微机重新发送。
(3)控制器发送数据
当控制器接收到询问指令,并确认ID一致后,将返回该指令的命令字节(ID+Code)和相应的询问数据。对于控制指令和设定指令,则只返回一个命令字节(ID+Code)。
(4)主控微机接收数据
主控微机接收到控制器返回的数据后,对于控制和设定指令,将会把返回的数据与发送记录相比较,如果一致则删除发送记录,否则,认为通信有误,进行出错处理;对于询问指令,将把接收到的数据显示或储存以备后用。
4 实 验
图9是开发出来的控制器和驱动器。根据软件设计方案编制和调试程序后进行了位置控制、速度控制、电流控制的实机实验。
位置控制实验结果如图10所示。位置控制的单位是编码器的脉冲数(Pulse)。图10指出当目标位置是2 795时,位置控制能够精确地控制电机到达指定的位置。通过多次重复实验,其误差均小于±0.2脉冲。
速度控制实验结果如图11所示。速度控制以脉冲数/周期(Pulse/0.4 ms)为单位。
图11指出当目标速度是30 Pulse/O.4 ms时,速度控制能够精确地控制电机以指定的速度运行。通过多次重复实验,其误差均小于±2 Pulse/O.4 ms。
电流控制实验结果如图12所示。电流控制以电机的额定电流与最大指令比(A/7 FH)为单位。图12指出当目标电流是2 A时,电流控制能够精确地控制电机在指定的电流下运行。通过多次重复实验,其误差均小于±O.1 A。
实验表明本文提出的控制器位置精度、速度精度、电流精度能满足多轴服务机器人的需要。
5 结 语
提出的控制器为嵌入式服务机器人控制器的研究和开发提供了一种新的控制和通信模式。实验结果指出该控制器的控制精度能满足多轴服务机器人的需要。该项目的研究将有助于推动我国服务机器人控制器的发展,具有较好的应用前景。
机器人 嵌入式 Microchip PIC 单片机 神经网络 电流 电压 电力电子 PWM 传感器 编码器 相关文章:
- 基于气动人工肌肉的双足机器人关节设计(02-07)
- 基于ARM9的仿人机器人分布式控制系统(11-27)
- 基于MCS-51单片机的智能机器人迷宫车设计(04-20)
- 基于AVR单片机的灭火机器人设计与实现(06-13)
- 基于CANopen协议的救援机器人调试系统(08-16)
- 基于STM32F的搬运机器人电机控制系统的设计与实现(04-05)