導航:首頁 > 文檔加密 > dsp原理與應用pdf

dsp原理與應用pdf

發布時間:2025-08-04 08:44:32

Ⅰ 嵌入式系統自學

嵌入式系統軟體工程 方法實用技術及應用,免費下載

鏈接:https://pan..com/s/10No3IypKyLg01bV4T9b22w

pdf" data_size="50.30M" data_filelogo="https://gss0.bdstatic.com//yun-file-logo/file-logo-6.png" data_number="1" data_sharelink="https://pan..com/s/10No3IypKyLg01bV4T9b22w" data_code="56st">

提取碼:56st

《嵌入式系統軟體工程:基礎知識、方法和應用》系統地闡述嵌入式系統軟體工程所涉及的過程、方法、內容,以及在典型工業領域中的應用。全書內容分為兩大部分:第一部分介紹嵌入式系統軟體工程方法論,主要包括嵌入式軟體的開發過程(需求工程、軟體和系統體系結構、編程和測試等內容),開發和測試中所採用的標准,與安全性相關的軟體系統的准入,以及嵌入式軟體所涉及的法律問題:第二部分介紹嵌入式系統軟體在汽車領域、軌道交通領域、航天領域、醫療器械、工業自動化、通信系統中的應用,在每個應用領域重點介紹具體應用領域的一些特定需求、技術和限制條件,以及它們對於嵌入式系統軟體開發過程的影響。

Ⅱ 幫忙求解DSP中 CMD文件含義

1命令文件的組成

命令文件的開頭部分是要鏈接的各個子目標文件的名字,這樣鏈接器就可以根據子目標文件名,將相應的目標文件鏈接成一個文件;接下來就是鏈接器的操作指令,這些指令用來配置鏈接器,接下來就是MEMORY和SECTIONS兩個偽指令的相關語句,必須大寫。MEMORY,用來配置目標存儲器,SECTIONS用來指定段的存放位置。結合下面的典型DOS環境的命令文件link.cmd來做一下說明:

file.obj //子目標文件名1

file2.obj //子目標文件名2

file3.obj //子目標文件名3

- o prog.out //連接器操作指令,用來指定輸出文件

- m prog.m //用來指定MAP文件

MEMORY

{ 略 }

SECTIONS

{ 略 }

otherlink.cmd

本命令文件link.cmd要調用的otherlink.cmd等其他命令文件,則文件的名字要放到本命令文件最後一行,因為放開頭的話,鏈接器是不會從被調用的其他命令文件中返回到本命令文件。
2 MEMORY偽指令

MEMORY用來建立目標存儲器的模型,SECTIONS指令就可以根據這個模型來安排各個段的位置,MEMORY指令可以定義目標系統的各種類型的存儲器,及容量。MEMORY的語法如下:

MEMORY

{

PAGE 0 : name1[(attr)] : origin = constant,length = constant

name1n[(attr)] : origin = constant,length = constant

PAGE 1 : name2[(attr)] : origin = constant,length = constant

name2n[(attr)] : origin = constant,length = constant

PAGE n : namen[(attr)] : origin = constant,length = constant

namenn[(attr)] : origin = constant,length = constant

}

PAGE關鍵詞對獨立的存儲空間進行標記,頁號n的最大值為255,實際應用中一般分為兩頁,PAGE 0程序存儲器和PAGE 1數據存儲器。

name存儲區間的名字,不超過8個字元,不同的PAGE上可以出現相同的名字(最好不用,免的搞混),一個PAGE內不許有相同的name。

attr的屬性標識,為R表示可讀;W可寫X表示區間可以裝入可執行代碼;I表示存儲器可以進行初始話,什麼屬性代碼也不寫,表示存儲區間具有上述的四種屬性,基本上我們都選擇這種寫法。

origin:略。

length:略。
下面是我經常用的2407的簡單寫法大家參考,程序從0x060是要避開加密位,不從0x0044開始更可靠一點,此例中的同名的頁可以只寫第一個,其後省略,但寫上至少安全一點:

