基于PIC芯片嵌入式電機控制器的研究
隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展和社會的進步,服務(wù)機器人與人們的生活聯(lián)系越來越緊密,故日益受到關(guān)注。電機控制器作為機器人的核心部分,直接決定了其功能和性能。雖然用于工業(yè)機器人的伺服電機控制器技術(shù)已經(jīng)成熟,但用于服務(wù)機器人的伺服電機控制器的研究和開發(fā)仍然存在許多問題。開發(fā)一種“具有開放式結(jié)構(gòu)的模塊化、標準化、小型化的嵌入式電機控制器”已經(jīng)成為當前服務(wù)機器人控制器的一個發(fā)展方向。
基于美國Microchip公司生產(chǎn)的PIC單片機具有速度快、體積小、低功耗、驅(qū)動能力大、可靠性高等優(yōu)點,故采用該系列微型芯片:PIC18F452開發(fā)了一種小型嵌入式電機控制器。該控制器和主控微機、驅(qū)動器共同構(gòu)成機器人伺服控制系統(tǒng)。伺服控制系統(tǒng)采取了可變的控制模式,并且控制器能和驅(qū)動電機一起安裝在機器人的各個關(guān)節(jié),因此特別適合電池驅(qū)動的多軸服務(wù)機器人的應(yīng)用。
本文著重介紹控制器的軟件構(gòu)造、操作指令和通信模式。設(shè)計了一種使用方便的指令模式,該模式能識別幾十種指令語句,并容易實現(xiàn)對指令語句的擴展。同時用串口方式形成機器人伺服控制系統(tǒng)的神經(jīng)網(wǎng)絡(luò),各個小型控制器不但能和主控微機之間通信,而且各個控制器之間也可以進行信息交流。為了保證通信的連續(xù)性和可靠性,該伺服控制系統(tǒng)具有通信錯誤處理機制。
1 控制器的軟件構(gòu)造
該控制系統(tǒng)最大的特點在于位置、速度、電流三種控制方式可隨時變更。為了獲得可調(diào)的直流電壓,利用電力電子器件的完全可控性,采用PWM脈寬調(diào)制技術(shù),直接將恒定的直流電壓調(diào)制成可變大小和極性的直流電壓作為電機的電樞端電壓,實現(xiàn)系統(tǒng)的平滑調(diào)速。在每一個控制周期,三種控制模式獨立計算,控制器將計算結(jié)果以PWM信號形式輸出到電機驅(qū)動器,同時電機的位置、速度和電流能實時測量并送到主控微機,從而機器人的各個關(guān)節(jié)能根據(jù)不同的外部環(huán)境采取不同的控制方式。該控制器的控制原理如圖1所示。
為了實現(xiàn)上述目標,在控制器軟件的開發(fā)上,采用了模塊化和子程序嵌套的設(shè)計思想??刂破鞯挠嬎阒芷赥為400μs,每一個周期劃分成32個處理模塊,利用中斷處理在每一個處理模塊(t=12.5μs)中對電機位置譯碼的脈沖進行計數(shù)測量??刂破鬈浖?gòu)造及主要模塊的功能如圖2所示。
2 操作指令
該控制器的操作指令包括控制指令、設(shè)定指令、詢問指令等。指令格式的最高字節(jié)為命令字節(jié),即控制器的ID號和Code(指令號)。ID指出控制器的識別號碼,Code指出指令代碼,它們各占4位。
需要注意的是,對于控制和設(shè)定指令,緊隨命令字節(jié)的是n個字節(jié)組成的控制或設(shè)定指令數(shù)據(jù),但詢問指令僅有命令字節(jié),沒有指令數(shù)據(jù)。
2.1 控制指令
伺服控制系統(tǒng)的三種控制模式均有相應(yīng)的控制指令。
位置控制應(yīng)用于進行連續(xù)點控制的插補點位置控制。位置控制數(shù)據(jù)由三個字節(jié)的有符號數(shù)來表示,其最大值和最小值分別為223-1(=7FFFFFH)和-223+1(=800000H)。其中,0H~7FFFFF為電機的正方向,800000H~FFFFFFH為電機的負方向。位置控制指令的格式如圖3所示。
速度控制應(yīng)用于機器人關(guān)節(jié)以一定速度運動的場合。速度控制數(shù)據(jù)由一個字節(jié)的有符號數(shù)來表示,其最大值和最小值分別為27-1(=7F)和-27+1(=80)。
其中,0H~7F為電機的正方向,80H~FFH為電機的負方向。在速度控制模式下,需要停止指令、目標值為零的速度或電流控制指令或到達極限位置時,系統(tǒng)才能停止運行。
電流控制(轉(zhuǎn)矩控制)不僅可以應(yīng)用于電機的轉(zhuǎn)動方向和電流的控制方向相同的場合,還可以應(yīng)用在外力作用下,電機處于停止狀態(tài)或電機的轉(zhuǎn)動方向和電流的控制方向相反的場合。電流控制指令的格式和數(shù)據(jù)字節(jié)的最大最小值與速度控制指令相同。在電流控制模式下,停止方式也和速度控制模式相同。
位置速度復(fù)合控制應(yīng)用于一般位置控制,包括啟動階段的加速控制、速度控制、到達目標前的減速控制和位置控制四個部分。位置速度復(fù)合控制指令的控制數(shù)據(jù)包括3個字節(jié)的目標位置數(shù)據(jù),1個字節(jié)的目標速度數(shù)據(jù),1個字節(jié)的最大電流數(shù)據(jù),共5個字節(jié)。各數(shù)據(jù)的最大最小值分別對應(yīng)同上。
2.2 設(shè)定指令
控制增益設(shè)定指令用于設(shè)定位置、速度和電流控制的比例和積分常數(shù)。其指令格式如圖4所示。
運動范圍設(shè)定指令用于設(shè)定機器人關(guān)節(jié)的極限位置,其指令格式如圖5所示。其中動作端A和動作端B分別表示正方向的最大和最小位置。
系統(tǒng)設(shè)定主要用于根據(jù)控制系統(tǒng)的需要設(shè)定各種系統(tǒng)數(shù)據(jù)。設(shè)定數(shù)據(jù)由一個字節(jié)的無符號數(shù)來表示。
2.3 詢問指令
詢問指令的主要功能是查詢各電機的位置、速度和電流數(shù)據(jù),并且發(fā)信側(cè)只有接收到受信側(cè)返回的數(shù)據(jù)后才能發(fā)送下一個詢問指令,即詢問指令通過一問一答的形式進行通信。詢問指令僅由命令字節(jié)組成。
位置詢問指令的返信數(shù)據(jù)格式同圖3。
速度和電流詢問指令的返信數(shù)據(jù)均只有一個命令字節(jié)和一個數(shù)據(jù)字節(jié)。其返信數(shù)據(jù)的格式如圖6所示。
3 通 信
3.1 控制系統(tǒng)連接方式
由于該控制器的通信接口為RS 485,PC機一般只有常用的RS 232串行通信口,主控微機通過轉(zhuǎn)換器將標準的RS 232C轉(zhuǎn)換為RS 485后與控制器連接。一個串口可接16個控制器??刂破靼ù?lián)通信接口,電機位置傳感器脈沖接收接口,電機電流檢測A/D轉(zhuǎn)換接口,PWM控制輸出接口和其他I/O接口。主控微機、控制器、驅(qū)動器和電機的連接如圖7所示。
當主控微機對控制器進行控制時,所有的控制器均接收指令。每個控制器對接收的指令首先要進行ID校驗,如果接收的數(shù)據(jù)ID與本身的ID號一致,則執(zhí)行該指令,否則忽略該指令,如圖8所示。
3.2 通信時間
主控微機和控制器之間的通信速率為38 400 b/s。在每一個控制周期,設(shè)計了兩次接收和送信程序,即控制器在一個控制周期最多可同時接收和送出兩個字節(jié)的數(shù)據(jù)。需要注意的是,主控微機和控制器之間采用的是10位為一幀的異步串行通信方式,因此每個字節(jié)的通信時間還應(yīng)包括幀的起始位和停止位的傳輸時間。若傳輸兩個字節(jié)的數(shù)據(jù),則通信時間為[2×(8+2)×1 000]/38 400=0.521 ms,依此類推,即可計算出各指令的通信時間。主要指令及其通信時間如表1所示。
評論