《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 利用單片機定時器實現(xiàn)信號采樣和PWM控制
利用單片機定時器實現(xiàn)信號采樣和PWM控制
李 寧 汪 燕
摘要: 一種利用單片機MSP430F413的定時器Time_A實現(xiàn)采樣和脈沖寬度調節(jié)(PWM)的方法,并應用于精密溫度控制系統(tǒng)。該系統(tǒng)采用時間量采樣的模數(shù)轉換方法,并設計了完全采用軟件實現(xiàn)的PID調節(jié)程序,用PWM方式完成對精密溫度的控制。
Abstract:
Key words :

  摘  要: 一種利用單片機MSP430F413的定時器Time_A實現(xiàn)采樣和脈沖寬度調節(jié)(PWM)的方法,并應用于精密溫度控制系統(tǒng)。該系統(tǒng)采用時間量采樣的模數(shù)轉換方法,并設計了完全采用軟件實現(xiàn)的PID調節(jié)程序,用PWM方式完成對精密溫度的控制。

  關鍵詞: PWM控制  單片機  定時器  MSP430F413

   PWM控制方式廣泛應用于各種控制系統(tǒng)中,但對脈沖寬度的調節(jié)一般采用硬件來實現(xiàn)。如使用PWM控制器或在系統(tǒng)中增加PWM電路[1]等,則成本高、響應速度慢,而且PWM控制器與系統(tǒng)之間存在兼容問題。另外,控制系統(tǒng)中的信號采樣通常是由A/D轉換器來完成,因此檢測精度要求較高時,調理電路復雜,而且因A/D的位數(shù)高,從而使設計的系統(tǒng)成本居高不下。

  本文以應用于溫度控制系統(tǒng)為例,介紹利用Motorola公司生產的新型單片機MSP430F413內的定時器Time_A設計可以用時間量進行溫度采樣以及實現(xiàn)PWM調節(jié)的方法。為了可在使用少量外圍電路的情況下實現(xiàn)控制系統(tǒng)的高精度測量和控制,一方面用時間量采樣,在省去1片A/D的情況下得到12位的高精度;另一方面在定時中斷內完全用軟件實現(xiàn)PWM調節(jié),以易于進行數(shù)據的通信和顯示。該系統(tǒng)在中斷內可以解決波形產生的實時在線計算和計算精度問題,可精確、實時地計算設定頻率下的脈沖寬度。

1 單片機MSP430F413及定時器

  MSP430系列的單片機F413在超低功耗和功能集成上都有一定的特色,可大大減小外圍電路的復雜性,它的實時處理能力及各種外圍模塊使其可應用在多個低功耗領域[2]。MSP430F413中通用16位定時器Timer_A有如下主要功能模塊。

  (1)一個可連續(xù)遞增計數(shù)至預定值并返回0的計數(shù)器。

  (2)軟件可選擇時鐘源。

  (3)5個捕獲/比較寄存器,每個有獨立的捕獲事件。

  (4)5個輸出模塊,支持脈寬調制的需要。

  定時器控制寄存器TACTL的各位可控制Timer_A的配置,并定義16位定時器的基本操作,可選擇原始頻率或分頻后的輸入時鐘源及4種工作模式。另外還有清除功能和溢出中斷控制位。5個捕獲/比較寄存器CCRx的操作相同,它們通過各自的控制寄存器CCTLx進行配置。

2 時間量采樣及PWM控制的實現(xiàn)原理

  以應用于溫度控制系統(tǒng)為例,介紹用定時器實現(xiàn)信號采樣和PWM控制的方法。該溫度控制系統(tǒng)包括單片機、溫度測量電路、負載驅動電路及電源控制、低電壓檢測和顯示電路等其他外圍部分。

  單片機MSP430F413中用于測量和控制溫度的主要I/O口有:

  P1.0:輸出50Hz方波,用于產生三角波。

  P1.2:驅動溫度控制執(zhí)行元件,2kHz方波PWM輸出。

  P2.0:脈寬捕捉。

2.1 單片機端口的中斷設置

  溫度控制系統(tǒng)的50Hz方波輸出、PWM輸出和輸入捕捉都是由定時中斷來實現(xiàn)。這3個中斷分別由P0、P1和P2口的外圍模塊引起,屬于外部可屏蔽中斷。初始化時,對這3個I/O口進行中斷設置,并對Time_A控制寄存器TACTL設置,包括輸入信號2分頻、選用輔助時鐘ACLK等。當定義完捕獲/比較寄存器后,重新賦值TACTL,啟動定時器,開始連續(xù)遞增計數(shù)。

