陳迪樓
【摘要】 TI公司的Tms320C54xDSP支持多種自舉方式,其中并行啟動(dòng)方式是最常用的模式。利用FPGA設(shè)計(jì)了一種基于JTAG下載的并行自舉方法,介紹了硬件及軟件設(shè)計(jì)方案,并給出了關(guān)鍵程序的代碼,該技術(shù)已在實(shí)際項(xiàng)目中得到成功應(yīng)用。
【關(guān)鍵詞】 TMS320C54xDSP 并行自舉 JTAG
一、引言
TMS320C54x系列DSP程序代碼存儲(chǔ)于外部非易失存儲(chǔ)器芯片中,在上電或復(fù)位時(shí)將存儲(chǔ)在外部存儲(chǔ)器芯片中的代碼搬移到DSP片內(nèi)或者片外的RAM中全速運(yùn)行,這種搬移的過(guò)程稱為“自舉加載[1]”。DSP自舉方式有多種方式,如HPI、串行EEPROM、標(biāo)準(zhǔn)串口、并口和I/O口自舉等,其中并行自舉方式是最為常用的一種模式,傳統(tǒng)設(shè)計(jì)時(shí)硬件采取DSP芯片與外部存儲(chǔ)芯片F(xiàn)lash相連,軟件在DSP的集成開發(fā)環(huán)境CCS下通過(guò)編寫程序,通過(guò)仿真器在線將程序代碼燒寫至Flash后再實(shí)現(xiàn)DSP程序自舉,很多同仁已經(jīng)有了設(shè)計(jì)報(bào)告[2] [3] [4]。本文結(jié)合FPGA介紹一種基于JTAG的下載方式實(shí)現(xiàn)DSP的并行啟動(dòng)。
二、硬件設(shè)計(jì)
聯(lián)合測(cè)試行動(dòng)組(JTAG:Joint Test Action Group)最早開發(fā)了IEEE1149.1邊界掃描測(cè)試技術(shù)規(guī)范,幾乎所有FPGA或DSP器件均遵守該規(guī)范,器件都含有JTAG口。隨著集成電路技術(shù)的發(fā)展,數(shù)字信號(hào)處理系統(tǒng)通常采用DSP+FPGA硬件架構(gòu)。本應(yīng)用硬件原理框圖如圖1所示,DSP采用TI公司的TMS320C54xDSP,F(xiàn)PGA芯片選擇的是Xilinx公司的XC2VP4,配置芯片選用推薦的XCF04, DSP程序存儲(chǔ)芯片選擇的Xilinx公司的XC18V01。
芯片XCF04、XC2VP4、XC18V01通過(guò)串行菊花鏈方式連接,如圖2所示。通過(guò)XILINX公司的IMPACT配置工具,采用JTAG編程器下載電纜直接將程序代碼燒寫進(jìn)程序代碼存儲(chǔ)芯片XC18V01。
三、實(shí)現(xiàn)方案
3.1 并行自舉模式
Tl公司的DSP芯片出廠時(shí),在片內(nèi)ROM中固化有引導(dǎo)裝載程序Bootloader,其主要功能就是將外部的程序裝載到片內(nèi)RAM中運(yùn)行,以提高DSP的運(yùn)行速度。Bootloader程序在運(yùn)行搬移程序之前,首先進(jìn)行初始化,包括設(shè)置CPU狀態(tài)寄存器的值、關(guān)閉中斷、將內(nèi)部RAM映射在程序/數(shù)據(jù)空間,同時(shí)為訪問(wèn)數(shù)據(jù)和程序空間設(shè)置七個(gè)軟件等待,然后根據(jù)硬件的設(shè)計(jì)完成不同方式下程序的搬移加載。本文法看似有串行方式,實(shí)際采取的是并行模式[5],自舉過(guò)程最終會(huì)選擇并行啟動(dòng)模式。并行模式下,Bootloader程序檢測(cè)0xFFFFH地址I/O空間,讀取標(biāo)志位。如果沒(méi)有檢測(cè)到,接著從數(shù)據(jù)空間0xFFFFH處讀取boot表的起始地址,然后跳到該地址讀取地址中的標(biāo)志值。如果為0x08AAH,則為8位并行裝載程序;如果為0xlOAAH,則為16位并行裝載。判斷Boot方式后,Bootloader程序就進(jìn)入相應(yīng)的子程序,加載代碼,具體流程如圖3所示:
3.2 自舉表建立
為了實(shí)現(xiàn)DSP并行加電自舉,代碼數(shù)據(jù)必須按照自舉表的格式組織。自舉表內(nèi)容包括Boot表頭和欲加載的應(yīng)用程序代碼。Boot表頭包括欲加載的應(yīng)用程序代碼長(zhǎng)度、代碼段存放的目標(biāo)地址、程序人口地址等信息, Bootloader程序根據(jù)自舉表中前部分用戶起始地址,把后面的用戶程序代碼加載到DSP片內(nèi)程序空間中相應(yīng)的用戶地址空間。自舉表的格式可以手工構(gòu)造,更一般是通過(guò)TI的 hex500格式轉(zhuǎn)換器工具自動(dòng)生成。
結(jié)合實(shí)例說(shuō)明,在CCS環(huán)境[6]下,工程文件經(jīng)過(guò)編譯鏈接后生成out文件,假設(shè)為Sample.out, 在DOS命令行方式下可以指定特定參數(shù)通過(guò)hex500工具生成Hex文件,也可以先編寫燒寫配置文件linkProm.cmd, 文件應(yīng)與Sample. out路徑相同, cmd文件為文本格式文件,內(nèi)容如下:
Sample.out //編譯鏈接后生成的out文件
-map linkmap.map //內(nèi)存映射map文件
-O write.hex //生成指定的hex文件
-I //輸出文件格式為Intel Hex格式
-boot //指定加載表類型
-bootorg 0x0002 //加載表的起始位置
-memwidth 8 //目標(biāo)系統(tǒng)存儲(chǔ)器位寬
-romwidth 16 //外部存儲(chǔ)器位寬
-e 0x7f80 //程序入口地址
結(jié)束語(yǔ):本方法多年實(shí)踐證明有效,并成功應(yīng)用于多個(gè)工程項(xiàng)目,相對(duì)傳統(tǒng)的并行Flash自舉方式有如下優(yōu)點(diǎn):a)串口存儲(chǔ)芯片相對(duì)于并行芯片,管腳少,降低了硬件布線復(fù)雜度。b)只需要將幾根JTAG下載接口線引出設(shè)備外,就可實(shí)現(xiàn)內(nèi)部程序代碼下載更新。c)程序代碼更新,編譯鏈接下載整個(gè)過(guò)程,可不需要DSP在線仿真器參與。
參 考 文 獻(xiàn)
[1]TMS320VC5402A/VC5409A/VC5410A/VC5416 Bootloader(RevF)[EB]. Texas Instruments. 2006
[2] 張冠男,張坤. 基于FLASH編程技術(shù)的DSP并行引導(dǎo)裝載模式的設(shè)計(jì)[J].電子元器件應(yīng)用. 2005.7(3):38-41.
[3] 郭改枝,范鵬程.TMS320C54X DSP自舉加載技術(shù)[J].內(nèi)蒙古師范大學(xué)學(xué)報(bào).2008.37(02):216-218.
[4] 胡洪波,梁書劍,張德興.TMS320VC5416DSP存儲(chǔ)空間配置方法研究[J].價(jià)值工程.2011(7):149-150.
[5] 陳啟興,于紅兵,祁秋紅.DSP并行I/O自舉加載方法研究.通信技術(shù).2012.45(05):95-97
[6] 尹勇,歐光軍,關(guān)榮鋒,DSP集成開發(fā)環(huán)境CCS開發(fā)指南[M].北京:北京航空航天大學(xué)出版社,2003.