- TMS320 F2812 DSP原理與應用實例
- 三恒星科技編著
- 5473字
- 2018-12-26 17:44:20
1.3 DSP應用系統的開發流程和開發工具
在設計需求規范,確定設計目標時,要解決兩方面的問題:即信號處理和非信號處理方面的問題。隨著DSP處理器功能的不斷強化和系統開發周期的不斷縮短,設計和調試DSP系統越來越依賴于DSP開發系統和開發工具。
1.3.1 DSP應用系統的開發流程
信號處理的問題包括:輸入、輸出結果特性的分析,DSP算法的確定,以及按要求對確定的性能指標在通用機上用高級語言編程仿真。
非信號處理問題包括:應用環境、設備的可靠性指標,設備的可維護性,功耗、體積,重量、成本、性能價格比等。
算法的研究與仿真是DSP應用系統設計中非常重要的一步。系統性能指標能否實現,以何種算法和結構滿足需求,都是這一步需要考慮的內容。這種仿真是在通用機上用高級語言編程實現的,編程時最好能按照DSP處理器形式運行,以達到更真實的效果。
設計DSP應用系統,選擇DSP芯片也是一個非常重要的環節。只有選定了合適的DSP芯片,才能進一步設計其外圍電路及系統的其他電路。總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定。不同的DSP應用系統由于應用場合、應用目的等不盡相同,對DSP芯片的選擇也是不同的。
DSP應用系統的運算量是確定選用處理能力為多大的DSP芯片的基礎。運算量小則可以選用處理能力不是很強的DSP芯片,從而降低系統成本。相反,運算量大的DSP系統則必須選用處理能力強的DSP芯片,如果DSP芯片的處理能力達不到系統要求,則必須用多個DSP芯片并行處理。
那么如何確定DSP系統的運算量以選擇DSP芯片,下面我們來考慮兩種情況。
1.按幀處理
有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱為幀)循環一次。例如中低速語音編碼算法通常以10ms或20ms為一幀,即每隔10ms或20ms語音編碼算法循環一次。所以在選擇DSP芯片時,應該比較一幀內DSP芯片的處理能力與DSP算法的運算量。假設DSP芯片的指令周期為p(ns),一幀的時間是tD(ns),則此DSP芯片在一幀時間內所能提供的最大運算量為tD/p條指令。例如TMS320LC549-80的指令周期為12.5ns,設幀長為20ms,則一幀內TMS320LC549-80所能提供的最大運算量為160萬條指令。因此只要語音編碼算法的運算量不超過160萬條指令,就可以在TMS320LC549-80上實時運行。
2.按樣點處理
所謂按樣點處理就是DSP算法對每一個輸入樣點循環一次。數字濾波就與此種情況相同。在數字濾波器中,通常需要對每一個輸入樣點進行一次計算。例如,一個采用LMS算法的256抽頭的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256×3=768個MAC周期。如果采樣頻率為8kHz,即樣點之間的間隔為125ms,DSP芯片的MAC周期為200ns,則768個MAC周期需要153.6ms的時間,顯然無法實時處理,需要選用速度更高的DSP芯片。
上述兩點因素是確定DSP應用系統運算量的關鍵性因素。
此外,在DSP芯片選擇時通常有下列幾項注意事項:
(1)DSP芯片的速度
運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素。DSP芯片的運算速度可以用下列幾種性能指標來衡量:
① 指令周期:即執行一條指令所需的時間,通常以ns為單位。如TMS320LC549-80在主頻為80MHz時的指令周期為12.5ns;
② MAC時間:即一次乘法加上一次加法的時間。大部分DSP芯片可在一個指令周期內完成一次乘法和加法操作,如TMS320LC549-80的MAC時間就是12.5ns;
③ FFT執行時間:即運行一個N點FFT程序所需的時間。由于FFT運算涉及的運算在數字信號處理中很有代表性,因此FFT運算時間常作為衡量DSP芯片運算能力的一個指標;
④ MIPS:即每秒執行百萬條指令。如TMS320LC549-80的處理能力為80MIPS,即每秒可執行八千萬條指令;
⑤ MOPS:即每秒執行百萬次操作。如TMS320C40的運算能力為275 MOPS;
⑥ MFLOPS:即每秒執行百萬次浮點操作。如TMS320C31在主頻為40MHz時的處理能力為40MFLOPS;
⑦ BOPS:即每秒執行十億次操作。如TMS320C80的處理能力為2BOPS。
(2)DSP芯片的字長選擇
一般浮點DSP芯片都用32 位的數據字,大多數定點DSP芯片是16 位數據字。而MOTOROLA公司定點芯片用24位數據字,以便在定點和浮點精度之間取得折中。字長大小是影響成本的重要因素,它影響芯片的大小、引腳數以及存儲器的大小,設計時在滿足性能指標的條件下,盡可能選用最小的數據字。
(3)DSP芯片的存儲器安排
包括存儲器的大小,片內存儲器的數量,總線尋址空間等。片內存儲器的大小決定了芯片運行速度和成本,例如TI公司同一系列的DSP芯片,不同種類芯片存儲器的配置等硬件資源各不相同。
(4)DSP芯片的開發工具
在DSP系統設計中,開發工具是必不可少的,一個復雜的DSP系統,必須有功能強大的開發工具支持。
開發工具包括軟件和硬件兩部分。軟件開發工具主要包括:C編譯器、匯編器、鏈接器、程序庫、軟件仿真器等,在確定DSP算法后,編寫的程序代碼通過軟件仿真器進行仿真運行,來確定必要的性能指標。硬件開發工具包括在線硬件仿真器和系統開發板。在線硬件仿真器通常是JTAG測試接口板,可以對設計的硬件進行在線調試;在硬件系統完成之前,不同功能的開發板上實時運行設計的DSP軟件,可以提高開發效率。甚至在數量小的產品中,直接將開發板當作最終產品。
(5)DSP芯片的功耗與電源管理
在一些手提便攜式的消費類電子產品中,供電電源的節省是很重要的問題,因而目前DSP生產廠商對這方面的問題越來越重視。它通常包括供電電壓的選擇和電源的管理功能。
供電電壓一般取得比較低,實施芯片的低電壓供電,通常有3.3V,2.5V,1.8V,0.9V等,在同樣的時鐘頻率下,它們的功耗將遠遠低于5V供電電壓的芯片。
加強了對電源的管理后,通常用休眠、等待模式等方式節省功率消耗。例如TI公司提供了詳細的、功能隨指令類型和處理器配置而改變的應用說明。
(6)DSP芯片的成本
特別要注意DSP芯片的生產和主推產品,以便以低的成本實施來要求產品。但低價位的芯片必然是功能較少、片內存儲器少、性能上差一些的,這就給編程帶來一定的困難。
(7)DSP芯片的片內硬件資源
不同的DSP芯片所提供的硬件資源是完全不相同的,如片內RAM、ROM的數量,外部可擴展的程序和數據空間,總線接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54x系列),其中所包含的不同型號的片種也具有不同的內部硬件資源,可以適應不同的需要。
(8)其他因素
除了上述因素外,選擇DSP芯片還應考慮到封裝的形式、質量標準、供貨情況、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多種封裝形式。有些DSP系統可能最終要求的是工業級或軍用級標準,在選擇時就需要注意到所選的芯片是否有工業級或軍用級的同類產品。如果所設計的DSP系統不僅僅是一個實驗系統,而是需要批量生產并可能有幾年甚至十幾年的生命周期,那么需要考慮所選的DSP芯片供貨情況如何,是否也有同樣甚至更長的生命周期等。
1.3.2 DSP應用系統的開發工具
DSP處理器的系統開發流程圖如圖1-6所示。

