<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于C8051F單片機的直流無(wú)刷電機轉速控制系統

一種基于C8051F單片機的直流無(wú)刷電機轉速控制系統

作者: 時(shí)間:2011-02-28 來(lái)源:網(wǎng)絡(luò ) 收藏
[摘要]:該文以C8051F020為例介紹了C8051F在無(wú)刷直流電機轉速控制中的應用、實(shí)現方法、硬件結構及軟件結構等。
[關(guān)鍵詞]:、無(wú)刷直流電機、轉速控制
[Abstract]:,configuration of software and hardware.
[Keywords] ,direct current and brushless motor, rotate speed Control
The article introduces application of C8051F020 in rotate speed Control of direct current and brushless motor, realization method
引言:
具有梯形反電動(dòng)勢的永磁同步電動(dòng)機通常被稱(chēng)為無(wú)刷直流電動(dòng)機,它具有結構簡(jiǎn)單、體積小、重量輕、效率高、高功率密度、啟動(dòng)扭矩大、慣量小和響應快等其它種類(lèi)直流電機無(wú)法比擬的特性。采用電子換向器替代了傳統直流電動(dòng)機的機械換向裝置,從而克服了電刷和換向器所引起的噪聲、火花、電磁干擾、壽命短等一系列弊病。由于無(wú)刷直流電動(dòng)機既具備交流電動(dòng)機的結構簡(jiǎn)單、運行可靠、維護方便等一系列優(yōu)點(diǎn),又具有直流電動(dòng)機的運行效率高、無(wú)勵磁損耗以及調速性能好等諸多優(yōu)點(diǎn),故其在在家用消費類(lèi)產(chǎn)品(空調、冰箱、洗衣機)和IT周邊產(chǎn)品(打印機、軟驅、硬驅?zhuān)┲械玫綇V泛的應用。
C8051F是美國Silabs公司推出的一種與51系列單片機內核兼容的單片機,具有高速、高性能、高集成度。以C8051F020為例,具有如下特點(diǎn):
C8051F020片上系統單片機片內資源:
一、模塊外設
(1)逐次逼近型8路12位ADC0
轉換速率最大100ksps
可編程增益放大器PGA
溫度傳感器
(2)8路8位ADC1輸入與P1口復用
轉換速率500ksps
可編程增益放大器PGA
(3)兩個(gè)12 位DAC
(4)兩個(gè)模擬電壓比較器
(5)電壓基準內部提供2.43V
外部基準可輸入
(6)精確的VDD監視器
二、高速8051微控制器內核
流水線(xiàn)式指令結構速度可達25MIPS
22個(gè)矢量中斷源
三、存儲器
片內4352字節數據RAM
64KBFlash程序存儲器可作非易失性存儲
外部可擴展的64KB 數據存儲器接口
四、數字外設
8個(gè)8位的端口I/O
I2CSPI2個(gè)增強型UART串口
可編程的16位計數器/定時(shí)器陣列(PCA)
5個(gè)通用16位計數器/定時(shí)器
專(zhuān)用的看門(mén)狗WDT
五、JTAG調試和邊界掃描接口,可實(shí)現在線(xiàn)實(shí)時(shí)動(dòng)態(tài)調試。
由以上特點(diǎn)可以看出,C8051F單片機具有豐富的片上硬件資源及高運算速度,這為實(shí)現復雜的控制算法提供了保障,而且幾乎不需系統擴展即可滿(mǎn)足控制系統對硬件資源的需求,極大地提高了系統可靠性。
硬件部分:
硬件部分主要由電機、電機驅動(dòng)電路及單片機及顯示塊組成。其功能框圖如下:

電機驅動(dòng)采用美國安森美公司開(kāi)發(fā)的高性能第二代單元無(wú)刷直流電機控制器MC33035。該芯片內部具有定頻調寬PWM電路,它集譯碼、過(guò)熱、過(guò)流、欠壓保護、正反轉控制等諸多功能于一身,是一種功能齊全的電機控制器。
通過(guò)脈寬調制PWM來(lái)控制電動(dòng)機電樞電壓可以實(shí)現調速。在正常情況下,誤差放大器輸出與振蕩器輸出鋸齒波信號比較后,產(chǎn)生脈寬調制(PWM)信號如下圖所示。改變輸出脈沖寬度,相當于改變供給電動(dòng)機繞組的平均電壓,從而控制其轉速。所以我們可以通過(guò)單片機控制DAC0的輸出,控制輸入到直流無(wú)刷電機的電壓,進(jìn)而控制PWM波的占空比達到控制電機轉速的目的。
MC33035的脈寬調節原理圖

