使用閃存的TMS320VC5409 DSP并行引導(dǎo)裝載方法
出處:聶曉華 姜建國 發(fā)布于:2011-07-24 22:23:38
摘要:本文主要介紹了閃爍存儲器Am29LV400B的主要特點和編程方法;通過把FLASH的前32K映射到title="DSP">DSP TMS320VC5409的數(shù)據(jù)空間,按照自舉表(Boottable)的格式在FLASH中存儲程序代碼,由DSP引導(dǎo)裝載(Bootloader)程序?qū)崿F(xiàn)了FLASH的16位并行引導(dǎo)裝載;文中結(jié)合實例介紹了該引導(dǎo)裝載方法的實現(xiàn)過程。
TI的5000系列DSP提供多種引導(dǎo)裝載模式,主要包括EEPRCM引導(dǎo)裝載、并行引導(dǎo)裝載、串行口引導(dǎo)裝載等。其中使用Flash的并行引導(dǎo)裝載是常用的一種,使用該種方法可以盡快地開發(fā)出樣機,是加快開發(fā)進度的。TMS320VC5409是TI公司推出的新一代的高性能、低價位、低功耗數(shù)字信號處理器(DSP)。 是一款定點DSP芯片,其指令周期可達10ns,片內(nèi)有32kx16位的RAM,性價比極高,被廣泛應(yīng)用在嵌入式系統(tǒng),數(shù)據(jù)采集系統(tǒng)中。與現(xiàn)在流行的TMS320C5409相比,性能提高了60%,功耗效率提高了50%。它的應(yīng)用對象大多是要求能脫機運行的內(nèi)嵌式系統(tǒng),如機頂盒(STB)、個人數(shù)字助理(PDA)和數(shù)字無線通信等。閃爍存儲器(FLASH MEMORY)是可以在線電擦寫或者掉電后信息仍然還在,并不會發(fā)生丟失的存儲器。FLASH與 EPROM相比,其具有更高的性能價格比,而且體積小、功耗低、擦寫速度快、使用比較方便等多項優(yōu)勢。所以,采用FLASH存儲程序和固定數(shù)據(jù)是一種較好的選擇。AMD公司的Am29LV400B FLASH可以直接與DSP相接 。
1 Am29LV400B的主要特點及編程方法
Am29LV400B是AMD公司新推出的256K×16位產(chǎn)品,其具有以下主要特點:
?。?)支持單電源操作,可分為滿負荷電壓供電(2.7V~3.6V)和電壓范圍可調(diào)節(jié)(3.0V~3.6V)供電兩種方式。滿幅度電壓供電方式主要用于電池供電的應(yīng)用中,而電壓范圍可調(diào)節(jié)供電方式直接與3.3V的高性能DSP接口,簡化了系統(tǒng)的電源要求。
?。?)快的存取速度高達55ns,CMOS工藝,具有100000次寫入/擦寫壽命。
?。?)低功耗(200nA的自動休眠電流,200nA的待命電流,7mA的讀電流,15mA的編程/擦除電流)。
?。?)靈活的塊結(jié)構(gòu)支持整片擦除、塊擦除。整片分為11個塊(1塊8K字、2塊4K字、1塊16K字、7塊32K字)。
(5)塊保護功能,具有防止對任何區(qū)段進行編程或擦除的硬件保護機制。
(6)與JEDEC標準兼容,引腳分布和命令集與單電源FLASH相兼容,具有優(yōu)越的防止意外編程的保護功能 。
(7)數(shù)據(jù)查詢位和數(shù)據(jù)切換位,可以通過軟件方法檢測編程/擦除操作的狀態(tài)。
?。?)Ready/Busy#管腳,可以通過硬件方法檢測編程/擦除操作的狀態(tài)。
?。?)具有擦除暫停/擦除恢復(fù)功能。在暫停擦除操作過程中,支持讀寫不處于擦除狀態(tài)的塊。
?。?0)內(nèi)嵌的擦除/編程算法能自動對整個芯片或某幾個塊進行擦除編程操作。
Am29LV400B編程和擦除算法的命令定義如表1所示。
表中,RA為要讀的存儲器地址;RD為從存儲器地址RA處讀出的數(shù)據(jù);SA為要擦除的段地址;PA為要寫入 數(shù)據(jù)的存儲器地址;PD為要在地址PA處寫入的數(shù)據(jù)。根據(jù)表中的命令定義可編制FLASH的“燒寫”和“擦除”程序(用C語言和匯編語言混合編程實現(xiàn))。根據(jù)需要,我們編制了“燒寫”單字和“燒寫”多字的程序。