圖1-6 DSP處理器開發流程圖
DSP軟件可以使用匯編語言或者C語言編寫源程序、通過編譯、鏈接工具產生DSP的執行代碼。在調試階段,可以利用軟件在計算機上進行仿真,也可以利用硬件調試工具將代碼下載至DSP,并通過計算機監控、調試運行程序。當調試完成后,可以將程序代碼固化到EPROM中,以便DSP目標系統脫離計算機單獨運行。
下面簡要介紹幾種常用的開發工具。雖然廠家不同,但提供的開發調試工具大致類同。
1.代碼生成工具
代碼生成工具一般包括編譯器、鏈接器、優化C編譯器、轉換工具等。可以使用C語言或者匯編語言編寫源程序代碼。編寫完成后,利用代碼生成工具進行工具編譯、鏈接、最后形成機器代碼。
(1)C編譯器(C Compiler)
為了開發DSP系統方便,減小編寫匯編程序的難度,很多廠商都提供了高級語言設計方法,一般為C語言。開發系統針對DSP庫函數、頭文件及編寫的C程序,自動生成對應的匯編語言,這一步稱為C編譯。C編譯器通常符合ANSIC標準,可以對編寫的程序進行不同等級的優化,以產生高效的匯編代碼;C編譯器還具有對存儲器的配置、分配及部分鏈接功能;并應具有靈活的匯編語言接口等多種功能。
C編程方法簡單、易學易用,但編譯出的匯編程序比手工匯編程序要長得多,因而效率比較低。為了克服C編譯器的低效率,在提供標準C庫函數同時,開發系統也提供了許多針對DSP運算的高效庫函數,例如FFT、FIR、IIR、相關、矩陣運算等,它們都是手工匯編的,帶有高級語言調用/返回接口。
很多情況下,為了得到高效編程,在系統軟件開發過程中,核心的DSP運算程序都是使用匯編語言手工編寫,按照規定的接口約定,由C程序進行調用,這樣就極大地提高了編程的效率。
(2)匯編器(Assembler)
匯編器的主要功能是將匯編語言源文件轉換為基于公用目標文件格式的機器語言目標文件。
(3)鏈接器(Linker)
鏈接器的主要作用是將子程序、庫函數和主程序等由匯編器產生的目標文件鏈接在一起,產生一個可執行的模塊,形成DSP目標代碼。
2.軟件仿真器(Simulator)
軟件仿真器是一種脫離硬件的純軟件仿真工具。將程序代碼加載后,在一個窗口工作環境中,可以模擬DSP的運行程序,同時對程序進行單步執行、設置斷點,對寄存器/存儲器進行觀察、修改,統計某段程序的執行時間等。通常在程序編寫完成以后,都會在軟件仿真器上進行調試,以初步確定程序的可運行性。軟件仿真器的主要缺點是對外部接口的仿真不夠完善。
早期的軟件仿真器與其他開發工具是分開的,用起來不方便。現在,軟件仿真器是作為CCS的一個目標插件,被廣泛應用于DSP的開發中。
3.硬件仿真器(Emulator)
硬件仿真器是一種在線仿真工具,它用JTAG接口電纜把DSP硬件目標系統和裝有仿真軟件/仿真卡的PC接口板連接起來,用PC平臺對實際硬件目標系統進行調試,能真實的仿真程序在實際硬件環境下的功能。
TMS320擴展的開發系統XDS(eXtend Development System)是一種功能強大的全速仿真器,用于系統的集成和調試。掃描式仿真是一種獨特的、非插入式的系統仿真與集成調試的方法。程序可以從片外或者片內的目標存儲器實時執行,在任何時鐘速度下都不會引入額外的等待狀態。
4.DSP開發系統
DSP開發系統是一個包含DSP、存儲器、常用接口電路的通用電路板和相應軟件的軟/硬件系統。通常有兩種形式:一種是電路板卡的形式,插入計算機中;另一種是通過計算機的串口或并口連接到計算機。這些都是通過計算機的控制端口來控制DSP的運行,并具有簡單的DSK(DSP starter Kit)入門套件和較為復雜的EVM(Evaluation Module)評估模塊等。這些都有助于初學者熟悉和使用DSP處理器的應用,也可以作為程序的初步運行對象,方便調試。
隨著DSP應用范圍的擴大、處理能力的加強以及DSP更新速度的加快,DSP處理系統越來越復雜,對設計者來說難度也越來越大,因此一些生產廠家已經制定出了一定的標準,依據標準來設計生產電路板和DSP處理模塊,同時為這些標準模塊提供豐富的軟件開發系統和算法庫。其中典型的如TMS320C4x和SDSP2106x,它們可以通過通信口和全局總線插座,將若干個模塊安裝在母板上,方便地組成多處理器系統。這種模塊化設計降低了硬件設計難度,減少了硬件設計時間,有利于更高效的開發DSP系統。
目前各DSP芯片生產廠家已經把已有的各開發工具集成在一起,構成集成開發環境。例如TI公司的CCS IDE(Code Composer Studio Integrated Development Environment)可以提供環境配置、源程序編輯、編譯連接、程序調試、跟蹤分析等各個環節,以加速軟件開發進程,提高工作效率。它把編譯、匯編、鏈接等工具集成在一起,用一條命令即可完成全部的匯編工作。另外把軟、硬件開發工具集成在其中,使程序的編寫、匯編、程序的軟/硬件仿真和調試等開發工作在統一的環境中進行,給開發工作帶來極大的方便。
在DSP應用系統的開發過程中,需要開發工具支持的情況如表1-1所示。
表1-1 DSP應用系統開發工具支持