軟件部分
無(wú)刷直流電機內置3個(gè)霍爾效應傳感器,用來(lái)檢測轉子的位置,也決定電機的換相,并可以根據該信號來(lái)計算電機的轉速。當電機正常運行時(shí),通過(guò)霍爾傳感器可得到3個(gè)脈寬為180度電角度的互相重疊的信號,而電機轉速的改變可以從位置傳感器輸出脈沖頻率的改變上反映出來(lái),因此可以利用單片機對這個(gè)脈沖信號進(jìn)行監測得到電機轉速。因頻率和轉速成正比測量,所以測出輸出脈沖的頻率即可計算出轉速。另外,為了提高精度,高速(>/1000HZ)采用測頻法,低速(1000HZ)采用測周法。
將脈沖信號輸出與INT0連接,采用INT0中斷對轉速脈沖計數,每1s讀一次計數值,將此值與預設的轉速值比較,若大于預設的轉速值,則減小DAC0的數值;若小于預設的轉速值,則增加DAC0的值,調整電機的轉速直到轉速值等于預設定的值。電機當前的轉速值可在七段數碼管上顯示,在電機的可控范圍內控制電機轉速等于預設值。
程序框圖:

單片機程序采用C51完成,部分源程序如下:
一、系統時(shí)鐘初始化,采用18.432MHZ外部晶振:
void SYSCLK_Init (void)
{
int i; //延時(shí)計數器
OSCXCN=0x67; //開(kāi)啟外部振蕩器18.432MHz晶體
for(i=0;i256;i++) ; //等待振蕩器啟振
while(!(OSCXCN0x80)) ; //等待晶體振蕩器穩定
OSCICN=0x88; //選擇外部振蕩器為系統時(shí)鐘源并允許丟失時(shí)鐘檢測器
}
二、IO口初始化
void PORT_Init (void)
{
XBR0 =0x07; //使能SMBus,SPI0,和UART0
XBR1 =0x04; //P1.0---int0
XBR2 =0x40; //使能數據交叉開(kāi)關(guān)和弱上拉
EMI0CF =0x27;
EMI0TC =0x21;
P74OUT =0xFF;
P0MDOUT =0x15;
P1MDOUT |=0x3C; //P1.2-P1.5推挽輸出
P1 = 0xc3;//P1.2-P1.5=0
}
三、定時(shí)器0初始化,定時(shí)時(shí)間為1ms
void Timer0_Init (void)
{
CKCON|=0x8;
TMOD|=0x1; //16位
Count1ms=10;
TR0 = 0; //停止定時(shí)器0
TH0 = (-SYSCLK/1000) >> 8; //設初值,1ms時(shí)溢出
TL0 = -SYSCLK/1000;
TR0 = 1; //開(kāi)啟定時(shí)器0
IE|= 0x2;
}
四、Timer0中斷:
void Timer0_ISR (void) interrupt 1
{
TH0 = (-SYSCLK/1000) >> 8;
TL0 = -SYSCLK/1000;
if (Count1ms) Count1ms--;
if (Count1s) Count1s--; //Count1s初值為1000
else
{
Count1s=1000;
SaveMotorCount=MotorCount; //MotorCount為測得每秒脈沖個(gè)數
MotorCount=0;
SD=SaveMotorCount/2-SetSpeed; //常量SetSpeed的值為轉速的預設值,單位為轉/秒
SaveMotorCount*=30; //轉/分
if (SD)
{
if ((SD>5)||(SD-5))
iDAC0-=SD*4;
else
iDAC0-=SD;
DAC0=iDAC0; }
}
}
五、外部0中斷:
void Int0_ISR (void) interrupt 0
{ MotorCount++;}
軟件仿真調試方法:
(1)觀(guān)察DAC0的窗口,改變DAC0的數值觀(guān)察電機轉速的變化
(2)使用示波器觀(guān)察CKMOT的頻率計算出電機的轉速與七段數碼管顯示的數值比較,比較速度測量的準確性
(3)改變常量SetSpeed的值(轉速的預設值),觀(guān)察速度穩定后七段數碼管的數值
(4)可將斷點(diǎn)設在外部中斷INT0的入口和T0中斷的入口運行程序觀(guān)察程序運行是否正常。
結束語(yǔ):
由于C8051F020的高集成度,因此只需少量外圍電路。另外,C8051F020內核與普通51系列兼容,且指令簡(jiǎn)單易學(xué),可縮短系統開(kāi)發(fā)周期。實(shí)踐證明,本控制系統精度高,穩定性好,硬件簡(jiǎn)單且工作可靠,具有很好的推廣價(jià)值。

關(guān)鍵詞:單片機、無(wú)刷直流電機、轉速控制

霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


霍爾傳感器相關(guān)文章:霍爾傳感器原理
脈寬調制相關(guān)文章:脈寬調制原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>