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