電機(jī)是一種可以實現(xiàn)電能與機(jī)械能之間相互轉(zhuǎn)換的設(shè)備,其可分為電動機(jī)和發(fā)電機(jī)兩種,前者能夠把電能轉(zhuǎn)換為機(jī)械能,而后者能把機(jī)械能轉(zhuǎn)化為電能。在學(xué)習(xí)STM32控制電機(jī),一般說的都是電動機(jī)。
電機(jī)的種類繁多,其可按工作電源、用途、轉(zhuǎn)子結(jié)構(gòu)、運(yùn)轉(zhuǎn)速度等進(jìn)行分類。這里,我們以用途為例,對常見的電機(jī)進(jìn)行分類,具體的框圖如下圖所示:
直流有刷電機(jī)(BDC)是一種內(nèi)含電刷裝置,可以將直流電能轉(zhuǎn)化為機(jī)械能的電動機(jī),在允許的范圍內(nèi),只需要調(diào)整電壓,即可調(diào)整它的轉(zhuǎn)速,因此這類電機(jī)擁有良好的調(diào)速性能。直流有刷電機(jī)的實物圖如下圖所示:
無刷電機(jī)是指無電刷和換向器的電機(jī),又稱為無換向器電機(jī),它由電機(jī)主體和驅(qū)動器組成,是一種典型的機(jī)電一體化產(chǎn)品。早在十九世紀(jì),就已經(jīng)出現(xiàn)了無刷形式的電機(jī),即交流鼠籠式異步電動機(jī),但是它有許多無法克服的缺陷,以至于人們無法不斷地探索更好的電機(jī)技術(shù)。直到上世紀(jì)中葉,晶體管誕生了,晶體管換向電路代替了傳統(tǒng)的電刷與換向器結(jié)構(gòu),這種新型無刷電機(jī)克服了第一代無刷電機(jī)的缺陷。直流無刷電機(jī)的實物圖如下所示:
舵機(jī)本身是一種”特殊“ 的直流電機(jī),其構(gòu)造不僅只有電機(jī)部分,而且還自帶了一個控制器,所以舵機(jī)本身就是一個閉環(huán)控制系統(tǒng)(伺服系統(tǒng))。當(dāng)我們給舵機(jī)發(fā)送指令信號時,它可以將指令信號變換為輸出軸的角度并保持住,即便是負(fù)載發(fā)生了變化,它也能夠進(jìn)行自動調(diào)節(jié)。舵機(jī)的實物圖如下圖所示:
步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機(jī),是現(xiàn)代數(shù)字程序控制系統(tǒng)中的主要執(zhí)行元件,應(yīng)用極為廣泛。在非超負(fù)載的情況下,步進(jìn)電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖個數(shù),不受負(fù)載變化的影響。步進(jìn)電機(jī)的實物圖如下如所示:
伺服電機(jī)是指在伺服系統(tǒng)中控制機(jī)械元件運(yùn)轉(zhuǎn)的電動機(jī)(伺服即絕對服從的,會克服慣性等影響,價格較昂貴) 它搭配上驅(qū)動器,形成一個完整的伺服系統(tǒng),就能夠精確的控制速度、位置等。伺服電機(jī)具有線性度高、起動轉(zhuǎn)矩大、運(yùn)行范圍廣、無自轉(zhuǎn)現(xiàn)象等顯著特點(diǎn),遺憾的是就目前來看,一套伺服系統(tǒng)的成本是比較昂貴的。
江蘇金華東機(jī)電電機(jī)類別 |
江蘇金華東機(jī)電特點(diǎn) |
直流有刷電機(jī) 直流無刷電機(jī)、 舵機(jī) 步進(jìn)電機(jī) 伺服電機(jī)
|
驅(qū)動簡單,成本低廉,但是噪音大,故障較多,壽命也相對較短 噪音低,運(yùn)轉(zhuǎn)流暢,高速,壽命更長,但是控制較為復(fù)雜 自成閉環(huán)系統(tǒng),角度控制優(yōu)秀,價格低,但是帶負(fù)載能力較弱 結(jié)構(gòu)簡單,驅(qū)動方便,沒有積累誤差,不過因為其可能存在丟步現(xiàn)象,精度不高 速度、位置控制精確,可低速運(yùn)行,效率高,壽命長,可以說是目前最可靠的一類電機(jī)但是價格較高
|
轉(zhuǎn)速:電機(jī)輸出軸的速度,單位一般是r/min(轉(zhuǎn)每分鐘),也常用RPM表示
輸出扭矩:表示了電機(jī)輸出軸可以輸出力的大小,單位一般為N.M或者kg.cm
工作電壓:電機(jī)正常工作時的電壓
額定電流:電機(jī)正常工作時的電流
堵轉(zhuǎn)電流:電機(jī)負(fù)載過大,驅(qū)動力不足,發(fā)生堵轉(zhuǎn)時的電流
電機(jī)控制相關(guān)的STM32外設(shè)
電機(jī)控制與STM32定時器的關(guān)系
電機(jī)的控制與STM32定時器有著密不可分的關(guān)系,舉一兩個例子:1、在直流有刷電機(jī)的控制中,我們常用脈沖寬度調(diào)制技術(shù)(PWM)來控制電壓的大小,以此改變直流有刷電機(jī)的轉(zhuǎn)速。
2、對于步進(jìn)電機(jī)而言,接收的脈沖個數(shù)決定了它的旋轉(zhuǎn)位置,脈沖頻率決定了它的旋轉(zhuǎn)速度。
從上面的例子可以看出,電機(jī)的控制本質(zhì)上就是脈沖的控制,因此我們引入了STM32定時器,以便對脈沖信號實現(xiàn)更高效的控制。
STM32有眾多的定時器,其中包括兩個基本定時器(TIM6和TIM7)10個通用定時器(TIM2-TIM5、TIM9-TIM14)、2個高級定時器(TIM1和TIM8),這些定時器彼此完全獨(dú)立,不共享任何資源。主要特性包括:16位自動重轉(zhuǎn)載遞增計數(shù)器,16位可編程預(yù)分頻器,預(yù)分頻系數(shù)1-65536,用于對計數(shù)器時鐘頻率進(jìn)行分頻,還可以出發(fā)DAC同步電路,以及生成中斷/DMA請求。
時鐘源:定時器的核心就是計數(shù)器,要實現(xiàn)計數(shù)的功能,首先要給它一個時鐘源,基本定時器時鐘掛載在APB1總線,它的時鐘來源于APB1但是,基本定時器的時鐘不是直接由APB1總線直接提供的,而是先經(jīng)過一個倍頻器。當(dāng)APB1的預(yù)分頻器系數(shù)為1,這個倍頻器系數(shù)為1,即定時器的頻率就等于APB1的頻率,否則定時器的頻率就等于2倍的APB1時鐘頻率。
控制器:控制器除了控制定時器的復(fù)位、使能、計數(shù)等功能之外,還可以用于觸發(fā)DAC轉(zhuǎn)換
時基單元:時基單元包括計數(shù)器寄存器(CNT)、預(yù)分頻寄存器(PSC)、自動重裝載寄存器(ARR)?;径〞r器的三個寄存器都是16位寄存器,即可設(shè)置值范圍為0-65535.時基單元的預(yù)分頻器PSC,它有一個輸入和一個輸出。輸入CK_PSC來源于控制器實際上就是來自于CK_INT,即2倍的APB1時鐘,輸出是分頻后的時鐘。CK_CNT = CK_PSC/(PSC[15:0]+1)
影子寄存器:從框圖中可以看到,預(yù)分頻器PSC后面有個影子寄存器,自動重裝載寄存器也有一個影子寄存器。這就表示這些寄存器由影子寄存器,影子寄存器實質(zhì)就是一個實際起作用的寄存器,不可直接訪問。舉個例子,我們可以把預(yù)分頻系數(shù)寫入預(yù)分頻寄存器中,但是預(yù)分頻寄存器只是起到緩存數(shù)據(jù)的作用,只有等到更新事件發(fā)生時,預(yù)分頻器的值才會被寫入到其影子寄存器中,這時才真正起作用。自動重裝載寄存器同上述一樣,唯一不同的在于自動重裝載寄存器是否具有緩沖作用還受到ARPE的影響,當(dāng)該位置為0時,ARR寄存器不進(jìn)行緩沖,直接寫入影子寄存器中,當(dāng)該位置為1時,不起作用,等到更新事件發(fā)生時,才寫入到影子寄存器中。這就是二者之間的差別。
更新事件:更新事件產(chǎn)生有兩種情況,其一是由軟件產(chǎn)生,將TIMx_EGR寄存器的UG置位1,產(chǎn)生更新事件后,硬件自動會將UG位清0,二是由硬件產(chǎn)生,滿足以下條件時即可,計數(shù)器的值等于自動重裝載寄存器的影子寄存器的值,這時產(chǎn)生更新事件。
控制器包括:從模式控制器、編碼器接口和觸發(fā)控制器(TRGO) 。從模式控制器可以控制計數(shù)器復(fù)位、啟動、遞增/遞減、計數(shù)。編碼器接口針對編碼器計數(shù)。觸發(fā)控制器用來提供觸發(fā)信號給別的外設(shè),比如為其他定時器提供時鐘或者為DAC/ADC的觸發(fā)轉(zhuǎn)換提供信號。
包括基本定時器上面的時基單元。
高級定時器的計數(shù)模式有三種:遞增計數(shù)模式、遞減計數(shù)模式和中心對齊模式
遞增計數(shù)模式:遞增計數(shù)模式和基本計數(shù)器的計數(shù)模式是一樣的。
遞減計數(shù)模式:遞減計數(shù)模式就是來一個計數(shù)脈沖就減1,稱為定時器下溢。定時器溢出就會產(chǎn)生更新事件的發(fā)生,然后計數(shù)器又重新從自動重裝載寄存器影子寄存器的值開始遞減計數(shù),如此循環(huán)。
中心對齊模式:中心對齊模式就是該模式下計數(shù)器先從0開始遞增計數(shù),直到計數(shù)器的值等于自動重裝載寄存器的值-1時,定時器上溢,同時生成更新事件,然后自動重載寄存器影子寄存器的值開始遞減計算,直到計數(shù)值等于1時,定時器下溢,同時生成更新事件,然后又從0開始遞增計數(shù),依次循環(huán)。每次定時器上溢或者下溢都會生成更新事件。計數(shù)器的計數(shù)模式的設(shè)置可以參考相應(yīng)的寄存器配置。
輸入捕獲包括4個輸入捕獲通道、輸入濾波和邊沿檢測以及預(yù)分頻器等部分。IO端口通過復(fù)用功能與這些通道相連。配置好IO端口的復(fù)用之后,將需要測量的信號輸入到相應(yīng)的IO端口,輸入捕獲部分可以對輸入信號的上升沿、下降沿或者雙邊沿進(jìn)行捕獲,常見的測量有:測量輸入信號的脈沖寬度、測量PWM輸入信號的頻率和占空比等。
輸出比較包括:4個輸出比較通道,3個互補(bǔ)通道、死區(qū)發(fā)生器以及輸出控制器,用于輸出比較模式或者PWM模式.
高級定時器輸出比較部分和通用定時器相比,多了帶死區(qū)控制的互補(bǔ)輸出功能。
斷路功能也稱之為剎車功能,一般用于電機(jī)控制的剎車。斷路源可以是剎車輸入的引腳,也可以是一個時鐘失敗事件。時鐘失敗事件由復(fù)位時鐘控制器中的時鐘安全系統(tǒng)產(chǎn)生。系統(tǒng)復(fù)位后,斷路功能默認(rèn)被禁止,MOE位為低。
電機(jī)是一種可以實現(xiàn)電能與機(jī)械能之間相互轉(zhuǎn)換的設(shè)備,其可分為電動機(jī)和發(fā)電機(jī)兩種,前者能夠把電能轉(zhuǎn)換為機(jī)械能,而后者能把機(jī)械能轉(zhuǎn)化為電能。在學(xué)習(xí)STM32控制電機(jī),一般說的都是電動機(jī)。
電機(jī)的種類繁多,其可按工作電源、用途、轉(zhuǎn)子結(jié)構(gòu)、運(yùn)轉(zhuǎn)速度等進(jìn)行分類。這里,我們以用途為例,對常見的電機(jī)進(jìn)行分類,具體的框圖如下圖所示:
直流有刷電機(jī)(BDC)是一種內(nèi)含電刷裝置,可以將直流電能轉(zhuǎn)化為機(jī)械能的電動機(jī),在允許的范圍內(nèi),只需要調(diào)整電壓,即可調(diào)整它的轉(zhuǎn)速,因此這類電機(jī)擁有良好的調(diào)速性能。直流有刷電機(jī)的實物圖如下圖所示:
無刷電機(jī)是指無電刷和換向器的電機(jī),又稱為無換向器電機(jī),它由電機(jī)主體和驅(qū)動器組成,是一種典型的機(jī)電一體化產(chǎn)品。早在十九世紀(jì),就已經(jīng)出現(xiàn)了無刷形式的電機(jī),即交流鼠籠式異步電動機(jī),但是它有許多無法克服的缺陷,以至于人們無法不斷地探索更好的電機(jī)技術(shù)。直到上世紀(jì)中葉,晶體管誕生了,晶體管換向電路代替了傳統(tǒng)的電刷與換向器結(jié)構(gòu),這種新型無刷電機(jī)克服了第一代無刷電機(jī)的缺陷。直流無刷電機(jī)的實物圖如下所示:
舵機(jī)本身是一種”特殊“ 的直流電機(jī),其構(gòu)造不僅只有電機(jī)部分,而且還自帶了一個控制器,所以舵機(jī)本身就是一個閉環(huán)控制系統(tǒng)(伺服系統(tǒng))。當(dāng)我們給舵機(jī)發(fā)送指令信號時,它可以將指令信號變換為輸出軸的角度并保持住,即便是負(fù)載發(fā)生了變化,它也能夠進(jìn)行自動調(diào)節(jié)。舵機(jī)的實物圖如下圖所示:
步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機(jī),是現(xiàn)代數(shù)字程序控制系統(tǒng)中的主要執(zhí)行元件,應(yīng)用極為廣泛。在非超負(fù)載的情況下,步進(jìn)電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖個數(shù),不受負(fù)載變化的影響。步進(jìn)電機(jī)的實物圖如下如所示:
伺服電機(jī)是指在伺服系統(tǒng)中控制機(jī)械元件運(yùn)轉(zhuǎn)的電動機(jī)(伺服即絕對服從的,會克服慣性等影響,價格較昂貴) 它搭配上驅(qū)動器,形成一個完整的伺服系統(tǒng),就能夠精確的控制速度、位置等。伺服電機(jī)具有線性度高、起動轉(zhuǎn)矩大、運(yùn)行范圍廣、無自轉(zhuǎn)現(xiàn)象等顯著特點(diǎn),遺憾的是就目前來看,一套伺服系統(tǒng)的成本是比較昂貴的。
江蘇金華東機(jī)電電機(jī)類別 |
江蘇金華東機(jī)電特點(diǎn) |
直流有刷電機(jī) 直流無刷電機(jī)、 舵機(jī) 步進(jìn)電機(jī) 伺服電機(jī)
|
驅(qū)動簡單,成本低廉,但是噪音大,故障較多,壽命也相對較短 噪音低,運(yùn)轉(zhuǎn)流暢,高速,壽命更長,但是控制較為復(fù)雜 自成閉環(huán)系統(tǒng),角度控制優(yōu)秀,價格低,但是帶負(fù)載能力較弱 結(jié)構(gòu)簡單,驅(qū)動方便,沒有積累誤差,不過因為其可能存在丟步現(xiàn)象,精度不高 速度、位置控制精確,可低速運(yùn)行,效率高,壽命長,可以說是目前最可靠的一類電機(jī)但是價格較高
|
轉(zhuǎn)速:電機(jī)輸出軸的速度,單位一般是r/min(轉(zhuǎn)每分鐘),也常用RPM表示
輸出扭矩:表示了電機(jī)輸出軸可以輸出力的大小,單位一般為N.M或者kg.cm
工作電壓:電機(jī)正常工作時的電壓
額定電流:電機(jī)正常工作時的電流
堵轉(zhuǎn)電流:電機(jī)負(fù)載過大,驅(qū)動力不足,發(fā)生堵轉(zhuǎn)時的電流
電機(jī)控制相關(guān)的STM32外設(shè)
電機(jī)控制與STM32定時器的關(guān)系
電機(jī)的控制與STM32定時器有著密不可分的關(guān)系,舉一兩個例子:1、在直流有刷電機(jī)的控制中,我們常用脈沖寬度調(diào)制技術(shù)(PWM)來控制電壓的大小,以此改變直流有刷電機(jī)的轉(zhuǎn)速。
2、對于步進(jìn)電機(jī)而言,接收的脈沖個數(shù)決定了它的旋轉(zhuǎn)位置,脈沖頻率決定了它的旋轉(zhuǎn)速度。
從上面的例子可以看出,電機(jī)的控制本質(zhì)上就是脈沖的控制,因此我們引入了STM32定時器,以便對脈沖信號實現(xiàn)更高效的控制。
STM32有眾多的定時器,其中包括兩個基本定時器(TIM6和TIM7)10個通用定時器(TIM2-TIM5、TIM9-TIM14)、2個高級定時器(TIM1和TIM8),這些定時器彼此完全獨(dú)立,不共享任何資源。主要特性包括:16位自動重轉(zhuǎn)載遞增計數(shù)器,16位可編程預(yù)分頻器,預(yù)分頻系數(shù)1-65536,用于對計數(shù)器時鐘頻率進(jìn)行分頻,還可以出發(fā)DAC同步電路,以及生成中斷/DMA請求。
時鐘源:定時器的核心就是計數(shù)器,要實現(xiàn)計數(shù)的功能,首先要給它一個時鐘源,基本定時器時鐘掛載在APB1總線,它的時鐘來源于APB1但是,基本定時器的時鐘不是直接由APB1總線直接提供的,而是先經(jīng)過一個倍頻器。當(dāng)APB1的預(yù)分頻器系數(shù)為1,這個倍頻器系數(shù)為1,即定時器的頻率就等于APB1的頻率,否則定時器的頻率就等于2倍的APB1時鐘頻率。
控制器:控制器除了控制定時器的復(fù)位、使能、計數(shù)等功能之外,還可以用于觸發(fā)DAC轉(zhuǎn)換
時基單元:時基單元包括計數(shù)器寄存器(CNT)、預(yù)分頻寄存器(PSC)、自動重裝載寄存器(ARR)?;径〞r器的三個寄存器都是16位寄存器,即可設(shè)置值范圍為0-65535.時基單元的預(yù)分頻器PSC,它有一個輸入和一個輸出。輸入CK_PSC來源于控制器實際上就是來自于CK_INT,即2倍的APB1時鐘,輸出是分頻后的時鐘。CK_CNT = CK_PSC/(PSC[15:0]+1)
影子寄存器:從框圖中可以看到,預(yù)分頻器PSC后面有個影子寄存器,自動重裝載寄存器也有一個影子寄存器。這就表示這些寄存器由影子寄存器,影子寄存器實質(zhì)就是一個實際起作用的寄存器,不可直接訪問。舉個例子,我們可以把預(yù)分頻系數(shù)寫入預(yù)分頻寄存器中,但是預(yù)分頻寄存器只是起到緩存數(shù)據(jù)的作用,只有等到更新事件發(fā)生時,預(yù)分頻器的值才會被寫入到其影子寄存器中,這時才真正起作用。自動重裝載寄存器同上述一樣,唯一不同的在于自動重裝載寄存器是否具有緩沖作用還受到ARPE的影響,當(dāng)該位置為0時,ARR寄存器不進(jìn)行緩沖,直接寫入影子寄存器中,當(dāng)該位置為1時,不起作用,等到更新事件發(fā)生時,才寫入到影子寄存器中。這就是二者之間的差別。
更新事件:更新事件產(chǎn)生有兩種情況,其一是由軟件產(chǎn)生,將TIMx_EGR寄存器的UG置位1,產(chǎn)生更新事件后,硬件自動會將UG位清0,二是由硬件產(chǎn)生,滿足以下條件時即可,計數(shù)器的值等于自動重裝載寄存器的影子寄存器的值,這時產(chǎn)生更新事件。
控制器包括:從模式控制器、編碼器接口和觸發(fā)控制器(TRGO) 。從模式控制器可以控制計數(shù)器復(fù)位、啟動、遞增/遞減、計數(shù)。編碼器接口針對編碼器計數(shù)。觸發(fā)控制器用來提供觸發(fā)信號給別的外設(shè),比如為其他定時器提供時鐘或者為DAC/ADC的觸發(fā)轉(zhuǎn)換提供信號。
包括基本定時器上面的時基單元。
高級定時器的計數(shù)模式有三種:遞增計數(shù)模式、遞減計數(shù)模式和中心對齊模式
遞增計數(shù)模式:遞增計數(shù)模式和基本計數(shù)器的計數(shù)模式是一樣的。
遞減計數(shù)模式:遞減計數(shù)模式就是來一個計數(shù)脈沖就減1,稱為定時器下溢。定時器溢出就會產(chǎn)生更新事件的發(fā)生,然后計數(shù)器又重新從自動重裝載寄存器影子寄存器的值開始遞減計數(shù),如此循環(huán)。
中心對齊模式:中心對齊模式就是該模式下計數(shù)器先從0開始遞增計數(shù),直到計數(shù)器的值等于自動重裝載寄存器的值-1時,定時器上溢,同時生成更新事件,然后自動重載寄存器影子寄存器的值開始遞減計算,直到計數(shù)值等于1時,定時器下溢,同時生成更新事件,然后又從0開始遞增計數(shù),依次循環(huán)。每次定時器上溢或者下溢都會生成更新事件。計數(shù)器的計數(shù)模式的設(shè)置可以參考相應(yīng)的寄存器配置。
輸入捕獲包括4個輸入捕獲通道、輸入濾波和邊沿檢測以及預(yù)分頻器等部分。IO端口通過復(fù)用功能與這些通道相連。配置好IO端口的復(fù)用之后,將需要測量的信號輸入到相應(yīng)的IO端口,輸入捕獲部分可以對輸入信號的上升沿、下降沿或者雙邊沿進(jìn)行捕獲,常見的測量有:測量輸入信號的脈沖寬度、測量PWM輸入信號的頻率和占空比等。
輸出比較包括:4個輸出比較通道,3個互補(bǔ)通道、死區(qū)發(fā)生器以及輸出控制器,用于輸出比較模式或者PWM模式.
高級定時器輸出比較部分和通用定時器相比,多了帶死區(qū)控制的互補(bǔ)輸出功能。
斷路功能也稱之為剎車功能,一般用于電機(jī)控制的剎車。斷路源可以是剎車輸入的引腳,也可以是一個時鐘失敗事件。時鐘失敗事件由復(fù)位時鐘控制器中的時鐘安全系統(tǒng)產(chǎn)生。系統(tǒng)復(fù)位后,斷路功能默認(rèn)被禁止,MOE位為低。