xc2004四轴运动控制芯片数据手册分享:
概述
串口通讯,仅需使用少量指令便可完成复杂工作。
单芯片四轴输出,多个芯片通过组网可控制达120轴。
支持四轴,三轴,二轴,一轴直线插补,二轴圆弧插补,螺旋插补,
椭圆插补。脉冲输出使用脉冲+方向方式。
拥有512条运动指令缓存空间,支持连续插补,支持速度前瞻。
支持电子手轮和电子凸轮功能。
LQFP64封装,引脚输入输出3.3V,可兼容5V。
性能参数
供电电源 | 3.3VDC 电流100MA |
温度范围 | -40 ~ +105℃ |
封装 | LQFP64 |
IO输入 | 3.3v ,兼容5v |
IO输出 | 3.3v TTL输出 |
控制轴数 | 4轴 |
脉冲输出最高频率 | 500KHZ |
编码器输入最高频率 | 500KHZ |
运动性能 | 1-4轴直线插补 ,圆弧插补,螺旋插补,椭圆插补,支持指令缓存,支持连续插补 。 |
通信速度 | 串口:115200bps |
引脚排列
引脚号 | 引脚名称 | 引脚功能说明 |
1 | VDD | 电源正极+3.3V |
2 | Y4 | 4号输出口 |
3 | Y5 | 5号输出口 |
4 | Y6 | 6号输出口 |
5 | XA1 | 16MHZ晶振引脚 |
6 | XA2 | 16MHZ晶振引脚 |
7 | RST | 复位引脚,低电平有效 |
8 | X | 手轮轴号选择1轴,低电平有效 |
9 | Y | 手轮轴号选择2轴,低电平有效 |
10 | Z | 手轮轴号选择3轴,低电平有效 |
11 | E | 手轮轴号选择4轴,低电平有效 |
12 | VSS | 电源负极 |
13 | VDD | 电源正极+3.3V |
14 | A | 正交编码输入 |
15 | B | 正交编码输入 |
16 | LMT1- | 1轴负限位或原点,低电平有效 |
17 | LMT2- | 2轴负限位或原点,低电平有效 |
18 | VSS | 电源负极 |
19 | VDD | 电源正极+3.3V |
20 | LMT3- | 3轴负限位或原点,低电平有效 |
21 | LMT4- | 4轴负限位或原点,低电平有效 |
22 | LMT1+ | 1轴正限位,低电平有效 |
23 | LMT2+ | 2轴正限位,低电平有效 |
24 | NC | 无功能 |
25 | NC | 无功能 |
26 | LMT3+ | 3轴正限位,低电平有效 |
27 | LMT4+ | 4轴正限位,低电平有效 |
28 | VSS | 电源负极 |
29 | NC | 无功能 |
30 | NC | 无功能 |
31 | VSS | 电源负极 |
32 | VDD | 电源正极+3.3V |
33 | NC | 无功能 |
34 | NC | 无功能 |
35 | NC | 无功能 |
36 | NC | 无功能 |
37 | NC | 无功能 |
38 | NC | 无功能 |
39 | SIGN | 工作状态指示,闲时慢速交替变化,轴运行时快速交替变化 |
40 | D1 | 第1轴方向信号 |
41 | P1 | 第1轴脉冲信号 |
42 | TXD | 串口发送TTL电平,接上位机RXD脚 |
43 | RXD | 串口接收TTL电平,接上位机TXD脚 |
44 | SX1 | 手轮脉冲数量放大1倍,低电平有效 |
45 | SX10 | 手轮脉冲数量放大10倍,低电平有效 |
46 | SX100 | 手轮脉冲数量放大100倍,低电平有效 |
47 | VSS | 电源负极 |
48 | VDD | 电源正极+3.3V |
49 | D2 | 第2轴方向信号 |
50 | P2 | 第2轴脉冲信号 |
51 | Y0 | 0号输出口,指令回应脚1,指令错误输出高,正确输出低 |
52 | Y1 | 1号输出口,指令回应脚2,指令正确输出高, 错误输出低 |
53 | Y2 | 2号输出口 |
54 | Y3 | 3号输出口 |
55 | NC | 无功能 |
56 | P3 | 第3轴脉冲信号 |
57 | D3 | 第3轴方向信号 |
58 | P4 | 第4轴脉冲信号 |
59 | D4 | 第4轴方向信号 |
60 | VSS | 电源负极 |
61 | INFO | 坐标信息请求输入脚,由高变低串口输出一次坐标信息 |
62 | STOP | 急停引脚,低电平有效 |
63 | VSS | 电源负极 |
64 | VDD | 电源正极+3.3V |
串口控制
串口通讯速率为115200bps,数据位为8位,停止位1位,无校验。
模块通过Y0引脚和Y1引脚的电平输出来指示收到的指令校验情况,同时串口也返回数据指令校验情况。
获取各轴逻辑位置和状态可通过INFO引脚由高到低的变化来使串口输出,也可由《获取各轴逻辑位置和状态》指令来控制输出。
除去《获取各轴逻辑位置和状态》指令,其它指令返回数据格式:
地址码 | 功能码 | 参数 |
0x00 | 1字节 | 2字节 |
参数解释:
参数 0xffff:表示接收数据校验有误 0x0000:表示数据校验正确
串口通讯指令
◆设置轴速度
发送:
地址码 | 功能码 | 补充0 | 轴号 | 加速度 | 运行速度 | 校验和 |
0x00 | 0x01 | 0x00 | 1字节 | 4字节 | 4字节 | 2字节 |
部分参数解释:
轴号(1,2,3,4)
加减速 加减速为:值(1-2000000)(Hz/s2)
运行速度 运行频率为:值(1-500000)(Hz)
要点:由于共用一个插补核心,轴号设为任意值都为所有轴速度,如需改变当前运动指令里的速度需在当前指令前重设速度。加速度最大可设为运行速度4倍。
◆ 设置轴逻辑位置
发送:
地址码 | 功能码 | 补0 | 轴号 | 位置 | 校验和 |
0x00 | 0x12 | 0x00 | 1字节 | 4字节 | 2字节 |
部分参数解释:
轴号(1,2,3,4) 1-4:1-4轴
位置 轴逻辑位置,范围(-268435455~+268435455)
◆轴停止
发送:
地址码 | 功能码 | 轴号 | 模式 | 校验和 |
0x00 | 0x17 | 1字节 | 1字节 | 2字节 |
部分参数解释:
轴号(6) 6:插补核心所有轴停止。
模式(0,1) 0:急停并清空后面缓存的指令 1:减速停不清后面缓存的指令
要点:所有轴共用一个插补核心,虚拟轴号为6。减速停止会使轴逻辑位置不准确,后面需重设轴逻辑位置。
◆获取各轴逻辑位置和状态
发送:
地址码 | 功能码 | 校验和 |
0x00 | 0x04 | 2字节 |
返回:
地址码 | 各轴运行状态 | 缓存数量 | 1轴坐标 | 2轴坐标 | 3轴坐标 | 4轴坐标 | 校验和 |
0x00 | 1字节 | 2字节 | 4字节 | 4字节 | 4字节 | 4字节 | 2字节 |
部分参数解释:
各轴状态值(转为8位二进制数)
第5位为插补核心各轴状态 0:停止中 1:运行中
缓存数量(0-512) 还未运行的缓存指令数
各轴坐标 范围(-268435455~+268435455)
要点:轴运行状态只是轴的瞬时状态,不能用来指示圆弧指令是否完成。可通过读取缓存数量来判断缓存区指令是否完成。一条圆弧指令会动态占用最多160条缓存空间。
◆ 设置特殊功能
发送:
地址码 | 功能码 | 补充0 | 功能 | 校验和 |
0x00 | 0xfa | 0x00 | 1字节 | 2字节 |
部分参数解释:
当功能写入0xfc,缓存内运动指令暂停。
当功能写入0xfd,取消缓存内运动指令暂停。
以下指令会自动进入缓存区并排队执行
◆ 四轴直线插补
发送:
地址码 | 功能码 | X轴号 | Y轴号 | Z轴号 | E轴号 | X脉冲数 | Y脉冲数 | Z脉冲数 | E脉冲数 | 补0 | 运动方式 | 校验和 |
0x00 | 0x0a | 1字节 | 1字节 | 1字节 | 1字节 | 4字节 | 4字节 | 4字节 | 4字节 | 0x00 | 1字节 | 2字节 |
部分参数解释:
X轴号(1,2,3,4)
Y轴号(1,2,3,4)
Z轴号(1,2,3,4)
E轴号(1,2,3,4)
X脉冲(-268435455~+268435455)
Y脉冲(-268435455~+268435455)
Z脉冲(-268435455~+268435455)
E脉冲(-268435455~+268435455)
运动方式(0,1) 0:绝对位移 1:相对位移
要点:当只需要少于四轴做插补时,不用的轴号和脉冲数写0。
◆ 等待延时
发送:
地址码 | 功能码 | 延时量 | 校验和 |
0x00 | 0x0e | 2字节 | 2字节 |
部分参数解释:
延时量(1-10000)MS
要点:等待延时是指等待所设延时量后才执行后面的指令。
◆写输出口状态
发送:
地址码 | 功能码 | 输出端口号 | 输出状态 | 校验和 |
0x00 | 0x03 | 1字节 | 1字节 | 2字节 |
部分参数解释:
输出端口号 (2-6) Y2-Y6
输出状态 (0,1) 0:输出低电平 1:输出高电平
◆回原点
地址码 | 功能码 | 补0 | 轴号 | 进入原点速度 | 离开原点速度 | 校验和 |
0x00 | 0x1a | 0x00 | 1字节 | 4字节 | 4字节 | 2字节 |
部分参数解释:
轴号(1,2,3,4)
进入原点速度 运行频率为:值(1-400000)(Hz)
离开原点速度 运行频率为:值(1-400000)(Hz)
要点:回原点指令会自动生成一段负脉冲和一段正脉冲。以进入原点速度输出负脉冲时,左限位原点开关生效时自动减速停;随后以离开原点速度输出正脉冲,离开原点限位开关时自动急速停止,急停后可作为原点。回原点指令不宜和其它运动指令混合在一起放入缓存里,回原点过程应单独存在。
◆ 二轴圆弧插补
发送:
地址码 | 功能码 | X轴号 | Y轴号 | 终点坐标X | 终点坐标Y | 圆心坐标X | 圆心坐标Y | 运动方式1 | 运动方式2 | 校验和 |
0x00 | 0x0c | 1字节 | 1字节 | 4字节 | 4字节 | 4字节 | 4字节 | 1字节 | 1字节 | 2字节 |
部分参数解释:
X轴号(1,2,3)
Y轴号(1,2,3)
终点坐标 圆弧插补的终点位置,范围(-268435455~+268435455)
圆心坐标 圆弧插补的圆心点位置,范围(-268435455~+268435455)
运动方式1 0:逆时针插补 1:顺时针插补 2:三点定圆弧
运动方式2 0:绝对位移 1:相对位移
要点:圆弧各坐标必须能构成正常的圆弧。圆弧插补指令会根据圆弧参数动态占用缓存空间。当运动方式1设为2时,为三点定圆弧模式,圆心坐标参数设为圆弧的中间点坐标。
◆ 二轴椭圆弧插补
发送:
地址码 | 功能码 | X轴号 | Y轴号 | 终点坐标X | 终点坐标Y | 圆心坐标X | 圆心坐标Y | 长半轴长度 | 短半轴长度 | 运动方式1 | 运动方式2 | 校验和 |
0x00 | 0x10 | 1字节 | 1字节 | 4字节 | 4字节 | 4字节 | 4字节 | 4字节 | 4字节 | 1字节 | 1字节 | 2字节 |
部分参数解释:
X轴号(1,2,3)
Y轴号(1,2,3)
终点坐标 圆弧插补的终点位置,范围(-268435455~+268435455)
圆心坐标 圆弧插补的圆心点位置,范围(-268435455~+268435455)
运动方式1 0:逆时针插补 1:顺时针插补
运动方式2 0:绝对位移 1:相对位移
要点:圆弧各坐标必须能构成正常的圆弧。圆弧插补指令会根据圆弧参数动态占用缓存空间。
以下指令为电子凸轮专用指令
◆ 设置电子凸轮表
发送:
地址码 | 功能码 | 数据段编号 | 编码器脉冲数 | 轴脉冲数 | 校验和 |
0x00 | 0x21 | 2字节 | 4字节 | 4字节 | 2字节 |
部分参数解释:
数据段编号:(0-4999)
编码器脉冲数:(0 ~+268435455)
轴脉冲数:(-268435455~+268435455)
要点:脉冲数为相对坐标值。
◆ 运行电子凸轮表
发送:
地址码 | 功能码 | 功能 | 从轴轴号 | 起始数据段编号 | 结束数据段编号 | 校验和 |
0x00 | 0x22 | 1字节 | 1字节 | 2字节 | 2字节 | 2字节 |
部分参数解释:
功能:
0 停止运行
1 开始单次运行
2 开始循环运行
从轴轴号:(1,2,3,4)
数据段编号:(0-4999)
要点:停止电子凸轮运行后其它运动功能才能正常工作。