鐵電存儲(chǔ)器FM18L08在DSP系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引 言
鐵電存儲(chǔ)器(FRAM)是Ramtron公司近年推出的一款掉電不揮發(fā)存儲(chǔ)器,它結(jié)合了高性能和低功耗操作,能在沒(méi)有電源的情況下保存數(shù)據(jù)。FRAM克服了EEPROM和FLASH寫(xiě)入時(shí)間長(zhǎng)、擦寫(xiě)次數(shù)低的缺點(diǎn),其價(jià)格又比相同容量的不揮發(fā)鋰電SRAM低很多,已在地鐵系統(tǒng)、抄表系統(tǒng)及IT工業(yè)中得到了廣泛的應(yīng)用。
TMS320VC5402(以下簡(jiǎn)稱C5402)是美國(guó)德州儀器公司(TI)推出的一款性價(jià)比極高的16bit定點(diǎn)數(shù)字信號(hào)處理器(DSP),操作速率可達(dá)100MIPS,它豐富的內(nèi)部資源配置為用戶構(gòu)造系統(tǒng)提供了很大便利,已經(jīng)在通信、電子、圖象處理等領(lǐng)域得到了廣泛的應(yīng)用。但是,C5402是RAM型器件,掉電后不能保持任何用戶信息,所以需要用戶把程序代碼放在不揮發(fā)的存儲(chǔ)器內(nèi),在系統(tǒng)上電時(shí),通過(guò)執(zhí)行自行引導(dǎo)裝載(Bootloader)程序?qū)⒋鎯?chǔ)在外部媒介中的代碼裝載到C5402高速的片內(nèi)存儲(chǔ)器或系統(tǒng)中的擴(kuò)展存儲(chǔ)器內(nèi),裝載成功后自動(dòng)去執(zhí)行代碼,完成自啟動(dòng)?;趯?shí)踐經(jīng)驗(yàn),本文介紹了一種并行接口鐵電存儲(chǔ)器FM18L08的特點(diǎn),同時(shí)還分析了C5402 并行引導(dǎo)裝載模式的特點(diǎn),給出了一種基于鐵電存儲(chǔ)器FM18L08和C5402接口的設(shè)計(jì)方案, 實(shí)現(xiàn)了基于并行引導(dǎo)裝載模式的DSP脫機(jī)獨(dú)立運(yùn)行系統(tǒng)設(shè)計(jì),并且該設(shè)計(jì)方案已成功的應(yīng)用到一種語(yǔ)音門(mén)鎖系統(tǒng)中。
2 FM18L08
FRAM的特點(diǎn) Ramtron’s FRAM存儲(chǔ)器技術(shù)的核心是微小的鐵電晶體集成到記憶體單元,以至于它能象快速的不揮發(fā)RAM一樣操作。當(dāng)一個(gè)電場(chǎng)被加到鐵電晶體,中心原子順著電場(chǎng)的方向移動(dòng)。 移去電場(chǎng),中心原子保持不動(dòng),保存記憶體的狀態(tài), FRAM 記憶體不需要定期刷新,掉電后立即保存數(shù)據(jù)。 FM18L08是Ramtron公司近年推出的一款存儲(chǔ)容量為32k╳8bits FRAM,其主要特點(diǎn)如下:3.0-3.65V單電源供電;并行接口;提供SOIC和DIP兩種封裝;功耗低,靜態(tài)電流小于15uA,讀寫(xiě)電流小于10mA;非揮發(fā)性,掉電后數(shù)據(jù)能保存10年;讀寫(xiě)無(wú)限次。 FM18L08引腳結(jié)構(gòu)如圖1: /CE:片選 /WE:寫(xiě)使能 /OE:輸出使能 A0-A14:地址端 DQ0-DQ7:數(shù)據(jù)端 VDD:電源 VSS:地
[!--empirenews.page--]3 C5402并行引導(dǎo)裝載模式設(shè)計(jì)
3.1 C5402系統(tǒng)的程序引導(dǎo)裝載模式類型:
C5402提供以下幾種引導(dǎo)裝載模式類型: ① HPI(主機(jī)接口)引導(dǎo)裝載模式欲執(zhí)行的程序代碼通過(guò)主機(jī)接口總線由外部處理器加載至DSP片內(nèi)存儲(chǔ)器中。當(dāng)外部處理器將被加載代碼的起始地址(C5402片內(nèi)地址007FH)的內(nèi)容改變,便開(kāi)始執(zhí)行引導(dǎo)裝載程序。 ② 8位/16位并行引導(dǎo)裝載模式引導(dǎo)裝載程序通過(guò)外部并行接口總線讀取存放在外部數(shù)據(jù)存儲(chǔ)單元中的數(shù)據(jù)。外部數(shù)據(jù)單元中的數(shù)據(jù)是按照一定格式存儲(chǔ)的,其信息包括:欲加載的各段程序代碼、各段程序代碼長(zhǎng)度、各段程序代碼存放的目標(biāo)地址、程序代碼的入口地址以及其他配置信息。 ③ 8位/16位標(biāo)準(zhǔn)串行口引導(dǎo)裝載模式引導(dǎo)裝載程序通過(guò)被設(shè)置為標(biāo)準(zhǔn)模式的多通道緩沖串口(McBSP)讀取存放在外部數(shù)據(jù)存儲(chǔ)單元中的數(shù)據(jù)。多通道緩沖串口1(McBSP1)支持8位串行接收方式,多通道緩沖串口0(McBSP0)支持16位串行接收方式。 ④ 8位串行EEPROM引導(dǎo)裝載模式引導(dǎo)裝載程序通過(guò)一串聯(lián)的EEPROM讀取存放在外部數(shù)據(jù)存儲(chǔ)單元中的數(shù)據(jù)。在此種方式中,EEPROM與設(shè)置為SPI工作模式的McBSP1相連接。 ⑤I/O引導(dǎo)裝載模式引導(dǎo)裝載程序通過(guò)外部并行接口總線地址為00H的I/O口讀取數(shù)據(jù)。該外部并口接口總線使用異步握手協(xié)議(使用C5402的XF和BIO引腳),使數(shù)據(jù)傳輸速度可按外部存儲(chǔ)器設(shè)備的要求執(zhí)行。
3.2 C5402并行引導(dǎo)裝載模式設(shè)計(jì)
當(dāng)C5402工作在微計(jì)算機(jī)模式(MP/MC=0)時(shí),上電后自動(dòng)運(yùn)行Bootloader程序,按照HPI引導(dǎo)裝載模式串行EEPROM引導(dǎo)裝載模式 并行引導(dǎo)裝載模式 標(biāo)準(zhǔn)串行口引導(dǎo)裝載模式 I/O口引導(dǎo)裝載模式的順序循環(huán)檢測(cè),以決定執(zhí)行哪種啟動(dòng)模式。對(duì)于以C5402為核心的數(shù)字信號(hào)處理系統(tǒng)來(lái)說(shuō),并行引導(dǎo)裝載模式被認(rèn)為是最適用的。因?yàn)镠PI引導(dǎo)裝載模式、標(biāo)準(zhǔn)串行口引導(dǎo)裝載模式和I/O口引導(dǎo)裝載模式只適用于由其它處理器為C5402提供運(yùn)行代碼的多處理器系統(tǒng)中,串行EEPROM引導(dǎo)裝載模式只支持價(jià)格偏高的SPI端口EEPROM,而并行引導(dǎo)裝載模式可采用的并行EEPROM和Flash種類很多,有的價(jià)格比較低,操作起來(lái)比較簡(jiǎn)單,因而并行引導(dǎo)加載方案是最佳選擇。
為使C5402能有效地把外擴(kuò)FRAM中的程序引導(dǎo)到芯片內(nèi)RAM,需要編制一個(gè)引導(dǎo)表。引導(dǎo)表定位于數(shù)據(jù)空間的4000h~FFFFh段,引導(dǎo)表的內(nèi)容包含如下幾個(gè)方面:(1)引導(dǎo)方式的標(biāo)識(shí);(2)程序存放的目標(biāo)首地址;(3)程序執(zhí)行的入口址址;(4)用戶程序代碼;(5)用戶程序塊長(zhǎng)度。引導(dǎo)表結(jié)構(gòu)如表1所示。數(shù)據(jù)區(qū)地址(H) 內(nèi)容(H) 含義 8000,8001 8002,8003 8004,8005 8006,8007 8008,8009 800A,800B 800C,800D 800E,800F 8010,8011 8012,8013 …… 8030,8053 8054,8055 …… FFFE,F(xiàn)FFF 08,AA 7F,F(xiàn)F 88,06 00,00 00,80 00,44 00,00 00,80 F6,BD F0,70 …… F4,95 00,00 …… 80,00 8位引導(dǎo)標(biāo)志 SWWSR寄存器初值BSCR寄存器初值 程序入口XPC 程序入口地址 程序段長(zhǎng)度 程序存放目標(biāo)XPC 程序存放目標(biāo)地址 程序代碼1 程序代碼2 …… 程序代碼N 程序塊結(jié)束標(biāo)志 …… 程序存儲(chǔ)首地址 表1并行引導(dǎo)裝載模式引導(dǎo)表片內(nèi)ROM的引導(dǎo)程序首先讀取I/O空間的FFFFh地址內(nèi)容(指定為8000h)作為引導(dǎo)表的起始地址,通過(guò)判別引導(dǎo)表起始地址內(nèi)的引導(dǎo)標(biāo)識(shí)來(lái)確定是8位并行還是16位并行引導(dǎo)方式。若引導(dǎo)標(biāo)識(shí)是10AAh,則是16位的并行引導(dǎo)方式;若引導(dǎo)標(biāo)識(shí)是08AAh,則是8位的并行引導(dǎo)方式。當(dāng)從I/O空間FFFFh地址讀取不到有效的引導(dǎo)標(biāo)識(shí)時(shí),片內(nèi)ROM的引導(dǎo)程序即讀取數(shù)據(jù)空間FFFFh的內(nèi)容作為引導(dǎo)表的起始地址。同樣通過(guò)判別引導(dǎo)表起始地址內(nèi)的引導(dǎo)標(biāo)識(shí)來(lái)確定是8位并行還是16位并行引導(dǎo)方式。當(dāng)EPROM數(shù)據(jù)位寬是8bit時(shí),則要讀取數(shù)據(jù)空間FFFFh地址的內(nèi)容(低字節(jié))和FFFEh地址的內(nèi)容(高字節(jié))作為引導(dǎo)表的起始地址。 8bit 并行引導(dǎo)裝載的實(shí)現(xiàn)電路如圖1所示。其中A15經(jīng)過(guò)非門(mén)與/MSTRB相或是為了防止C5402的內(nèi)部16K DARAM(0000H-3FFFH)與外部FRAM沖突,同時(shí),對(duì)應(yīng)上并行引導(dǎo)裝載模式的引導(dǎo)表設(shè)置相對(duì)應(yīng)。
圖1 硬件系統(tǒng)原理圖
4系統(tǒng)軟件設(shè)計(jì)
這個(gè)系統(tǒng)中,軟件編程的核心在于按照特定的格式將數(shù)據(jù)寫(xiě)到FM18L08 FRAM中,下面具體介紹軟件系統(tǒng)的設(shè)計(jì)方法。在TI公司的軟件開(kāi)發(fā)工具CCS(Code Composer Studio)中,匯編器和連接器創(chuàng)建的目標(biāo)文件采用COFF(Common Object File Format)格式,代碼和數(shù)據(jù)都按段(Section)來(lái)組織設(shè)計(jì)。先通過(guò)CCS將程序下載到硬件系統(tǒng)的C5402的片內(nèi)DARAM中,再運(yùn)行程序?qū)⑺钄?shù)據(jù)及程序按照表1的格式寫(xiě)到FM18L08 FRAM(對(duì)應(yīng)于DSP數(shù)據(jù)尋址的08000h—0FFFFh)中,斷開(kāi)硬件系統(tǒng)與CCS環(huán)境的聯(lián)系,重新上電或復(fù)位C5402,將看到燈在閃爍,此時(shí)硬件系統(tǒng)已經(jīng)可以脫機(jī)獨(dú)立運(yùn)行了。 .mmregs .data table:.word 08aah ;16位引導(dǎo)標(biāo)志 .word 7fffh,8806h ;SWWSR寄存器初值和BSCR寄存器初值 .word 0000h,080h,00044h ;程序入口XPC、程序入口地址和程序段長(zhǎng)度 .word 0000h,080h ;存放目標(biāo)XPC和存放目標(biāo)地址 .global main .text main: stm #07fh,sp stm #0fffeh,ar1 ;向FRAM的07FFEh單元寫(xiě)入80h st #080h,*ar1+ nop st #00h,*ar1 ;向FRAM的07FFFh單元寫(xiě)入00h nop stm #table,ar1 ;向FRAM的0000h開(kāi)始單元依次寫(xiě)入引導(dǎo)表要求的內(nèi)容 stm #07h,brc stm #8000h,ar2 rptb loopa ld *ar1+,a nop stl a,*ar2+ ld a,-8,a stl a,*ar2+ loopa: nop nop stm #start,ar1 ;向FRAM中寫(xiě)入運(yùn)行程序代碼 stm #21h,brc nop ld *ar1+,a stl a,*ar2+ ld a,-8,a stl a,*ar2+ loopb: nop nop ld #00h,a nop stl a,*ar2+ stl a,*ar2 b $ .sect "chengxu" ;脫機(jī)獨(dú)立運(yùn)行系統(tǒng)程序 start: rsbx xf ;燈亮 …… ssbx xf ;燈滅 …… b start ret .end 主程序中,data段為上電引導(dǎo)程序提供了需要加載的各代碼段的長(zhǎng)度、源地址和目的地址這幾個(gè)參數(shù)。其中,代碼段長(zhǎng)度既可以根據(jù)載入DSP系統(tǒng)后在CCS反匯編窗口算得,也可以從連接生成的映像文件(后綴為.map)中得到。
5 結(jié)束語(yǔ)
本文介紹的基于鐵電存儲(chǔ)器FM18L08的DSP 并行引導(dǎo)裝載方案,可以在無(wú)需專用燒寫(xiě)器的情況下,實(shí)現(xiàn)DSP脫機(jī)獨(dú)立運(yùn)行系統(tǒng)的設(shè)計(jì),并且該方案已成功的應(yīng)用到一種語(yǔ)音門(mén)鎖系統(tǒng)中。實(shí)驗(yàn)結(jié)果表明,該方法具有簡(jiǎn)化接口電路、節(jié)省系統(tǒng)資源、性價(jià)比高的優(yōu)點(diǎn)。但是,如果脫機(jī)獨(dú)立運(yùn)行系統(tǒng)程序超過(guò)了64K字節(jié),只能采用另外的替代方法,這是在一些電路設(shè)計(jì)方案論證時(shí)需要考慮的問(wèn)題。