2.2 脈寬捕捉實現(xiàn)溫度值的采樣

  溫度測量電路將溫度值轉換為電壓值,同時單片機產生的50Hz方波經電容充放電電路變換得到同頻率的三角波,其電壓值切割三角波,從而將溫度值轉換為相應寬度的脈沖送入單片機。波形變化如圖1所示。

 

 

  通過設置CCTLx中的模式位,可將對應的捕獲/比較寄存器CCRx設定為捕獲模式,用于時間事件的精確定位。如果在選定的輸入引腳上發(fā)生選定脈沖的觸發(fā)沿,則定時器計數(shù)的值將被復制到CCRx中。根據這一原理,選定P2.0為輸入引腳,設置CCTL2為捕獲模式,所測溫度值由模擬量經測量電路轉換為脈沖后,P2.0捕捉脈沖下降沿,進入中斷T2,得到與溫度值一致的單位時間內的脈沖數(shù),存入CCR2作進一步處理。

  這樣,系統(tǒng)就在不使用A/D轉換器的情況下完成了模數(shù)轉換。因為單片機的時鐘精確度高,而且時間量是一個相對精度極高的量,但本系統(tǒng)中用時間量進行溫度采樣可獲得12位的高精度,同時采用50Hz脈沖,可以大大消除工頻干擾。這些都為進行精確的溫度控制提供了必要的條件。2.3 PWM信號生成原理

將捕獲/比較寄存器CCR0和CCR1定義為比較模式,它們的輸出單元OUT0和OUT1分別對應單片機引腳P1.0(TA0)和P1.2(TA1)。進入比較模式后,如果定時器CCRx的計數(shù)值等于比較寄存器x中的值,則比較信號EQUx輸出到輸出單元OUTx中,同時根據選定的模式對信號置位、復位或翻轉。其中:設置EQU0將OUT0信號翻轉,信號時鐘與定時器時鐘同步,這樣就可以在P1.0引腳上得到50Hz的方波信號;設置EQU1輸出模式為PWM復位/置位。

  設定模式下定時中斷的輸出如圖2所示。根據設定的PWM復位/置位模式,若CCR1計數(shù)器溢出,則EQU1將OUT1復位;若CCR0計數(shù)器溢出,則EQU0將OUT1置位。利用CCR0和CCR1計數(shù)起始點的差值,實現(xiàn)占空比的變化,從而在P1.2上完成PWM輸出。系統(tǒng)對占空比的調節(jié)是通過改變CCR1的基數(shù)來實現(xiàn)的。定時器時鐘為2MHz、CCR1和CCR0的計數(shù)值為1 000時,可獲得2kHz的PWM輸出頻率。負載驅動電路將單片機P1.2引腳輸出的PWM信號放大濾波,用于驅動大功率的執(zhí)行元件。

 

3  軟件設計

3.1 系統(tǒng)主程序

  在主程序中包括系統(tǒng)初始化、定時器的初始化、溫度采樣值的讀入、負載驅動和顯示等。系統(tǒng)進行溫度值采樣和PWM輸出均在定時中斷內完成,PWM輸出脈沖的占空比則由PID算法得到。系統(tǒng)主程序流程圖如圖3所示。

 

 

3.2 PID脈寬調節(jié)

  系統(tǒng)對脈寬的調制由PID算法實現(xiàn)。根據算法原理,本系統(tǒng)設計了一套完全由軟件實現(xiàn)的PID算法,并且在控制過程中完成參數(shù)的自整定。PID調節(jié)的控制過程:單片機讀出數(shù)字形式的實際溫度Tn,然后和設定溫度Tg相比較,得出差值en=Tn-Tg,根據en的正負和大小,調用PID公式,計算得到與輸出電壓Δun一致的占空比,調節(jié)溫度的升降,同時尋找最優(yōu)條件,改變PID參數(shù)。

增量式PID控制算法的輸出量[3]:

  PID調節(jié)程序直接寫入單片機內,根據得到的值改變計數(shù)器CCR1的基數(shù)值,從而改變輸出脈沖的占空比,達到調節(jié)PWM的目的。

3.3 定時中斷

  定時中斷子程序流程如圖4所示。系統(tǒng)采用的晶振頻率為2MHz,T0中斷的作用是得到頻率為50Hz、占空比為90%的方波,用以產生三角波,并檢查1個周期內是否有漏采的數(shù)據。T0模溢出翻轉為高電平,輸出比較間隔為18ms。其中,CCR0加了PWM的模,該值即為CCR0和CCR1的差值,用以產生輸出所需的脈沖寬度。

 

 

  T1中斷內處理的是控制端口的PWM輸出,并檢查1個周期內是否重復采集數(shù)據,T1輸出比較產生低電平,輸出比較間隔為20ms。T2中斷捕捉溫度測量端口的脈寬,得到所測的溫度值。

4  結束語

    利用單片機MSP430F413內的定時器Time_A進行溫度采樣以及實現(xiàn)PWM調節(jié)的方法,可以廣泛用于具有端口捕捉功能的單片機中。與傳統(tǒng)方法比較,它不僅可以簡化測量和控制電路的硬件結構,而且可以方便地建立人機接口,實現(xiàn)用軟件調整參數(shù),使控制更精確、實時、可靠。經過實驗,該方法應用于溫度控制系統(tǒng)中獲得了預期的精確PWM調節(jié)波形。該方法同樣可以用于其他單片機控制系統(tǒng)中。

參考文獻

1 Rahban T.穩(wěn)定度0.1℃的PWM控制器.電子產品世界,2003;(2)

2 胡大可.MSP430系列超低功耗16位單片機原理與應用.北京:北京航空航天大學出版社,2001

3 惠長坤.PID算法在可編程控制器上的軟件實現(xiàn)方法.華東船舶工業(yè)學院學報,1995;9(3)

此內容為AET網站原創(chuàng),未經授權禁止轉載。