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