一種雙DSP系統(tǒng)串行引導(dǎo)方案的實(shí)現(xiàn)
在某型光電跟蹤產(chǎn)品中,由于需要對(duì)抗各種人工干擾和背景干擾,使得導(dǎo)引系統(tǒng)需要處理的信息量成倍增加,對(duì)導(dǎo)引系統(tǒng)的實(shí)時(shí)處理性能提出了更高的要求。針對(duì)這種情況,導(dǎo)引系統(tǒng)采用了雙DSP系統(tǒng)的信息處理方案,DSP選用AD公司的ADSP218x和TI公司的TMS320C62x。ADSP218x進(jìn)行目標(biāo)信號(hào)的采樣和外圍控制信號(hào)的輸入、輸出,TMS320C62x專門進(jìn)行目標(biāo)的鑒相、各種抗干擾算法的計(jì)算,這樣TMS320C62x不受外設(shè)服務(wù)中斷影響,可以更好地發(fā)揮計(jì)算效率,提高了導(dǎo)引系統(tǒng)的實(shí)時(shí)處理性能。本文針對(duì)ADSP218x系列和TMS320C62x系列組成的雙DSP系統(tǒng),提出了一種串行引導(dǎo)方案,同時(shí)給出了其硬件及軟件的具體實(shí)現(xiàn)方法。
1 DSP引導(dǎo)模式
1.1 TMS320C62x引導(dǎo)模式
TMS320C62x系列DSP提供了三種引導(dǎo)方式:
(1)無(wú)引導(dǎo)過(guò)程:DSP直接從地址0開始執(zhí)行代碼;
(2)ROM方式引導(dǎo):由DMA/EDMA控制器從外部CE1空間中的ROM中拷貝固定數(shù)量的代碼到地址0,啟動(dòng)時(shí)也可選擇ROM的寬度,拷貝結(jié)束后,CPU從地址0開始運(yùn)行;
(3)HPI方式引導(dǎo):由外部主機(jī)通過(guò)HPI對(duì)芯片的存儲(chǔ)器空間進(jìn)行初始化,初始化結(jié)束后,外部主機(jī)通過(guò)HPI中斷喚醒TMS320C62x,CPU開始從地址0運(yùn)行。
所有這些設(shè)置項(xiàng)都是在芯片復(fù)位的時(shí)候才進(jìn)行檢查。一旦復(fù)位信號(hào)有效(reset=0),所有的三態(tài)輸出管腳恢復(fù)為默認(rèn)狀態(tài),然后在reset信號(hào)的上升沿處檢查設(shè)置管腳BOOTMODE[4:0]的狀態(tài),自舉邏輯開始生效。
1.2 ADSP218x引導(dǎo)模式
ADSP218x系列DSP提供了三種引導(dǎo)方式:
(1)無(wú)引導(dǎo)過(guò)程:DSP直接從地址0開始執(zhí)行代碼;
(2)BDMA方式引導(dǎo):復(fù)位后DSP以BDMA方式首先從字節(jié)存儲(chǔ)空間拷貝前32字的程序代碼,拷貝完程序從程序存儲(chǔ)地址0開始執(zhí)行代碼。
(3)IDMA方式引導(dǎo):復(fù)位后DSP以IDMA方式可以存取任意數(shù)量的內(nèi)部存儲(chǔ)空間,當(dāng)內(nèi)部程序存儲(chǔ)地址0被寫入時(shí),程序從程序存儲(chǔ)地址0開始執(zhí)行代碼。
以上設(shè)置都是在芯片復(fù)位的時(shí)候才進(jìn)行檢查,當(dāng)復(fù)位信號(hào)有效時(shí)(reset=0),所有的三態(tài)輸出管腳恢復(fù)為默認(rèn)狀態(tài),然后在reset信號(hào)的上升沿處檢查設(shè)置管腳MODE[A:D]的狀態(tài),自舉邏輯開始生效。
1.3 雙DSP系統(tǒng)串行引導(dǎo)模式
根據(jù)以上兩種DSP的引導(dǎo)模式,選用串行引導(dǎo)模式,即把TMS320C62x作為主處理機(jī),外圍接8位寬的FLASH,采用ROM方式引導(dǎo),TMS320C62x和AD-SP218x的程序都固化在FLASH中,ADSP218x作為從處理機(jī),采用IDMA方式引導(dǎo),并且兩個(gè)DSP之間的通訊也采用IDMA方式。這樣TMS320C62x可以把ADSP218x作為一個(gè)存儲(chǔ)區(qū)來(lái)訪問(wèn),既去掉了握手軟件,提高了工作效率,又可以去掉ADSP218x外圍的FLASH,減少了硬件花銷。主要硬件連接示意圖如圖1所示。
雙DSP系統(tǒng)串行引導(dǎo)的過(guò)程如下:系統(tǒng)上電后,TMS320C62x從位于CE1空間FLASH中以ROM引導(dǎo)的方式復(fù)制一定數(shù)量的TMS320C62x程序至地址為Ox00000000的內(nèi)部程序存儲(chǔ)空間。當(dāng)程序復(fù)制完畢后,TMS320C62x開始從0x00000000起始的程序地址開始執(zhí)行程序,利用這段程序,把剩下的程序從FLASH中讀出,TMS320C62x進(jìn)入到正常工作狀態(tài)。然后TMS320C62x負(fù)責(zé)將存儲(chǔ)在FLASH中的ADSP218x的運(yùn)行程序讀出,通過(guò)IDMA接口發(fā)送至ADSP218x的片內(nèi)PM存儲(chǔ)區(qū),執(zhí)行對(duì)ADSP218x的程序裝載。當(dāng)ADSP218x引導(dǎo)完畢后,ADSP218x運(yùn)行裝入的程序進(jìn)入正常的工作狀態(tài),至此系統(tǒng)串行引導(dǎo)完畢。
2 雙DSP系統(tǒng)串行引導(dǎo)的實(shí)現(xiàn)
2.1 硬件連接
TMS320C62x的低16位數(shù)據(jù)線ED15~0與ADSP218x的IAD15~0連接,TMS320C62X的低8位數(shù)據(jù)線ED7~0與FLASH的數(shù)據(jù)線D7~0連接。TMS320C62x的BOOTMODE[4:0]引腳配置如下:
由于TMS320C62x與ADSP218x的IDMA通訊控制需要譯碼,因此加了一片CPLD,硬件連接圖如圖2所示。片內(nèi)的邏輯方程為:
2.2 TMS320C62x啟動(dòng)程序代碼的創(chuàng)建
TMS320C62x啟動(dòng)程序代碼包含以下幾個(gè)部分。
2.2.1 中斷向量表vectors.a(chǎn)sm
中斷向量表缺省保存在TMS320C62x內(nèi)部RAM的從0地址開始長(zhǎng)度為0x200字節(jié)的空間,上電或復(fù)位后,芯片自動(dòng)運(yùn)行復(fù)位中斷。因此,復(fù)位中斷向量中應(yīng)包含跳轉(zhuǎn)到引導(dǎo)程序(_boot)的語(yǔ)句,引導(dǎo)程序的主體在boot.a(chǎn)sm中定義。部分程序如下:
2.2.2 自引導(dǎo)的匯編程序boot.a(chǎn)sm
自引導(dǎo)匯編程序主要是配置基本的寄存器,并將保存在外部FLASH中的二進(jìn)制程序拷貝到DSP內(nèi)部的RAM中再執(zhí)行。匯編程序如下:
2.2.3 主程序main.c
主程序是DSP要實(shí)現(xiàn)具體功能的主體,其定義的主函數(shù)main()經(jīng)編譯后在函數(shù)_c_int00中調(diào)用,因此在上面的引導(dǎo)程序結(jié)束時(shí),將跳轉(zhuǎn)到函數(shù)_c_int00,即主函數(shù)main執(zhí)行。另外在主程序中,還要包含把ADSP218x的應(yīng)用程序從FLASH傳送到ADSP218x內(nèi)部存儲(chǔ)區(qū)的子程序。
評(píng)論