1.3.3 SHX-DSP2812開發系統簡介
SHX-DSP2812開發系統是由北京三恒星科技公司開發研制的。為了使用戶能更好的學習和了解本系統,下面介紹SHX-DSP2812開發板和仿真器。
1.SHX-DSP2812開發板介紹
北京三恒星科技公司開發的SHX-DSP2812開發板實物圖如圖1-7所示。

圖1-7 開發板實物圖
本套件是基于TMS320F2812 DSP的學習開發平臺,全面而又系統地展現了F2812的各個功能,是初學者學習2812的首選產品。
下面詳細介紹本套件的系統資源、擴展接口及相關配件。
(1)系統資源
SHX-DSP2812開發板的系統資源如下:
· DSP處理器TMS320F2812,最高工作頻率150MHz;
· DSP芯片內置18K×16位SRAM,4K×16位BOOT ROM,1K×16位OPT ROM;
· DSP芯片內置128K ×16位Flash;
· 外擴32K×16bit的程序RAM,32K×16bit的數據RAM;
· 監視用LED發光管一個;
· DSP所有功能引腳引出,176pin;
· 4MB程序、數據尋址空間;
· I/O輸入/輸出模塊8個LED;
· SCI模塊RS—232通信接口電路;
· SPI_DA模塊4路8位串行D/A輸出;
· A/D轉換模塊2路12位A/D采樣(可擴展到16路);
· CAN模塊CAN總線收發器;
· PWM模塊PWM控制微型直流電動機正反轉;
· 步進電動機支持(選配)。
(2)擴展接口
SHX-DSP2812開發板的擴展接口如下:
· IEEE 1149.1標準JTAG接口;
· 176pin全部功能引腳引出,用戶可以擴展使用;
· RS232標準DB9接口插座;
· 4路D/A輸出接口插座;
· 2路A/D輸出接口插座;
· CAN總線接口插座;
· 電動機接口:支持直流電動機、步進電動機(選配)。
(3)相關配件
SHX-DSP2812開發板的相關配件口如下:
· 直流動電機;
· 串口直連線;
· +5V直流穩壓電源;
· 步進電動機。
2.SHX-USB接口DSP仿真器介紹
SHX-USB接口仿真器具有性能優越,體積小巧,兼容性好等特點,它能夠完全仿真TI系列的2000系列,3X系列、5000系列、6000系列等DSP芯片。
SHX-USB接口DSP仿真器如圖1-8所示。

圖1-8 SHX-USB接口DSP仿真器
仿真器特點如下:
(1)適用于工作電壓在1.0~5.0V之間的數字信號處理;
(2)支持Windows98/2000/XP;
(3)支持TI全系列DSP芯片的硬件仿真,包括TMS320C2000、C5000、C6000、C3x、C4x、C5x及OMAP等系列芯片;
(4)與主機采用USB2.0接口通信,使用簡單,即插即用;
(5)支持熱插拔,隨時插拔不會損傷硬件;
(6)通過USB總線供電,無需外接電源;
(7)支持CCS2系列開發環境,支持C語言和匯編語言調試;
(8)采用DSP的JTAG口進行調試,不占用系統任何資源;
(9)支持多DSP調試,一套開發系統可以對板上的多個DSP芯片同時進行調試;
(10)價格低廉,性價比高。
相關配件如下:
(1)USB電纜:1條;
(2)4芯JTAG排線:1條;
(3)贈送相關調試工具(CCS)、驅動和相關資料,供學習用。
關于仿真器部分的詳細介紹將在第7章中給出,在此不再贅述。