時間:2008-08-08 09:27:00來源:ronggang
圖1 系統結構原理框圖[/align]
3 軟件設計
本設計主要包括主程序、溫度采集子程序、上下限溫度值查詢子程序、PID子程序等。其中,溫度采集子程序和PID子程序是核心,本文將著重介紹。
3.1 溫度采集程序
DSP芯片通過串口0與單總線溫度傳感器DS18B20的數據線相連,對現場溫度進行采集,DSP芯片TMS320C5402通過串口0讀出采集到的溫度并對它進行濾波處理;通過串口1寫中斷,調用顯示程序進行溫度顯示。為便于讀者參考,下面給出DS18B20的DSP溫度讀寫程序。
(1)DSP寫數據子程序
TX0 STM #PCR0,SPSA0
STM #0011001000000010B,McBSP0
RPT #100
NOP
STM #PCR0,SPSA0
STM #0011001000000000B,McBSP0
RPT #1500
NOP
STM #PCR0,SPSA0
STM #0011001000000010B,McBSP0
RET
(2)DSP讀數據子程序
RX STM #PCR0,SPSA0
STM #0011001000000010B,McBSP0
RPT #120
NOP
STM #PCR0,SPSA0
STM #0011001000000000B,McBSP0
RPT #120
STM #PCR0,SPSA0
STM #0011001000000010B,McBSP0
RPT #120
NOP
LD #04H,A
STL A,TMP
PORTW TMP,7H
STM #PCR0,SPSA0
LD McBSP0,A
AND #0001H,A
BC RX1, ANEQ
RSBX C
B RX2
RX1 SSBX C
RX2 ROR B
LD #02H,A
STL A,TMP
PORTW TMP,7H
RET
3.2 PID算法在DSP上的實現
經典PID控制算法的表達式為:
y(t)=KP*[e(t)+1/ TI *∫e (t)dt+TD *de(t)/dt] (3.1)
式中:
y(t)—調節器的輸出信號
e(t) —調節器的偏差信號,它等于給定值與測量值之差
KP—調節器的比例系數
TI—調節器的積分系數
TD—調節器的微分時間
為了用DSP實現上式,必須將其離散化,用數字形式描述為:
y(n)-y(n-1)=KP[e(n)-e(n-1)]+KI*e(n)+KD[e(n)-2e(n-1)+e(n-2)] (3.2)
其中:
KI=KP*T/TI ;
KD=KP*TD/T
T—采樣周期
e (n) —第n次采樣的偏差;
e(n-1) —第n-1次采樣時的偏差;
e(n-2) —第n-2次采樣時的偏差。
由式(3.2)可知,要計算第n次輸出值y(n),只要知道y(n-1),e(n)、e(n-1)、e(n-2)即可。
式(3.2)還可以表示為下式:
y(n)- y(n-1)=d0*e(n)+d1*e(n-1)+d2*e(n-2) (3.3)
式中:
d0 = KP(1+T/TI+TD/T)
d1 = -KP(1+2TD/T)
d2 = KP*TD/T
將式(3.3)代入(3.2)得:
y(n)=d0*e(n)+d1*e(n-1)+d2*e(n-2)+y(n-1)
上述式子是典型的乘加算式,而DSP具有專門的乘加指令,在DSP上非常容易實現;所以,該式成為PID算法在DSP上實現的依據。
在C5402DSP上實現的PID算法程序包括:PID各參量的初始化,計算偏差值e(n),PID算法處理,e(n) 、y(n)參數更新等。這些功能在DSP上實現較之單片機而言,顯得非常方便。
在DSP上實現的程序代碼如下。
(1)PID初始化
startpid: SSBX FRCT ;小數方式標志位
STM #en+1, AR1 ;取e(n-1)地址送AR1
RPT #1 ;重復2次
MVPD #table,*AR1+ ;傳送初始數據e(n-2),e(n-1)
STM #yn, AR1 ;取y(n-1)地址送AR1
MVPD #table+2,*AR1 ;傳送初始數據y(n-1))
STM #Kpid,AR1
RPT #2 ;重復3次
MVPD #table+3,*AR1+ ;傳送初始數據d2,d1,d0
(2)PID算法程序
STM #en, AR1 ;取e(n)地址送AR1
LD @Tx, A ;調入溫度值
SUB #TSTD, A ;計算溫度值與標準值的偏差
STH A, *AR1+ ;輸入偏差e(n)
STM #en+2, AR1
STM # Kpid+2, AR2
STM #2, AR0
LD *AR1-, T ;e(n-2)送T
MPY *AR2-, A ;d2* e(n-2)
LTD *AR1- ; e(n-1)送T, e(n-1)送e(n-2)
MAC *AR2-, A ;A+ d1*e(n-1)
LTD *AR1+0 ; e(n)送T, e(n)送e(n-1)
MAC *AR2+0, A
ADD A, @yn, A
STH A, @yn ;保存y(n)
PORTW @yn, PA1
RET
4 結語
在過去的設計中我們選用了80C51 MCU實現了PID溫度控制,但由于單片機的運算功能較差,程序實現的效率不夠高,實時性不好。本設計中由于選用了性價比高、運算能力強、實時性好的TMS320C5402 DSP來實現PID溫度控制算法,取得了較好的控制效果。目前,許多MCU制造廠家在它們的體系結構中增加或擴充了各種 DSP 功能,例如增加了 MAC(乘法累加)指令等。同樣,一些 DSP 體系結構也增加了像集成的外圍設備、可編程的外部芯片選擇連線、中斷驅動的 I/O、定時器以及較大的外部存儲器等功能部件。將來,對復雜的應用系統,可能不會再明確地區分DSP應用還是MCU應用。因此,DSP與MCU融合的時代即將到來。
參考文獻
[1] 戴明楨,周建江. TMS320C54x DSP結構、原理及應用[M]. 北京:北京航空航天大學出版社, 2001
[2] 潘新民,王燕芳. 單片微型機算機實用系統設計[M]. 北京:人民郵電出版社, 1996
[3] 肖洪兵等.跟我學用單片機[M].北京:北京航空航天大學出版社,2002
標簽:
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-09-08
華為昇騰Atlas800iA2 910B服務器Deepsee...
2025-09-04
2025-08-06
2025-07-08
2025-06-30
2025-06-16