基于ATmegal6單片機的通用電機控制裝置的設(shè)計
摘要:以ATmegal6單片機為控制核心,給出了利用主從兩片單片機來實現(xiàn)高效電機控制和人機接口,并通過單片機編程實現(xiàn)對多種交直流電機和步進電機的驅(qū)動控制,同時用RS232/485工業(yè)總線來將多個控制器連接成網(wǎng)絡(luò),從而實現(xiàn)電機的網(wǎng)絡(luò)化遠程控制的設(shè)計方法。
關(guān)鍵詞:單片機;電機控制;聯(lián)網(wǎng)通信
0 引言
電機的驅(qū)動與控制是現(xiàn)代電子技術(shù)中一個重要的研究課題,不同種類的電動機需要有不同的控制和驅(qū)動方法。使用高性能單片機作為電機控制驅(qū)動裝置的核心,可以有效降低電機驅(qū)動器的成本,擴展應(yīng)用范圍,提高使用靈活性。
ATmegal6單片機是ATMEL公司的一款高性能8位AVR單片機,它內(nèi)部帶有功能強大的可編程定時和計數(shù)單元,通過編程可以很容易地產(chǎn)生
各類交、直流電機以及步進電機的驅(qū)動波形,因此,利用這類功能強大的單片機作為電機控制器的核心,可以使控制器應(yīng)用更加靈活、應(yīng)用范圍更廣、維護成本更低。本文設(shè)計出的電機通用控制裝置功能齊全,其液晶顯示裝置和按鍵可以控制并顯示電機的運行狀態(tài),而數(shù)字化的溫度傳感器則能有效準確地監(jiān)控電機的運行溫度,RS485/232總線通信接口可以將多個控制器進行聯(lián)網(wǎng)。從而實現(xiàn)電機的智能化遠程控制。
1 電機控制及驅(qū)動電路設(shè)計
圖l所示是一種通用電機控制裝置系統(tǒng)的總體結(jié)構(gòu)圖。其整個單片機系統(tǒng)以ATmegal6單片機為控制核心,其中從單片機和主單片機利用I2C總線進行通信。從單片機連接按鍵和液晶屏,可以實現(xiàn)人機接口的功能,這樣即可以為主單片機節(jié)約寶貴的I/O資源,又可以提高系統(tǒng)的運行效率。另外,DSl8820采用單總線結(jié)構(gòu)采集溫度,可以實現(xiàn)對電機溫度的監(jiān)控。
1.1 ATmegal6主控電路
ATmegal6單片機具有3個PWM功能的定時器/計數(shù)器T/C0、T/Cl和T/C2,其中T/C0和T/C2是兩個8位的定時器/計數(shù)器,而T/Cl是16位具有輸入捕獲功能的定時器/計數(shù)器。
本系統(tǒng)的主控單片機電路如圖2所示。它以megal6單片機為核心,配有外圍復位電路和振蕩器電路,單片機所有I/0都可獨立引出,以便與外部電路的連接和擴展。
1.2 電機溫度監(jiān)測電路
電機的表面溫度是衡量電機是否在安全狀態(tài)下工作的一個重要指標。本系統(tǒng)的電機溫度監(jiān)測電路利用美國DALLAS半導體公司推出的單總線數(shù)字化測溫集成電路DSl8820來實現(xiàn)。該數(shù)字化傳感器具有很寬的測溫范圍(-55℃~+125℃),工作時只需要三根引線,而且多只DSl8820可以并行連接,以實現(xiàn)對多個電動機的溫度監(jiān)控。
系統(tǒng)工作時,DSl8820可把測得的溫度數(shù)據(jù)傳給單片機。如果超過用戶設(shè)定,系統(tǒng)還可執(zhí)行電機保護和報警等程序。電機溫度監(jiān)測系統(tǒng)的結(jié)構(gòu)如圖3所示,圖4所示是其溫度監(jiān)控電路。
1.3 鍵盤及LCD接口電路
本系統(tǒng)的按鍵和LCD接口控制電路以單片機AT89S51為核心,該電路使用I2C總線與主單片機進行通信。利用這種主從單片機分離的設(shè)計可將一些大量占用IO端口資源的低速設(shè)備進行集中管理,從而為主單片機節(jié)約硬件資源和程序開銷,提高系統(tǒng)的使用靈活性和運行效率。其LCD顯示和鍵盤處理電路如圖5所示。
1.4 RS-232/485通信電路
為了適應(yīng)電機控制的網(wǎng)絡(luò)化、智能化需求,本電機控制器帶有RS232/RS485數(shù)據(jù)接口。用戶利用這兩種總線接口可以方便地將多個電機控制器連接成網(wǎng),以方便電機系統(tǒng)的集中化管理。RS485接口電路使用收發(fā)控制的“透明化”管理,MAX485芯片的收發(fā)切換由NE555組成的單穩(wěn)態(tài)電路自動完成,當單片機需要向RS485總線傳輸數(shù)據(jù)時,NE555可自動將MAX485切換至發(fā)送狀態(tài),數(shù)據(jù)傳送完畢后,MAX485又將恢復至接收狀態(tài)。RS-232/485總線驅(qū)動電路如圖6所示。
1.5 電機驅(qū)動電路
本控制器的驅(qū)動部分使用凌陽SPGT62C19B電機驅(qū)動芯片來實現(xiàn)對直流電機和步進電機的驅(qū)動。SPGT62C19B是低電壓單片式步進電機驅(qū)動
器集成電路芯片,其輸出電壓可達40 V,輸出電流可達750mA。設(shè)計時,可由輸入的邏輯電平來決定輸出脈沖的寬度及頻率。由該芯片組成的電機驅(qū)動系統(tǒng)將脈沖發(fā)生器、脈沖分配器、脈沖放大器合為一體,故可省去很多外圍器件。與其它部件一樣,主控電路也被設(shè)計成為一個獨立的模塊.以方便更換,而且該模塊還可用于別的場合。其電機驅(qū)動電路圖如圖7所示。
1.6 轉(zhuǎn)速測量電路
轉(zhuǎn)速測量可采用一組鼠標上用的紅外對管來實現(xiàn),其電路原理如圖8所示。當紅外發(fā)射管與紅外接收管之間被直流電機光柵轉(zhuǎn)盤的不透明部分遮擋時,紅外接收管處于截止狀態(tài),此時圖中的SPEED輸出高電平。反之,當光柵轉(zhuǎn)盤的通光槽轉(zhuǎn)至紅外對管之間時,紅外接收管處于導通狀態(tài),此時SPEED輸出低電平。這樣,將SPEED連接到單片機的I/O口,即可通過定時計數(shù)的方法計算出電機的轉(zhuǎn)動速度。
2 單片機程序設(shè)計
2.1 主程序
本驅(qū)動器的程序設(shè)計使用模塊化編程思想,其主程序用于完成對各子程序的調(diào)用。系統(tǒng)工作后,首先調(diào)用初始化子程序,以完成具有復用功能的I/0腳的選擇和設(shè)置、各種中斷功能的選擇及其設(shè)置、AT89S51和ATmegal6的初始化、中斷屏蔽寄存器的設(shè)置、中斷寄存器的清零、系統(tǒng)變量的初始化等,最后完成開中斷。初始化完成之后,系統(tǒng)將調(diào)用驅(qū)動程序,并完成系統(tǒng)的起動。系統(tǒng)起動之后,即進入正常運行狀態(tài)。系統(tǒng)的全部運行過程均可由鍵盤進行實時控制和調(diào)節(jié)。
2.2 初始化程序
系統(tǒng)的初始化程序流程圖如圖9所示。該程序中包括LCD顯示器、鍵盤等人機接口部分的初始化。主要功能是對具有復用功能引腳的選擇和設(shè)置,以及各種中斷功能的選擇及設(shè)置(如外部鍵盤的中斷選擇等),同時包括AT89S5l的初始化、鍵盤的方式選擇、工作時間的確定、顯示方式的設(shè)定等。而系統(tǒng)變量的初始化包括溫度的設(shè)定,轉(zhuǎn)速初值的設(shè)定等。
2.3 控制程序
系統(tǒng)起動后即進入控制程序??刂瞥绦蚴窍到y(tǒng)程序的主要部分,主要用來保證系統(tǒng)在給定的轉(zhuǎn)速下正常運行,該程序主要調(diào)節(jié)單片機PWM口的占空比,從而調(diào)節(jié)電機繞組兩端的平均電壓,達到調(diào)速的目的,其控制程序流程如圖10所示。
3 結(jié)束語
本設(shè)計實現(xiàn)了一種以ATmega16單片機為核心的電機控制裝置。該裝置具有各類電機驅(qū)動脈沖的輸出、電機溫度監(jiān)測與保護、人機操作界面和長距離工業(yè)總線通信等功能。利用AVR單片機具備的軟硬件特點,可實現(xiàn)對多種電機的驅(qū)動與控制,以用于電機驅(qū)動研究、網(wǎng)絡(luò)化電機集中控制等領(lǐng)域。由于該控制器采用主從單片機設(shè)計,系統(tǒng)的運行得以很好地分工,其中從單片機實現(xiàn)低速人際交互,主單片機則實現(xiàn)高速的電機驅(qū)動與控制,主從單片機各司其職,故可使系統(tǒng)的運行效率達到最高。本電機控制裝置的架構(gòu)開放,使用靈活,可以很好地應(yīng)用于直流電機的調(diào)速控制,交流電機的變頻驅(qū)動,步進電機的步距細分等多種電機驅(qū)動和控制領(lǐng)域。