摘 要: 針對仿人機器人手臂模塊化關節的結構與性能要求,設計出一種成本低、結構緊密、耦合性能好且適用于工程實踐的環形伺服驅動控制系統。該系統主要由MFC控制界面發送指令,通過USB CAN與主控芯片STM32進行通信,由STM32完成PID控制專用運動控制芯片LM629并監視其反饋信息。實驗結果表明,該系統結構穩定、合理、可行。
關鍵詞: LM629;關節控制器;STM32
目前,機器人多以直流電機驅動,用伺服控制器實現對直流電機的驅動控制[1]。隨著機器人的發展,機器人關節小型化、輕量化要求越來越高,因此伺服控制器的緊湊設計就顯得越來越重要[2]。
本文設計的控制器集驅動、控制于一體,使用專用的電機運動控制芯片LM629[3],能方便、快捷地對系統進行設計并控制。采用現場總線CAN技術,具有可靠性高、實時性強、應用靈活和性價比高等特點[4],可以方便地組成多軸控制系統。
1 伺服控制系統整體方案
由上位機和LM629組成的模塊化直流伺服控制系統主要由運動控制模塊、驅動模塊、CAN總線通信模塊和電源模塊4部分組成。
系統總體框圖如圖1所示,上位機通過CAN總線與STM32相互通信,上位機界面如圖2所示,主要初始化CAN總線通信的各種參數,并給STM32發送各種電機運行需要的數據以及電機運行方式等命令。STM32與控制芯片LM629通過數據口與控制口相連接,主要給LM629傳送由上位機接收的運動參數以及PID數據,并且接收LM629返回的位置速度以及中斷等信息。LM629精密運動控制器根據接收的運行參數以及編碼器反饋回來的信號完成輸出脈寬符號信號PWMS和脈寬量值信號PWMM,然后經過L6203功率放大后驅動直流電機。
STM32自身帶有CAN控制器,上位機通過USB CAN與STM32進行通信,其收發報文格式如圖3所示。
1.1 控制系統硬件基本結構
控制系統硬件結構如圖4所示。STM32的GPIO口與LM629的端口相連接。其中GPIOE與LM629的D0~D7相連接,傳輸數據及指令;讀取信號RD與GPIOB中PB3相連,用于讀取狀態數據,低電平有效;寫入信號WR與PB6相連,用于寫指令和數據,低電平有效;片選信號CS與PB4相連,用于選擇LM629,低電平有效;端口選擇PS與PB5相連,用于選擇指令或者數據端口。低電平選擇指令,高電平選擇數據。主機中斷HI與PA8相連接,LM629有6個中斷源,所有中斷源都是通過該引腳申請中斷,當HI為高電平時,STM32進行中斷響應,通過讀取狀態字來判斷具體產生中斷的中斷源,相應的中斷處理程序就對該中斷進行處理。輸出的PWMM與PWMMS信號再經過L6203全控橋驅動電路放大,輸出控制電機。L6203的ENABLE與PB2相連接,開啟或者關閉電機。增量編碼器提供伺服位置閉環的反饋。LM629中梯形速度輪廓發生器為操作中的位置或速度模式計算必需的軌跡。在操作中,LM629從設定位置減去反饋位置,得到的位置誤差由數字濾波器處理來驅動電機到設定位置。
1.2 控制系統軟件設計
LM629是為各種可以提供增量型位置反饋信號的直流以及直流無刷伺服電機的伺服機構設計的專用運動控制處理器[5],內部含有梯形速度曲線控制器、可編程16位系數的數字PID濾波器以及32位位置、速度和加速度寄存器等,因此硬件結構較簡單,重點是軟件設計。
系統總體流程圖如圖5所示,系統首先初始化,然后對LM629進行復位,若復位成功,則裝載PID參數,軌跡運行參數,開始運行;若是復位不成功,則重新復位。注意對LM629寫命令和數據時首先要查詢是否忙,即先要讀取狀態字,若查詢到忙位為“1”,則繼續查詢,直到忙位變為“0”后方可寫入命令或者數據。
復位流程圖如圖6所示,硬件復位RST輸入,低電平有效,上升沿觸發,復位脈沖必須邏輯低并且超過8個時鐘周期[6]。當LM629的復位腳釋放之后,狀態端口應該讀出“00H”。如果復位成功,狀態字會在1.5 ms之內變成“84H”或者“C4H”;如果狀態字沒有在1.5 ms內變成“84H”或者“C4H”,執行另一次復位,并重復上述步驟。為確保復位被正常執行,執行一個RSTI指令。如果芯片正確復位,狀態字會從“84H”或者“C4H”變成“80H”或者“C0H”;如果這個(變化)沒有發生,執行另一個復位,并重復上述步驟。
初始化流程圖如圖7所示,主要是對STM32 GPIO口進行設置。
1.3 PID參數調整[7]
按照式(1)進行PID參數調整:
使用LM629芯片對于軟件設計方面的主要優勢在于:該芯片內部自帶速度生產控制器以及PID調節器,不用在軟件方面進行大量的算法運算。
2 實驗結果分析
由于LM629輸出的是PWMS和PWMM波形,PWMS是表示電機運行方向,PWMM是量值信號[8],此實驗中電機運行模式為簡單的絕對位置模式,軌跡控制雙字為:0x002A。給定的理想速度波形應該是LM629梯形速度發生器產生的梯形波。圖8為PWMS波形,表示電機是正向運行,圖9和圖10分別是PWMM波形。圖9波形占空比越來越小,速度越來越大,代表加速段;圖10波形占空比越來越大,速度越來越小,PWMS,PWMM參數的值由PID參數以及軌跡參數決定。
采樣時間=2 048/系統時鐘頻率(4 MHz)
最低采樣時間T1=2 048/4 MHz
最高采樣時間T2=2 048×256/4 MHz
LM629提供3個輸入:兩個積分信號和一個索引脈沖信號。積分信號用于保持電機的軌跡和絕對位置,可提供編碼器提供的線數的4倍分辨率。
LM629自帶的PID參數調節器、梯形速度發生器、高分辨率以及濾波器可以對接收到的反饋信息實現高頻響應并進行實時運算。運算結果及時發送給電機以校正運動誤差,確保電機能穩定、高精度的運行。
本文利用高精度運動控制器LM629,能執行高性能數字運動控制所需要的實時計算而且使得主機控制接口由高級指令簡化,硬件結構簡單、成本低、精度高、系統緊湊、通信方式可靠,便于擴展。
參考文獻
[1] 王延忠,鄒武,戈紅霞,等.基于AT89S52單片機的直流電動機驅動控制系統[J].新技術新工藝,2012(8):81-82.
[2] 李宗帥,董春,陳靜.基于PCI總線和LM629的移動機器人伺服控制器研究[J].微電機,2008,41(12):36-38.
[3] 鄭靜,渠慎豐.小功率伺服無刷直流電機驅動器設計[J].電子測量技術,2006,29(3):130-132.
[4] 王華,王立權,韓金華.電機專用運動控制器LM629的應用研究[J].電子器件,2005,28(2):370-373.
[5] 孫玉芝,王揮.單片機與LM629芯片相結合的全數字位置直流伺服系統[J].電氣自動化,2003,25(2):23-25.
[6] 關洪海.基于CAN總線分布式機械臂控制系統設計[J].煤礦機械,2012,33(8):243-244.
[7] 李小光.基于ARM9和LM629的電機伺服控制系統設計[J].沈陽工程學院學報,2010,6(4):351-353.
[8] 華平,徐堅,李秀玲.機械手關節運動控制模塊設計[J].機械研究與應用,2009(6):95-97.