陳迪樓
【摘要】 TI公司的Tms320C54xDSP支持多種自舉方式,其中并行啟動方式是最常用的模式。利用FPGA設計了一種基于JTAG下載的并行自舉方法,介紹了硬件及軟件設計方案,并給出了關鍵程序的代碼,該技術已在實際項目中得到成功應用。
【關鍵詞】 TMS320C54xDSP 并行自舉 JTAG
一、引言
TMS320C54x系列DSP程序代碼存儲于外部非易失存儲器芯片中,在上電或復位時將存儲在外部存儲器芯片中的代碼搬移到DSP片內或者片外的RAM中全速運行,這種搬移的過程稱為“自舉加載[1]”。DSP自舉方式有多種方式,如HPI、串行EEPROM、標準串口、并口和I/O口自舉等,其中并行自舉方式是最為常用的一種模式,傳統設計時硬件采取DSP芯片與外部存儲芯片Flash相連,軟件在DSP的集成開發環境CCS下通過編寫程序,通過仿真器在線將程序代碼燒寫至Flash后再實現DSP程序自舉,很多同仁已經有了設計報告[2] [3] [4]。本文結合FPGA介紹一種基于JTAG的下載方式實現DSP的并行啟動。
二、硬件設計
聯合測試行動組(JTAG:Joint Test Action Group)最早開發了IEEE1149.1邊界掃描測試技術規范,幾乎所有FPGA或DSP器件均遵守該規范,器件都含有JTAG口。隨著集成電路技術的發展,數字信號處理系統通常采用DSP+FPGA硬件架構。本應用硬件原理框圖如圖1所示,DSP采用TI公司的TMS320C54xDSP,FPGA芯片選擇的是Xilinx公司的XC2VP4,配置芯片選用推薦的XCF04, DSP程序存儲芯片選擇的Xilinx公司的XC18V01。
芯片XCF04、XC2VP4、XC18V01通過串行菊花鏈方式連接,如圖2所示。通過XILINX公司的IMPACT配置工具,采用JTAG編程器下載電纜直接將程序代碼燒寫進程序代碼存儲芯片XC18V01。
三、實現方案
3.1 并行自舉模式
Tl公司的DSP芯片出廠時,在片內ROM中固化有引導裝載程序Bootloader,其主要功能就是將外部的程序裝載到片內RAM中運行,以提高DSP的運行速度。Bootloader程序在運行搬移程序之前,首先進行初始化,包括設置CPU狀態寄存器的值、關閉中斷、將內部RAM映射在程序/數據空間,同時為訪問數據和程序空間設置七個軟件等待,然后根據硬件的設計完成不同方式下程序的搬移加載。本文法看似有串行方式,實際采取的是并行模式[5],自舉過程最終會選擇并行啟動模式。并行模式下,Bootloader程序檢測0xFFFFH地址I/O空間,讀取標志位。如果沒有檢測到,接著從數據空間0xFFFFH處讀取boot表的起始地址,然后跳到該地址讀取地址中的標志值。如果為0x08AAH,則為8位并行裝載程序;如果為0xlOAAH,則為16位并行裝載。判斷Boot方式后,Bootloader程序就進入相應的子程序,加載代碼,具體流程如圖3所示:
3.2 自舉表建立
為了實現DSP并行加電自舉,代碼數據必須按照自舉表的格式組織。自舉表內容包括Boot表頭和欲加載的應用程序代碼。Boot表頭包括欲加載的應用程序代碼長度、代碼段存放的目標地址、程序人口地址等信息, Bootloader程序根據自舉表中前部分用戶起始地址,把后面的用戶程序代碼加載到DSP片內程序空間中相應的用戶地址空間。自舉表的格式可以手工構造,更一般是通過TI的 hex500格式轉換器工具自動生成。
結合實例說明,在CCS環境[6]下,工程文件經過編譯鏈接后生成out文件,假設為Sample.out, 在DOS命令行方式下可以指定特定參數通過hex500工具生成Hex文件,也可以先編寫燒寫配置文件linkProm.cmd, 文件應與Sample. out路徑相同, cmd文件為文本格式文件,內容如下:
Sample.out //編譯鏈接后生成的out文件
-map linkmap.map //內存映射map文件
-O write.hex //生成指定的hex文件
-I //輸出文件格式為Intel Hex格式
-boot //指定加載表類型
-bootorg 0x0002 //加載表的起始位置
-memwidth 8 //目標系統存儲器位寬
-romwidth 16 //外部存儲器位寬
-e 0x7f80 //程序入口地址

結束語:本方法多年實踐證明有效,并成功應用于多個工程項目,相對傳統的并行Flash自舉方式有如下優點:a)串口存儲芯片相對于并行芯片,管腳少,降低了硬件布線復雜度。b)只需要將幾根JTAG下載接口線引出設備外,就可實現內部程序代碼下載更新。c)程序代碼更新,編譯鏈接下載整個過程,可不需要DSP在線仿真器參與。
參 考 文 獻
[1]TMS320VC5402A/VC5409A/VC5410A/VC5416 Bootloader(RevF)[EB]. Texas Instruments. 2006
[2] 張冠男,張坤. 基于FLASH編程技術的DSP并行引導裝載模式的設計[J].電子元器件應用. 2005.7(3):38-41.
[3] 郭改枝,范鵬程.TMS320C54X DSP自舉加載技術[J].內蒙古師范大學學報.2008.37(02):216-218.
[4] 胡洪波,梁書劍,張德興.TMS320VC5416DSP存儲空間配置方法研究[J].價值工程.2011(7):149-150.
[5] 陳啟興,于紅兵,祁秋紅.DSP并行I/O自舉加載方法研究.通信技術.2012.45(05):95-97
[6] 尹勇,歐光軍,關榮鋒,DSP集成開發環境CCS開發指南[M].北京:北京航空航天大學出版社,2003.