多路pwm波生成方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及PWM波的生成方法及系統(tǒng),特別是涉及一種利用軟件設(shè)計(jì)生成多路PWM的方法及系統(tǒng)。
【背景技術(shù)】
[0002]在現(xiàn)代照明系統(tǒng)中,例如汽車行業(yè)照明系統(tǒng)中,一個(gè)燈所用的led燈數(shù)量越來越多,而一般的采用數(shù)字開關(guān)電源的方式對(duì)多路led燈進(jìn)行針對(duì)性調(diào)光的難度非常高,因?yàn)閷?duì)于大部分微處理器而言,由于片子內(nèi)部結(jié)構(gòu)和尺寸等的限制的原因,無法集成足夠多的pwm生成通道,因此在減少開發(fā)成本情況下如何通過軟件來實(shí)現(xiàn)微處理器生成多路pwm具有很重要的意義。
【發(fā)明內(nèi)容】
[0003]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種多路PWM波生成方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中不能通過有限的硬件資源生成多路PWM波的問題。
[0004]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種多路PWM波生成方法,應(yīng)用于具有多個(gè)端口以及多個(gè)與所述端口對(duì)應(yīng)的位口的微處理器,包括如下步驟:sil:配置表格以及PWM波的周期,所述表格包括第一表格、第二表格、和第三表格,所述第一表格存儲(chǔ)各所述位口欲輸出的PWM波占空比值,并按照預(yù)設(shè)的順序?qū)λ稣伎毡戎颠M(jìn)行排序,所述第二表格存儲(chǔ)欲輸出PWM波的各端口信息,所述第三表格存儲(chǔ)欲輸出PWM波的各位口信息;S12:初始化定時(shí)器以及各所述位口 ;S13:當(dāng)定時(shí)中斷函數(shù)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間與一 PWM波占空比值相對(duì)應(yīng)時(shí),令與所述PWM波占空比值相對(duì)應(yīng)的所述位口進(jìn)行電平的翻轉(zhuǎn);S14:當(dāng)定時(shí)中斷函數(shù)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間達(dá)到所述周期時(shí),返回步驟S12。
[0005]可選的,還包括如下步驟:當(dāng)判斷一位口的PWM波占空比值發(fā)生更新時(shí),根據(jù)所述預(yù)設(shè)的順序?qū)⑺鑫豢诘腜WM波占空比值存入第一表格的對(duì)應(yīng)位置。
[0006]可選的,在步驟Sll中,對(duì)值為0%和100%的所述位口欲輸出的PWM波占空比值不進(jìn)行存儲(chǔ)。
[0007]可選的,所述微處理器的型號(hào)為MC9S12G48。
[0008]可選的,所述多路PWM波生成方法應(yīng)用于對(duì)多個(gè)大功率LED進(jìn)行動(dòng)態(tài)控制。
[0009]可選的,所述第一表格存儲(chǔ)的各所述位口欲輸出的PWM波占空比值,進(jìn)行冒泡排序。
[0010]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明還提供一種多路PWM波生成系統(tǒng),應(yīng)用于具有多個(gè)端口以及多個(gè)與所述端口對(duì)應(yīng)的位口的微處理器,其特征在于,包括如下模塊:配置模塊,用于配置表格以及PWM波的周期,所述表格包括第一表格、第二表格、和第三表格,所述第一表格存儲(chǔ)各所述位口欲輸出的PWM波占空比值,并按照預(yù)設(shè)的順序?qū)λ稣伎毡戎颠M(jìn)行排序,所述第二表格存儲(chǔ)欲輸出PWM波的各端口信息,所述第三表格存儲(chǔ)欲輸出PWM波的各位口信息;初始化模塊,初始化定時(shí)器以及各所述位口 ;邏輯處理模塊,用于當(dāng)定時(shí)中斷函數(shù)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間與一 PWM波占空比值相對(duì)應(yīng)時(shí),令與所述PWM波占空比值相對(duì)應(yīng)的所述位口進(jìn)行電平的翻轉(zhuǎn);且用于當(dāng)定時(shí)中斷函數(shù)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間達(dá)到所述周期時(shí),令所述初始化模塊初始化定時(shí)器以及各所述位口。
[0011]可選的,還包括:更新模塊,當(dāng)判斷一位口的PWM波占空比值發(fā)生更新時(shí),根據(jù)所述預(yù)設(shè)的順序?qū)⑺鑫豢诘腜WM波占空比值存入第一表格的對(duì)應(yīng)位置。
[0012]可選的,所述配置模塊對(duì)值為O %和100%的所述位口欲輸出的PWM波占空比值不存儲(chǔ)于所述第一表格中。
[0013]可選的,所述第一表格存儲(chǔ)的各所述位口欲輸出的PWM波占空比值,進(jìn)行冒泡排序。
[0014]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明還提供一種多路PWM波生成系統(tǒng),包括:具有多個(gè)端口以及多個(gè)與所述端口對(duì)應(yīng)的位口的微處理器;所述微處理器用于配置表格以及PWM波的周期,所述表格包括第一表格、第二表格、和第三表格,所述第一表格存儲(chǔ)各所述位口欲輸出的PWM波占空比值,并按照預(yù)設(shè)的順序?qū)λ稣伎毡戎颠M(jìn)行排序,所述第二表格存儲(chǔ)欲輸出PWM波的各端口信息,所述第三表格存儲(chǔ)欲輸出PWM波的各位口信息;且在配置結(jié)束時(shí),所述微處理器初始化定時(shí)器以及各所述位口 ;且當(dāng)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間與一 PWM波占空比值相對(duì)應(yīng)時(shí),令與所述PWM波占空比值相對(duì)應(yīng)的所述位口進(jìn)行電平的翻轉(zhuǎn);且在判斷所述定時(shí)器計(jì)時(shí)的時(shí)間達(dá)到所述周期時(shí),所述微處理器初始化定時(shí)器以及各所述位口。
[0015]如上所述,本發(fā)明的一種多路PWM波生成方法及系統(tǒng),通過將各位口的PWM波占空比值按預(yù)定的順序排列,當(dāng)計(jì)時(shí)到與某一占空比值相對(duì)應(yīng)時(shí),令與占空比值相對(duì)應(yīng)的位口進(jìn)行電平的翻轉(zhuǎn),當(dāng)計(jì)時(shí)達(dá)到一個(gè)周期時(shí),也即對(duì)所有與各占空比值相對(duì)應(yīng)的位口進(jìn)行了相應(yīng)的邏輯處理,本發(fā)明可在現(xiàn)有的硬件平臺(tái)上,主要通過軟件方面的改進(jìn),生成多路的PWM波,成本低,效率高。
【附圖說明】
[0016]圖1顯示為本發(fā)明的多路PWM波生成方法在一具體實(shí)施例中的流程示意圖。
[0017]圖2顯示為本發(fā)明的多路PWM波生成系統(tǒng)在一具體實(shí)施例中的模塊結(jié)構(gòu)示意圖。
[0018]圖3顯示為本發(fā)明的多路PWM波生成系統(tǒng)在一具體實(shí)施例中的模塊結(jié)構(gòu)示意圖。
[0019]元件標(biāo)號(hào)說明
[0020]1、2 多路PWM波生成系統(tǒng)
[0021]11配置模塊
[0022]12初始化模塊
[0023]13邏輯處理模塊
[0024]21微處理器
[0025]Sll ?S14 步驟
【具體實(shí)施方式】
[0026]以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施例中的特征可以相互組合。
[0027]需要說明的是,以下實(shí)施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖示中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0028]由于PWM波廣泛運(yùn)用于電機(jī)控制、數(shù)字開關(guān)電源、以及LED驅(qū)動(dòng)等電路設(shè)計(jì)中,而在采用微處理器生成PWM波的技術(shù),由于微處理器自身尺寸大小和集成工藝上的限制,一般微處理器自身集成的PWM波生成路數(shù)比較少(大部分不會(huì)超過10路),因此在軟件上進(jìn)行改進(jìn)以生成多路PWM波的具有很重大的意義。
[0029]請(qǐng)參閱圖1,顯示為本發(fā)明的多路PWM波生成方法在一具體實(shí)施例中的流程示意圖,所述多路PWM波生成方法,應(yīng)用于具有多個(gè)端口以及多個(gè)與所述端口對(duì)應(yīng)的位口的微處理器,所述微處理器的型號(hào)例如為飛思卡爾MC9S12G48。例如微處理器包括端口 Pl、P2、以及P3,各端口具有相應(yīng)的位口,例如端口 Pl具有位口 Pl.0,PL UPl.2,Pl.3,Pl.4,Pl.5、Pl.6、Pl.7。所述端口 P2也具有與其對(duì)應(yīng)的位口,例如P2.0?P2.7,所述端口 P3也具有與其對(duì)應(yīng)的位口,例如P3.0?P3.7。
[0030]所述方法包括如下步驟:
[0031]Sll:配置表格以及PWM波的周期,所述表格包括第一表格、第二表格、和第三表格,所述第一表格存儲(chǔ)各所述位口欲輸出的PWM波占空比值,并按照預(yù)設(shè)的順序?qū)λ稣伎毡戎颠M(jìn)行排序,所述第二表格存儲(chǔ)欲輸出PWM波的各端口信息,所述第三表格存儲(chǔ)欲輸出PWM波的各位口信息;于一具體實(shí)施例中,所述位口的PWM波占空比值以冒泡順序進(jìn)行排列,且當(dāng)判斷一位口的PWM波占空比值發(fā)生更新時(shí),根據(jù)所述預(yù)設(shè)的順序?qū)⑺鑫豢诘腜WM波占空比值存入第一表格的對(duì)應(yīng)位置。
[0032]S12:初始化定時(shí)器以及各所述位口 ;即令所述定時(shí)器以及各所述位口的值清零。
[0033]S13:當(dāng)定時(shí)中斷函數(shù)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間與一 PWM波占空比值相對(duì)應(yīng)時(shí),令與所述PWM波占空比值相對(duì)應(yīng)的所述位口進(jìn)行電平的翻轉(zhuǎn);于一具體實(shí)施例中,例如位口 Pl.0的占空比值為10%,位口 Pl.1的占空比值為20%,位口 Pl.2的占空比值為30%,位口 Pl.3的占空比值為40%,位口 Pl.4的占空比值為50%,位口 Pl.5的占空比值為60%,位口 P1.6的占空比值為70 %,位口 P1.7的占空比值為80 %。例如所述PWM波的周期被設(shè)置為100ms,即當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為20ms時(shí),所述位口 Pl.7進(jìn)行電平的翻轉(zhuǎn),即位口Pl.7由O變?yōu)?,當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為30ms時(shí),所述位口 Pl.6進(jìn)行電平的翻轉(zhuǎn),當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為40ms時(shí),所述位口 Pl.5進(jìn)行電平的翻轉(zhuǎn),當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為50ms時(shí),所述位口 Pl.4進(jìn)行電平的翻轉(zhuǎn),當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為60ms時(shí),所述位口 Pl.3進(jìn)行電平的翻轉(zhuǎn),當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為70ms時(shí),所述位口 Pl.2進(jìn)行電平的翻轉(zhuǎn),當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為80ms時(shí),所述位口 Pl.1進(jìn)行電平的翻轉(zhuǎn),當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為90ms時(shí),所述位口 Pl.0進(jìn)行電平的翻轉(zhuǎn)。
[0034]S14:當(dāng)定時(shí)中斷函數(shù)判斷所述定時(shí)器計(jì)時(shí)的時(shí)間達(dá)到所述周期時(shí),返回步驟S12。即當(dāng)所述定時(shí)器計(jì)時(shí)的時(shí)間為10ms時(shí),即對(duì)所有占空比值對(duì)應(yīng)的位口進(jìn)行了邏輯處理,一個(gè)周期結(jié)束,初始化定時(shí)器以及各所述位口。并重復(fù)以上PWM波的生成步驟。
[0035]優(yōu)選的,在步驟Sll中,對(duì)值為0%和100%的所述位口欲輸出的PWM波占空比值不進(jìn)行存儲(chǔ)。因?yàn)閷?duì)值為0%和100%的所述位口不需要進(jìn)行電平的翻轉(zhuǎn),只需要在初始配置的時(shí)候?qū)?duì)應(yīng)位口設(shè)置為固定的高電平和低電平即可。這樣可以減輕微處理器的數(shù)據(jù)處理負(fù)擔(dān),提高處理效率。
[0036]于本具體實(shí)施例中,所述微處理器運(yùn)用精密定時(shí)器計(jì)數(shù)法,提高計(jì)時(shí)的精度,計(jì)時(shí)偏差可限制在I %以內(nèi),且本方法可以實(shí)現(xiàn)多路頻率在300HZ以上PWM獨(dú)立輸出,可用于滿足多路大功率LED調(diào)光需求,PWM波路數(shù)越少可以產(chǎn)生的PWM頻率越高。
[0037]請(qǐng)參閱圖2,顯示為本發(fā)明的多路PWM波生成系統(tǒng)在一具體實(shí)施例中的模塊結(jié)構(gòu)示意圖。所述多