幾種DSP與外接存儲(chǔ)器的連接方法
1 引言
本文引用地址:http://butianyuan.cn/article/201706/349621.htm 存儲(chǔ)器接口分為ROM接口和RAM接口兩種。ROM包括EPROM和FLASH,而RAM主要是指SRAM。TMS320C5409具有32K字的片內(nèi)RAM和16K字的掩膜ROM。但是在DSP應(yīng)用的很多場(chǎng)合,尤其是帶信號(hào)存儲(chǔ)的DSP應(yīng)用來說,TMS320C5409的片內(nèi)存儲(chǔ)資源是遠(yuǎn)遠(yuǎn)不夠用的。因此,設(shè)計(jì)一個(gè)TMS320C5409硬件系統(tǒng)一般應(yīng)該包括其與EPROM/FLASH和SRAM的接口設(shè)計(jì),以存放程序和數(shù)據(jù)。本文介紹TMS320C5409與存儲(chǔ)器的接口設(shè)計(jì)方案。
2 DSP與SRAM的接口設(shè)計(jì)
除了內(nèi)部32k字RAM和16K字ROM之外,TMS320C5409還可以擴(kuò)展外部存儲(chǔ)器。其中,數(shù)據(jù)總空間總共為64k字(0000H~FFFFH),I/O空間為64K字(0000H~FFFFH),程序空間為8M。8M的程序空間的尋址是通過額外的7根地址線(A16~A22)實(shí)現(xiàn)的,由XPC寄存器控制。根據(jù)程序和數(shù)據(jù)的空間配置,擴(kuò)展的方法主要有3種。
2.1 分開的程序和數(shù)據(jù)空間配置
這種方案是采用外接一個(gè)128k×16位的RAM,將程序區(qū)和數(shù)據(jù)區(qū)分開,如圖1所示。采用程序選通線接外部RAM的A16地址線實(shí)現(xiàn),因此,程序區(qū)為RAM的前64k字(0000H~FFFFH),數(shù)據(jù)區(qū)為RAM的后64k字(10000H~1FFFFH)。對(duì)DSP而言,程序區(qū)和數(shù)據(jù)區(qū)的地址范圍均為0000H~FFFFH。
采用這種配置方法需要注意:如果內(nèi)部RAM設(shè)置為有效,則相同地址的外部RAM自動(dòng)無效;當(dāng)外部RAM不能全速運(yùn)行時(shí),需要根據(jù)速度設(shè)置插入等待狀態(tài)(設(shè)置SWWSR)。
2.2 混合的程序和數(shù)據(jù)空間配置
這種方案是令OVLY=1,此時(shí)內(nèi)部RAM既是數(shù)據(jù)區(qū)也是程序區(qū)。這樣設(shè)置的優(yōu)點(diǎn)是程序可以在內(nèi)部全速運(yùn)行,缺點(diǎn)是由于程序和數(shù)據(jù)是共用的,因此存儲(chǔ)區(qū)就變小了。此外,在鏈接時(shí)必須將程序和數(shù)據(jù)分開,以避免重疊。
這種配置方法如圖2所示。將和信號(hào)接至一與非門,形成PDS信號(hào),這個(gè)信號(hào)不論是有效還是有效都呈現(xiàn)有效(高電平),將這個(gè)信號(hào)經(jīng)反向用作片選信號(hào),就可以保證外部RAM既作為程序區(qū)也作為數(shù)據(jù)區(qū)。
圖1 分開的數(shù)據(jù)和程序空間配置 |
圖2 混合的數(shù)據(jù)和程序空間配置 |
2.3 優(yōu)化的混合程序和數(shù)據(jù)空間配置
圖3所示為一種優(yōu)化的混合程序和數(shù)據(jù)區(qū)外接RAM的方法。這種配置方法省去了DSP的A15地址線,將RAM分成32k字長(zhǎng)的塊。采用這種方法后,可充分利用外接的RAM,不會(huì)因內(nèi)部RAM和外部RAM的地址重疊而造成外部RAM的浪費(fèi)。
圖3 優(yōu)化的混合數(shù)據(jù)和程序空間配置 |
由于外部擴(kuò)展的空間很大,因此DSP程序區(qū)另外的地址空間也能訪問到外部RAM。這種優(yōu)化的外部RAM配置方法,使得在使用DSP的內(nèi)部RAM的情況下,能夠充分利用外部擴(kuò)展RAM。
圖4 DSP與FLASH的接口 |
3 DSP與FLASH的接口設(shè)計(jì)
圖4為DSP與FLASH的一種接口配置。圖中FLASH采用Silicon Storage 公司的新一代256K×16位CMOS FLASH Memory產(chǎn)品SST39VF400A作為DSP的外部數(shù)據(jù)存儲(chǔ)器,地址總線和數(shù)據(jù)總線接至DSP的外部總線,接至DSP的。DSP上的XF引腳用于啟動(dòng)編程。當(dāng)XF為低時(shí),F(xiàn)LASH處于讀狀態(tài);當(dāng)XF為高時(shí),F(xiàn)LASH可擦或編程。為了滿足SST39VF400A的時(shí)序要求,XF與相“或”后接至,引腳與相“或”后接至。
4 FLASH的擦寫
4.1 片外FLASH擦寫原理
在實(shí)際應(yīng)用中,選擇的片外存儲(chǔ)器通常是片外的RAM或FLASH Memory。但是,由于RAM中數(shù)據(jù)掉電即丟失,不適合長(zhǎng)期保存數(shù)據(jù),因此當(dāng)需要保存到片外存儲(chǔ)器的是一些無需頻繁讀/寫但需要長(zhǎng)期保存的數(shù)據(jù)時(shí),如字模數(shù)據(jù)、端口地址等,通常選擇使用片外的FLASH擴(kuò)展DSP芯片的存儲(chǔ)器空間。但是,使用片外的FLASH必須要解決對(duì)其的擦寫問題。
在實(shí)際應(yīng)用中,對(duì)FLASH的擦寫主要有兩種方式:一是使用通用編程器對(duì)FLASH芯片進(jìn)行擦寫;二是直接由DSP對(duì)FLASH進(jìn)行擦寫。這里介紹一種利用存儲(chǔ)器映射技術(shù),通過對(duì)DSP芯片編程實(shí)現(xiàn)片外FLASH擦寫的方法。
CCS5000 IDE是TI公司專為TMS320C5409設(shè)計(jì)的開發(fā)平臺(tái),該平臺(tái)具有簡(jiǎn)單明了的圖形用戶界面和豐富的軟件開發(fā)工具。利用GPIO0口可以生成合適的片外FLASH和片內(nèi)RAM片選信號(hào),從而實(shí)現(xiàn)片外FLASH和片內(nèi)RAM訪問的切換,在電路上可以將GPIO0信號(hào)與數(shù)據(jù)選擇信號(hào)或程序選擇信號(hào)相“或”實(shí)現(xiàn)。
4.2 片外FLASH擦寫流程
編寫FLASH擦寫程序的流程圖如圖5所示。
圖5 FLASH擦寫程序流程圖 |
(1)將character[180][32]設(shè)置為全局變量。
(2)將程序編譯下載到DSP芯片中,打開工程目錄中output文件夾中的.map文件,
找到character數(shù)組在RAM中存放的起始地址和長(zhǎng)度。
(3)使用Save Memory命令將RAM中對(duì)應(yīng)于character數(shù)組的地址段的數(shù)據(jù)以二進(jìn)制形式保存在計(jì)算機(jī)上。
(4)打開FLASH擦寫程序,修改數(shù)據(jù)在片內(nèi)RAM中存儲(chǔ)的起始地址和FLASH擦寫的起始地址和數(shù)據(jù)長(zhǎng)度,編譯下載后,單步執(zhí)行,直到擦寫完FLASH,并將地址映射方式設(shè)置為映射到片內(nèi)RAM處,數(shù)據(jù)便寫到片外FLASH的相應(yīng)地址中。
這一種通過地址映射方式的方法可適用于多種場(chǎng)合,針對(duì)多個(gè)FLASH芯片使用多個(gè)GPIO端口進(jìn)行地址的擴(kuò)展,即可實(shí)現(xiàn)對(duì)其進(jìn)行擦寫操作;若將部分擦寫程序放置到片外FLASH中并作相應(yīng)設(shè)置,即可實(shí)現(xiàn)系統(tǒng)得自舉運(yùn)行。
5 Bootload的設(shè)計(jì)
BootLoader是嵌入式系統(tǒng)加電后在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的第一段代碼。BootLoader用于初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。通常,Boot Loader是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個(gè)通用的Boot Loader幾乎是不可能的。BootLoader一般它只在系統(tǒng)啟動(dòng)時(shí)非常短的時(shí)間內(nèi)運(yùn)行。對(duì)于嵌入式系統(tǒng)來說,這是至關(guān)重要的一步。
TMS320C54x內(nèi)部具有16K×16位的掩模ROM,其內(nèi)部具有Bootloader程序,工作在微計(jì)算機(jī)方式下可以啟動(dòng)ROM中的引導(dǎo)程序,將用戶程序從EPROM(FLASH)、串行口、I/O口或HPI口引導(dǎo)到內(nèi)部RAM或外部的高速SRAM中全速運(yùn)行。 TMS320C5409硬件復(fù)位后采樣引腳如果為低,則DSP從FF80H開始執(zhí)行片內(nèi)的引導(dǎo)程序,F(xiàn)F80H包含一條跳轉(zhuǎn)到Bootloader程序的語句,Bootloader程序?qū)⒂脩舫绦蛳螺d到RAM中運(yùn)行。在硬件復(fù)位期間,如果TMS320C5409的為高電平,則從片外的0FF80H開始執(zhí)行程序。選擇過程如圖6所示。
圖6 自舉加載方式的選擇過程 |
6 結(jié)束語
實(shí)踐證明,在DSP的使用中,以上介紹的DSP與其外圍存儲(chǔ)器的接口設(shè)計(jì)是切實(shí)可行的。
評(píng)論