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)
要點:停止電子凸輪運行后其它運動功能才能正常工作。