基于PIC芯片嵌入式電機控制器的研究
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 結 語
提出的控制器為嵌入式服務機器人控制器的研究和開發提供了一種新的控制和通信模式。實驗結果指出該控制器的控制精度能滿足多軸服務機器人的需要。該項目的研究將有助于推動我國服務機器人控制器的發展,具有較好的應用前景。
評論