2 硬件電路組成
DSP存儲區(qū)硬件接口電路如圖1所示。主要由5部分組成:DSP處理器-TMS320VC5409、系統(tǒng)邏輯控制電路(采用CPLD—EPM7128實現(xiàn))、閃存FLASH-Am29LV400B (256K字的FLASH用來存儲應(yīng)用程序和初始化數(shù)據(jù)) 、程序存儲器SRAM1-IDT71V416S12PH(容量為256K字)、數(shù)據(jù)存儲器SRAM2-IDT71V016S12PH(容量為64K字) 。邏輯控制電路主要由3個模塊組成:FLASH頁選控制模塊、讀/寫控制模塊、程序空間/數(shù)據(jù)空間/FLASH切 換控制模塊。CPLD(Complex Programmable Logic Device)復(fù)雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標文件,通過電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。CPLD主要是由可編程邏輯宏單元(MC,Macro Cell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路具有時間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點。圖中,CPLD的輸出FMSEL為FLASH的片選腳;PMSEL為程序空間的片選腳;DMSEL為數(shù)據(jù)空間的片選腳。

FLASH一共分為8頁,每頁的空間大小是32K,通過CPLD中的FLASH頁選控制模塊(Page0~Page2)實現(xiàn)FLASH翻頁功能。為實現(xiàn)FLASH引導(dǎo)裝載,F(xiàn)LASH物理空間的前32K映射到TMS320VC5409的數(shù)據(jù)空間0x8000h~0xFFFFh上,即TMS320VC5409的數(shù)據(jù)空間0x8000h~0xFFFFh為FLASH的前32K空間。為了重點說明FLASH的引導(dǎo)裝載過程,本文只談及DSP片內(nèi)程序存儲空間以及FLASH前32K字的使用情況。
3 TMS320VC5409 DSP的引導(dǎo)裝載方式
TMS320VC5409芯片具有兩種引導(dǎo)方式:片內(nèi)引導(dǎo)方式和片外執(zhí)行方式。片內(nèi)引導(dǎo)方式就是利用片內(nèi)ROM中的引導(dǎo)程序?qū)⒊绦驈耐獠考虞d到程序存儲器中運行。由于FLASH的速度較低,難以與DSP相匹配,因此 ,本文采用片內(nèi)引導(dǎo)方式。
TMS320VC5409片內(nèi)掩模ROM中固化的引導(dǎo)裝載(Bootloader)程序用于在上電復(fù)位時把用戶程序從外部引導(dǎo)到高速RAM中,以保證其全速運行。TMS320VC5409提供的片內(nèi)引導(dǎo)方法有:主機口HPI方法、8位或16位 并行EPROM方法、8位或16位并行I/O方法和8位或16位串行口方法等。下面通過圖2所示的引導(dǎo)過程框圖,闡述一下本文選用的并行引導(dǎo)方式過程。

上電復(fù)位后,TMS320VC5409檢測其MP/MC引腳,如果MP/MC=“0”,DSP從0xFF80h處開始執(zhí)行片內(nèi)引導(dǎo)裝載程序。進入引導(dǎo)程序后,如有INT2請求中斷,則進入HPI(Hardware Platform Interface,主機接口構(gòu)成)引導(dǎo)方式;如有INT3請求中斷,則進入EEPROM(Electrically Erasable ProgrammableRead-Only Memory,,電可擦可編程只讀存儲器--一種掉電后數(shù)據(jù)不丟失的存儲芯片。EEPROM 可以在電腦上或?qū)S迷O(shè)備上 擦除已有信息,重新編程。一般用在即插即用)串行口引導(dǎo)方式;否則就進入并行引導(dǎo)方式。其詳細引導(dǎo)過程如圖3所示。

片內(nèi)并行引導(dǎo)方式前半部分是I/O空間并行引導(dǎo)方式,我們不采用此方式,程序繼續(xù)運行直到從數(shù)據(jù)空 間0xFFFFh地址讀入一個地址數(shù)據(jù),此數(shù)據(jù)為用戶自舉表的入口地址。這時片內(nèi)引導(dǎo)程序就開始執(zhí)行FLASH 中的用戶自舉表,若自舉表的個字是0x10AAh,則表示是16位并行引導(dǎo)模式。
4 FLASH中自舉表(Boottable)的存儲格式
為了實現(xiàn)DSP加電自舉,F(xiàn)LASH中的數(shù)據(jù)必須按照自舉表的格式“燒寫”。自舉表的作用是:DSP運行此表時,首先根據(jù)自舉表中前部分用戶起始地址把后面的用戶程序代碼加載到DSP片內(nèi)程序空間中相應(yīng)的用戶地址區(qū)域(由于FLASH與DSP時間不匹配,要設(shè)置好SWWR和BSCR寄存器),然后根據(jù)自舉表中的程序入口地址,在程序空間相應(yīng)的地址開始運行程序。表2為16位并行自舉的代碼結(jié)構(gòu)(自舉表在空間允許的情況下可以放幾個程序代碼段,為了便于說明,這里只說明一個程序代碼段的情況)。

