胡發(fā)煥,鄭大騰,郭猷敏
(井岡山大學(xué)機電工程學(xué)院,江西 吉安 343009)
“單片機原理及應(yīng)用”是電氣工程、測控技術(shù)與儀器、機械電子工程等電控類專業(yè)的基礎(chǔ)核心課程,是從事機電、自動化設(shè)計人才必須掌握的一門專業(yè)課程。該課程不僅要求掌握相應(yīng)的理論知識,同時具有很強的實踐性和工程性,強調(diào)理論教學(xué)和實踐教學(xué)的高度結(jié)合[1-4]。但在傳統(tǒng)的單片機教學(xué)過程中,實踐環(huán)節(jié)卻沒有得到應(yīng)有的重視,與培養(yǎng)大學(xué)生實踐和創(chuàng)新能力的要求差距較大[5-8]。單片機課程設(shè)計是整個課程教學(xué)的重要實踐環(huán)節(jié),它將單片機原理、模擬電路、數(shù)字電路、自動控制原理等相關(guān)課程的知識緊密結(jié)合起來,為提高課程設(shè)計效果需要根據(jù)教師提出的要求,設(shè)計完成一個實際項目的設(shè)計過程。劉恒[9]采用現(xiàn)成的實驗箱形式完成實驗,主要訓(xùn)練學(xué)生的軟件編程能力,難以培養(yǎng)學(xué)生的電路設(shè)計能力。依據(jù)老師布置的項目,學(xué)生自己設(shè)計硬件電路、選擇電子元器件、設(shè)計PCB 板、焊接元件、編寫程序、聯(lián)機調(diào)試等一系列過程,完成一個單片機應(yīng)用的小系統(tǒng)。課程設(shè)計實驗環(huán)節(jié)是以學(xué)生為主體,以培養(yǎng)學(xué)生的綜合設(shè)計能力和創(chuàng)新能力為目標(biāo)[10]。
教師在單片機課程設(shè)計選題時,應(yīng)該結(jié)合學(xué)生的自身需求,同時拓展學(xué)生的知識面,王一[11]采用的主控芯片在拓展學(xué)生知識面上有所欠缺。大學(xué)生在學(xué)習(xí)期間,常參加各類學(xué)科競賽,通過學(xué)科競賽可以檢驗和提高學(xué)生的理論基礎(chǔ)和實踐創(chuàng)新能力。在電類學(xué)科競賽中常會考查學(xué)生對閉環(huán)控制系統(tǒng)的設(shè)計能力,控制系統(tǒng)的執(zhí)行器通常是電機類。因此,本文以基于單片機的直流電機閉環(huán)控制系統(tǒng)設(shè)計為單片機的課程設(shè)計題目,在主控芯片上選用性能更高的單片機,以達(dá)到更好地培養(yǎng)學(xué)生的專業(yè)綜合設(shè)計能力和促進(jìn)學(xué)生參加學(xué)科競賽的目標(biāo)。
通過單片機課程設(shè)計,學(xué)生應(yīng)掌握以下的知識點:(1)掌握單片機編程的基本知識;(2)掌握閉環(huán)控制經(jīng)典控制方法,即比例-積分-微分(PID)控制算法;(3)掌握脈沖寬度調(diào)制(Pulse Width Modulation,PWM)技術(shù)的相關(guān)知識;(4)掌握直流電機驅(qū)動電路的設(shè)計方法;(5)掌握一種電機轉(zhuǎn)速和轉(zhuǎn)向檢測傳感器的使用方法。通過單片機的課程設(shè)計,讓學(xué)生能夠舉一反三,達(dá)到培養(yǎng)學(xué)生的綜合設(shè)計和創(chuàng)新能力的目標(biāo)。
直流電機閉環(huán)控制系統(tǒng),要求電機能夠快速地啟動、停止和頻繁正反轉(zhuǎn),且電機的實際轉(zhuǎn)速和系統(tǒng)要求轉(zhuǎn)速一致,因此必須具有轉(zhuǎn)速負(fù)反饋,構(gòu)成閉環(huán)控制系統(tǒng),其原理如圖1 所示。
圖1 直流電機閉環(huán)控制系統(tǒng)
直流電機調(diào)速方案主要有3 種:調(diào)節(jié)電樞電壓、調(diào)節(jié)電樞的串聯(lián)阻抗和調(diào)節(jié)電機的磁場強度[12]。其中調(diào)節(jié)電樞電壓用得最廣,本文即采用這種方式。電樞電壓采用PWM 方式調(diào)節(jié),這種方式調(diào)節(jié)范圍寬(可在0 ~100%之間來連續(xù)調(diào)節(jié))且效率高。它是根據(jù)窄脈沖面積等效的原理,通過改變高電平的比例(占空比),將固定的直流電壓變換成所需要的直流電壓,從而改變電機的電樞電壓:
式中:Ud為電樞電壓;Us為電源電壓;ton為PWM 脈沖高電平時間;t 為PWM 周期;ρ 為兩者之比為占空比,當(dāng)ρ =0 時Ud=0,ρ =1 時Ud=Us。
調(diào)速系統(tǒng)框圖如圖2所示。圖中,VT1 ~VT4為4 個開關(guān)管構(gòu)成H 橋控制電路,當(dāng)VT1 和VT3 導(dǎo)通時,VT2 和VT4截止,電機正轉(zhuǎn);當(dāng)VT2 和VT4 導(dǎo)通時,VT1和VT3 截止,電機反轉(zhuǎn)。通過調(diào)節(jié)PWM脈沖的占空比,實現(xiàn)對電機轉(zhuǎn)速的控制。同時通過轉(zhuǎn)速檢測傳感器,獲得電機的轉(zhuǎn)速,以達(dá)到閉環(huán)控制的目標(biāo)。為更好地實現(xiàn)電機的閉環(huán)控制,本文的單片機采用某公司C8051F310 單片機[13],該單片機較教材選用的80C51 單片機功能強,其特點:該系統(tǒng)資源豐富,帶內(nèi)部晶振,有21 個外部輸入的12 位ADC和2 個10 位DAC,29 個I/O 端口,15 個向量中斷源,可編程的16 位計數(shù)器定時器陣列,4 個通用16 位計數(shù)器/定時器,5 個捕捉比較模塊,可輸出16 位PWM 脈沖。選用該單片機除了其強大功能,還可以訓(xùn)練學(xué)生學(xué)習(xí)更高級別單片機,擴充學(xué)生知識面。
圖2 數(shù)字化閉環(huán)PWM直流調(diào)速系統(tǒng)硬件框圖
(1)單片機端口分配。
在學(xué)科競賽中用到的輪式機器人大多是兩輪機器人,因此本文設(shè)計控制2 個直流電機,即輪式機器人的左右輪。單片機采用內(nèi)部晶振,每個電機分配1 個電機轉(zhuǎn)速控制端口(PWM輸出端口)、1 個電機轉(zhuǎn)向控制端口、1個獲取電機轉(zhuǎn)速反饋端口和1 個獲取電機轉(zhuǎn)向反饋端口,每個電機需用4 個端口,2 個電機共需8 個I/O端口。顯示屏需4 個I/O 端口。按鍵需5 個I/O 端口,端口分配如圖3 所示。具體分配是左右輪電機的PWM輸出端口分別是P1.0 和P1.1;左右輪電機的轉(zhuǎn)向控制端口分別為P1.4和P1.5;反饋左右輪電機速度端口分別為P1.2 和P1.3;反饋左右輪電機轉(zhuǎn)向端口分別為P1.6 和P1.7,通過P1 的8 個端口實現(xiàn)對2 個電機的閉環(huán)控制。顯示屏采用SPI通信方式,占用P0.0 ~0.2 端口和C2CK 端口。按鍵用P2.2 ~2.6 端口。
圖3 單片機端口分配
(2)電機驅(qū)動電路及分析
單片機輸出的PWM 信號不能直接驅(qū)動電機,需經(jīng)過電機驅(qū)動電路才能控制電機的正常工作。本文采用圖2 的H橋方式實現(xiàn)電機的控制。H橋的4 個開關(guān)管選用場效應(yīng)管,它具有損耗小、工作電流大的優(yōu)勢。采用2個半橋驅(qū)動器IR2104 芯片控4 個開關(guān)管[14],其驅(qū)動電路如圖4 所示。IR2104 的SD為使能端,高電平有效;IN為脈沖信號輸入端,可輸入TTL 電平;HO、LO 為控制輸出端,分別為高、低橋臂的門極驅(qū)動端,HO 的邏輯電平與IN 同相;LO 的邏輯電平與IN 反相,任何時刻HO和LO只有一個輸出邏輯高電平。VB 是高橋臂浮動電源輸入端,VS高橋臂浮動電源回流端,2 個IR2104 控制一個電機。以左輪電機為例,2 個IR2104 控制4 個場效應(yīng)管,PWM_L和DIR_L 分別為電機轉(zhuǎn)速和轉(zhuǎn)向控制輸入端。當(dāng)DIR_L為邏輯高電平1 時,U8 的HO輸出邏輯高電平,LO 輸出邏輯低電平,V2 飽和導(dǎo)通,V3 截止。PWM_L是PWM信號,當(dāng)PWM_L是高電平1 時,V1 飽和導(dǎo)通,V4 截止,電機無電流流過;當(dāng)PWM_L 是低電平0 時,V1 截止,V4 飽和導(dǎo)通,這時V2 和V4 飽和導(dǎo)通,V1 和V3 截止,電機正向轉(zhuǎn)動,改變PWM_L 的占空比則改變電機的轉(zhuǎn)速。同理分析可以得到,當(dāng)DIR_L為低電平0 時,電機反向轉(zhuǎn)動,改變PWM_L 的占空比則改變電機的轉(zhuǎn)速。在向?qū)W生分析電路時,應(yīng)講解二極管D6 ~D9 的作用:因場效管的門極和源極之間有結(jié)電容,在場效應(yīng)導(dǎo)通和截止時結(jié)電容存在充放電過程,在門極電阻并聯(lián)二極管,使得充放電時間常數(shù)不一樣。充電時,電流經(jīng)過門極電阻,放電時電流經(jīng)過二極管,放電時間小于充電時間,使場效應(yīng)管截止時間小于導(dǎo)通時間,確保一個場效應(yīng)管導(dǎo)通時,另一半橋臂的場效應(yīng)管提前截止。D4、C14 和D5、C13 通過充放電構(gòu)成自舉電路,依靠自舉電路,HO 輸出邏輯高電平時,可達(dá)高于VCC 電壓6 ~8 V,可以確保高橋臂V1、V2 飽和導(dǎo)通時門極的高電壓。在課程設(shè)計的分析過程中,應(yīng)向?qū)W生講解自舉電路的工作原理和場效應(yīng)門極二極管的作用,這也是分析整個電路的一個重點。
圖4 電機驅(qū)動電路
(3)邏輯電路及分析
在電機驅(qū)動電路中,存在一個缺陷,當(dāng)控制電機轉(zhuǎn)向的DIR_ L輸出高電平1 時,V2 保持飽和導(dǎo)通,V1 保持截止。由于DIR_A 不是PWM 波形不能形成充放電,此時U8 的自舉電路工作狀態(tài)受到嚴(yán)重影響,測試發(fā)現(xiàn)此時U8 的HO電壓比VCC 電壓高出約3V,即V2 不能工作在飽和狀態(tài),發(fā)熱明顯加大,影響其正常工作。為了克服上述的缺點,本文在驅(qū)動電路前加入邏輯電路,以左電機邏輯電路為例,運算電路如圖5 (a)所示,實現(xiàn)電路如圖5 (b)所示。從單片機輸出的L_PWM、L_DIR分別為左電機速度信號和電機轉(zhuǎn)向信號,邏輯電路運算分別為:PWM_L =L_PWM·L_DIR 和DIR_L =L_PWM·L_DIR。邏輯電路輸出的PWM_L 和DIR_L 送給電機驅(qū)動電路。當(dāng)轉(zhuǎn)向信號L_DIR 為高電平1 時,PWM_L =L_ PWM,DIR_L =0。此時PWM_ L 端輸出PWM波形,U7 的自舉電路能正常工作;而U8 的HO =0,LO =1,V2 保持截止,V3 保持飽和導(dǎo)通,因V2 截止,所以自舉電路的電壓對V2 沒有影響。當(dāng)L_DIR 為低電平0 時,PWM_L =0,DIR_L =L_PWM。DIR_L端輸出PWM波形,U8 的自舉電路能夠正常工作;U7 的HO=0,LO =1,V4 保持飽和導(dǎo)通,V1 保持截止,因V1 截止,所以自舉電路的電壓對V1 沒有影響。
圖5 邏輯電路
從上述分析可知,經(jīng)過邏輯電路后不論電機正轉(zhuǎn)還是反轉(zhuǎn),保持飽和導(dǎo)通的不是高橋臂而是低橋臂,低橋臂飽和導(dǎo)通時門極電壓不需要比VCC的電壓高,因此克服了驅(qū)動電路的缺陷。本文的邏輯電路也是學(xué)生需要理解的一個重點。
(4)電機轉(zhuǎn)速反饋電路
電機的閉環(huán)控制需要通過傳感器獲得電機的實際轉(zhuǎn)速并反饋給單片機,確保電機的實際轉(zhuǎn)速和單片機的給定轉(zhuǎn)速一致。本文的轉(zhuǎn)速傳感器采用HEDS-5540增量式編碼器,它安裝在電機的尾部,與電機合為一體。該編碼器是1024 線編碼器,直接輸出兩相TTL 的數(shù)字脈沖信號,兩相信號之間有90°的相位差。本文用其中任何一相作為電機的轉(zhuǎn)速反饋信號,送給單片機的計數(shù)器實現(xiàn)測速。
(5)電機轉(zhuǎn)向反饋電路
要對電機閉環(huán)控制,必須將電機的轉(zhuǎn)向反饋給單片機,確保電機的實際轉(zhuǎn)向和給定轉(zhuǎn)向一致。本文的轉(zhuǎn)向檢測電路采用兩路邊沿D觸發(fā)器74LS74 實現(xiàn)對兩個電機的轉(zhuǎn)向檢測,檢測電路如圖6 所示。為便于檢測,本文將復(fù)位端CLR1、CLR2 和置位端SET1、SET2 接高電平。將2 個編碼器送來的四路脈沖信號分別輸入CLK1、D1和CLK2、D2,其中CLK 為2 個D 觸發(fā)器的時鐘信號,上升沿有效;D 為數(shù)據(jù)輸入端,Q 為觸發(fā)器的輸出信號端,其輸值為時鐘信號上升沿對應(yīng)的輸入端D 的值,即:RQ=RD·RCLK↑。編碼器傳輸過來的AB 兩路脈沖方波的頻率相同,但相位相差90°。鑒向過程如圖7 所示,當(dāng)電機正轉(zhuǎn)時,A相超前B相90°,觸發(fā)信號的上升沿對應(yīng)的輸入信號是高電平,此時輸出端Q 為高電平1;當(dāng)電機反轉(zhuǎn)時,A 相滯后B相90°,觸發(fā)信號的上升沿對應(yīng)的輸入信號是低電平,此時輸出端Q 為低電平0。通過電機轉(zhuǎn)向反饋電路,單片機可獲得電機的轉(zhuǎn)向。
圖6 電機轉(zhuǎn)向反饋電路
圖7 電機轉(zhuǎn)向鑒相示圖
(6)按鍵及OLED顯示電路
為調(diào)節(jié)及顯示電機轉(zhuǎn)速,控制電路中設(shè)計了按鍵及OLED顯示電路,控制引腳分配(圖3)。按鍵共有5 個“運行”“停止”“調(diào)速”“速度+”“速度-”。通過這些按鍵可以啟動、停止和調(diào)節(jié)電機的轉(zhuǎn)速。OLED 顯示屏是采用SPI通信方式通信,用于顯示電機的設(shè)置轉(zhuǎn)速和實際轉(zhuǎn)速,通過兩個速度的比較,可以直觀地得到電機控制的效果。
主程序流程如圖8 所示,在電機運行過程中,可以隨時改變電機速度。按功能不同,子程序包括了初始化設(shè)置子程序、PID 轉(zhuǎn)速控制程序、按鍵和顯示子程序等。
圖8 主程序流程
PID控制器廣泛應(yīng)用于自動控制領(lǐng)域,是電類專業(yè)學(xué)生要求掌握的一個知識點,也是本課程設(shè)計的一個教學(xué)重點。本設(shè)計通過對電機的轉(zhuǎn)速控制和顯示,能夠讓學(xué)生對PID 控制器的設(shè)計及其效果有一個直觀的理解。在微機控制系統(tǒng)中,采用離散化設(shè)計方法,得到數(shù)字PID控制器,它分為位置式PID和增量式PID,本文的控制對象為電機,故采用增量式數(shù)字PID控制器[15],其控制方式如式(2)所示,控制程序的流程如圖9 所示。因為PWM 的占空比最大為1,因此,本文采用限幅式PID控制方式,即u(k)≤Umax。
圖9 增量式PID子程序流程
本文測試的電機是Faulhaber 2342L012CR 直流伺服減速電機,是在學(xué)科競賽中常用的一款電機,其主要參數(shù):額定電壓12 V,額定功率17 W,直流阻抗1.9 Ω,轉(zhuǎn)子電感65 μH,機械時間常數(shù)6 ms,原始轉(zhuǎn)速7 680 r/min,減速后轉(zhuǎn)速120 r/min,連續(xù)轉(zhuǎn)矩1.7 N·m。兩輪機器人小車的實物如圖10 所示。
圖10 兩輪機器人實物
本課程設(shè)計實驗平臺的控制方式為閉環(huán)控制,為檢測控制效果,采用開環(huán)和閉環(huán)兩種方式進(jìn)行了測試比較,測試的結(jié)果如表1 所示。從表中可得出,本課程設(shè)計的實驗平臺能夠良好運行,閉環(huán)控制方式的靜差率和調(diào)節(jié)時間比開環(huán)控制都有大幅度降低,其控制效果明顯優(yōu)于開環(huán)控制方式。
表1 綜合實驗平臺性能測試
單片機課程設(shè)計是單片機課程教學(xué)的一個重要實踐教學(xué)環(huán)節(jié),本課程設(shè)計涉及的知識點廣,主要包含了的單片機基本編程、定時器脈寬調(diào)制、單片機中斷編程、數(shù)字PID編程、直流電機驅(qū)動電路設(shè)計、OLED 顯示器驅(qū)動、數(shù)字編碼器應(yīng)用、電機鑒向電路等知識點。尤其在電機驅(qū)動電路為了使截止橋臂快于導(dǎo)通橋臂而設(shè)置門極二極管D6 ~D9;為了克服半橋驅(qū)動器IR2104 高橋臂長時間導(dǎo)通時輸出電壓低的問題而設(shè)計的邏輯電路,都是解決實際設(shè)計電路的措施,通過學(xué)習(xí)這些實際案例可以很大地拓展學(xué)生的知識點和電路設(shè)計能力。因此,本文的設(shè)計是一個很好的單片機綜合設(shè)計案例。