TMS320VC54系列EPROM加載方法研究及實(shí)現(xiàn)
出處:國外電子元器件 發(fā)布于:2011-06-04 18:19:41
DSP芯片(數(shù)字信號(hào)處理器)已成為人們?nèi)找骊P(guān)注并得到迅速發(fā)展的具有前沿技術(shù)的一種集成電路,并且得到越來越廣泛的應(yīng)用。TI公司推出的5000系列DSP具有高性能、低功耗等優(yōu)良性能,一推出就受到了用戶的歡迎。正由于其快速的數(shù)字信號(hào)處理能力,5000系列DSP被廣泛應(yīng)用于電信、雷達(dá)、儀器儀表、圖像處理等許多方面,與單片機(jī)一起完成數(shù)字信號(hào)的處理和控制。其應(yīng)用范圍的廣泛性決定了必須有靈活多樣的加載方式與之相適應(yīng)。正因?yàn)槿绱?,它的加載方式也較單片機(jī)的加載要復(fù)雜得多。本文立足實(shí)際經(jīng)驗(yàn),對(duì)DSP的各種加載方法進(jìn)行了闡述,并較為詳細(xì)地介紹了EPROM并行加載方法,研究了在線燒寫應(yīng)用程序的方法以及應(yīng)用中的注意事項(xiàng)。
1 DSP的各種加載方式
在TMS320VC5402的片內(nèi)ROM區(qū)(F800h~FBFFh)是片內(nèi)自引導(dǎo)程序區(qū),片內(nèi)自引導(dǎo)就是利用片內(nèi)ROM中的引導(dǎo)程序?qū)⒊绦驈耐獠浚‵LASH)加載到程序存儲(chǔ)器中運(yùn)行,TMS320VC5402片內(nèi)掩模ROM中固化的引導(dǎo)裝載(Bootloader)程序用于在上電復(fù)位時(shí)把用戶程序從外部引導(dǎo)到片內(nèi)RAM或片外高速RAM中,以保證其全速運(yùn)行。TMS320VC5402提供的片內(nèi)引導(dǎo)方法有:主機(jī)口HPI模式、8位串口EEPROM模式、8位或16位并口模式、8位或16位I/O模式和8位或16位串口模式等。
C5000系列可提供的加載方式有以下幾種:
(1) 主機(jī)端口(HPI)加載:程序的執(zhí)行代碼由主機(jī)通過主機(jī)接口(HPI)加載到DSP的片內(nèi)存儲(chǔ)器;
?。?) 并行加載:加載程序通過外部并行總線從數(shù)據(jù)空間讀取自舉表,自舉表內(nèi)包含有程序代碼部分、每部分代碼的目的地址、加載成功后程序的執(zhí)行地址以及其它一些配置信息;
?。?) 標(biāo)準(zhǔn)串口加載:加載程序通過多通道緩沖串口(MBSP)來接收自舉表,并根據(jù)自舉表中的信息來加載代碼。MBSP0支持16位的串行接收方式,MBSP1支持8位的串行接收方式;
?。?) 8位或16位I/O加載:加載程序通過使用異步握手協(xié)議從I/O的0H口讀取自舉表;
?。?) 8位EEPROM串口加載:加載程序從一個(gè)連接到MBSP1的串行EEPROM來接收數(shù)據(jù)。

2 C5000的加載過程
C5000 DSP沒有內(nèi)部提供掉電保存程序的ROM/EPROM/Flash,上電時(shí)需要從外部加載應(yīng)用程序。C5000 DSP提供了多種程序加載方式,滿足不同應(yīng)用的需要:串行加載、并行加載、HPI加載等,實(shí)際應(yīng)用多的是并行加載,本實(shí)驗(yàn)主要介紹8位并行存貯器加載。加載過程:DSP上電時(shí),如果MP/MC引腳為低電平,則跳轉(zhuǎn)到內(nèi)部ROM的FF80中斷向量表的Reset中斷,該處有一個(gè)跳轉(zhuǎn)指令轉(zhuǎn)到稱為Bootloader的加載程序執(zhí)行,該程序的功能是按照一定順序查找可用的加載方式,如果找到,則開始加載應(yīng)用程序,加載完畢轉(zhuǎn)向應(yīng)用程序執(zhí)行。實(shí)現(xiàn)并行存貯器加載的關(guān)鍵是建立一個(gè)加載表(boottable),該表包括:一個(gè)或多個(gè)程序代碼段、部分需要初始化的寄存器值、程序入口等信息。CCS附帶有一個(gè)應(yīng)用程序(C5000系列是hex500.exx)可以把。out程序轉(zhuǎn)成。hex格式的加載表,然后可以燒錄到非易失性存貯器中,如OTP/EPPOM/EEPROM/Flash中。C5000的具體加載過程如下:
(1)首先,在自舉加載前對(duì)其進(jìn)行初始化,其中包括:使中斷無效(INTM=1),內(nèi)部RAM映射到程序/數(shù)據(jù)區(qū)(OVLY=1),對(duì)程序和數(shù)據(jù)區(qū)均設(shè)置七個(gè)等待狀態(tài)等。
?。?)檢查INT2,決定是否從HPI中載。主機(jī)接口(HPI)是利用INT2進(jìn)行自舉加載的。如果沒有INT2信號(hào),說明不是HPI加載。
?。?)檢查INT3決定是否進(jìn)行串行EEPROM加載。如果DSP檢測(cè)到INT3信號(hào),則進(jìn)行串行EEPROM加載,否則轉(zhuǎn)到(4)。
?。?)初始化串口,置XF為低。若McBSP1接收到一個(gè)數(shù)據(jù),先檢查是否是有效的關(guān)鍵字,若是則通過McBSP1進(jìn)行串口加載,否則檢查McBSP0,其過程與McBSP1相同。
?。?)檢測(cè)BID引腳是否為低,若為低再檢查是否為有效的關(guān)鍵字,若是則進(jìn)行I/O加載,否則檢測(cè)是否是有效的入口點(diǎn),若是,則轉(zhuǎn)入入口點(diǎn),若都不是則跳到(5)。
初始化工作包括:使中斷無效(INTM=1),內(nèi)部RAM映射到程序/數(shù)據(jù)區(qū)(OVLY=1),對(duì)程序和數(shù)據(jù)區(qū)均設(shè)置7個(gè)等待狀態(tài)。初始化結(jié)束后就進(jìn)入DSP自引導(dǎo)程序。根據(jù)實(shí)際需要,我們采用了16位的并口模式,具體的連接圖如圖2所示。上電前設(shè)置MP/MC=0,上電后,首先置DSP的IS引腳為低電平,讀取I/O空間地址0FFFFh單元的值,接著判斷數(shù)據(jù)空間的0FFFFh單元的值,判斷是8位BOOT還是16位BOOT模式,然后根據(jù)EPROM的數(shù)據(jù)組織結(jié)構(gòu)進(jìn)行讀取認(rèn)可,把片外數(shù)據(jù)的內(nèi)容BOOT到DSP片內(nèi)的程序區(qū),根據(jù)程序的跳轉(zhuǎn)指令執(zhí)行相應(yīng)的程序。

