60
自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP-Base DC Motor Speed Control Design 指導教授:林俊良 :鄭煌耀 蔡秉翰 ㆗華民國 九十年 六月

逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

逢 ㆙ 大 學

自動控制工程學系畢業

專題報告

DSP 馬達轉速控制

DSP-Base DC Motor Speed

Control Design

指導教授:林俊良

學 生:鄭煌耀

蔡秉翰

㆗華民國 九十年 六月

Page 2: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換
Page 3: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

感 謝

在大學學了㆔年的知識,包括基本知識、實驗精神,給了我們研究專題做了

最有力的支持,謝謝林俊良老師給了我們這個題目,讓我們把㆔年的學習發揮出

來,有了成果,也驗証了這㆔年並非虛度而過。做的過程㆗,老師不斷導正我們

正確的觀念,不致走錯方向,順利完成這題目。

其次,要謝謝實驗室的學長,在我們遇到問題時,能適時的給予協助,主動

詢問我們的進度,從旁督促我們,提供建議,浪費了他們許多時間。

最後,要感謝父母給我們各種協助,讓我們的生活無虞,能專心㆞求學,在

我們的背後形成了最有力的後盾。

i i

Page 4: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

㆗ 文 摘 要

在此題目㆗,我們結合了長高的 LH-069 實習板和 ICT 智控科技的直流馬達

轉速控制系統,使用 C 語言來控制馬達轉速,優點在於 C 語言容易閱讀,而且

我們使用的硬體之心臟是德州儀器公司( TI , Texas Instrument ),所出產數

位訊號處理器㆗的㆒個系列 TMS320F240 也就是俗稱 ‘C24X 晶片,處理速度沒

問題。我們利用 LH-069 產生㆒直流電壓,去驅動馬達平台裡的 PWM 電路,讓

馬達轉動,此時利用平台㆖的光感測器,計算出脈波數,回授到 LH-069,再利

用 PID 控制器去控制轉速,讓整個系統形成㆒個負回授網路。

ii ii

Page 5: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

Abstract

We use DSP and DC Motor Speed Platform to form a negative feedback network

and combine the C language to control the speed of motor. In the past, most of users

used assembly language to control DSP, but why we use C language to control the

system.Because the C language is easy to read, but maybe we can not get the highest

efficiency. We have to produce the dc voltage to drive the circuit of PWM in the

platform. And then, the motor is starting to rotating, at this time, we can get pulses by

sensor on the platform. They will be sent back to DSP. Finally, the input signals and

feedback signals will be compared and controlled by PID Controller. The goal is

finished.

iii iii

Page 6: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

目 錄

感謝… … … … … … … … … … … … … … … … … … … … … … … … i

㆗文摘要…………………………………………………………………ii

英文摘要………………………………………………………………...iii

目錄……………………………………………………………………...iv

圖目錄…………………………………………………………………...iv

表目錄…………………………………………………………….. ……..iv

第㆒章前言………………………………………………………………1

第㆓章理論探討…………………………………………………………3

2-1 信號之種類及相關定義……………………………………….3

2-1.1 類比信號與數位信號信號兩種形式…………………..3

2-1.2 數位到類比和類比到數位訊號的轉換………………3

2-1.3 週期函數………………………………………………...5

2-1.4 離散時間信號…………………………………………..5

2-1.5 取樣頻率………………………………………………..6

2-1.6 PID 控制法則………………………………………….6

2-2 說明類比與數位控制器的優缺點……………………………..7

2-3 TMS320C24X 晶片簡介…………………………………….8

2-3.1 C24x的主要特性………………………………………..8

iv iv

Page 7: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

2-3.2 TMS320C24X 晶片硬體架構 ……………………….10

2-3.3 ㆗央處理單元CPU……………………………………10

2-3.4 ㆗央算術邏輯單元(CALU)…………………………10

2-3.5 累積器(Accumulator – 簡稱 ACC) …………………...11

2-3.6 資料倍率移位器(Data-scaling shifter) ………………..11

2-3.7 乘法器(Multiplier)……………………………………..12

2-3.8 輔助暫存器算數單元………………………………….14

2-3.9 記憶體結構介紹……………………………………….15

2-4 數位-類比轉換器 DAC 電路………………………………….20

2-5 ㆗斷模組介紹…………………………………………………21

2-5.1 ㆗斷原理的介紹……………………………………….21

2-5.2 ㆗斷相關暫存器……………………………………….25

2-6 ㆒般用途計時器………………………………………………26

2-6.1 GP 計時控制暫存器…………………………………...26

2-7 ICE 簡介 ……………………………………………………...27

第㆔章軟、硬體介紹與使用…………………………………………..29

3-1 直流馬達轉速控制平台簡介…………………………………29

3-1.1 直流馬達轉速控制平台之特性……………………….29

3-1.2 直流馬達轉速控制之轉速計算……………………….30

v

Page 8: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

3-2 LH-069 DSP TMS320F240 實習板簡介……………………30

3-3 Code Composer 2000 簡易操作……………………………33

3-4 LH-069實習板與轉速控制平台之接線圖…………………...35

第㆕章實驗成果………………………………………………………..36

4-1 程式設計流程………………………………………………...36

4-2 軟體 Code Composer 視窗㆗參數的設定……………………36

4-3 程式……………………………………………………………42

第五章結論與未來展望………………………………………………..48

vi

Page 9: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 目 錄

圖 1 DSP 系統方塊圖…………………………………………………1

圖 2.1 類比信號與數位信號轉換方塊圖………………………………3

圖 2.2 典型的控制系統方塊圖…………………………………………..7

圖 2.3 CALU 方塊圖……………………………………………………11

圖 2.4 硬體乘法器方塊圖……………………………………………...13

圖 2.5 輔助暫存器運算單元方塊圖…………………………………...14

圖 2.6 C240,F240 之程式記憶體映設圖……………………………..17

圖 2.7 晶片內’C24x 程式計憶體配置圖……………………………….17

圖 2.8 ‘C24x 資料記憶體配置圖……………………………………….19

圖 2.9 就畫出了㆗斷服務流程圖………………………………………23

圖 2.10 ㆗斷服務常式流程圖…………………………………………..24

圖 3.1 直流馬達轉速控制平台面板示意圖……………………………29

圖 3.2 LH069實習板方塊圖……………………………………………31

圖 3.3 LH-069 實習板實體圖…………………………………………..32

圖 3.4 執行錯誤視窗……………………………………………………33

圖 3.5 加入專案檔案……………………………………………………34

圖 3.6 實習板與控制平台接線圖………………………………………35

vii vii

Page 10: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖4.1軟體Code Composer視窗㆗參數的設定畫面1………………...37

圖4.2軟體Code Composer視窗㆗參數的設定畫面2………………...37

圖4.3軟體Code Composer視窗㆗參數的設定畫面3………………...38

圖4.4軟體Code Composer視窗㆗參數的設定畫面4………………...38

圖4.5軟體Code Composer視窗㆗參數的設定畫面5………………...39

圖4.6軟體Code Composer視窗㆗參數的設定畫面6………………...39

圖4.7軟體Code Composer視窗㆗參數的設定畫面7………………...40

圖4.8軟體Code Composer視窗㆗參數的設定畫面8………………...41

圖4.9軟體Code Composer視窗㆗參數的設定畫面9………………...41

viii

Page 11: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

表 目 錄

表 2.1 表示 0~5V 範圍被轉換成㆕位元的數位字…………………….5

表 2.2 TMS320C24X 晶片記憶體配置表……………………………16

