直流電機優(yōu)化控制系統(tǒng)設(shè)計(二)
3 系統(tǒng)硬件方案設(shè)計與實現(xiàn)
3.1 控制芯片
選擇單片機作為本控制系統(tǒng)的核心,根據(jù)本系統(tǒng)所要完成的功能,要求我們所用的控制芯片需具備以下功能或接口,PWM 輸出功能、A/D 轉(zhuǎn)換功能、串行通訊接口。此外,為了完成某些控制算法,需要有較高的速度,還要求具有較低的功耗和較高的性價比,能夠進行硬件調(diào)試,軟件開發(fā)簡單。AVR 單片機是Atmel 公司推出的較為新穎的8 位單片機,采用了RISC 結(jié)構(gòu),其顯著的特點為高性能、高速度低功耗。它取消機器周期,以時鐘周期為指令周期,實行流水作業(yè)。內(nèi)部集成32 個通用寄存器,每一個都相當(dāng)于51 里面的一個累加器A,避免了累加器瓶頸,進一步提高了運行速度和代碼效率。AVR 單片機指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時完成下一條指令的讀取。通常時鐘頻率用1~16MHz,最短指令執(zhí)行時間為63ns。AVR 單片機指令代碼較為簡練,其編譯器都C 語言進行了優(yōu)化,具備ISP和IAP(In Application Program,在應(yīng)用編程)。與傳統(tǒng)的51 系列相比,AVR 單片機在速度、功耗、性價比上具有極大的優(yōu)勢,因此,我們選擇AVR 單片機作為本系統(tǒng)的控制芯片。
3.1.1 ATmega16 的特點
ATMEL 公司的AVR 單片機現(xiàn)有50 多個品種,分為低、中、高三個不同檔次。我們選擇了AVR 單片機中性價比較高的一款-ATmega16 作為系統(tǒng)控制芯片。ATmega16 屬于高檔AVR 單片機,是一款性能完善、使用更加方便和功能更加強大的新型AVR 單片機。其性能及內(nèi)部資源如下:
(1)高性能和低功耗的先進RISC 型8 位微控制器。
(2)32 個8 位通用工作寄存器,只需2 個時鐘周期的硬件乘法器,工作于
16MHz 時性能高達16MIPS。
(3) 內(nèi)部集成16KB Flash,1KB 的SRAM 和512B 的E2PROM。
(4)32 個準雙向I/O 引腳,20 個中斷源,其中外部中斷源為2 個,1 個SPI
接口和1 個USART,2 個8 位定時器和一個16 位定時器,3 個PWM 通道,8
路10 位的A/D 通道。
(4) 具有空閑、省電、掉電、等待和ADC 降噪等多種功作模式和上電復(fù)位、
外部復(fù)位、看門狗復(fù)位和BOD(電源電壓欠壓和過壓檢測)等多種復(fù)位電路。。
(5) 符合IEEE1149.1 標準的JTAG 接口,可實現(xiàn)對片內(nèi)存儲器的編程和程
序調(diào)試。具備ISP 和IAP 功能。
(6)系統(tǒng)時鐘為0-16MHz,可外接晶體振蕩器,也可用片內(nèi)振蕩器,ATmega16
提供0-8MHz 可校準的內(nèi)部時鐘,在對時鐘要求不很嚴格的場合可用內(nèi)部時鐘,
可以節(jié)省成本和降低EMI。
(7)工作電壓、速度及功耗。ATmega16L:2.7-5.5V,0-8MHz,ATmega16:
4.5-5.5V,0-16MHz。ATmega16L 在1MHz,3V,25℃時功耗為:正常模式:1.1mA,
空閑模式0.35mA,掉電模式:小于1μA。
(8)DIP40 或TQFP44 封裝。
3.2 AVR單片機最小系統(tǒng)
AVR 單片機最小系統(tǒng)由復(fù)位電路、晶振電路和ISP 下載下線接口及ATmega16構(gòu)成。如下圖3-1 所示。
雖然AVR 單片機內(nèi)部帶有0-8MHz 的內(nèi)部時鐘,但為了系統(tǒng)時序穩(wěn)定,工作可靠,這里采用了由8MHz 的石英晶振構(gòu)成的振蕩器作為單片機的系統(tǒng)時鐘。R23、C23 和S1 構(gòu)成上電復(fù)位和按鍵復(fù)位電路。P14 為AVR 單片機的ISP 下載接口。C27、C24,L1、C26 分別構(gòu)成數(shù)字電路和內(nèi)部模擬電路電源濾波電路,C25 為A/D 轉(zhuǎn)換所用內(nèi)部參考源的濾波電容。單片機的管腳分配如下表3-1 所示。
3.3 雙極性PWM 波形產(chǎn)生與死區(qū)發(fā)生
3.2.1 PWM波的產(chǎn)生
PWM 波形由控制芯片ATmega16 的定時器T/C1 產(chǎn)生,從OC1A(PD5)引腳輸出。ATmega16 的T/C1 是一個可編程的16 位雙向的定時器/計數(shù)器,既可以在系統(tǒng)時鐘作用下作為16 位定時器使用,也可以對T1 引腳上的脈沖進行計數(shù),可以在OC1A 和OC1B 引腳上輸出兩路PWM 波形,并可在ICP 引腳上輸入脈沖作用下捕捉一次TCNT1 中瞬時計數(shù)值。這里我們不詳細介紹T/C1 的所有功能,只闡述其產(chǎn)生PWM 的波形的過程。與T/C1 有關(guān)的工作寄存器有:T/C1 計數(shù)器TCNT1、輸出比較匹配寄存器OCR1A 和OCR1B 以及輸入捕捉寄存器ICR1,均為16 位,由相應(yīng)的8 位I/O 寄存器拼裝而成;T/C1 控制寄存器TCCR1A 和TCCR1B,用于設(shè)定T/C1 的工作模式。T/C1 的工作模式由一般模式、比較匹配時清零定時器(CTC)模式以及兩種PWM 等15 種。PWM 模式中,又可分為8 位、9 位、10 位PWM,其中又有快速模式和相位頻率可調(diào)模式。PWM 波形位數(shù)越高,則其波形輸出精度也越高,但其相應(yīng)頻率也越低。為使電機電流連續(xù),PWM 波形頻率不能太低。在快速PWM 模式下,TCNT1 為加“1”計數(shù)器,可以從0000H 一直加到TOP值,并在下個計數(shù)脈沖到來時清零,然后再從0000H 開始加“1”計數(shù),并重復(fù)上述過程。相比于其他兩種PWM(相位可調(diào)及相位頻率可調(diào))模式,快速PWM模式頻率要高出一倍,適合功率調(diào)節(jié)、電機控制等。因此我們選擇快速PWM模式。
OC1A 或OC1B 引腳上PWM 輸出波形的頻率由下式確定,式中的N 取值為1、8、64、254 或1024(分別代表分頻系數(shù))。
fCLK_IO 為時鐘頻率,為8MHz,取N=1,即不對時鐘進行分頻,TOP 值代表CNT1 計數(shù)的最大值,跟PWM 位數(shù)有關(guān),當(dāng)選擇8 位快速PWM 模式時,TOP=255,則輸出頻率為31.25KHz;選擇9 位快速PWM時,TOP=511,則輸出頻率為15.6KHz,綜合比較,選擇9 位快速PWM 輸出模式,能同時滿足頻率和精度的要求。頻率確定后,還需確定占空比(波形)。引腳OC1A 或OC1B 的輸出波形取決于觸發(fā)器OC1A 或OC1B。在T/C1 設(shè)置成反向比較匹配輸出模式下時,若TCNT1 中計數(shù)值和OCR1A 或OCR1B 中比較值匹配相等時,OC1A 或OC1B 觸發(fā)器被清零,OC1A 或OC1B 引腳輸出低電平;若TCNT1 中計數(shù)值繼續(xù)計數(shù)到TOP 值并由此而返回0000H,則OC1A 或OC1B 被置位,OC1A 或OC1B 輸出高電平。工作時序如圖3-2 所示。當(dāng)TCNT1 中的計數(shù)值達由TOP 值變?yōu)?000H 時,T/C1 產(chǎn)生溢出中斷,置位中斷標志位TOV1,若中斷是開放的,則MCU 會立即轉(zhuǎn)入相應(yīng)中斷服務(wù)程序。TOV1 也由硬件自動清零,向該標志位寫”1”則由軟件清除該標志位。在中斷服務(wù)程序中改變OCR1A 的值,則其PWM 波形占空比會發(fā)生相應(yīng)變化 。圖3-2 T/C1 反向比較匹配輸出模式工作時序本系統(tǒng)中,我們只需要一路PWM 信號即可,這里用OC1A 引腳產(chǎn)生,采用9 位快速PWM 模式,頻率為15.6KHz,當(dāng)要改變輸出占空比時,改變OCR1A的值即可。
3.2.2 驅(qū)動信號形成及死區(qū)發(fā)生
H橋要由4 路其中兩路反向的波形來驅(qū)動,因此需將PWM 波形進行反向處理。此外,還需加入防止H 橋上下臂直通的延時電路。如圖3-3 所示。
EN 為PWM 輸出使能信號,當(dāng)EN 為低電平時,封鎖輸出與門,輸出全為低電平,電機停轉(zhuǎn)。同時輸出與門也起著整形的作用。PWM 信號一路直接輸入與門,另一路經(jīng)反向后送入與門,增加其驅(qū)動能力。D1、R5、C9,D3、R9、C12構(gòu)成死區(qū)發(fā)生,利用阻容充電,使波形緩慢上升,再利于與門的閾值電壓(VCC/2,這里為2.5V)對波形進行整形。下降沿時,電容通過二極管進行快速放電,這樣就行成了導(dǎo)通延時。各點波形如圖3-4 所示。更新OCR1A或OCR1B的值,置位TOV1中斷標志標志位TCNT1OC1A或OC1B死區(qū)時間為△t,對MOSFET,死區(qū)時間可取0.2-1μs。本文將R5 和R9 用可變電阻代替,將死區(qū)時間設(shè)為500ns。
經(jīng)過該電路處理后,一路PWM 信號變成4 路PWM 信號,其中PA、PC 同相,PB、PD 也同相,這兩組信號互為反相且存在死區(qū)。
圖 3-4 死區(qū)波形