日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

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

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

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

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

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

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

          關鍵詞:單片機、無刷直流電機、轉速控制

          霍爾傳感器相關文章:霍爾傳感器工作原理


          霍爾傳感器相關文章:霍爾傳感器原理
          脈寬調制相關文章:脈寬調制原理


          評論


          相關推薦

          技術專區(qū)

          關閉