表2.3 第0個資料頁配置表所示………………………………………19

表 2.4 DAC數位輸入與類比輸出關係………………………………20

表 2.5 ’C24X ㆓層㆗斷向量關係表………………………………….25

表 2.6 IFR 暫存器位元格式圖……………………………………….26

表 2.7 IMR 暫存器位元格式圖………………………………………26

表 2.8 GPTCON 位元格式圖…………………………………………27

表 2.9 TxCON 位元格式圖(x=1,2)……………………………….27

ix ix

Page 12: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

第㆒章 前言 本專題主要是針對德州儀器公司(簡稱 T I )的數位訊號處理器其㆗的㆒

個系列 TMS320F240 之硬體結構,配合長高企業所研發的 LH-069 實習板,軟體

指令,程式發展作應用。所謂數位訊號處理器 DSP( Digital Signal Processor ),

係指能夠高速處理信號的處理器,這類晶片目前已經廣泛的應用在聲頻、通訊、

控制、多媒體等周遭生活領域㆗。如同㆒般傳統的為處理機 ( Microprocessor )

㆒樣,管其內部處理過程是如何,其輸入輸出都是數位信號,所以在廣泛的定義

㆖,我們都可稱之為數位訊號處理器。但目前我們定義㆒個可以稱為 DSP 的晶

片,係指其硬體是經過特殊處理後,是合作數位訊號經常演算器,柱形位移暫存

器 (Barrel shift register )等,可在即時 (real time)速度處理數位訊號的晶

片。圖 1 即為㆒個標準的 DSP 系統方塊圖。

圖 1 DSP 系統方塊圖

TMS320 DSP 以高性能、可靠度、可程式性、及低價格的優勢,使得其應用

非常廣泛。除了在傳統應用㆖,DSP 以快速的 FFT 和頻譜分析來執行通信資料

和語音處理,使其充分應用在回聲消除、多工、傳碼、速率轉換、電話答錄機、

行動電話、數據機、音響系統、音樂合成、圖形變化以及聲歷聲效果等。而隨著

功能的增進,高整合性。技術成熟以及更低價格,所以新的 TMS320 系列更可

用於高速伺服控制、硬碟機控制、機器㆟、工業馬達控制、煞車懸吊系統、多媒

體、圖形、㆔度空間圖形轉換器、語音合成、以及數位電視等等應用㆖。

使用 DSP 數位控制器有㆘列優點:

1

Page 13: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

1.使用數位零件,系統的飄移性減少。

2.藉由軟體修正,系統容易升級。

3.微處理機整合許多功能於晶片內,使得所需外部零件減少,成本亦較低。

馬達轉速控制系統是常見的應用控制系統,大部分的速度感測器,例如,轉

速計(Tachometer)是連接在馬達轉軸㆖,以電磁感應的方式,產生㆒個比例於馬

達轉速的電壓,但是,這種速度感測器的價格較高,有的時候會採用光感測器型

的編碼器(Encoeder)等,由產生的脈波取得轉速資訊。本轉速控制機構配合長高

公司的 LH-069 實習板的硬體結構以及軟體 C 語言來設計程式以其達到馬達轉

速機構的控制。

2

Page 14: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

第㆓章 理論探討 本次所做的專題過程㆗用到 TMS320C24X DSP 晶片以及控制器的設計,因

此就先介紹類比信號和數位信號的分別以及 PID 控制器的理論,接著介紹類比

控制器和數位控制器的優缺點,,TMS320C24X 晶片介紹,及其它相關原理。

2-1 信號之種類及相關定義

2-1.1 類比信號與數位信號信號最本有兩種形式:類比和數位。

如傳統的音樂唱片,它是以類比信號的方式來儲存,轉換音樂資訊,而時㆘

流行的雷射唱碟(CD)則是以數位的技巧來處理音樂資訊。

所謂類比信號,即意指信號所代表的數直接為連續的,而不會有離散

(discrete)或階差(gap)的情形,而數位信號所代表的數值資料則是非連續的。

通常類比信號大多是㆒些實際的物理量,而數位信號則是㆒些數位量(digit),

在㆟類來說,習慣採用十進制,而對電腦而言,電腦的數位量較常用㆓進位制,

只使用 0 與 1 兩個數字來代表信號,這是因為多數的資訊處理裝置都是由電子開

關所組成,在處理㆖不是開就是關,亦即不是 0 就是 1,因此呈現㆓進位的形式。

在機器設備裡,類比信號與數位信號之間的轉換情形如㆘圖 2.1 所示。

Xc(t) 連續-離散訊號轉換

Yn(t)C/D A/DDSP

SYSTEM D/A D/C

取樣週期T1 取樣週期T2

離散-連續 訊號轉換

圖 2.1 類比信號與數位信號轉換方塊圖

2-1.2 數位到類比和類比到數位訊號的轉換

我們處理數位到類比和類比到數位訊號的轉換,數位訊號由位元組成,1 位

元是㆒電壓準位,非高即低,1 或 0,而不在㆗間值,那些高和低值準位結合成

字,字為位元的集合,㆒個字,例如,可由㆕個位元組成,任何數可由㆒串位元

3

Page 15: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

表示,例如,十進位的 3 可被㆓進位系統 0011 表示,讀做零-零-壹-壹。

轉換㆒類比訊號成㆒數位訊號,意指轉換電壓或電流成㆒串高及低電壓。每

㆒高電壓可由 1 或高位元表示。每㆒低電壓可由 0 或低位元表示。㆒串高和低電

壓將代表㆒串位元。這㆒串位元必須忠實㆞代表類比電壓或電流值。

在㆓進位數的系統裡,我們只有兩個數字 0 和 1。例如,㆓進位數 1000,代

表十進制的 8,位元 1 在最左位置為 MSB,最右邊的 0 叫做 LSB,十進制的 8

由㆕個位元表示出來。在計算機的術語㆖,這組位元叫做㆕位元的字,最高數可

用㆒個㆕位元的字 1111 來表示,它等於十進制裏的 15。若要表示的數比 15 大,

則需要超過 4 個位元來組成這個數字,例如,可用㆒個八位元的字來表示十進位

最大值為 255。

在類比電壓的測量或表示時,電壓可以取兩個極值㆗的任何值,例如,電壓

範圍 0-5V,我們可取 0 和 5V 之間的任何值。但這不是電壓的數位式表示法,例

如,假使我們轉換 0-5V 的電壓將會發現到那個電壓範圍的數位示表示被擴展成

不連續或者漸增的步階。

十進位值 ㆓進位表示

0.000 0000

0.3125 0001

0.625 0010

0.9375 0011

1.25 0100

1.5625 0101

1.875 0110

2.1875 0111

2.5 1000

2.8125 1001

4 4

Page 16: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

3.125 1010

3.4375 1011

3.75 1100

4.0625 1101

4.375 1110

4.6875 1111

表 2.1 表示 0~5V 範圍被轉換成㆕位元的數位字

注意,從此表㆗㆕位元字表 16 個個別資料項。我們也從另外方法來說明㆕

位元系統的解析度是 1 / 15,解析度被定義㆒量值可被區別或被分離的程度,以

百分比表示,1 / 15 的解析度等於 6.66%,可利用㆘列方程式:

解析度(%)=[1/(2n-1)] x 100 %

n=㆓進位系統位元的數

2-1.3 週期函數

接㆘來介紹週期性(periodic)的觀念,設函數 f(x),對所有 x 而言具有㆘

列特性 f(x+T)=f(x),則稱 f(x)為以 T 為週期之週期函數。由以㆖定義可

知:

sinx,cosx 其週期為 T=2π

cosnx,sinnx 之週期為 T=2π/n

cosnπx/L,sinπnx/L 之週期為 T=2L/n

至於㆒些級數如Σcosnπx/L= cosπx/L+ cos2πx/L+………

我們也可以找出各項的對應週期:

T=2L , 2L/2 , 2L/3 ,……

在取這些對應週期最小公倍數為此級數之週期。

2-1.4 離散時間信號

離散時間信號常可用㆒數列( sequences )來表示:

5 5

Page 17: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

X={ X( n ) } —∞< n <∞

這些數列,是由原來連續性的信號,經由離散時間取樣而得到。在此時,若取樣

週期為 P,則序列㆗等 n 個數的值等於類比信號 Xa(t)在 Np 時的值,亦即

X[ n ]= Xa ( n P) —∞< n <∞

2-1.5 取樣頻率

有時候取樣週期意味著每隔若干空間距離取㆒樣本,此時取樣週期的單位是

長度單位,如 mm,而取樣週期的倒數我們稱為空間頻率(spatial frequency),

其單位為 1/ mm,不過大部分的數位信號處理場合,取樣週期是時間,其單位為

sec ,而其倒數則為時間㆖的取樣頻率,其單位為 1/ sec,這也是赫茲( Hz )的定

義,100Hz 取樣頻率意味著每秒有 1000 次的取樣樣本。

2-1.6 PID 控制法則

PID 控制法在控制系統㆗算是個較簡單的法則,但通常愈簡單法則也就是最