3 8位EPROM加載過程
當(dāng)檢測(cè)到不是串行EEPROM加載時(shí),加載程序則轉(zhuǎn)入并行加載方式。此時(shí)加載程序從并口(外部存儲(chǔ)器)傳輸代碼到程序空間,支持8位和16位加載。另外,程序也可自動(dòng)配置SWWSR(軟件等待狀態(tài)寄存器)和BSCR(分區(qū)轉(zhuǎn)換控寄存器),使之與不同加載方式相適應(yīng),從而使DSP能與不同速率的EPROM相連接??紤]到高速器件與低速器件的匹配問題,加載程序使用默認(rèn)的七個(gè)等待周期。
加載程序能從I/O空間的0FFFFH和數(shù)據(jù)空間的0FFFFH處獲取代碼的首地址。通常,從數(shù)據(jù)空間獲取代碼的首地址較方便。因?yàn)樵跀?shù)據(jù)空間不需要另擴(kuò)I/O空間,同時(shí)又可增加電路改動(dòng)的靈活性。對(duì)5402來說,自舉表可以位于4000H~FFFFH處的任何位置。圖2詳細(xì)描述了EPROM加載過程。
應(yīng)當(dāng)注意的是:如果不用并行加載方式,D0必須通過一個(gè)小的上拉電阻置為高電平,以此來避免加載程序從數(shù)據(jù)空間讀到0AAH關(guān)鍵字。另外,加載程序事先并不知道存儲(chǔ)器的寬度,所以它要同時(shí)檢查存儲(chǔ)器的低位(0FFFFH)和高位(0FFFFH)以獲取正確的源地址。
4 自舉表
表1 自舉表的結(jié)構(gòu)圖
| 08AAh or 10AAh |
| Initialize value of SWWSR 16 |
| Initizlixe value of BSCR 16 |
| Entry point (XPC)7 |
| Entry point(PC)16 |
| Size of first section 16 |
| Destination of first section (XPC)7 |
| Destination of first section (PC)16 |
| Code word(1)16 |
| … |
| … |
| Code word(N)16 |
| Size of last section 16 |
| Destination of last section(XPC)7 |
| Destination of section (PC)16 |
| Code word(1)16 |
| Code word(N)16 |
| 0000h |
假設(shè)用戶編制的源程序文件為radar.asm,鏈連器命令文件為radar.cmd,生成的COFF文件為radar.out,生成的INTEL的十六進(jìn)制文件為radar.hex,用戶可以通過EPROM編程器將它燒錄到EPROM中。
?。?)首先,使用編譯器對(duì)應(yīng)用程序進(jìn)行編譯。值得注意的是必須在編譯器的命令行上加-V548選項(xiàng),若遺忘了這個(gè)選項(xiàng),以后HEX轉(zhuǎn)換工具將會(huì)產(chǎn)生C54早期版本的自舉表,而不提供任何錯(cuò)誤與警告信息。這個(gè)錯(cuò)誤極其隱蔽,務(wù)必注意。
?。?)第二步,對(duì)步產(chǎn)生的目標(biāo)文件進(jìn)行鏈接。在鏈接過程中,鏈接器將各個(gè)目標(biāo)文件合并,并完成以下工作:
●將各個(gè)段配置到目標(biāo)系統(tǒng)的存儲(chǔ)器;
●對(duì)各個(gè)符號(hào)和段進(jìn)行重新定位,并給它們指定一個(gè)終的地址;
●解決輸入文件之間未定義的外部引用。
?。?),運(yùn)行HEX代碼轉(zhuǎn)換工產(chǎn)生自舉表。十六進(jìn)制轉(zhuǎn)換程序可以很方便的將COFF目標(biāo)文件轉(zhuǎn)換成TI,INTEL,MOTOROLA或TEKTRONIX公司的目標(biāo)文件格式。轉(zhuǎn)換后生成的文件到EPROM編程器。
本文介紹了C5000芯片加載過程、各種引導(dǎo)方式,詳細(xì)分析了EPROM的并行應(yīng)用,實(shí)踐證明EPROM加載方法及其注意事項(xiàng)。改實(shí)驗(yàn)是一種低成本、簡捷、有效的方法。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實(shí)踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實(shí)時(shí)執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號(hào)完整性2022/9/26 16:45:38
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