MEMORY

{

PAGE 0: VECS: origin = 0x0000, length 0x40

PAGE 0: PROG: origin = 0x0060, length 0x6000

PAGE 1: B0 : origin = 0x200, length 0x100

PAGE 1: B1 : origin = 0x300, length 0x100

PAGE 1: DATA: origin = 0x0860, length 0x0780

}
3 SECTIONS偽指令
SECTIONS指令的語法如下:
SECTIONS
{
.text: {所有.text輸入段名} load=載入地址 run =運行地址
.data: {所有.data輸入段名} load=載入地址 run =運行地址
.bss: {所有.bss輸入段名} load=載入地址 run =運行地址
.other: {所有.other輸入段名} load=載入地址 run =運行地址
}
SECTIONS必須用大寫字母,其後的大括弧里是輸出段的說明性語句,每一個輸出段的說明都是從段名開始,段名之後是如何對輸入段進行組織和給段分配存儲器的參數說明:
以.text段的屬性語句為例,「{所有.text輸入段名}」這段內容用來說明連接器輸出段的.text段由哪些子目標文件的段組成,舉例如下

SECTIONS
{
.text:{ file1.obj(.text) file2(.text) file3(.text,cinit)}略
}

指明輸出段.text要鏈接file1.obj的.text和 file2的.text 還有file3的.text和.cinit。在CCS的SECTIONS里通常只寫一個中間沒有內容的「{ }」就表示所有的目標文件的相應段
接下來說明「load=載入地址 run =運行地址」鏈接器為每個輸出段都在目標存儲器里分配兩個地址:一個是載入地址,一個是運行地址。通常情況下兩個地址是相同的,可以認為輸出段只有一個地址,這時就可以不加「run =運行地址」這條語句了;但有時需要將兩個地址分開,比如將程序載入到FLASH,然後放到RAM中高速運行,這就用到了運行地址和載入地址的分別配置了,如下例所示:
.const :{略} load = PROG run = 0x0800
常量載入在程序存儲區,配置為在RAM里調用。
「load=載入地址」的幾種寫法需要說明一下,首先「load」關鍵字可以省略,「=」可以寫成「>」, 「載入地址」可以是:地址值、存儲區間的名字、PAGE關鍵詞等,所以大家見到「.text:{ } > 0x0080」這樣的語句可千萬不要奇怪。「run =運行地址」中的

Ⅲ TMS320F2407A的詳細資料

TMS320F2407A是一款高速,高性能,低成本的微處理器,其內部集成了眾多數控系統所需的外擴設備,可以實現SPI,SCI,PWM, A/D等功能。其內部的兩個事件管理器模塊EVA和EVB,各包含了兩個16位通用定時器及8個16位的脈寬調制(PWM)通道,可應用於電機控制及其他逆變器控制領域。美中不足的是,該系列DSP內部沒有D/A功能,該功能通常須外接數模轉換晶元來實現,這不僅增加了系統的成本,也使系統設計復雜化。本文提出了一種使用F2407A內部的PWM信號,經濾波處理後實現D/A功能的方法。實驗結果表明,其轉換精度可以達到10位以上專用D/A晶元的精度,且該方法設計簡單,有較好的實用價值。

1 D/A實現原理

在F2407A型DSP中,通過軟體編程可以很方便地對PWM信號實現周期和占空比的控制。PWM信號是一組幅值為3.3V的方波,可以通過傅里葉變換,使其分成直流和交流兩部分,如圖1所示,其中ud(t)是輸出的PWM信號,Uo是PWM信號中的直流成分,ua(t)是信號中的交流成分。

圖1 PWM信號分解原理圖

將ud(t)用傅里葉級數表示,即

ud(t)=Uo+ansin2nπft+bncos2nπft (1)

其中:

an=ud(t)sin2nπftdt (2)

bn=ud(t)cos2nπftdt (3)

Uo=ud(t)dt (4)