(1)所編寫的一個用戶程序名為myblink.C,在編譯鏈接成功后生成的輸出文件名為myblink.out;程序空間的開始地址為0x1400h,程序執(zhí)行的入口地址為0x144Fh。利用hex500工具,生成文件名為myblink.hex 的二進制數(shù)據(jù),hex500命令后添加如下條件:
myblink.out ;要轉(zhuǎn)換的。out文件
-a ;生成ASCII碼的形式
-e 0x144Fh ;程序空間中程序運行的開始地址
-boot ;轉(zhuǎn)換成自舉表的形式
-bootorg PARALLEL ;并行格式
-byte ;按字節(jié)分配地址
-memwidth 16 ;系統(tǒng)存儲器字寬度為16位
-romwidth 16 ;ROM物理寬度為16位
-swwsr 0x7FFFh ;SWWSR設(shè)置軟件等待周期
-bscr 0xF800h ;BSCR設(shè)置段開關(guān)控制寄存器值0xF800
-o myblink.hex ;輸出的二進制數(shù)據(jù)文件名
(2)生成的二進制數(shù)據(jù)文件myblink.hex的數(shù)據(jù)為:
0x10AA 0x7FFF 0xF800 0x0000 0x144F 0x00D1 0x0000 0x1400 …(用戶程序代碼) … 0x0000;
前8個數(shù)據(jù)解釋分別為:
0x10AAh:16位并行尋址格式;
0x7FFFh:SWWSR初始值為0x7FFFh,因為FLASH的運行速度比DSP慢,等待7個周期;
0xF800h:BSCR初始值為0xF800h;
0x0000h:自舉表程序入口的XPC=0;
0x144Fh:自舉表程序入口的地址=0x144Fh;
0x00D1h:自舉表程序的長度=0xD1h;
0x0000h:自舉表起始地址XPC=0;
0x1400h:自舉表的起始地址=0x1400h。
?。?)編寫一個數(shù)據(jù)轉(zhuǎn)換程序,把二進制數(shù)據(jù)文件myblink.hex 轉(zhuǎn)換為數(shù)組頭文件myblink.h。在CCS環(huán)境下,F(xiàn)LASH的“燒寫”主程序包含此頭文件,編譯鏈接后通過仿真器到DSP中,運行DSP,用戶程序就被“燒入”FLASH中了。
實際應(yīng)用是:在數(shù)據(jù)空間地址0xFFFFh(也就是FLASH的空間0xFFFFh)中“燒寫”數(shù)據(jù)0x9000h(FLASH 中存放的自舉表起始地址),在FLASH的地址0x9000h開始“燒入”用戶自舉表數(shù)據(jù)即myblink.h中的數(shù)組數(shù)據(jù)。
DSP運行情況是:依據(jù)第3節(jié)所述的引導(dǎo)裝載過程,經(jīng)過一系列的設(shè)置,使DSP尋址到數(shù)據(jù)空間地址0xFFFFh,得到自舉表的起始地址0x9000h,PC指針指向0x9000h,執(zhí)行自舉表的數(shù)據(jù),根據(jù)自舉表寫入信息,把后面的程序裝載入程序空間起始地址0x1400h(XPC=0)(這時通過仿真器查看程序空間0x1400h開始的數(shù)據(jù),與仿真器的myblink.out文件數(shù)據(jù)是一致的)。然后,DSP的PC指針指向程序入口地址0x144Fh(XPC=0)開始執(zhí)行用戶程序,從而完成了DSP利用FLASH實現(xiàn)16位并行引導(dǎo)裝載的過程。
本文所敘述的引導(dǎo)裝載過程經(jīng)試驗證明效果很好,并且整個過程操作起來非常方便。
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 主流存儲技術(shù)核心特性與場景化應(yīng)用概述2026/1/13 11:12:42
- 主流存儲技術(shù)特性與場景化選型指南2026/1/7 10:07:41
- MES系統(tǒng)現(xiàn)場部署與數(shù)據(jù)對接實操指南2025/12/29 11:09:41
- eMMC 屬于閃存還是內(nèi)存?從定義到應(yīng)用講透核心區(qū)別2025/9/15 15:24:16
- ddr4和ddr5內(nèi)存接口一樣嗎?全景解析2025/9/8 17:22:03
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