為通用的㆒種控制方法。其 PID 控制通式可以用㆘式來表示:

])()(1)([)(dttdeTdsse

TteKtu d

t

ic ++= ∫

其㆗ u 是控制變數,e 為控制誤差,定義為 ( 為設定點,y 為處

理輸出)。K 為增益, 為積分項, i為微分項。積分項目可以增加低頻增益,

和降低穩態誤差(Steady-state error)。微分項目則可以增加相位引前,藉以改善穩

定度和增加系統頻寬。

yye sp −= spy

c cT T

由數學觀點來看,㆒個線性連續資料器除了能做比例運算,和其它代數運算

如加、減之外,也能夠對輸入訊號取時間微分或積分。因此㆒個連續資料控制器

可能是包含有加法器或減法器,放大器,衰減器,微分器或積分器等等的㆒個裝

置。設計者的任務在於辨識及決定需用這些元件㆗哪㆒個,他的參數值是多少,

以及如何將他們連結起來。

6

Page 18: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

2-2 說明類比與數位控制器的優缺點

由於我們這次的專題以 DSP 為基礎,來做為馬達轉速平台控制的數位控制

器,所以在此概略說明㆒㆘類比與數位控制器的優缺點。

基本㆖㆒個典型的控制系統包含了㆒個受控器( Plant ),控制器

(Controller),感測器(Sensor)和致動器(Actuator)所組合而成典型的控制系

統如圖 2.2 所示

7

Input Output + _

Controller Actuator Plant

圖 2.2

為了達到期望的輸出控制器接受系統的命令將指令送到受控器做某些變化

與修正以期望到命令者所想要的輸出結果。

早其至今的㆒般控制器常常都是使用固態電子在結合運算放大器等元件的

組合來當作是系統控制㆗心的類比控制器,這㆒類的類比控制器擁有㆓個很重要

的優點:

(1).提供極高的處理速度,使得輸入資料可達即時處理效果,零件延遲時間短。

(2).無限的取樣頻率,使的系統解析度高,頻寬廣。

然而因為使用了較多零件關係,所以類比控制器也有㆒些為㆟所詬病的缺

點:

(1).容易受到零件的老化,及溫度偏移等不易克服問題,造成系統常常需要修正。

Sensor

Page 19: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

(2).使用較多零件,降低系統可靠度,及增加設計困難度。

(3).使用硬體設計,系統不易升級。

為了克服類比控制器這㆒些常見的缺失,再加㆖近幾年來,由於電腦快速興

起成為日常生活㆗㆟們不可或缺的㆒部份,工業界的工程師希望能將微處理器也

能應用在控制系統㆖,成為數位控制器。

因為數位控制器具有如㆘的優點:

(1).使用數位零件,系統的飄移性減少。

(2).藉由軟體修正,系統容易升級。

(3).微處理機整合許多功能於晶片內,使得所需外部零件減少,成本亦較低。

2-3 TMS320C24X 晶片簡介

自 TI 公司推出了汎用型 DSP TMS320C14 在控制領域㆗深受好評後,並繼

續推出㆒組整合記憶體,電源管理,周邊應用裝置於㆒身,且執行速度更快,功

能更強的新㆒代 16 位元的定點式 DSP-TMS320C24X。

TMS320C24x 指令執行速度快達僅需 50ns,亦即整體效能可到 20MIPS,而

相對的價格卻更低。另外也增加了電源管理系統,快閃記憶體型態,控制器,檢

測器,啟動器間資料傳遞之 CAN 模組,及提供工作電壓 3.3V 版本,更能達到結

省電力損耗。採用 TQFP/PQFP 包裝,大大㆞減少硬體空間。改良記憶體結構,

增大晶片內的 RAM 及 ROM。

2-3.1 C24x 的主要特性

TMS320C24x 家族有許多的版本,其主要的特性描述如㆘:

A.CPU 核心部份:

(1)32 位元的㆗心算數邏輯單元(CALU)。

(2)32 位元結構累積器 ACC

(3)16x16 可得 32 位元結果的並聯硬體乘法器。

(4)8 個算數單元應用的 16 位元輔助暫存器 AR0-AR7。

8

Page 20: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

B.記憶體部份:

(1)內含 544 個 Words 可歸劃為程式或資料雙存取 RAM。

(2)內含 16K-word 的 MasK ROM(C240)或是 16K-Word 的 Flash EEPROM(F240)。

(3)總共可歸劃有 244K 的記憶體空間:可區分為 64K 個程式記憶體,64K 個資料

記憶體,64 個 I/O 位址,及 32K 個共同記憶體。

(4)提供 16 位元資料匯流排,及可用軟體程式歸劃外部記憶體記憶模組介面。

(5)提供慢速外部裝置所需等待時序介面。

C.程序控制部份:

(1)4 階管線式操作

(2)8 個層次的硬體堆疊器(stack)

(3)6 個外部㆗斷:包含電源保護㆗斷,重置,NMI 及 3 個可遮蔽式㆗斷。

D.軟體指令部份:

(1)大部份程式碼皆相容於’C2x,’C2xx 和’C5x。

(2)提供只需要單㆒指令執行週期的重複性操作

(3)提供單㆒指令周期的乘法/累加指令。

(4)提供資料記憶體區塊搬移指令。

(5)具有索引定址法能力

(6)提供適用於 2 冪次之 FFT 所需的位元反向(Bit-reversed)索引定址能力。

E.電源管理部份:

(1)靜態 CMOS 製程技術。

(2)4 階省電模式功能。

F.提供事件管理模組:

(1)12 個脈波寬度調變(PWM)輸出。

(2)3 個可規劃為 6 種操作模式㆒般用途計時器。

(3)3 個 16 位元具有休時功能全功能比較模組。

(4)3 個 16 位元簡單功能比較模組。

9

Page 21: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

(5)4 個含有 QEP 特性的捕捉模組。

G.部份編號晶片提供 CAN(Control Area Networking)的模組功能

H.2 個獨立的 10 位元類比-數位轉換模組

I.28 個獨立的可程式化,多工的 I/O 腳

J.相位鎖定迴路

K.即時㆗斷的看門狗計時模組

L.非同步串列通訊介面(SCI)模組

M.同步串列周邊介面 SPI 模組

N.具有符合 IEEE 1149.1 標準的 JTAG 的 scan-base 介面

2-3.2 TMS320C24X 晶片硬體架構

TMS320C24X 晶片硬體架構,㆒般來說包含了匯流排、晶片記憶體、㆗央

處理單元(CPU),即晶片內的周邊裝置。

2-3.3 ㆗央處理單元 CPU

包括㆘列元件:1 個 32 位元㆗央算術邏輯單元(CALU)、1 個 32 位元累積

器(ACC)、CALU 的輸入/輸出資料倍率移位器、㆒組 16x16 位元硬體乘法器、成

積倍率移位器、8 個輔助暫存器,和 1 個輔助暫存器算數單元的資料位址產生邏

輯電路、程式位址產生邏輯電路。

2-3.4 ㆗央算術邏輯單元(CALU)

在 CPU 模組裡面有個專門做資料算數,或是邏輯運算之 32 位元硬體單元,

這個單元叫做㆗央算數邏輯單元 Central Arithmetic Logic Unit –簡稱 CALU。如

圖 2.3 所示。

10

Page 22: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 2.3 CALU 方塊圖

2-3.5 累積器(Accumulator – 簡稱 ACC)

㆒但 CALU 完成所交付的運算後,其結果會被存放到 32 累積器去。32 位元

的累積器可以將它想像成 2 個 16 位元組的暫存器,每個 16 位元組的資料都可以

直接經過㆒個資料倍率移位器(Data-scaling shifter)輸出存放到資料記憶體。

2-3.6 資料倍率移位器(Data-scaling shifter)

‘C24X 處理器㆖總共有㆔個硬體倍率移位器。這些倍率移位器具備有將資料

放大(向左移)或縮小(向右移)的功能。第㆒個倍率移位器可以稱之為資料倍率移

位器,它的輸入端是直接連接到 16 位元資料匯流排,而輸出端則是連到 32 位元

CALU。

‘C24X 內部尚有 2 個移位器,分別是位於乘法器輸出端及 ACC 輸出端,可

以當作是數字倍率,位元選取,高精度算術及溢位防止等功用。位於乘積暫存器

11

Page 23: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

PREG 輸出端的移位器,可以將乘積暫存器內含資料存放到指定的㆞方時,向左

移 0、1、4 位元或向右移 6 位元等㆕種狀態。

‘C24X 在 ACC 輸出端設計有㆒個輸入為 32 位元/輸出為 16 位元的資料倍率

移位器。這個倍率移位器可以在 ACC 的內含值存到資料匯流排之前,做 0 到 7

位元的左移(資料放大)操作。

2-3.7 乘法器(Multiplier)

在’C24x ㆗央處理單元硬體結構㆗,含有㆒個能再㆒個指令週期時序裡完成

16 位元×16 位元乘法,得到 32 位元結果的硬體乘法器及㆓個相關暫存器:

TREG:㆒個 16 位元暫時暫存器,用來存放被乘數的㆞方。

PREG:㆒個 32 位元乘積暫存器,用來存放乘積結果的㆞方。

如圖 2.4 所示。

12

Page 24: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 2.4 硬體乘法器方塊圖

2-3.8 輔助暫存器算數單元

13

Page 25: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

‘C24x CPU 內部有㆒獨立於 CALU 單元外,功能強大,讀者必須要非常清

楚的單元-輔助暫存器算數單元。

‘C24x 共有 8 個輔助暫存器,這些暫存器主要是用來當作程式使用間接定址

時的指標暫存器(Current auxiliary register),或是當作資料的暫時存放區用。’C24x

裡有個重要的名稱『指標輔助暫存器』(Current AR),它是由 ST0暫存器位元 13~15

的 3 個位元的輔助暫存器指標(ARP)來表示。如圖 2.5 輔助暫存器運算單元方塊

圖所示。

圖 2.5 輔助暫存器運算單元方塊圖

’C24x 晶片㆖有個專門處理輔助暫存器運算的硬體『輔助暫存器算數單元』

14

Page 26: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

ARAU。這是㆒個 16 位元大小,不帶符號的算數單元,在硬體結構㆖是與其他

的單元如 CALU 並行處理的。

2-3.9 記憶體結構介紹

單晶片硬體結構㆗最重要的部份就當屬於『記憶體』。記憶體的大小,和配

置方式,往往成為該單晶片是否適用的主要因素,這㆒點在傳統單晶片微處理機

是如此,在 DSP 晶片應用㆖也是具有相同的道理。

就’C240 記憶體有著高達 224K 個 16 位元位址記憶體空間,這些區域是組成

份子包括有:

1.程式記憶體(Program memory space):可定址到 64K 個記憶體位址。

‘C24X 程式記憶體的基本型態共有㆔種,他們分別為:

(1)晶片內 RAM 記憶體。

(2)晶片內 ROM 記憶體。

(3)晶片外記憶體。

如表格 2.2 以及圖 2.6、圖 2.7

產品名稱 MIPS 頻率

(MHZ)

RAM

(Words)

ROM

(Words)

Flash

(Words)

Boot

Loader

外部

介面

TMS320

LF2407

30 30 2.5K - 32K ROM 有

TMS320

LF2406

20 30 2.5K - 32K ROM -

TMS320

LF2402

20 30 544 - 8K ROM -

TMS320

LC2406

20 30 3.5K 32K - - -

15

Page 27: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

TMS320

LC2404

20 30 2.5K 16K - - -

TMS320

LC2402

20 30 544 4K - - -

TMS320

F243

20 20 544 - 8K FLASH 有

TMS320

F241

20 20 544 - 8K FLASH -

TMS320

F240

20 20 544 - 16K FLASH 有

TMS320

C242

20 20 544 4K - - -

TMS320

C240

20 20 544 16K - - 有

TMS320

F242

20 40 544 - 16K FLASH 有

TMS320

F242

20 40 544 - 16K FLASH 有

表格 2.2 TMS320C24X 晶片記憶體配置表

16

Page 28: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

17

圖 2.6 C240,F240 之程式記憶體映設圖

圖 2.7 晶片內’C24x 程式記憶體配置圖

無論是哪㆒種編號的晶片,都共同會有 3 個因數影響到程式記憶體的配置:

0000h 003Fh 0040h 0000h-0001h 0002h-0003h 0004h-0005h 3FFF 0006h-0007h 4000 0008h-0009h FDFFh 000Ah-000Bh FE00h 000Ch-000Dh 000Eh-000Fh 0010h-0021h 0022h-0023h 0024h-0025h FEFF 0026h-0027h FF00 0028h-003Fh FFFF Note:Flash/ROM memory includes the address range 0000h-003Fh.

MC

Interrupt Vectors and

reversed addresses

Flash/ROM

16K/8K words

(External If MP/ =1)

External

DRAM(B0)

256 words

(CNF=1)

(External If CNF =0)

Reversed

Reset

Interrupt Level 1

Interrupt Level 2

Interrupt Level 3

Interrupt Level 4

Interrupt Level 5

Interrupt Level 6

Reversed

Software Interrupts

TRAP

NMI

Reversed

Software Interrupts

0000H 0000H j 003FH 003FH 0040H 0040H 3FFFH 4000H FDFFH FDFFH FE00H FE00H FEFFH FEFFH FF00H FF00H FFFFH FFFFH MP/MC =1 MP/MC =0

㆗斷向量區

外部記憶體

DRAM B0(CNF=1)

外部(CNF=0) 保留區

㆗斷向量區

On-Chip ROM

(FLASH EEPROM)

外部記憶體

DRAM B0(CNF=1) 外部 (CNF=0)

保留區

Page 29: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

CNF 位元、MP(高電位)/MC(低電位)腳位、RAMEN 位元。

2.區域資料記憶體(Local data memory space):可定址到 64K 個記憶體位址。

‘C24X 處理器的資料記憶體共有㆓種:㆒種是每個處理器單獨使用的記憶

體,這種記憶體我們稱之為區域資料記憶體(Local data memory space)。另外㆒種

則是可供㆓個或㆓個以㆖處理器共同使用記憶體,這種記憶體稱之為共享資料記

憶體(Global memory space)。

基本㆖資料記憶體是由幾部份所組合而成:

(1)晶片內固定記憶體(0000H~005FH):視為暫存器,模擬器暫存器及保留將來使

用區。

(2)DARAM 記憶體 B0,B1 及 B2:其㆗ B0 由使用者定義為程式或資料記憶體。

而 B1 及 B2 則永遠固定為資料記憶體。

(3)SARAM 記憶體:視編號的不同,將會有不同大小的配置。

(4)週邊控制暫存器:作為週邊控制暫存器定義使用,必須依照定義使用,且並

非每個記憶體位址都可以讀或寫。

(5)外部記憶體:由使用者依據需求,從 08000H 位址開始配置記憶體。

如圖 2.8 ‘C24X 資料記憶體配置圖。

18

Page 30: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

Memory-mapped registers and reversedlocations

On-chip DRAM B2

Illegal

Reserved

On-chip DARAM B0(CNF=0)

orReserved(CNF=1)

On-chip DARAM B1

Reserved

Illegal

Illegal

Peripheral frame 1(PF1)

Peripheral frame 2(PF2)

Illegal

External*

* External memory is available on the 'F243 only.

0000

005F 0060

007F 0080

00FF 0100

01FF 0200

02FF 0300

03FF 0400

04FF0500

07FF 0800

6FFF 7000

73FF 7400

743F 7440

7FFF 8000

FFFF

Reserved

Interrupt mask register (IMR)

Global memory allocationregister (GREG)

Interrupt flag register (IFR)

Emulation registersand reserved

Illegal

System configuration andcontrol registers

Watchdog timer registers

ADC

SPI

SCI

Illegal

External-interrupt registers

Illegal

Digital-I/O control registers

Illegal

CAN control registers

Illegal

General-purposetimer registers

Compare, PWM, anddeadband registers

Capture and QEP registers

Interrupt mask andflag registers

Reserved

0000-0003

0004

0005

0006

0007-005F

7000-700F

7010-701F

7020-702F

7030-703F

7040-704F

7050-705F

7060-706F

7070-707F

7080-708F

7090-709F

70A0-70FF

7100-722F

7230-73FF

7400-7408

7411-7419

7420-7429

742C-7431

7432-743F

圖 2.8 ‘C24X 資料記憶體配置圖

資料記憶體第 0 個資料頁,固定為系統所使用。其㆗第 0000H 位址開始擺

放的為暫存器位址,及模擬器使用暫存器位址。如表格 2.3 所示

位址 名稱 描述 0000-0003h - 保留區 0004h IMR ㆗斷遮蔽暫存器 0005h GREG 共享記憶體配置暫存器 0006h IFR ㆗斷遮蔽暫存器 0007-005Fh - 模擬暫存器及保留區 0060-007Fh B0 DARAM 記憶體

表格 2.3 第 0 個資料頁配置表所示

資料記憶體得配置會受到兩個因數的影響:CNF 位元和 RAMEN 位元。

19

Page 31: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

3.共同資料記憶體(Global memory space):可定址到 32K 個記憶體位址。

所謂的共享資料記憶體(Global memory space),就是說,這㆒塊範圍的記憶

體,除了自己本身使用外,同時也可以劃分出來給別的 CPU 作㆒同使用。

4.I/O 埠(I/O space):可有 64K 個輸入/輸出埠位址。

如果我們需要取得外部裝置的資料或傳送資料給外部裝置時,可以使用組合

語言指令 IN 或 OUT 的指令來達成。

2-4 數位-類比轉換器 DAC 電路

在 LH-069 實習板㆖,有 4 組 12 位元設定時間(Setting time)為 600ns 的數位-

類比轉換器介面電路,每㆒組 DAC 的輸入參考電壓 Vref 均為 10V(即正向輸出

最大值為+10V),類比輸出電壓可由實習板㆖的跳線端子 J3(X 組 DAC),J4(Y 組

DAC),J5(Z 組 DAC)及 J2(A組 DAC)來設定為雙極性(Bioplar),或單極性(Unipolar)

的操作模式。DA 轉換器的最高,最低及零輸入輸出關係如表 2.4 所示:

數位輸入 單極性類比輸出

(Unipolar)

雙極性類比輸出

(Bipolar)

0FFFh=4096 10V +10V

0CCCh=3276 8V +6V

0999h=2457 6V +2V

0800h=2048 5V 0V

0666h=1638 4V -2V

0333h=0819 2V -6V

0h=0 0V -10V

表格 2.4 DAC 數位輸入與類比輸出關係

2-5 ㆗斷模組介紹:

20

Page 32: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

為了增進程式執行效率,’C24X 提供㆗斷功能,可暫時性㆞㆗斷主程式,去

執行預定的副程式。’C24X ㆗斷來源有㆓:

(1)軟體㆗斷源:利用’C24X 所提供的㆗斷指令,如 INTR,NMI 以及 TRAP。

(2)硬體㆗斷源:’C24X 的硬體㆗斷源又可分㆓部分。㆒個由外部裝置發出㆗斷

信號源。另㆒個由晶片內部週邊所反應之㆗斷信號源。而且可以由使用者自行規

劃極性和優先順序。

‘C24X 的㆗斷控制可以分成「可遮蔽式」(Maskable)與「不可遮蔽式」

(Nonmaskable)㆓種。

(1) 可遮蔽式㆗斷亦即使用者利用軟體指令來設定硬體所產生的㆗斷信號是會

被 CPU 所接受(Unmask)或是拒絕(mask)。

(2)不可遮蔽式㆗斷意思代表著說:只要有㆗斷要求信號產生,CPU 就必須接受

及處理。

2-5.1 ㆗斷原理的介紹:

‘C24X 對於街受到內部或外部㆗段信號的要求時,會依照㆘列 3 個順序來進

行處理:

(1)接受到㆗斷要求。

(2)產生㆗斷認可。

(3)執行㆗斷服務常式(Interrupt Service Routine-ISR)。

由於’C24X 的㆗斷模式可以分為不可遮蔽式和可遮蔽式兩種,因此就來介紹

這兩種㆗斷的動作原理。

㆒、不可遮蔽式㆗斷:

(A)不可遮蔽式㆗斷分為硬體和軟體。硬體的不可遮蔽式腳位共有 2 個:RS 和

NMI ㆓個。

1.RS(重置):當硬體重置腳位收到低電位致能信號後,CPU 會立即停止目前的

程式執行,將程式計數器歸零,並將 CPU 內所有狀態回復到最原始設定。

21

Page 33: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

2.NMI(不可遮蔽式腳位):NMI 執行時,既不會影響到 CPU 內任何模組的動

作,也不會改變指令執行順序和記憶體配置。當 NMI 腳位被致能時,CPU 會不

管 INTM 的位元值是何狀態(0 或 1),將程式計數器值設定為 24H,然後跳躍到

該位址去執行 ISR 程式。在執行 ISR 過程㆗,INTM 位元將會被設定為 1,來禁

能所有可遮蔽式㆗斷。

(B)不可遮蔽式㆗斷軟體部份共有 3 個指令:INTR,NMI 及 TRAP。

1.INTR 指令:當 INTR 指令被認可時,ST1 暫存器的 INTM 位元會被設定為 1,

來禁能其他所有可遮蔽㆗斷。

2.NMI 指令:執行這個指令時,會如同 NMI 腳位收到驅動信號㆒樣,跳躍到

24H 位址去執行 ISR 程式。

3.TRAP 指令:執行這個指令時,會使程式計數器填入 22H 值,而跳躍到該位

址去執行 ISR。但這個指令並不會對 INTM 位元值有任何改變。

㆓、可遮蔽式㆗斷:’C24X 有 6 個可遮蔽式㆗斷,由於週邊裝置的㆗斷需求多於

6 個,所以’C24X 遮蔽式㆗斷是採用共享方式來處理其它㆗斷。

可遮蔽式㆗斷提出要求時,CPU 會先確認㆘列條件符合後,才會產生認可

信號。

1.優先權限是最高的:當有至少㆒個㆗斷要求同時提出時,CPU 會依據所定義

好的優先權限順序,從最高權限開始到最低權限依次㆞執行。

2.INTM 位元為 0:狀態暫存器 ST0 ㆗的位元 9(㆗斷模式位元)必須設定為 0。

每當 CPU 認可㆗斷要求後(除了執行 TRAP 指令外),INTM 位元都會自動設定為

1。同樣㆞,重置後和軟體指令的執行可以改變 INTM 的位元值。(SETC INTM

會使 INTM=1,CLRC INTM 可以清除 INTM=0)。

3.IMR 對應位元設定為 1:IMR 暫存器㆗有著 INTM1-INTM6 的對應遮蔽位元。

設定該對應遮蔽位元為 1 時,可使得 CPU 接受對應的㆗斷要求。

㆒但 CPU 承認了遮蔽式㆗斷要求後,便會強迫將程式計數器值,填入 CPU

所提取的軟體向量位址,然後便跳躍到該位址去執行㆗斷服務常式。如圖 2.9 ㆗

22

Page 34: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

斷服務流程圖所示

㆗斷要求產生

㆗斷位元被遮蔽?<INTM=0?>

個別旗標設定

YES

個別遮蔽位元=1

IFR位元設定

YES

INTM位元=0

對應IMR位元=1

產生㆗斷認可

TRAP指令

儲存必要暫存器與PC值

執行㆗斷服務常式

回存必要暫存器與PC值

繼續執行主程式

INTM=1

NO

NO

NO

NO

YES

YES

YES

NO

圖 2.9 就畫出了㆗斷服務流程圖

‘C24X 之 CPU 只有 6 個㆗斷介面,但是’C24X 的內部及外部㆗斷介面多達

10 餘種,為了解決介面不夠的問題,’C24X ㆗斷處理採用 2 層處理方法。如圖

2.10 ㆗斷服務常式流程圖所示,繪出了’C24X ㆖層處理㆗斷要求流程圖,以

及’C24X ㆓層㆗斷向量關係表如表格 2.5 所示。

23

Page 35: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 2.10 ㆗斷服務常式流程圖

24

Page 36: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

表格 2.5 ’C24X ㆓層㆗斷向量關係表

25

Page 37: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

2-5.2 ㆗斷相關暫存器

‘C24X ㆗斷相關暫存器共有 2 個,㆒個為 16 位元,映射資料記憶體位址

0006H 的㆗斷旗標暫存器(Interrupt Flag Register 簡稱 IFR)。主要是用來標示和

清除等候的㆗斷。如表 2.6 所示。

15-6 5 4 3 2 1 0

保留 INT6 INT5 INT4 INT3 INT2 INT1

表格 2.6 IFR 暫存器位元格式圖

另㆒個映射資料記憶體 004H 位址的㆗斷遮蔽暫存器(Interrupt Mask

Reegister 簡稱 IMR)這個暫存器定義了 6 個㆗斷源 INT1-INT6 的可遮蔽與否。

如表 2.7 所示。

15-6 5 4 3 2 1 0

保留 INT6 INT5 INT4 INT3 INT2 INT1

表格 2.7 IMR 暫存器位元格式圖

2-6 ㆒般用途計時器

‘C24X 內部有㆔組㆒般用途計時器(General Purpose Timer 簡稱 GP 計時

器),每個計時器都擁有 6 種工作模式分別為:停止/保持模式,單㆒㆖數計時模

式,連續㆖數計時模式,方向式㆖數/㆘數計時模式,單㆒㆖數/㆘數計時模式,

連續㆖數/㆘數計時模式。

2-6.1 GP 計時控制暫存器

GP 計時控制暫存器(GP Timer Control Register 簡稱 GPTCON)映射到資料

記憶體位址 7400H,用來定易計時器計數方向、啟動 ADC 方式、和計時器輸出

腳位電壓等等用途。GPTCON 位元格式圖如表格 2.8。

26

Page 38: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

15 14 13 12 11 10 9 8

T3STAT T2STAT T1STAT T3TOADC T2TOADC

T1TOA

DC

R-1 R-1 R-1 RW-0 RW-0 RW-0

7 6 5 4 3 2 1 0

T1TOAD

C

TCOMP

OE

T3PIN T2PIN T1PIN

RW-0 RW-0 RW-0 RW-0 RW-0

表格 2.8 GPTCON 位元格式圖

各組獨立 GP 計時控制暫存器(GP Timer Control Register 簡稱 TxCON

x=1,2,3)映射到資料記憶體位址 7404H(T1CON),7408(T2CON)及 740CH

(T3CON),TxCON 是用來定義計時器計數方向,啟動 ADC 方式,和計時器輸

出腳位電壓等。如表格 2.9 Txcon 位元格式圖(x=1,2)所示。

15 14 13 12 11 10 9 8

Free Soft TMODE2 TMODE1 TMODE0 TPS2 TPS1 TPS0

RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

7 6 5 4 3 2 1 0

TSWT1 TENABL

E

TCLKS1 TCLKS0 TCLD1 TCLD0 TECMPR SELT1PR

RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

表格 2.9 TxCON 位元格式圖(x=1,2)

27

Page 39: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

2-7 什麼是 ICE?

ICE 是 In Circuit Emulator 的縮寫,㆗文叫線㆖實體模擬器,可以說是㆒部

模仿 IC 動作的機器,例如有模仿 8051 單晶片的,有模仿 8088CPU 的,通常是

㆒種 ICE 只能模仿㆒種特定的 IC 或者是㆒種 ICE 只能模仿同㆒系列的家族 IC,

現在據說有㆒部 ICE 就能模仿很多不同種的 IC,不過大部份還是以前兩種的 ICE

佔大多數。

是什麼樣的模仿呢?ICE 可以把原先在電路㆖的 IC 取代掉,由 ICE 來完成

IC 原先的工作,而且可以做的㆒模㆒樣。

如果只是模仿有意義嗎?當然沒意義,那跟原來用 IC 還不是㆒樣,其實 ICE 除

了模仿 IC 表現的㆒切特性之外,還有更重要的工作,那就是我們可以藉由 ICE

來了解原來工作的 IC,在什麼情況㆘內部在運算什麼值,這是直接使用 IC 動作

所看不到的。

另外直接用 IC 動作時,速度可能非常快,有些動作到底正不正確?精不精

準?都無從得知,但是若改用 ICE 來動作,我們不僅可以看到 IC 內部的值還可

以控制 ICE 的動作,叫它放慢動作,叫它停止,叫他回朔動作等都可以,就像

是我們在操作、控制、遙控 IC ㆒樣,可以很清楚 IC 的每㆒個動作,現在的 ICE

大多能與個㆟電腦連接做溝通,我們可以從電腦顯示器㆖看到 IC 內部的值,並

且可以由鍵盤輸入命令來控制 ICE 的動作,隨時修改程式,變更執行。

ICE 只是在除錯、驗證、學習時用㆖它,真正讓電路系統運作時還是得用真

IC 而不是 ICE,而且系統正常運作時也不需要看內部值或放慢動作,所以通常

只有在必要時再換裝 ICE 來查問題。目前 ICE 愈做愈精進,可以評估執行程式

效能的 ICE,ICE 是學習 IC 最好的工具,初學者其實是最需要 ICE 不過了,而

真正的老手卻不是很需要依賴它。

28

Page 40: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

第㆔章軟、硬體介紹與使用

3-1 直流馬達轉速控制平台簡介

馬達控制是工業界常常見到的系統,速度感測器有電磁感應的轉速

(tachometer)或光感測器型的編碼器等取得轉速的資訊,而本單元使用光電式轉速

偵測元件,配合黑白相間條紋的轉盤,以得到轉速信號,轉盤㆖的明暗條紋有

16 組,而反射式光電偵測器安置於條紋㆘方,當條紋明部或暗部通過偵測器㆖

方時,感應器即輸出高或低電位信號,每轉動㆒圈,即輸出 16 個高低脈衝。

3-1.1 直流馬達轉速控制平台之特性

直流馬達轉速控制平台的主要特性如㆘所述:

1.採用反射式開關型光耦合器。

2.具有轉速偵測顯示 LED。

3.驅動控制脈衝顯示 LED。

4.提供 5HZ 基頻。

5.馬達正反轉方向控制。如圖 3.1 所示。

29

光耦合器 轉 速 偵

顯 示 L LED

E D 5Hz 基頻 轉速回授 GND 馬達控制 驅動控制脈衝

轉盤 馬達

PWM 馬達驅動器

圖 3.1 直流馬達轉速控制平台面板示意圖

測兩倍頻及除 24

計數器

Page 41: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

3-1.2 直流馬達轉速控制之轉速計算

本控制平台的轉速感測機構由㆒ 16 等分黑白相間圓盤及光耦合器所組成。

而圓盤安裝在馬達轉軸㆖,當馬達轉動時帶動圓盤轉動,所以,可知道馬達轉㆒

圈會產生 16 個脈波,因此,在固定的量測週期,例如 1 秒鐘,計數脈波數量就

可以如公式 2-1 換算出馬達的每分鐘轉速(Rotation Per Minute,RPM)式㆗ N

是每秒量測的脈波數。所以依照這個公式可知若 N=80,則馬達轉速應該是

300RPM。

公式: 轉速(RPM)= 60 × (N/16)

3-2 LH-069 DSP TMS320F240 實習板簡介

以德州儀器(TI)公司的 TMS320C240 系列產品為基礎,所發展出來的數

位信號控制板。在學習 DSP 軟體方面:可以將寫好的程式,經過組譯、連結後,

在 Windows 或是 Dos 環境㆘,由 IBM-PC 的串聯埠直接載入到 LH-069 實習板㆖,

實際程式運行。也可以搭配長高的 DMA2000JE 線㆖模擬器來作程式的除錯、顯

示、修改及運行等操作。

在硬體方面:LH-069 提供學習者設計 DSP 處理器的參考硬體電路。除了完

整㆞保留 CPU 本身全部功能外,並在這塊實習板㆖歸劃設計了 64K 程式記憶體

及 64K 的資料記憶體混合組合型態,方便使用者載入程式運行、除錯、更可直

接將完成之程式碼置放在預先設計好的 IC 插槽㆖,達成為真正的獨立單晶控制

器。

LH-069 實習板方塊示意圖如圖 3.2 所示及實體圖 如圖 3.3。

30

Page 42: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

31

PC RS-232

CPU BUS 擴充槽

10-Bit ADC(2)

RS-232介面

12-Bit DAC(4)

10Mhz

Clock RTC 介面

Encoder 介面 1 TMS320F240

128KW SRAM

(64KW 程式)

(64KW 資料) Encoder 介面 2

PWM 信號輸出 6

24-Bit DI/DO 128KW SRAM

(64KW 程式)

(64KW 資料) LCD 顯示介面

4X4 Keypad

ICE 線㆖模擬器

圖 3.2 LH069 實習板方塊圖

Page 43: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 3.3 LH-069 實習板實體圖

32

Page 44: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

3-3 Code Composer 2000 簡易操作

㆒、執行

開始 Code Composer 2000 Code Composer。

或是桌面㆖的圖形。 再開始執行軟體程式 Code Composer 前,㆒定要先打開

LH-069 實習板的電源,否則會造成程式執行錯誤視窗出現。如圖 3.4。

圖 3.4

㆓、建立新專案(New Project)

Project New 鍵入檔名(如:test1 .mak ) 存檔。

㆔、設定專案選項(option)

Project options Compiler 與 Assembler 的 Target Processor 改為

C2xx[-v2xx] 確定。

㆕、加入專案檔案

Project Add Files to Project 將 LINK240.cmd、motor.c、app1.h、c240.h 加

入到 test1.mak 資料夾底㆘的子資夾。如圖 3.5 所示。

33

Page 45: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 3.5 加入專案檔案

五、設定 Compiler 後載入程式

Option Program Load 打勾 Program Load After Build 按 OK

六、編譯(Compiler)

Project Rebuild all RUN

34

Page 46: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

3-4 LH-069 TMS320F240 DSP實習板與轉速控制平台之接

線圖

35

5Hz feedback GND F/B Pulse

端子線 Line A ㆒端接在馬達轉速平台的接㆞端【GND】 ,另㆒端接於 OUT3

的【GND】腳位。

端子線Line B ㆒端接在馬達轉速平台的回授端【feedback】,接於OUT3的【IOB7】

腳位。

除㆖述兩條接線(Line A 、LineB)還必須再加㆖ 1 條端子線,分別將 OUT3 的

【VCC】和【IOB6】兩腳位接在㆒起。

LH-069 OUT1 OUT3 OUT4

OUT5

PC

0 0

DSP F240

Red line Orange line

AB

LCD

KEYPAD

PICE

LPT

DGND

圖 3.6 DAX

Page 47: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

第㆕章實驗成果

4-1 程式設計流程

了解馬達控制平台之後,我們知道必須從外部輸入電壓信號,去驅動平台裡

的 PWM 電路,讓馬達轉動,再從回授端取得數位脈波信號,而這整個過程都必

須經過 DSP 做處理。

首先,我們利用 LH-069 DSP 實習板㆖的 DAC 電路產生直流電壓,把這直

流電壓信號接到控制平台的輸入端,使得馬達平台㆖黑白相間的轉盤轉動,然

後,把控制平台㆖回授端的輸出值(數位信號)接到 DSP 的數位輸入接腳,利用

DSP 模組裡的專門職司資料計數的單元和㆗斷指令,計數單位時間內回授的脈波

數,利用公式:轉速(RPM)= 60 × (N/16)可換算為馬達轉盤每分鐘轉速,

而且把轉速值顯示在 LH-069 DSP 實習板㆖的 LCD 螢幕㆖,而得到的輸出轉速

值再和我們所輸入電腦的轉速值互相比較,把所得的誤差丟到 PID 控制器裡做

運算,使馬達轉盤達到期望的轉速。因為 DSP 的處理速度相當快,所以我們的

取樣時間也要設定好,不然,可能會抓不到脈波信號,我們就依以㆖的想法,撰

寫我們所想要的程式。

4-2 軟體 Code Composer 視窗㆗參數的設定

執行此程式之前,在軟體 Code Composer 視窗㆗ Project 選項 Option 做參數的

設定。

36

Page 48: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 4.1

圖 4.2

37

Page 49: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 4.3

圖 4.4

38

Page 50: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 4.5

圖 4.6

39

Page 51: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 4.7

40

Page 52: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

圖 4.8

圖 4.9

41

Page 53: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

4-3 程式

#include "c240.h"

#include "app1.h"

#define int1_time 65535

#define DAX port8000

#define DAY port8001

#define DAZ port8002

#define DAA port8003

ioport unsigned port8000;

ioport unsigned port8001;

ioport unsigned port8002;

ioport unsigned port8003;

float xd=0x20;

float kp=100;

float kd=32.45;

float ki=0.0464;

float er_int=0;

float er_old=0;

float up_pid_out=1500; /**/

float up_bound=1500; /**/

float pid_out_range=1500; /**/

42

Page 54: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

float PID(float);

void tmr2_init(void);

int i=0;

void main(void)

{

unsigned cnt;

asm(" setc INTM ");

IFR=0xffff; /*clear all interrupt*/

IMR=0x0002; /*enable int2*/

/*enable timer1 period interrupt*/

EVIMRA=0x0080;

/*initial timer1 to count*/

/******************************************/

T1CON=0x1002; /* continous count up

clk prescale => x/1

timer1 own TEnable bit

clock source internal

..so much*/

GPTCON=0x0000; /* timer just do count */

T1CNT=0x0000; /* T1CMPR doesn't matter */

T1PR=int1_time;

/*******************************************/

tmr2_init();

43

Page 55: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

/* start Timer1 to count for interrupt */

T1CON=0x1042;

Reset_lcd();

asm(" clrc INTM");

while(1)

{

/*nothing to do*/

}

}

void tmr2_init(void)

{

/*initial timer1 to count*/

/******************************************/

T2CON=0x2010; /* continous count up

clk prescale => x/1

timer1 own TEnable bit

clock source internal

....so much*/

GPTCON=0x0000; /*timer just do count*/

T2CNT=0x0000;

/* T2CMPR doesn't matter */

T2PR=65530;

44

Page 56: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

/*******************************************/

OCRA=0xffff;

OCRB=0xfff3;

}

void interrupt nothing(void)

{

/*nothing to do ISR*/

}

void interrupt INT2_ISR(void)

{

unsigned t2_cnt,DA_value;

float w_feedback,error,pid_out;

/*stop T2 counting*/

T2CON=0x2010;

/*stop T1 counting*/

T1CON=0X1002;

if(EVIVRA==0x0027)

{

if(i<10)

45

Page 57: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

{i++;}

else

{

t2_cnt=T2CNT;

Gotoxy(0,0);

Data_lcd(t2_cnt,4); /*Display how much pulse per second */

w_feedback=(float)(((float)t2_cnt/(float)16)/(float)0.032768);

/*0.032768-->sampling time*/

Gotoxy(1,0);

Data_lcd(((int)(w_feedback)),4); /*Display how much rev per second */

error=xd-w_feedback;

error=error;

pid_out=PID(error);

DA_value=(unsigned)((pid_out/pid_out_range)*4095); /**/

/*DA out*/

Gotoxy(0,6);

Data_lcd(DA_value,4); /**/

DAX=DA_value;

i=0;

T2CNT=0;

}

}

T1CNT=0;

46

Page 58: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

/*start Timer1 to count for interrupt*/

T1CON=0X1042;

/*start Timer2 to count*/

T2CON=0x2050;

asm(" clrc INTM " );

}

float PID(float er_new)

{

float pid_out,er,er_dif;

er=er_new;

er_dif=er_new-er_old;

er_int+=er_new;

pid_out=(kp*er+kd*er_dif+ki*er_int);

if(pid_out<0)

pid_out=0;

if(pid_out>up_bound) /*up_bound=1500*/

pid_out=up_pid_out; /*up_pid_out=1500*/

er_old=er_new;

return(pid_out);

}

47

Page 59: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

第五章結論與未來展望 本實驗將轉速值送到 LCD 顯示器顯示出來,而直流馬達轉速控制平台,在

漆有明暗條紋的轉盤與馬達之間,由㆒圓體銅柱將其相連接,並由㆕支螺絲將其

固定,但由於螺絲無法將圓柱平均固定於轉盤㆗心,以致轉盤重心不在其圓心位

置,使得轉盤旋轉時會有浮動的現象產生時,因此會有誤差的產生。

而且 LCD 在處理其內部工作時通常要花㆖ 40μs~1.64ms 的時間,以 DSP

TMS320F240 執行㆒個指令最多只要花㆖ 50ns 的時間,如果 DSP 以連續的方式

寫資料到 LCD 時,大部份資料都無法寫入 LCD,因此 DSP 要對 LCD 讀寫資料

之前㆒定要先檢查 LCD 內部 BF 旗號,當內部 BF 旗號=1,DSP 就要等,直到

BF=0 才可以寫入資料。再加㆖使用大家容易閱讀的 C 語言設計程式,使得在時

間的控制方面會產生些許的誤差。因此本實驗僅適用於時間控制不是很嚴謹的㆞

方,對於若要做時間極精密的馬達控制,尚須硬體和軟體雙方面的改善才可以。

未來相信德州儀器公司㆒定會將 DSP 的運算功能、精密度、週邊裝置支援功能

更往㆖推進,屆時如果使用 C 語言來設計程式,它的程式執行效率㆒定不輸給

使用組合語言所撰寫的程式,亦能大大減少開發組合語言的時間。

48

Page 60: 逢 大 學 自動控制工程學系畢業 專題報告 DSP 馬達轉速控制 DSP … · 訊號轉換 圖 2.1 類比信號與數位信號轉換方塊圖 2-1.2 數位到類比和類比到數位訊號的轉換

參 考 文 獻 [1] 鄭倚僑、馬境宏 “逢㆙大學自動控制工程學系畢業專題報告~DSP 即時馬達

定位控制”,㆗華民國八十九年五月。 [2] 吳金勇、李隆財“TMS320 C240 原理與實習”,長高企業有限公司,㆗華民

國八十九年五月初版。 [3] 張碩 “自動控制系統”,鼎茂圖書出版有限公司,㆗華民國八十六年五月

㆕版。 [4] 智控科技股份有限公司,直流馬達轉速控制平台使用手冊。 [5] 長高企業有限公司,LH069 使用手冊.pdf [6] 陳世寬、楊尚霖、鍾秋嬌共譯,Humphries、Sheets 原著,工業電子學,全威

圖書有限公司。

[7] 長高企業有限公司,spru161c.pdf

TMS320F/C24x DSP Controllers Reference Guide

peripheral Library and Specific Devices,Texas Instruments Inc,June 1999

[8] 長高企業有限公司,spru160c.pdf

TMS320F/C24x DSP Controllers Reference Guide

CPU and Instruction Set,Texas Instruments Inc,June 1999

[9]施威銘著,Turbo C 語言實務,旗標出版股份有限公司

49 49