式中:f,T分別是PWM信號頻率和周期。

設PWM波形具有偶函數特性,即ud(t)=ud(-t),則式(1)中an=0,

bn={sin(nπD)-sin[2nπ]} (5)

式中:n=1,2,3……;

D是PWM的占空比。

則直流電壓為

Uo=3.3D(V) (6)

從理論上分析,改變占空比就可以使直流輸出電壓Uo在0~3.3V范圍內變化。輸出的諧波頻率是PWM頻率的倍數,一般可以通過低通濾波器濾除。PWM頻率越高,濾波效果越好。

2 D/A精度分析

F2407A的工作頻率為40MHz,內部寄存器長度為16位字長。PWM信號通過定時器計數的方式在周期中斷中獲得,因此,不可避免存在一個計數步長的量化誤差。這個誤差會產生一個紋波疊加在輸出直流電壓上,因此,應盡量減少。通常當PWM的頻率為f時,DSP工作頻率為fc時,這個量化誤差電壓值為

=3.3×(V)(7)

例如,當f=20kHz,=1.65mV,其解析度為1/2000,接近11位D/A晶元的解析度。

可見,當PWM頻率越低,DSP產生定時中斷所需的計數值越大,其量化誤差的影響越小。但是,考慮到輸出低通濾波器的特性,當PWM頻率降低時,產生的諧波頻率也隨之降低,則對於帶寬和截止頻率一定的濾波器來說,就會有更多的低次諧波通過濾波器,這部分諧波疊加在直流量上同樣會產生誤差電壓。因此,本文 D/A轉換的誤差主要來源於這兩個方面,由於兩個誤差具有相互制約性,必須通過折中的方法選取一個合適的PWM載波頻率。表1(通過Matlab模擬)是選用不同的PWM頻率和不同階數的濾波器時的性能比較。模擬時採用截止頻率為2kHz的巴特沃茲濾波器。圖2是當PWM信號頻率為20kHz時,經不同階數濾波器後直流電壓的紋波比較,圖中從上到下依次是二階、三階、四階的濾波效果。圖3是PWM信號頻率為40kHz時,濾波後直流電壓的紋波,圖中從上到下依次為二階、三階、四階的濾波效果。

圖2 f=20kHz時不同階數濾波器時的輸出紋波

圖3 f=40kHz時不同階數濾波器時的輸出紋波

表1 不同階數濾波特性的比較 濾波器 f/kHz 紋波幅值/V D/A位數
二階 20 0.04 6.4
二階 40 0.004 9.7
三階 20 0.0044 9.6
三階 40 0.0005 12.7
四階 20 0.0004 13.0
四階 40 0.00005 16.0

3 模擬濾波器的設計

濾波器按不同的頻域或時域特性要求,可分為巴特沃茲(Butterworth)型,契比雪夫(Chebyshev)型,貝賽爾(Bessel)型,橢圓型等標准型。相同的電路,通過選取不同的R和C參數可以實現不同的類型。其中,巴特沃茲型濾波器具有最平坦的通帶幅頻特性;契比雪夫型特點是通帶內增益有波動,但這種濾波器的通帶邊界下降快;貝賽爾型通帶邊界下降較為緩慢,其相頻特性接近線性;橢圓型的濾波特性很好,但模擬電路復雜,元件選擇較為困難,實現難度大,故不常採用。本設計要求通帶盡量平坦,而且過渡帶和截止帶衰減盡量快,因此,只考慮巴特沃茲型。

模擬二階、三階電路結構如圖4所示。對於圖4(a)所 示 的 二 階 電 路 , 其 傳 遞 函 數 為

H(s)= ( 8)

對 於 圖 4(b)所 示 的 三 階 電 路 , 其 傳 遞 函 數 為

H(s)= ( 9)

式 中 :a0=R1R2R4C1C2C3;

a1=[R4C2C3(R1+R2)R1R2C1C2];

a2=[R4C3+C2(R1+R2)]。

具 體 參 數 計 算 如 下 。

