利用單片機(jī)定時(shí)器實(shí)現(xiàn)信號(hào)采樣和PWM控制
發(fā)布時(shí)間:2021-05-18 責(zé)任編輯:lina
【導(dǎo)讀】PWM控制方式廣泛應(yīng)用于各種控制系統(tǒng)中,但對(duì)脈沖寬度的調(diào)節(jié)一般采用硬件來(lái)實(shí)現(xiàn)。如使用PWM控制器或在系統(tǒng)中增加PWM電路[1]等,則本錢高、響應(yīng)速度慢,而且PWM控制器與系統(tǒng)之間存在兼容題目。另外,控制系統(tǒng)中的信號(hào)采樣通常是由A/D轉(zhuǎn)換器來(lái)完成,因此檢測(cè)精度要求較高時(shí),調(diào)理電路復(fù)雜,而且因A/D的位數(shù)高,從而使設(shè)計(jì)的系統(tǒng)本錢居高不下。
PWM控制方式廣泛應(yīng)用于各種控制系統(tǒng)中,但對(duì)脈沖寬度的調(diào)節(jié)一般采用硬件來(lái)實(shí)現(xiàn)。如使用PWM控制器或在系統(tǒng)中增加PWM電路[1]等,則本錢高、響應(yīng)速度慢,而且PWM控制器與系統(tǒng)之間存在兼容題目。另外,控制系統(tǒng)中的信號(hào)采樣通常是由A/D轉(zhuǎn)換器來(lái)完成,因此檢測(cè)精度要求較高時(shí),調(diào)理電路復(fù)雜,而且因A/D的位數(shù)高,從而使設(shè)計(jì)的系統(tǒng)本錢居高不下。
本文以應(yīng)用于溫度控制系統(tǒng)為例,先容利用MOTOROLA公司生產(chǎn)的新型單片機(jī)MSP430F413內(nèi)的定時(shí)器Time_A設(shè)計(jì)可以用時(shí)間量進(jìn)行溫度采樣以及實(shí)現(xiàn)PWM調(diào)節(jié)的方法。為了可在使用少量外圍電路的情況下實(shí)現(xiàn)控制系統(tǒng)的高精度丈量和控制,一方面用時(shí)間量采樣,在省往1片A/D的情況下得到12位的高精度;另一方面在定時(shí)中斷內(nèi)完全用軟件實(shí)現(xiàn)PWM調(diào)節(jié),以易于進(jìn)行數(shù)據(jù)的通訊和顯示。該系統(tǒng)在中斷內(nèi)可以解決波形產(chǎn)生的實(shí)時(shí)在線計(jì)算和計(jì)算精度題目,可精確、實(shí)時(shí)地計(jì)算設(shè)定頻率下的脈沖寬度。
1 單片機(jī)MSP430F413及定時(shí)器
MSP430系列的單片機(jī)F413在超低功耗和功能集成上都有一定的特色,可大大減小外圍電路的復(fù)雜性,它的實(shí)時(shí)處理能力及各種外圍模塊使其可應(yīng)用在多個(gè)低功耗領(lǐng)域[2]。MSP430F413中通用16位定時(shí)器Timer_A有如下主要功能模塊。
(1)一個(gè)可連續(xù)遞增計(jì)數(shù)至預(yù)定值并返回0的計(jì)數(shù)器。
(2)軟件可選擇時(shí)鐘源。
(3)5個(gè)捕捉/比較寄存器,每個(gè)有獨(dú)立的捕捉事件。
(4)5個(gè)輸出模塊,支持脈寬調(diào)制的需要。
定時(shí)器控制寄存器TACTL的各位可控制Timer_A的配置,并定義16位定時(shí)器的基本操縱,可選擇原始頻率或分頻后的輸進(jìn)時(shí)鐘源及4種工作模式。另外還有清除功能和溢出中斷控制位。5個(gè)捕捉/比較寄存器CCRx的操縱相同,它們通過(guò)各自的控制寄存器CCTLx進(jìn)行配置。
2 時(shí)間量采樣及PWM控制的實(shí)現(xiàn)原理
以應(yīng)用于溫度控制系統(tǒng)為例,先容用定時(shí)器實(shí)現(xiàn)信號(hào)采樣和PWM控制的方法。該溫度控制系統(tǒng)包括單片機(jī)、溫度丈量電路、負(fù)載驅(qū)動(dòng)電路及電源控制、低電壓檢測(cè)和顯示電路等其他外圍部分。
單片機(jī)MSP430F413中用于丈量和控制溫度的主要I/O口有:
P1.0:輸出50Hz方波,用于產(chǎn)生三角波。
P1.2:驅(qū)動(dòng)溫度控制執(zhí)行元件,2kHz方波PWM輸出。
P2.0:脈寬捕捉。
2.1 單片機(jī)端口的中斷設(shè)置
溫度控制系統(tǒng)的50Hz方波輸出、PWM輸出和輸進(jìn)捕捉都是由定時(shí)中斷來(lái)實(shí)現(xiàn)。這3個(gè)中斷分別由P0、P1和P2口的外圍模塊引起,屬于外部可屏蔽中斷。初始化時(shí),對(duì)這3個(gè)I/O口進(jìn)行中斷設(shè)置,并對(duì)Time_A控制寄存器TACTL設(shè)置,包括輸進(jìn)信號(hào)2分頻、選用輔助時(shí)鐘ACLK等。當(dāng)定義完捕捉/比較寄存器后,重新賦值TACTL,啟動(dòng)定時(shí)器,開始連續(xù)遞增計(jì)數(shù)。
2.2 脈寬捕捉實(shí)現(xiàn)溫度值的采樣
溫度丈量電路將溫度值轉(zhuǎn)換為電壓值,同時(shí)單片機(jī)產(chǎn)生的50Hz方波經(jīng)電容充放電電路變換得到同頻率的三角波,其電壓值切割三角波,從而將溫度值轉(zhuǎn)換為相應(yīng)寬度的脈沖送進(jìn)單片機(jī)。波形變化如圖1所示。
通過(guò)設(shè)置CCTLx中的模式位,可將對(duì)應(yīng)的捕捉/比較寄存器CCRx設(shè)定為捕捉模式,用于時(shí)間事件的精確定位。假如在選定的輸進(jìn)引腳上發(fā)生選定脈沖的觸發(fā)沿,則定時(shí)器計(jì)數(shù)的值將被復(fù)制到CCRx中。根據(jù)這一原理,選定P2.0為輸進(jìn)引腳,設(shè)置CCTL2為捕捉模式,所測(cè)溫度值由模擬量經(jīng)丈量電路轉(zhuǎn)換為脈沖后,P2.0捕捉脈沖下降沿,進(jìn)進(jìn)中斷T2,得到與溫度值一致的單位時(shí)間內(nèi)的脈沖數(shù),存進(jìn)CCR2作進(jìn)一步處理。
這樣,系統(tǒng)就在不使用A/D轉(zhuǎn)換器的情況下完成了模數(shù)轉(zhuǎn)換。由于單片機(jī)的時(shí)鐘精確度高,而且時(shí)間量是一個(gè)相對(duì)精度極高的量,但本系統(tǒng)中用時(shí)間量進(jìn)行溫度采樣可獲得12位的高精度,同時(shí)采用50Hz脈沖,可以大大消除工頻干擾。這些都為進(jìn)行精確的溫度控制提供了必要的條件。
2.3 PWM信號(hào)天生原理
將捕捉/比較寄存器CCR0和CCR1定義為比較模式,它們的輸出單元OUT0和OUT1分別對(duì)應(yīng)單片機(jī)引腳P1.0(TA0)和P1.2(TA1)。進(jìn)進(jìn)比較模式后,假如定時(shí)器CCRx的計(jì)數(shù)值即是比較寄存器x中的值,則比較信號(hào)EQUx輸出到輸出單元OUTx中,同時(shí)根據(jù)選定的模式對(duì)信號(hào)置位、復(fù)位或翻轉(zhuǎn)。其中:設(shè)置EQU0將OUT0信號(hào)翻轉(zhuǎn),信號(hào)時(shí)鐘與定時(shí)器時(shí)鐘同步,這樣就可以在P1.0引腳上得到50Hz的方波信號(hào);設(shè)置EQU1輸出模式為PWM復(fù)位/置位。
設(shè)定模式下定時(shí)中斷的輸出如圖2所示。根據(jù)設(shè)定的PWM復(fù)位/置位模式,若CCR1計(jì)數(shù)器溢出,則EQU1將OUT1復(fù)位;若CCR0計(jì)數(shù)器溢出,則EQU0將OUT1置位。利用CCR0和CCR1計(jì)數(shù)起始點(diǎn)的差值,實(shí)現(xiàn)占空比的變化,從而在P1.2上完成PWM輸出。系統(tǒng)對(duì)占空比的調(diào)節(jié)是通過(guò)改變CCR1的基數(shù)來(lái)實(shí)現(xiàn)的。定時(shí)器時(shí)鐘為2MHz、CCR1和CCR0的計(jì)數(shù)值為1 000時(shí),可獲得2kHz的PWM輸出頻率。負(fù)載驅(qū)動(dòng)電路將單片機(jī)P1.2引腳輸出的PWM信號(hào)放大濾波,用于驅(qū)動(dòng)大功率的執(zhí)行元件。
3 軟件設(shè)計(jì)
3.1 系統(tǒng)主程序
在主程序中包括系統(tǒng)初始化、定時(shí)器的初始化、溫度采樣值的讀進(jìn)、負(fù)載驅(qū)動(dòng)和顯示等。系統(tǒng)進(jìn)行溫度值采樣和PWM輸出均在定時(shí)中斷內(nèi)完成,PWM輸出脈沖的占空比則由PID算法得到。系統(tǒng)主程序流程圖如圖3所示。
3.2 PID脈寬調(diào)節(jié)
系統(tǒng)對(duì)脈寬的調(diào)制由PID算法實(shí)現(xiàn)。根據(jù)算法原理,本系統(tǒng)設(shè)計(jì)了一套完全由軟件實(shí)現(xiàn)的PID算法,并且在控制過(guò)程中完成參數(shù)的自整定。PID調(diào)節(jié)的控制過(guò)程:?jiǎn)纹瑱C(jī)讀出數(shù)字形式的實(shí)際溫度Tn,然后和設(shè)定溫度Tg相比較,得出差值en=Tn-Tg,根據(jù)en的正負(fù)和大小,調(diào)用PID公式,計(jì)算得到與輸出電壓Δun一致的占空比,調(diào)節(jié)溫度的升降,同時(shí)尋找最優(yōu)條件,改變PID參數(shù)。
增量式PID控制算法的輸出量[3]:
PID調(diào)節(jié)程序直接寫進(jìn)單片機(jī)內(nèi),根據(jù)得到的值改變計(jì)數(shù)器CCR1的基數(shù)值,從而改變輸出脈沖的占空比,達(dá)到調(diào)節(jié)PWM的目的。
3.3 定時(shí)中斷
定時(shí)中斷子程序流程如圖4所示。系統(tǒng)采用的晶振頻率為2MHz,T0中斷的作用是得到頻率為50Hz、占空比為90%的方波,用以產(chǎn)生三角波,并檢查1個(gè)周期內(nèi)是否有漏采的數(shù)據(jù)。T0模溢出翻轉(zhuǎn)為高電平,輸出比較間隔為18ms。其中,CCR0加了PWM的模,該值即為CCR0和CCR1的差值,用以產(chǎn)生輸出所需的脈沖寬度。
T1中斷內(nèi)處理的是控制端口的PWM輸出,并檢查1個(gè)周期內(nèi)是否重復(fù)采集數(shù)據(jù),T1輸出比較產(chǎn)生低電平,輸出比較間隔為20ms。T2中斷捕捉溫度丈量端口的脈寬,得到所測(cè)的溫度值。
4 結(jié)束語(yǔ)
利用單片機(jī)MSP430F413內(nèi)的定時(shí)器Time_A進(jìn)行溫度采樣以及實(shí)現(xiàn)PWM調(diào)節(jié)的方法,可以廣泛用于具有端口捕捉功能的單片機(jī)中。與傳統(tǒng)方法比較,它不僅可以簡(jiǎn)化丈量和控制電路的硬件結(jié)構(gòu),而且可以方便地建立人機(jī)接口,實(shí)現(xiàn)用軟件調(diào)整參數(shù),使控制更精確、實(shí)時(shí)、可靠。經(jīng)過(guò)實(shí)驗(yàn),該方法應(yīng)用于溫度控制系統(tǒng)中獲得了預(yù)期的精確PWM調(diào)節(jié)波形。該方法同樣可以用于其他單片機(jī)控制系統(tǒng)中。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)電話或者郵箱聯(lián)系小編進(jìn)行侵刪。
特別推薦
- 音頻放大器的 LLC 設(shè)計(jì)注意事項(xiàng)
- 服務(wù)器電源設(shè)計(jì)中的五大趨勢(shì)
- 電子技術(shù)如何助力高鐵節(jié)能?
- 利用創(chuàng)新FPGA技術(shù):實(shí)現(xiàn)USB解決方案的低功耗、模塊化與小尺寸
- 加速度傳感器不好選型?看這6個(gè)重要參數(shù)!
- 功率器件熱設(shè)計(jì)基礎(chǔ)(十三)——使用熱系數(shù)Ψth(j-top)獲取結(jié)溫信息
- IGBT并聯(lián)設(shè)計(jì)指南,拿下!
技術(shù)文章更多>>
- PLC 交流模塊的 TRIAC 輸出故障排除
- 解鎖AI設(shè)計(jì)潛能,ASO.ai如何革新模擬IC設(shè)計(jì)
- 汽車拋負(fù)載Load Dump
- 50%的年長(zhǎng)者可能會(huì)聽障?!救贖的辦法在這里
- ADI 多協(xié)議工業(yè)以太網(wǎng)交換機(jī)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
功率電阻
功率放大器
功率管
功率繼電器
功率器件
共模電感
固態(tài)盤
固體繼電器
光傳感器
光電池
光電傳感器
光電二極管
光電開關(guān)
光電模塊
光電耦合器
光電器件
光電顯示
光繼電器
光控可控硅
光敏電阻
光敏器件
光敏三極管
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國(guó)防航空
過(guò)流保護(hù)器
過(guò)熱保護(hù)
過(guò)壓保護(hù)