實時DSP系統(tǒng)設(shè)計開發(fā)流程和DSP工具
在設(shè)計需求規(guī)范,確定設(shè)計目標時,其實要解決二個方面的問題:即信號處理方面和非信號處理的問題。
信號處理的問題包括:輸入、輸出結(jié)果特性的分析,DSP算法的確定,以及按要求對確定的性能指標在通用機上用高級語言編程仿真。
非信號處理問題包括:應(yīng)用環(huán)境、設(shè)備的可靠性指標,設(shè)備的可維護性,功耗、體積重量、成本、性能價格比等項目。
算法研究與仿真這是DSP應(yīng)用實際系統(tǒng)設(shè)計中重要的一步。系統(tǒng)性能指標能否實現(xiàn),以何種算法和結(jié)構(gòu)應(yīng)對需求,都是在這一步考慮的。這種仿真是在通用機上用高級語言編程實現(xiàn)的,編程時最好能仿DSP處理器形式運行,以達到更好的真實性。
DSP芯片選擇中通常有下列幾條應(yīng)注意的:
?。?)精度:表數(shù)格式(定點或浮點),通??梢杂枚c器件解決的問題,盡量用定點器件,因為它經(jīng)濟、速度快、成本低,功耗小。但是在編程時要關(guān)注信號的動態(tài)范圍,在代碼中增加限制信號動態(tài)范圍的定標運算。
?。?)字長的選擇:一般浮點DSP芯片都用32位的數(shù)據(jù)字,大多數(shù)定點DSP芯片是16位數(shù)據(jù)字。而MOTOROLA公司定點芯片用24位數(shù)據(jù)字,以便在定點和浮點精度之間取得折中。字長大小是影響成本的重要因素,它影響芯片的大小、引腳數(shù)以及存儲器的大小,設(shè)計時在滿足性能指標的條件下,盡可能選用最小的數(shù)據(jù)字。
(3)存儲器安排:包括存儲器的大小,片內(nèi)存儲器的數(shù)量,總線尋址空間等。片內(nèi)存儲器的大小決定了芯片運行速度和成本,例如TI公司同一系列的DSP芯片,不同種類芯片存儲器的配置等硬件資源各不相同。
?。?)開發(fā)工具:在DSP系統(tǒng)設(shè)計中,開發(fā)工具是必不可少的,一個復(fù)雜的DSP系統(tǒng),必須有功能強大的開發(fā)工具支持。
開發(fā)工具包括軟件和硬件兩部分。軟件開發(fā)工具主要包括:C編譯器、匯編器、鏈接器、程序庫、軟件仿真器等,在確定DSP算法后,編寫的程序代碼通過軟件仿真器進行仿真運行,來確定必要的性能指標。硬件開發(fā)工具包括在線硬件仿真器和系統(tǒng)開發(fā)板。在線硬件仿真器通常是JTAG周邊掃描接口板,可以對設(shè)計的硬件進行在線調(diào)試;在硬件系統(tǒng)完成之前,不同功能的開發(fā)板上實時運行設(shè)計的DSP軟件,可以提高開發(fā)效率。甚至在有的數(shù)量小的產(chǎn)品中,直接將開發(fā)板當(dāng)作最終產(chǎn)品。
?。?)功耗與電源管理:在一些手提便攜式的消費類電子產(chǎn)品中,供電電源的節(jié)省是很重要的問題,因而目前DSP生產(chǎn)廠商越來越重視這方面。它通常包括供電電壓的選擇和電源的管理功能。
供電電壓一般取得比較低,實施芯片的低電壓供電,通常有3.3V,2.5V,1.8V,0.9V等,在同樣的時鐘頻率下,它們的功耗將遠遠低于5V供電電壓的芯片。
加強了對電源的管理后,通常用休眠、等待模式等方式節(jié)省功率消耗。例如TI公司提供了詳細的、功能隨指令類型和處理器配置而改變的應(yīng)用說明。
?。?)成本和廠家的銷售后服務(wù):特別要注意DSP芯片的生產(chǎn)和主推產(chǎn)品,以便以低的成本實施來要求產(chǎn)品。但低價位的芯片必然是功能較少、片內(nèi)存儲器少、性能上差一些的,這就帶給編程一定的困難。
?。?)支持多處理器:近來各類軟件在無線電產(chǎn)品及雷達中的應(yīng)用中,都需要能處理高數(shù)據(jù)率、大運算量的應(yīng)用系統(tǒng)。單一的處理器系統(tǒng)已難以承擔(dān)這類復(fù)雜任務(wù),因而采用多個處理器并行工作。這種情況下,各處理器之間連接和通訊功能是必須要作為主要因素予以考慮的。近年新推出的DSP芯片系列都改善了這方面性能,注意增加專門的接口或DMA通道,來支持多處理器的DSP運行。
DSP處理器軟、硬件開發(fā)工具簡介
隨著DSP處理器的功能不斷強化和系統(tǒng)開發(fā)周期不斷縮短,設(shè)計和調(diào)試DSP系統(tǒng)越來越依賴于DSP開發(fā)系統(tǒng)和開發(fā)工具,圖2為DSP處理器開發(fā)流程圖。(圖2)
雖然廠家不同,但提供的開發(fā)調(diào)試工具大致類同,一般有下列幾種:
C語言編譯器(C Compiler)
一般廠家為了開發(fā)DSP系統(tǒng)方便、減小編寫匯編程序的難度,都提供了高級語言設(shè)計方法:一般是C語言。開發(fā)系統(tǒng)針對DSP庫函數(shù)、頭文件及編寫的C程序,自動生成對應(yīng)的匯編語言,這一步稱為C編譯。C編譯器通常符合ANSI C標準,可以對編寫的程序進行不同等級的優(yōu)化,以產(chǎn)生高效的匯編代碼;C編譯器還具有對存儲器的配置、分配及部分鏈接功能;并應(yīng)具有靈活的匯編語言接口等多種功能。
C編程方法易學(xué)易用,但編譯出的匯編程序比手工匯編程序長得多,因而效率一般只有20%~40%。為了克服C編譯器低效率,在提供標準C庫函數(shù)同時,開發(fā)系統(tǒng)也提供了許多針對DSP運算的高效庫函數(shù),例如FFT、FIR、IIR、相關(guān)、矩陣運算等,它們都是手工匯編的,帶有高級語言調(diào)用/返回接口。
一般為了得到高效編程,在系統(tǒng)軟件開發(fā)中,關(guān)鍵的DSP運算程序都是自行手工用匯編語言編寫,按照規(guī)定的接口約定,由C程序進行調(diào)用,這樣極大提高編程效率。
匯編器(Assembler)
將匯編語言原文件轉(zhuǎn)變?yōu)榛诠媚繕宋募袷降臋C器語言目標文件。
鏈接器(Linker)
將主程序、庫函數(shù)和子程序等,由匯編器產(chǎn)生的目標文件鏈接在一起,產(chǎn)生一個可執(zhí)行的模塊,形成DSP目標代碼。
軟件模擬器(Simulator)
是脫離硬件的純軟件仿真工具。將程序代碼加載后,在一個窗口工作環(huán)境中,可以模擬DSP的運行程序,同時對程序進行單步執(zhí)行、設(shè)置斷點,對寄存器/存儲器進行觀察、修改,統(tǒng)計某段程序的執(zhí)行時間等。通常在程序編寫完以后,都會在軟件仿真器上進行調(diào)試,以初步確定程序的可運行性。軟件仿真器的主要欠缺是對外部接口的仿真不夠完善。
硬件仿真器(Emulator)
在線仿真工具,它用JTAG接口電纜把DSP硬件目標系統(tǒng)和裝有仿真軟件/仿真卡的PC接口板連接起來,用PC平臺對實際硬件目標系統(tǒng)進行調(diào)試,能真實地仿真程序在實際硬件環(huán)境下的功能。
DSP開發(fā)系統(tǒng)
這是由廠家提供的一個包含DSP、存儲器、常用接口電路的通用電路板和相應(yīng)軟件的軟/硬件系統(tǒng)。通常有兩種形式,一種是電路板卡的形式,插入計算機中;另一種是通過計算機的串口或并口連接到計算機。這些都是通過計算機的控制端口來控制DSP的運行,并且有簡單的DSK(DSP starter Kit)入門套件,和較為復(fù)雜的EVM(Evaluation Module)評估模塊等。這些都有助于初學(xué)者熟悉和使用DSP處理器的應(yīng)用,也可以作為程序的初步運行對象,方便調(diào)試。
隨著DSP應(yīng)用范圍的擴大、處理能力的加強以及DSP更新速度的加快,DSP處理系統(tǒng)越來越復(fù)雜,對設(shè)計者來說難度也越來越大,為此有的廠家已產(chǎn)生出一定標準,依據(jù)標準來設(shè)計生產(chǎn)電路板級DSP處理模塊,同時為這種標準模塊提供豐富的軟件開發(fā)系統(tǒng)和算法庫。其中典型的如TMS320C4X和SDSP2106X,它們可以通過通信口和全局總線插座,將若干個模塊安裝在母板上,方便地組成多處理器系統(tǒng)。這種模塊化設(shè)計降低了硬件設(shè)計難度,減少了硬件設(shè)計時間,有利于更高效的開發(fā)DSP系統(tǒng)。
目前各DSP芯片生產(chǎn)廠家已經(jīng)把以上列出的各開發(fā)工具集成在一起,構(gòu)成集成開發(fā)環(huán)境。例如TI公司的CCS IDE(Code Composer Studio Integrated Development Environment)可以提供環(huán)境配置、源程序編輯、編譯連接、程序調(diào)試、跟蹤分析等各個環(huán)節(jié),以加速軟件開發(fā)進程,提高工作效率。它把編譯、匯編、鏈接等工具集成在一起,用一條命令即可完成全部的匯編工作。另外把軟、硬件開發(fā)工具集成在其中,使程序的編寫、匯編、程序的軟/硬件仿真和調(diào)試等開發(fā)工作在統(tǒng)一的環(huán)境中進行,給開發(fā)工作帶來極大的方便。
評論