(a) 二階電路圖 (b) 三階電路圖

圖4 巴特沃茲型濾波電路

3.1 兩階電路參數計算

巴特沃茲二階濾波器的一般表達式為

H(s)=

式中:p=s/ωc;

b1=ωc2R1R2C1C2=1;

b0=ωc(R1C2+R2C2)=。

取ωc=2πf=4000π時,可得R1=0.68kΩ,R2=10kΩ,C1=0.1μF,C2=0.01μF。實際截止頻率為1930Hz。

3.2 三階電路參數計算

三階巴特沃茲濾波器的一般表達式為

H(s)=

式中:b2=ωc3R1R2R4C1C2C3=1;

b1=ωc2[R4C2C3(R1+R2)+R1R2C1C2]=2;

b0=ωc[R4C3+C2(R1+R2)]=2。

取ωc=2πf=4000π,可得R1=1.2kΩ,R2=10kΩ,R4=0.4kΩ,C1=0.1μF,C2=0.01μF,C3=0.1μF,實際截止頻率為1989Hz。

4 實驗結果

圖5是採用40kHz頻率時的濾波效果,CH1所示的是經二階模擬濾波器後的直流電壓,CH2所示的是經三階模擬濾波器後的直流電壓,濾波器的具體參數選用同上文,PWM的占空比為0.5。

圖5 不同階濾波效果的比較(1V/div,20μs/div)

圖5中CH1的波形中有較大的紋波毛刺疊加在直流分量上,其輸出平均值在1.6V左右,轉換精度不高。CH2的波形和CH1相比,紋波分量減小很明顯,輸出波形的平均值在1.65V左右,理論分析該波形轉換分辯率可以達到12.7左右,已經接近或達到一般D/A晶元的解析度要求,因此,有較好的應用價值。

5 結語

通過外接濾波電路,DSP輸出的PWM信號可以完成D/A功能的擴展,且合理選擇輸出PWM的頻率和濾波器的階數,可以使轉換的解析度達到12位以上,且外設濾波電路較為簡單,因此,具有一定的應用價值.

Ⅳ DSP TMS320F28335如何去學,怎麼去用主要是它的工作原理怎麼去掌握

28335跟2812差不多啊,就是外設多一些,是浮點DSP,引腳都是一樣的內部存儲器也變化了,先學內核,外設用到什麼再去學,這方面的中文資料較少,只有上TI網站下載技術文檔,文檔編號:sprufbob,sprs439d.還有很多外設的文檔資料,都是PDF格式,還有一個很文檔很重要:sprc530.這個文檔中定義了該DSP中所有寄存器,他不像平常C語言用宏定義的形式,而是用得結構體,共同體,位定義,你看了就知道了。還有就是TI網上還有許多外設應用的例子。你可以在板子上試驗。我也剛學一年,理解不深,希望對你有幫助!

閱讀全文

與dsp原理與應用pdf相關的資料

熱點內容
單片機51開發板 瀏覽:969
綿陽在哪個app查社保 瀏覽:416
網劇程序員那麼可愛女主身世 瀏覽:809
程序員的一天周報 瀏覽:97
安卓如何把塗鴉的圖片還原 瀏覽:646
鬧鍾該怎麼加密 瀏覽:228
編譯原理答案第三版第二章 瀏覽:664
怎麼快速把app放在文件夾 瀏覽:323
怎麼截屏截長圖安卓 瀏覽:287
javabean轉json 瀏覽:38
python默認參數排列 瀏覽:619
官方體彩app下載哪個好 瀏覽:95
哪個app助農 瀏覽:200
南寧50m雲伺服器 瀏覽:599
查市值用哪個app 瀏覽:248
小圈app封了這些人去哪裡了 瀏覽:864
開源可商用小程序源碼 瀏覽:875
matlab編程是什麼語言 瀏覽:48
我的中文字典程序python 瀏覽:808
正版三維力控組態軟體加密狗價格 瀏覽:384