基于STC系列單片機(jī)的SPWM波形實(shí)現(xiàn)
摘要:文章在比較了多種生成SPWM波的技術(shù)基礎(chǔ)上,給出了利用等效面積法來(lái)產(chǎn)生SPWM波形的工作原理,詳細(xì)介紹了由單片機(jī)STCl2C5410AD的可編程計(jì)數(shù)器陣列PCA實(shí)現(xiàn)SPWM控制軟件的編寫過(guò)程,并給出了SPWM中斷服務(wù)程序的流程圖。將結(jié)果應(yīng)用于由MICA421驅(qū)動(dòng)器驅(qū)動(dòng)的四個(gè)MOSFET器件FQAl60N08所組成的逆變橋上進(jìn)行實(shí)際調(diào)試,實(shí)驗(yàn)結(jié)果表明,該方法具有電路簡(jiǎn)單、計(jì)算量小、實(shí)時(shí)性強(qiáng)的優(yōu)點(diǎn),采用在線計(jì)算和查表技術(shù)相結(jié)合,較好的解決了實(shí)時(shí)控制的要求,具有較好的應(yīng)用價(jià)值。
關(guān)鍵詞:STC12C5410AD;SPWM波
0 引言
近年來(lái),隨著逆變電源在各行各業(yè)應(yīng)用的日益廣泛,采用正弦脈寬調(diào)制(SPWM)技術(shù)控制逆變電源提高整個(gè)系統(tǒng)的控制效果是人們不斷探索的問(wèn)題。對(duì)SPWM的控制有多種實(shí)現(xiàn)方法,其一是采用模擬電路、數(shù)字電路等硬件電路產(chǎn)生SPWM波形,該方法波形穩(wěn)定準(zhǔn)確,但電路復(fù)雜、體積龐大、不能進(jìn)行自動(dòng)調(diào)節(jié);其二是借助單片機(jī)、DSP等微控制器來(lái)實(shí)現(xiàn)SPWM的數(shù)字控制方法,由于其內(nèi)部集成了多個(gè)控制電路,如PWM電路、可編程計(jì)數(shù)器陣列(PCA)等,使得這種方法具有控制電路簡(jiǎn)單、運(yùn)行速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)。本文介紹一種利用STC系列單片機(jī)實(shí)現(xiàn)SPWM波形的方法,并將由STCl2C5410AD產(chǎn)生的單極性SPWM波應(yīng)用于單相逆變電源,實(shí)驗(yàn)結(jié)果證明了利用其實(shí)現(xiàn)SPWM波形的可行性和有效性。
1 正弦脈寬調(diào)制技術(shù)SPWM
SPWM控制方案有兩種:即單極性調(diào)制和雙極性調(diào)制法。單極性法所得的SPWM信號(hào)有正、負(fù)和0三種電平,而雙極性得到的只有正、負(fù)兩種電平。比較二者生成的SPWM波可知:在相同載波比情況下,生成的雙極性SPWM波所含諧波量較大;并且在正弦逆變電源控制中,雙極性SPWM波控制較復(fù)雜。因此一般采用單極性SPWM波控制的形式。
由單片機(jī)實(shí)現(xiàn)SPWM控制,根據(jù)其軟件化方法的不同,有如下幾種方法:自然采樣法、對(duì)稱規(guī)則法、不對(duì)稱規(guī)則法和面積等效法等。理論分析發(fā)現(xiàn)面積等效法相對(duì)于其它方法而言,諧波較小,對(duì)諧波的抑制能力較強(qiáng)。而且實(shí)時(shí)控制簡(jiǎn)單,利于軟件實(shí)現(xiàn)。因此本文采用面積等效法實(shí)現(xiàn)SPWM控制。
圖l為SPWM面積等效法原理示意圖。
假設(shè)所需的輸出正弦電壓為U0=Umsinωt,式中:Um為正弦波幅值。利用面積等效法正弦波小塊面積S1與對(duì)應(yīng)脈沖面積S2相等的原則,將正弦波的正半周分為N等分,則每一等分的寬度為兀/N,計(jì)算出半個(gè)周期內(nèi)N個(gè)不同的脈寬值。相關(guān)公式如下:
正弦波S1面積為:
逆變器輸入直流電壓為UD,脈沖面積S2與S1相等,即有:
所以第k個(gè)區(qū)間的脈沖寬度δk
式中:M為調(diào)制度。N為半個(gè)周期內(nèi)的脈沖個(gè)數(shù)。綜合考慮載波比、輸出諧波等因素,在此N取60。由上式計(jì)算出的SPWM脈寬表是一個(gè)由窄到寬、再由寬到窄的60個(gè)值的正弦表,將其存入STC單片機(jī)的ROM中以供調(diào)用。[!--empirenews.page--]
2 STC系列單片機(jī)生成SPWM波原理
2.1 STC系列單片機(jī)簡(jiǎn)介
STCl2系列單片機(jī)是美國(guó)STC公司在8051單片機(jī)標(biāo)準(zhǔn)的內(nèi)核基礎(chǔ)上改進(jìn)推出的一個(gè)增強(qiáng)型功能的8051的單片機(jī),從引腳到指令上完全與8051單片機(jī)兼容。最突出的特點(diǎn)就是其具有可編程計(jì)數(shù)器陣列PCA。以STCl2C5410AD為例,有四路可編程計(jì)數(shù)器陣列PCA/PWM。PCA含有一個(gè)特殊的16位定時(shí)器,有4個(gè)16位的捕獲/比較模塊與之相連。四個(gè)模塊的公共時(shí)間基準(zhǔn)由PCA定時(shí)器決定,可以通過(guò)PCA模式寄存器CMOD SFR的CPSl和CPS0位確定。每個(gè)模塊可編程工作在4種模式下:上升/下降沿捕獲、軟件定時(shí)器、高速輸出或PWM脈沖輸出。文中SPWM生成功能主要靠PWM脈沖輸出模式完成。圖2即為PCA模塊脈寬調(diào)節(jié)PWM輸出模式框圖。
在PCA PWM輸出模式中,當(dāng)CLSFR的值小于{EPCnL,CCAPnL}時(shí),輸出為低,當(dāng)PCA CL SFR的值等于或大于{EPCnH,CCAPnH}時(shí),輸出為高。當(dāng)CL的值由FF變?yōu)?0溢出時(shí),{EPCnH,CCAPnH}的內(nèi)容裝載到{EPCnL,CCAPnL}中。這樣就實(shí)現(xiàn)了無(wú)干擾的更新PWM。要使能PWM模式,模塊CCAPMn寄存器的PWMn和ECOMn位必須置位。本文中,SPWM波形是綜合使用了模塊O的脈寬調(diào)節(jié)(PWM)模式和模塊1的16位軟件定時(shí)器模式,通過(guò)軟件中斷的形式實(shí)現(xiàn)的。
與此同時(shí),STCl2C54lO單片機(jī)還具有快速A/D轉(zhuǎn)換功能。有一個(gè)lO位精度、8路通道的A/D轉(zhuǎn)換器??梢苑奖愕膶?duì)輸入、輸出的電壓、電流進(jìn)行監(jiān)控和顯示。
2.2 SPWM波生成方法
利用STC系列單片機(jī)產(chǎn)生SPWM波的基本原理是:將載波周期數(shù)值賦給PCA模塊l的16位捕獲/比較模塊寄存器CCAPlH(高8位)和CCAPlL(低8位),PCA定時(shí)器的值CH(高八位)、CL(低八位)與模塊捕獲寄存器的值相比較,當(dāng)兩者相等時(shí),產(chǎn)生PCA中斷。在中斷中,調(diào)用模塊0的PWM脈寬調(diào)節(jié)模式,將下一個(gè)SPWM波的脈寬通過(guò)CCAP0H裝載到CCAPOL中,這樣就可以實(shí)現(xiàn)無(wú)干擾的更新PWM。
圖3中即為由軟件實(shí)時(shí)計(jì)算好的一路單極性SPWM波形的脈寬示意圖。在每個(gè)固定的載波周期內(nèi),不同脈寬數(shù)值組成一個(gè)正弦表格的形式。若選用模塊O(P3.7)輸出此路SPWM,首先將模塊0的PCA模塊工作模式寄存器定義為8位PWM模式,將16位計(jì)數(shù)器定時(shí)器CH、CL清零,PCA PWM模式輔助寄存器O清零(保證捕獲寄存器EPCOH(高八位)、EPC0L(低八位)固定為零,PWM波比較的數(shù)值只與PCA模塊0的捕獲寄存器CCAPOH(高八位)、CC2APOL(低八位)有關(guān)),模塊l的捕獲寄存器CCAPlH(高八位)、CCAPlL(低八位)送入載波周期的高八位和第八位數(shù)值,PCA比較/捕獲模塊寄存器1(CCAPMl)定義為使能比較功能,允許匹配產(chǎn)生中斷。將第一個(gè)脈寬值sin[0]裝入CCAP0H,開PCA模塊中斷及低壓檢測(cè)中斷,開總中斷,啟動(dòng)PCA計(jì)數(shù)。當(dāng)16位計(jì)數(shù)器/定時(shí)器的數(shù)值與模塊1中捕獲/比較寄存器的數(shù)值相等時(shí),產(chǎn)生一個(gè)CCF中斷;在中斷程序中,清中斷標(biāo)志位,重新給模塊1的捕獲寄存器CCAPlH(高八位)、CCAPlL(低八位)送入載波周期的高八位和第八位數(shù)值,將16位計(jì)數(shù)器定時(shí)器CH、CL清零,中斷次數(shù)i加1,將下一個(gè)脈寬數(shù)值sin[i]裝入CCAPOH以備比較。同時(shí)判斷是否到達(dá)最大數(shù)值N,若是,中斷次數(shù)i清零,同時(shí)將脈寬數(shù)sin[i]值送入CCAP0H,完成一個(gè)循環(huán)。這樣,周而復(fù)始,在P3.7引腳上將不斷產(chǎn)生隨著正弦規(guī)律變化的脈寬,從而得到準(zhǔn)確的SPWM波。
2.3 軟件設(shè)計(jì)
程序編寫采用KeilC51編程語(yǔ)言進(jìn)行,整個(gè)程序由主程序和鍵盤中斷子程序以及PCA中斷子程序組成。主程序在系統(tǒng)初始化后進(jìn)入SPwM脈寬計(jì)算程序,計(jì)算相應(yīng)的脈沖寬度,形成正弦表格,等待中斷標(biāo)志位以響應(yīng)不同的中斷。由于SPWM波是不斷輸出的,必須將PCA中斷級(jí)別設(shè)置為最高。一旦有PCA中斷標(biāo)志位,即轉(zhuǎn)入執(zhí)行其中斷子程序。圖4為PCA中斷子程序流程圖。在中斷服務(wù)程序中,注意CCF1位和CF標(biāo)志位均由硬件置位,但不能自動(dòng)清零,必須在中斷程序中由軟件清零。
[!--empirenews.page--]
與此同時(shí),系統(tǒng)可以響應(yīng)鍵盤中斷子程序,由鍵盤控制通過(guò)液晶顯示屏監(jiān)控輸出電壓、電流的變化情況等。
3 實(shí)驗(yàn)結(jié)果
根據(jù)上述設(shè)計(jì)思路及編寫的軟件,用MIC442l驅(qū)動(dòng)器驅(qū)動(dòng)四個(gè)MOSFET器件FQAl60N08組成的逆變橋上進(jìn)行實(shí)際調(diào)試。圖5為由單片機(jī)STCl2C5410輸出的兩路互補(bǔ)(有一定死區(qū)時(shí)間)單極性SPWM波。用這兩路互補(bǔ)信號(hào)直接驅(qū)動(dòng)芯片MIC4421,其輸出信號(hào)再分別驅(qū)動(dòng)逆變橋,經(jīng)低通濾波后的波形如圖6所示。
4 結(jié)束語(yǔ)
實(shí)驗(yàn)結(jié)果表明,此方法電路結(jié)構(gòu)簡(jiǎn)單,硬件設(shè)計(jì)和軟件編程切實(shí)可行。采用在線計(jì)算和查表技術(shù)相結(jié)合,較好的解決了實(shí)時(shí)控制的要求。同時(shí)采用單片機(jī)作為控制器件,不僅成本降低,而且調(diào)試方便,受外界干擾較小,有很好的實(shí)用性和可靠性。