【摘 要】DSP是專門為了數(shù)字信號(hào)處理應(yīng)用而設(shè)計(jì)的高速芯片,解決了原來處理器結(jié)構(gòu)復(fù)雜、單片微機(jī)速度達(dá)不到實(shí)時(shí)系統(tǒng)要求的問題。本文分別從數(shù)據(jù)傳輸和數(shù)據(jù)處理的角度來對(duì)DSP的實(shí)時(shí)信號(hào)處理進(jìn)行了探討。
【關(guān)鍵詞】DSP芯片;數(shù)據(jù)傳輸;SDRAM
由于具備強(qiáng)大的硬件和優(yōu)化的體系結(jié)構(gòu),DSP芯片通常用于實(shí)時(shí)信號(hào)處理領(lǐng)域。ADSP-TS201S作為ADI公司最有代表性的DSP芯片之一,很好地解決了實(shí)時(shí)信號(hào)處理中的兩個(gè)問題,即實(shí)時(shí)傳輸和實(shí)時(shí)處理的問題。
下面分別從數(shù)據(jù)傳輸和數(shù)據(jù)處理的角度來對(duì)DSP的實(shí)時(shí)信號(hào)處理進(jìn)行說明。
1、ADSP-TS201S高效數(shù)據(jù)訪問與傳輸方法
ADSP-TS201S的數(shù)據(jù)空間,根據(jù)配置方式的不同,可大致分為以下幾類:片內(nèi)寄存器、DRAM、外部SDRAM、其他片外存儲(chǔ)空間。其他片外的存儲(chǔ)空間可能包括FIFO、FPGA生成的寄存器和存儲(chǔ)器等連接在外部總線上的存儲(chǔ)介質(zhì)。對(duì)這3種空間的訪問如下:
①對(duì)于內(nèi)部寄存器和DRAM的訪問是通過內(nèi)部總線進(jìn)行訪問,因此無須配置,直接訪問即可。
②對(duì)于SDRAM的訪問要通過DSP的外部總線訪問,并使用DSP內(nèi)部集成的SDRAM控制器去控制訪問邏輯,因此在訪問之前需要通過配置SDRCON來設(shè)置DSP內(nèi)部SDRAM控制器的訪問時(shí)序,就能對(duì)SDRAM進(jìn)行訪問,SDRCON的設(shè)置方法與SYSCON類似。
③對(duì)片外存儲(chǔ)空間的訪問,是通過總線進(jìn)行數(shù)據(jù)傳輸,并通過DSP的控制信號(hào)對(duì)讀寫時(shí)序進(jìn)行控制,因此需設(shè)置好SYSCON后DSP會(huì)根據(jù)設(shè)置的參數(shù)去配置總線延時(shí)值,之后DSP便能對(duì)外部存儲(chǔ)區(qū)進(jìn)行訪問。
本文將主要從4個(gè)方面進(jìn)行介紹:ADSP-TS201S對(duì)外部存儲(chǔ)空間的訪問與控制,ADSP-TS201S對(duì)SDRAM的訪問與控制,多DSP間Link口數(shù)據(jù)傳輸,DMA數(shù)據(jù)傳輸方法。
1)ADSP-TS201S對(duì)片外存儲(chǔ)空間的訪問(非SDRAM)。對(duì)于ADSP-TS201S、片外的SDRAM、FIFO芯片、FPGA生成的寄存器,RAM、FIFO等都可以映射為其外部存儲(chǔ)空間。由于ADSP-TS201S集成有專門的SDRAM控制接口,而對(duì)于其他片外存儲(chǔ)空間,ADSP-TS201S在對(duì)其進(jìn)行訪問時(shí),需先考察片外存儲(chǔ)器的總線時(shí)序,并通過配置ADSP-TS201S的總線時(shí)序來實(shí)現(xiàn)ADSP-TS201S與片外存儲(chǔ)器之間數(shù)據(jù)訪問。
2)ADSP-TS201S對(duì)片外SDRAM的訪問。ADSP-TS201S處理器有一個(gè)專用的SDRAM接口,可以實(shí)現(xiàn)與標(biāo)準(zhǔn)SDRAM6Mbit、64Mbit、128Mbit、256Mbit、512Mbit的無縫連接。支持1024、512、256字的頁面長度,通過對(duì)sdrcon寄存器的編程可實(shí)現(xiàn)頁面長度的選擇。同時(shí)SDRAM占用ADSP-TS201S的外部存儲(chǔ)空間地址,通過設(shè)置/mssd3~0來確定SDRAM的地址空間范圍。由于內(nèi)部集成了SDRAM控制器,使得ADSP-TS201S對(duì)SDRAM的讀寫操作與片內(nèi)內(nèi)存沒有太大的差別,因此本文重點(diǎn)介紹ADSP-TS201S和SDRAM連接時(shí)的硬件電路設(shè)計(jì)。為了使得對(duì)SDRAM的控制更加具體,后面的介紹將以HY57V561620b為例進(jìn)行介紹。
(1)ADSP-TS201S與SDRAM的電路接口。HY57V561620b的頁面長度為512字,在與ADSP-TS201S進(jìn)行連接時(shí),可將兩片SDRAM拼接成32位的總線寬度,實(shí)現(xiàn)與ADSP-TS201S的無縫接口。根據(jù)不同的總線寬度(32位和64位),ADSP-TS201S的地址總線與SDRAM的連接有所不同,但控制總線的連接方式?jīng)]有太大的差異。
①對(duì)于32位數(shù)據(jù)總線直接相連,地址總線互聯(lián)方法如下:
●SDRAM地址bit9~0與ADSP-TS201S addr9~0相連。
●SDRAM地址bit0與ADSP-TS201S的sda10引腳相連。
●SDRAM地址bit15~11與ADSP-TS201S addr15~11相連。
②對(duì)于64位數(shù)據(jù)總線,數(shù)據(jù)線直接互連,地址鏈接方式如下:
●SDRAM地址bit9~0與ADSP-TS201S addr10~1相連,ADSP-TS201S addr0懸空。
●SDRAM地址bit10與ADSP-TS201S的sda10引腳相連。
●SDRAM地址bit14~11與ADSP-TS201S addr15~12相連。
另外對(duì)于標(biāo)準(zhǔn)的SDRAM(3.3V),ADSP-TS201S的地址線addrl5~11都可以作為bank的選擇線。對(duì)于低功率的SDRAM(2.5V),只有addr15~14可以作為bank的選擇線。因此在進(jìn)行接vi設(shè)計(jì)時(shí)一定注意所選擇SDRAM的電參數(shù)。
(2)SDRAM接口控制寄存器配置。ADSP-TS201S內(nèi)部集成了SDRAM控制器,使用硬件映射的方式對(duì)SDRAM進(jìn)行管理,進(jìn)而優(yōu)化數(shù)字信號(hào)處理中SDRAM的使用性能。地址的映射通過頁面大小和總線寬度進(jìn)行譯碼對(duì)應(yīng)。在對(duì)SDRAM數(shù)據(jù)訪問之前,須先對(duì)系統(tǒng)寄存器和SDRAM控制寄存器進(jìn)行設(shè)置,只有相應(yīng)的寄存器設(shè)置完全正確,才能正常的訪問SDRAM數(shù)據(jù)。
(3)SYSCON寄存器設(shè)置(數(shù)據(jù)對(duì)齊方式)。在處理器硬件復(fù)位后運(yùn)行用戶程序前,必須先設(shè)置系統(tǒng)寄存器SYSCON。在該寄存器中對(duì)系統(tǒng)的總線寬度進(jìn)行定義,可以將處理器的外部數(shù)據(jù)總線定義成32位或64位。值得注意的是,無論是內(nèi)部尋址空間還是外部存儲(chǔ)器尋址空間,只要它們被設(shè)置了64位總線寬度、多處理器的尋址空間也必須同時(shí)設(shè)置成64位總線寬度,否則他們將不能正常工作在64位總線寬度。
(4)SDRCON寄存器設(shè)置。對(duì)SDRAM的編程控制是通過寄存器SDRCON實(shí)現(xiàn)的。與寄存器SYSCON類似,對(duì)SDRCON的配置必須在處理器硬件復(fù)位之后訪問SDRAM之間完成,且這部分的程序應(yīng)該在系統(tǒng)的初始化程序之中。在多處理器中,所有處理器的SDRCON寄存器必須設(shè)置成相同的配置。
3)多片DSP間的數(shù)據(jù)傳輸方法。由于ADSP-TS201S系列處理器具有4個(gè)全雙工的鏈路口通信端口,因此對(duì)于多片ADSP-TS201S之間的數(shù)據(jù)通信,通常是采用鏈路口通信接口(Link口)來實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)通信。
4)DMA方式的數(shù)據(jù)訪問。在對(duì)少量數(shù)據(jù)進(jìn)行訪問時(shí),通常采用直接對(duì)其他地址進(jìn)行訪問的方式。但是如果需要訪問或傳輸?shù)氖谴罅繑?shù)據(jù),則通常采用DMA的傳輸方式。通過該方式,數(shù)據(jù)傳輸和DSP的運(yùn)算可以同時(shí)進(jìn)行,使得DSP的處理效率能得到進(jìn)一步的提高。
2、ADSP-TS201S中數(shù)據(jù)處理方法的優(yōu)化(實(shí)時(shí)處理)
ADSP-TS201S是一款針對(duì)高速信號(hào)處理設(shè)計(jì)的DSP,得益于強(qiáng)大的硬件和優(yōu)化的體系結(jié)構(gòu),使得該DSP的處理速度能夠超過通常的DSP,進(jìn)而實(shí)現(xiàn)實(shí)時(shí)處理。
從優(yōu)化的層次講,算法的并行優(yōu)化通常有這樣幾個(gè)方面,首先最直接的是在CPU結(jié)構(gòu)允許范圍內(nèi)盡可能的指令并行,這一點(diǎn)與處理器有很大的相關(guān)性;二是通過循環(huán)展開及軟件流水來提高并行度,避免流水線延遲,這個(gè)層面的優(yōu)化靈活性很大、比較復(fù)雜,但不需要對(duì)算法結(jié)構(gòu)作太多的了解;最后一點(diǎn)是根據(jù)處理器特性,從數(shù)學(xué)上重新優(yōu)化算法結(jié)構(gòu)。然而需要注意的是,在應(yīng)用中常常以相反的順序根據(jù)實(shí)際需要進(jìn)行必要的優(yōu)化,當(dāng)代碼已進(jìn)行軟件流水并充分并行后再想去改變算法的基本結(jié)構(gòu),就顯得不是那么容易了。