技術頻道

      TMS320C5402 DSP在嵌入式測控系統中的應用

      摘 要:與通常在嵌入式測控系統中采用MCU(單片機)相比,TMS320C5402 DSP的運算和數據處理能力強、實時性好,在本設計中實現了較理想的PID溫度控制效果;而且,文中給出了在TMS320C5402 DSP上實現的數據采集程序和PID算法程序的代碼。

      關鍵詞:MCU PID DSP 溫度

      1 C5402DSP的應用特點

        盡管從一般意義上講, 基于MCU(單片機)與DSP(數字信號處理器)這兩類器件的系統都有各自的用途,但現在很多新興的嵌入式應用,尤其是那些大型的復雜系統,在系統內同時實現信號與控制兩種處理,它們既需要DSP的功能又需要MCU的功能。筆者正是基于這種嘗試,在PID溫度控制系統中,將DSP 應用到MCU的應用場合,取得了較好的控制效果。隨著DSP(數字信號處理器)制造技術的發展,其成本已經下降到較低水平;而DSP的處理速度可滿足控制的實時性需求。本設計中選用了性價比高、運算能力強、實時性好的TMS320C5402 DSP來實現PID溫度控制算法。C5402DSP相對于單片機的主要優勢在于:首先,C5402DSP采用的是哈佛結構,有多組總線分別連接到程序存儲空間和數據存儲空間結構,片內有三組16bit數據總線CB、DB、EB和一組程序總線PB以及對應的4組地址線CBA、DBA、EBA、PBA;其次,具有硬件乘加器,包括一個17*17bit乘法器和一個40bit專用加法器,可以在單周期內完成乘、加運算各一次,運算能力很強;還有,采用了流水線技術,指令具有6級流水線,相對于單片機而言,速度大大提高;另外,還具有串行口和并行口等外設,可滿足控制的輸入輸出要求。

      2 系統硬件結構與工作原理

        系統的硬件結構如圖1所示。本設計主要分為溫度采集和PID控制兩部分。DSP檢查所得溫度是否超過上下限值,若超過則報警并轉入相應處理;否則根據所要求的標準溫度值計算采集溫度與標準值的偏差e(n),轉入PID算法程序進行處理,得到輸出控制信號y(n),通過y(n)來控制加熱/降溫裝置進行工作,達到控溫的效果。


      圖1 系統結構原理框圖

      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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 日韩亚洲AV无码一区二区不卡 | 中文字幕精品一区| 国产精品无码一区二区三区不卡 | 国产情侣一区二区| 国产精品无码一区二区在线| 精品少妇人妻AV一区二区| 欧洲精品一区二区三区| 国产日韩一区二区三免费高清| 伊人激情AV一区二区三区| 日韩在线视频不卡一区二区三区 | 亚洲色无码一区二区三区| 精品视频一区二区三区四区| 日韩一区二区精品观看| 国产高清一区二区三区| 国产一区二区精品| 国产大秀视频一区二区三区| 免费无码VA一区二区三区| 日本精品夜色视频一区二区| 69久久精品无码一区二区| 精品一区二区三区高清免费观看 | 精品人妻系列无码一区二区三区| 国产一区二区三区内射高清| 亚洲一区中文字幕| 无码人妻AV免费一区二区三区| 一区二区免费国产在线观看| 手机福利视频一区二区| 日韩精品人妻一区二区三区四区| 无码毛片视频一区二区本码 | 亚洲A∨无码一区二区三区| 久久精品国产一区二区三区| 日本一区二区三区在线观看视频 | 国产伦精品一区二区三区不卡| 亚洲AV午夜福利精品一区二区| 午夜无码视频一区二区三区| 国产乱码精品一区二区三区四川| 在线视频国产一区| 中文字幕在线无码一区| 97久久精品午夜一区二区| 久久精品无码一区二区三区| 国精品无码一区二区三区在线蜜臀| 亚洲一区二区三区免费|