設(shè)計(jì)DSP常見(jiàn)的問(wèn)題集
DSP的C語(yǔ)言同主機(jī)C語(yǔ)言的主要區(qū)別?
1)DSP的C語(yǔ)言是標(biāo)準(zhǔn)的ANSI C,它不包括同外設(shè)聯(lián)系的擴(kuò)展部分,如屏幕繪圖等。但在CCS中,為了方便調(diào)試,可以將數(shù)據(jù)通過(guò)prinf命令虛擬輸出到主機(jī)的屏幕上。
2)DSP的C語(yǔ)言的編譯過(guò)程為,C編譯為ASM,再由ASM編譯為OBJ。因此C和ASM的對(duì)應(yīng)關(guān)系非常明確,非常便于人工優(yōu)化。
3)DSP的代碼需要絕對(duì)定位;主機(jī)的C的代碼有操作系統(tǒng)定位。
4)DSP的C的效率較高,非常適合于嵌入系統(tǒng)。
三.DSP發(fā)展動(dòng)態(tài)
1.TMS320C2000 TMS320C2000系列包括C24x和C28x系列。C24x系列建議使用LF24xx系列替代C24x系列,LF24xx系列的價(jià)格比C24x便宜,性能高于C24x,而且LF24xxA具有加密功能。 C28x系列主要用于大存儲(chǔ)設(shè)備管理,高性能的控制場(chǎng)合。
2.TMS320C3x TMS320C3x系列包括C3x和VC33,主要推薦使用VC33。C3x系列是TI浮點(diǎn)DSP的基礎(chǔ),不可能停產(chǎn),但價(jià)格不會(huì)進(jìn)一步下調(diào)。
3.TMS320C5x TMS320C5x系列已不推薦使用,建議使用C24x或C5000系列替代。
4.TMS320C5000 TMS320C5000系列包括C54x和C55x系列。 其中VC54xx還不斷有新的器件出現(xiàn),如:TMS320VC5471(DSP+ARM7)。 C55x系列是TI的第三代DSP,功耗為VC54xx的1/6,性能為VC54xx的5倍,是一個(gè)正在發(fā)展的系列。 C5000系列是目前TI DSP的主流DSP,它涵蓋了從低檔到中高檔的應(yīng)用領(lǐng)域,目前也是用戶最多的系列。
5.TMS320C6000 TMS320C6000系列包括C62xx、C67xx和C64xx。此系列是TI的高檔DSP系列。 其中C62xx系列是定點(diǎn)的DSP,系列芯片種類較豐富,是主要的應(yīng)用系列。 C67xx系列是浮點(diǎn)的DSP,用于需要高速浮點(diǎn)處理的領(lǐng)域。 C64xx系列是新發(fā)展,性能是C62xx的10倍。
6.OMAP系列 是TI專門(mén)用于多媒體領(lǐng)域的芯片,它是C55+ARM9,性能卓越,非常適合于手持設(shè)備、Internet終端等多媒體應(yīng)用。
四.5V/3.3V如何混接?
TI DSP的發(fā)展同集成電路的發(fā)展一樣,新的DSP都是3.3V的,但目前還有許多外圍電路是5V的,因此在DSP系統(tǒng)中,經(jīng)常有5V和3.3V的DSP混接問(wèn)題。在這些系統(tǒng)中,應(yīng)注意: 1)DSP輸出給5V的電路(如D/A),無(wú)需加任何緩沖電路,可以直接連接。 2)DSP輸入5V的信號(hào)(如A/D),由于輸入信號(hào)的電壓>4V,超過(guò)了DSP的電源電壓,DSP的外部信號(hào)沒(méi)有保護(hù)電路,需要加緩沖,如74LVC245等,將5V信號(hào)變換成3.3V的信號(hào)。 3)仿真器的JTAG口的信號(hào)也必須為3.3V,否則有可能損壞DSP。
五.為什么要片內(nèi)RAM大的DSP效率高?
目前DSP發(fā)展的片內(nèi)存儲(chǔ)器RAM越來(lái)越大,要設(shè)計(jì)高效的DSP系統(tǒng),就應(yīng)該選擇片內(nèi)RAM較大的DSP。片內(nèi)RAM同片外存儲(chǔ)器相比,有以下優(yōu)點(diǎn): 1)片內(nèi)RAM的速度較快,可以保證DSP無(wú)等待運(yùn)行。 2)對(duì)于C2000/C3x/C5000系列,部分片內(nèi)存儲(chǔ)器可以在一個(gè)指令周期內(nèi)訪問(wèn)兩次,使得指令可以更加高效。 3)片內(nèi)RAM運(yùn)行穩(wěn)定,不受外部的干擾影響,也不會(huì)干擾外部。 4)DSP片內(nèi)多總線,在訪問(wèn)片內(nèi)RAM時(shí),不會(huì)影響其它總線的訪問(wèn),效率較高。
六.為什么DSP從5V發(fā)展成3.3V?
超大規(guī)模集成電路的發(fā)展從1um,發(fā)展到目前的0.1um,芯片的電源電壓也隨之降低,功耗也隨之降低。DSP也同樣從5V發(fā)展到目前的3.3V,核心電壓發(fā)展到1V。目前主流的DSP的外圍均已發(fā)展為3.3V,5V的DSP的價(jià)格和功耗都價(jià)格,以逐漸被3.3V的DSP取代。
七如何選擇DSP的電源芯片?
TMS320LF24xx:TPS7333QD,5V變3.3V,最大500mA。
TMS320VC33: TPS73HD318PWP,5V變3.3V和1.8V,最大750mA。
TMS320VC54xx:TPS73HD318PWP,5V變3.3V和1.8V,最大750mA; TPS73HD301PWP,5V變3.3V和可調(diào),最大750mA。
TMS320VC55xx:TPS73HD301PWP,5V變3.3V和可調(diào),最大750mA。
TMS320C6000: PT6931,TPS56000,最大3A。
八.軟件等待的如何使用?
DSP的指令周期較快,訪問(wèn)慢速存儲(chǔ)器或外設(shè)時(shí)需加入等待。等待分硬件等待和軟件等待,每一個(gè)系列的等待不完全相同。
1)對(duì)于C2000系列: 硬件等待信號(hào)為READY,高電平時(shí)不等待。 軟件等待由WSGR寄存器決定,可以加入最多7個(gè)等待。其中程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及I/O可以分別設(shè)置。
2)對(duì)于C3x系列: 硬件等待信號(hào)為/RDY,低電平是不等待。 軟件等待由總線控制寄存器中的SWW和WTCNY決定,可以加入最多7個(gè)等待,但等待是不分段的,除了片內(nèi)之外全空間有效。
3)對(duì)于C5000系列: 硬件等待信號(hào)為READY,高電平時(shí)不等待。 軟件等待由SWWCR和SWWSR寄存器決定,可以加入最多14個(gè)等待。其中程序存儲(chǔ)器、控制程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及I/O可以分別設(shè)置。
4)對(duì)于C6000系列(只限于非同步存儲(chǔ)器或外設(shè)): 硬件等待信號(hào)為ARDY,高電平時(shí)不等待。 軟件等待由外部存儲(chǔ)器接口控制寄存器決定,總線訪問(wèn)外部存儲(chǔ)器或設(shè)備的時(shí)序可以設(shè)置,可以方便的同異步的存儲(chǔ)器或外設(shè)接口。
九.中斷向量為什么要重定位?
為了方便DSP存儲(chǔ)器的配置,一般DSP的中斷向量可以重新定位,即可以通過(guò)設(shè)置寄存器放在存儲(chǔ)器空間的任何地方。 注意:C2000的中斷向量不能重定位。
十.DSP的最高主頻能從芯片型號(hào)中獲得嗎?
TI的DSP最高主頻可以從芯片的型號(hào)中獲得,但每一個(gè)系列不一定相同。
1)TMS320C2000系列:
TMS320F206-最高主頻20MHz。
TMS320C203/C206-最高主頻40MHz。
TMS320F24x-最高主頻20MHz。
TMS320LF24xx-最高主頻30MHz。
TMS320LF24xxA-最高主頻40MHz。
TMS320LF28xx-最高主頻150MHz。
2)TMS320C3x系列:
TMS320C30:最高主頻25MHz。
TMS320C31PQL80:最高主頻40MHz。
TMS320C32PCM60:最高主頻30MHz。
TMS320VC33PGE150:最高主頻75MHz。
3)TMS320C5000系列:
TMS320VC54xx:最高主頻160MHz。
TMS320VC55xx:最高主頻300MHz。
4)TMS320C6000系列:
TMS320C62xx:最高主頻300MHz。
TMS320C67xx:最高主頻230MHz。
TMS320C64xx:最高主頻720MHz。
十一.DSP可以降頻使用嗎?
可以,DSP的主頻均有一定的工作范圍,因此DSP均可以降頻使用。
十二.如何選擇外部時(shí)鐘?
DSP的內(nèi)部指令周期較高,外部晶振的主頻不夠,因此DSP大多數(shù)片內(nèi)均有PLL。但每個(gè)系列不盡相同。
1)TMS320C2000系列:
TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部時(shí)鐘可以為5MHz-40MHz。
TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部時(shí)鐘可以為2.22MHz-40MHz。
TMS320F241/C242/F243:PLL可以×4,因此外部時(shí)鐘為5MHz。 TMS320LF24xx:PLL可以由RC調(diào)節(jié),因此外部時(shí)鐘為4MHz-20MHz。
TMS320LF24xxA:PLL可以由RC調(diào)節(jié),因此外部時(shí)鐘為4MHz-20MHz。
2)TMS320C3x系列:
TMS320C3x:沒(méi)有PLL,因此外部主頻為工作頻率的2倍。
TMS320VC33:PLL可以÷2,×1,×5,因此外部主頻可以為12MHz-100MHz。
3)TMS320C5000系列:
TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主頻可以為0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主頻可以為6.25MHz-300MHz。
4)TMS320C6000系列:
TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主頻可以為11.8MHz-300MHz。
TMS320C67xx:PLL可以×1和×4,因此外部主頻可以為12.5MHz-230MHz。
TMS320C64xx:PLL可以×1,×6和×12,因此外部主頻可以為30MHz-720MHz
十三.如何選擇DSP的外部存儲(chǔ)器?
DSP的速度較快,為了保證DSP的運(yùn)行速度,外部存儲(chǔ)器需要具有一定的速度,否則DSP訪問(wèn)外部存儲(chǔ)器時(shí)需要加入等待周期。
1)對(duì)于C2000系列: C2000系列只能同異步的存儲(chǔ)器直接相接。 C2000系列的DSP目前的最高速度為150MHz。建議可以用的存儲(chǔ)器有:
CY7C199-15:32K×8,15ns,5V;
CY7C1021-12:64K×16,15ns,5V; CY7C1021V33-12:64K×16,15ns,3.3V。
2)對(duì)于C3x系列: C3x系列只能同異步的存儲(chǔ)器直接相接。 C3x系列的DSP的最高速度,5V的為40MHz,3.3V的為75MHz,為保證DSP無(wú)等待運(yùn)行,分別需要外部存儲(chǔ)器的速度25ns和12ns。建議可以用的存儲(chǔ)器有:
ROM: AM29F400-70:256K×16,70ns,5V,加入一個(gè)等待;
AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入兩個(gè)等待(目前沒(méi)有更快的Flash)。
SRAM: CY7C199-15:32K×8,15ns,5V;
CY7C1021-15:64K×16,15ns,5V;
CY7C1009-15:128K×8,15ns,5V;
CY7C1049-15:512K×8,15ns,5V;
CY7C1021V33-15:64K×16,15ns,3.3V;
CY7C1009V33-15:128K×8,15ns,3.3V;
CY7C1041V33-15:256k×16,15ns,3.3V。
3)對(duì)于C54x系列: C54x系列只能同異步的存儲(chǔ)器直接相接。 C54x系列的DSP的速度為100MHz或160MHz,為保證DSP無(wú)等待運(yùn)行,需要外部存儲(chǔ)器的速度10ns或6ns。建議可以用的存儲(chǔ)器有:
ROM: AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入5或9個(gè)等待(目前沒(méi)有更快的Flash)。
SRAM: CY7C1021V33-12:64K×16,12ns,3.3V,加入一個(gè)等待;
CY7C1009V33-12:128K×8,12ns,3.3V,加入一個(gè)等待。
4)對(duì)于C55x和C6000系列: TI的DSP中只有C55x和C6000可以同同步的存儲(chǔ)器相連,同步存儲(chǔ)器可以保證系統(tǒng)的數(shù)據(jù)交換效率更高。
ROM: AM29LV400-55(SST39VF400):256K×16,55ns,3.3V。
SDRAM: HY57V651620BTC-10S:64M,10ns。
SBSRAM: CY7C1329-133AC,64k×32;
CY7C1339-133AC,128k×32。
FIFO:CY7C42x5V-10ASC,32k/64k×18。
十四.DSP芯片有多大的驅(qū)動(dòng)能力?
DSP的驅(qū)動(dòng)能力較強(qiáng),可以不加驅(qū)動(dòng),連接8個(gè)以上標(biāo)準(zhǔn)TTL門(mén)。
十五.調(diào)試TMS320C2000系列的常見(jiàn)問(wèn)題?
1)單步可以運(yùn)行,連續(xù)運(yùn)行時(shí)總回0地址: Watchdog沒(méi)有關(guān),連續(xù)運(yùn)行復(fù)位DSP回到0地址。
2)OUT文件不能load到片內(nèi)flash中: Flash不是RAM,不能用簡(jiǎn)單的寫(xiě)指令寫(xiě)入,需要專門(mén)的程序?qū)懭?。CCS和C Source Debugger中的load命令,不能對(duì)flash寫(xiě)入。 OUT文件只能load到片內(nèi)RAM,或片外RAM中。
3)在flash中如何加入斷點(diǎn): 在flash中可以用單步調(diào)試,也可以用硬件斷點(diǎn)的方法在flash中加入斷點(diǎn),軟件斷點(diǎn)是不能加在ROM中的。硬件斷點(diǎn),設(shè)置存儲(chǔ)器的地址,當(dāng)訪問(wèn)該地址時(shí)產(chǎn)生中斷。
4)中斷向量: C2000的中斷向量不可重定位,因此中斷向量必須放在0地址開(kāi)始的flash內(nèi)。在調(diào)試系統(tǒng)時(shí),代碼放在RAM中,中斷向量也必須放在flash內(nèi)。
十六.調(diào)試TMS320C3x系列的常見(jiàn)問(wèn)題?
1)TMS320C32的存儲(chǔ)器配置: TMS320C32的程序存儲(chǔ)器可以配置為16位或32位;數(shù)據(jù)存儲(chǔ)器可以配置為8位、16位或32位。
2)TMS320VC33的PLL控制: TMS320VC33的PLL控制端只能接1.8V,不能接3.3V或5V。
十七.如何調(diào)試多片DSP?
對(duì)于有MPSD仿真口的DSP(TMS320C30/C31/C32),不能用一套仿真器同時(shí)調(diào)試,每次只能調(diào)試其中的一個(gè)DSP; 對(duì)于有JTAG仿真口的DSP,可以將JTAG串接在一起,用一套仿真器同時(shí)調(diào)試多個(gè)DSP,每個(gè)DSP可以用不同的名字,在不同的窗口中調(diào)試。 注意:如果在JTAG和DSP間加入驅(qū)動(dòng),一定要用快速的門(mén)電路,不能使用如LS的慢速門(mén)電路。
十八.在DSP系統(tǒng)中為什么要使用CPLD?
DSP的速度較快,要求譯碼的速度也必須較快。利用小規(guī)模邏輯器件譯碼的方式,已不能滿足DSP系統(tǒng)的要求。 同時(shí),DSP系統(tǒng)中也經(jīng)常需要外部快速部件的配合,這些部件往往是專門(mén)的電路,有可編程器件實(shí)現(xiàn)。 CPLD的時(shí)序嚴(yán)格,速度較快,可編程性好,非常適合于實(shí)現(xiàn)譯碼和專門(mén)電路。
十九.DSP系統(tǒng)構(gòu)成的常用芯片有哪些?
1)電源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
2)Flash: AM29F400,AM29LV400,SST39VF400...
3)SRAM: CY7C1021,CY7C1009,CY7C1049...
4)FIF CY7C425,CY7C42x5...
5)Dual port: CY7C136,CY7C133,CY7C1342...
6)SBSRAM: CY7C1329,CY7C1339...
7)SDRAM: HY57V651620BTC...
8)CPLD: CY37000系列,CY38000系列,CY39000系列...
9)PCI: PCI2040,CY7C09449...
10)USB: AN21xx,CY7C68xxx...
11)Codec:TLV320AIC23,TLV320AIC10...
12)A/D,D/A:ADS7805,TLV2543...
具體資料見(jiàn)www.ti.com,www.cypress.com
二十.什么是boot loader?
DSP的速度盡快,EPROM或flash的速度較慢,而DSP片內(nèi)的RAM很快,片外的RAM也較快。為了使DSP充分發(fā)揮它的能力,必須將程序代碼放在RAM中運(yùn)行。為了方便的將代碼從ROM中搬到RAM中,在不帶flash的DSP中,TI在出廠時(shí)固化了一段程序,在上電后完成從ROM或外設(shè)將代碼搬到用戶指定的RAM中。此段程序稱為boot loader。
二十一.TMS320C3x如何boot?
在MC/MP管腳為高時(shí),C3x進(jìn)入boot狀態(tài)。C3x的boot loader在reset時(shí),判斷外部中斷管腳的電平。根據(jù)中斷配置決定boot的方式為存儲(chǔ)器加載還是串口加載,其中ROM的地址可以為三個(gè)中的一個(gè),ROM可以為8位。
二十二.Boot有問(wèn)題如何解決?
1)仔細(xì)檢查boot的控制字是否正確。
2)仔細(xì)檢查外部管腳設(shè)置是否正確。
3)仔細(xì)檢查hex文件是否轉(zhuǎn)換正確。
4)用仿真器跟蹤boot過(guò)程,分析錯(cuò)誤原因。
二十三.DSP為什么要初始化?
DSP在RESET后,許多的寄存器的初值一般同用戶的要求不一致,例如:等待寄存器,SP,中斷定位寄存器等,需要通過(guò)初始化程序設(shè)置為用戶要求的數(shù)值。 初始化程序的主要作用: 1)設(shè)置寄存器初值。 2)建立中斷向量表。 3)外圍部件初始化。
二十四.DSP有哪些數(shù)學(xué)庫(kù)及其它應(yīng)用軟件?
TI公司為了方便客戶開(kāi)發(fā)DSP,在它的網(wǎng)站上提供了許多程序的示例和應(yīng)用程序,如MATH庫(kù),F(xiàn)FT,F(xiàn)IR/IIR等,可以在TI的網(wǎng)頁(yè)免費(fèi)下載。
二十五.如何獲得DSP專用算法?
TI有許多的Third Party可以通過(guò)DSP上的多種算法軟件。可以通過(guò)TI的網(wǎng)頁(yè)搜索你所需的算法,找到通過(guò)算法的公司,同相應(yīng)的公司聯(lián)系。注意這些算法都是要付費(fèi)的。
二十六.eXpressDSP是什么?
eXpressDSP是一種實(shí)時(shí)DSP軟件技術(shù),它是一種DSP編程的標(biāo)準(zhǔn),利用它可以加快你開(kāi)發(fā)DSP軟件的速度。 以往DSP軟件的開(kāi)發(fā)沒(méi)有任何標(biāo)準(zhǔn),不同的人寫(xiě)的程序一般無(wú)法連接在一起。DSP軟件的調(diào)試工具也非常不方便。使得DSP軟件的開(kāi)發(fā)往往滯后于硬件的開(kāi)發(fā)。 eXpressDSP集成了CCS(Code Composer Studio)開(kāi)發(fā)平臺(tái),DSP BIOS實(shí)時(shí)軟件平臺(tái),DSP算法標(biāo)準(zhǔn)和第三方支持四部分。利用該技術(shù),可以使你的軟件調(diào)試,軟件進(jìn)程管理,軟件的互通及算法的獲得,都便的容易。這樣就可以加快你的軟件開(kāi)發(fā)進(jìn)程。
1)CCS是eXpressDSP的基礎(chǔ),因此你必須首先擁有CCS軟件。
2)DSP BIOS是eXpressDSP的基本平臺(tái),你必須學(xué)會(huì)所有DSP BIOS。
3)DSP算法標(biāo)準(zhǔn)可以保證你的程序可以方便的同其它利用eXpressDSP技術(shù)的程序連接在一起。同時(shí)也保證你的程序的延續(xù)性。
二十七.為什么要用DSP?
3G技術(shù)和internate的發(fā)展,要求處理器的速度越來(lái)越高,體積越來(lái)越小,DSP的發(fā)展正好能滿足這一發(fā)展的要求。因?yàn)?,傳統(tǒng)的其它處理器都有不同的缺陷。MCU的速度較慢;CPU體積較大,功耗較高;嵌入CPU的成本較高。 DSP的發(fā)展,使得在許多速度要求較高,算法較復(fù)雜的場(chǎng)合,取代MCU或其它處理器,而成本有可能更低。
二十八.如何選擇DSP?
選擇DSP可以根據(jù)以下幾方面決定:
1)速度: DSP速度一般用MIPS或FLOPS表示,即百萬(wàn)次/秒鐘。根據(jù)您對(duì)處理速度的要求選擇適合的器件。一般選擇處理速度不要過(guò)高,速度高的DSP,系統(tǒng)實(shí)現(xiàn)也較困難。
2)精度: DSP芯片分為定點(diǎn)、浮點(diǎn)處理器,對(duì)于運(yùn)算精度要求很高的處理,可選擇浮點(diǎn)處理器。定點(diǎn)處理器也可完成浮點(diǎn)運(yùn)算,但精度和速度會(huì)有影響。
3)尋址空間: 不同系列DSP程序、數(shù)據(jù)、I/O空間大小不一,與普通MCU不同,DSP在一個(gè)指令周期內(nèi)能完成多個(gè)操作,所以DSP的指令效率很高,程序空間一般不會(huì)有問(wèn)題,關(guān)鍵是數(shù)據(jù)空間是否滿足。數(shù)據(jù)空間的大小可以通過(guò)DMA的幫助,借助程序空間擴(kuò)大。
4)成本: 一般定點(diǎn)DSP的成本會(huì)比浮點(diǎn)DSP的要低,速度也較快。要獲得低成本的DSP系統(tǒng),盡量用定點(diǎn)算法,用定點(diǎn)DSP。
5)實(shí)現(xiàn)方便: 浮點(diǎn)DSP的結(jié)構(gòu)實(shí)現(xiàn)DSP系統(tǒng)較容易,不用考慮尋址空間的問(wèn)題,指令對(duì)C語(yǔ)言支持的效率也較高。
6)內(nèi)部部件:根據(jù)應(yīng)用要求,選擇具有特殊部件的DSP。如:C2000適合于電機(jī)控制;OMAP適合于多媒體等。
評(píng)論