一種雙DSP系統(tǒng)串行引導方案的實現(xiàn)
在某型光電跟蹤產(chǎn)品中,由于需要對抗各種人工干擾和背景干擾,使得導引系統(tǒng)需要處理的信息量成倍增加,對導引系統(tǒng)的實時處理性能提出了更高的要求。針對這種情況,導引系統(tǒng)采用了雙DSP系統(tǒng)的信息處理方案,DSP選用AD公司的ADSP218x和TI公司的TMS320C62x。ADSP218x進行目標信號的采樣和外圍控制信號的輸入、輸出,TMS320C62x專門進行目標的鑒相、各種抗干擾算法的計算,這樣TMS320C62x不受外設服務中斷影響,可以更好地發(fā)揮計算效率,提高了導引系統(tǒng)的實時處理性能。本文針對ADSP218x系列和TMS320C62x系列組成的雙DSP系統(tǒng),提出了一種串行引導方案,同時給出了其硬件及軟件的具體實現(xiàn)方法。
1 DSP引導模式
1.1 TMS320C62x引導模式
TMS320C62x系列DSP提供了三種引導方式:
(1)無引導過程:DSP直接從地址0開始執(zhí)行代碼;
(2)ROM方式引導:由DMA/EDMA控制器從外部CE1空間中的ROM中拷貝固定數(shù)量的代碼到地址0,啟動時也可選擇ROM的寬度,拷貝結束后,CPU從地址0開始運行;
(3)HPI方式引導:由外部主機通過HPI對芯片的存儲器空間進行初始化,初始化結束后,外部主機通過HPI中斷喚醒TMS320C62x,CPU開始從地址0運行。
所有這些設置項都是在芯片復位的時候才進行檢查。一旦復位信號有效(reset=0),所有的三態(tài)輸出管腳恢復為默認狀態(tài),然后在reset信號的上升沿處檢查設置管腳BOOTMODE[4:0]的狀態(tài),自舉邏輯開始生效。
1.2 ADSP218x引導模式
ADSP218x系列DSP提供了三種引導方式:
(1)無引導過程:DSP直接從地址0開始執(zhí)行代碼;
(2)BDMA方式引導:復位后DSP以BDMA方式首先從字節(jié)存儲空間拷貝前32字的程序代碼,拷貝完程序從程序存儲地址0開始執(zhí)行代碼。
(3)IDMA方式引導:復位后DSP以IDMA方式可以存取任意數(shù)量的內(nèi)部存儲空間,當內(nèi)部程序存儲地址0被寫入時,程序從程序存儲地址0開始執(zhí)行代碼。
以上設置都是在芯片復位的時候才進行檢查,當復位信號有效時(reset=0),所有的三態(tài)輸出管腳恢復為默認狀態(tài),然后在reset信號的上升沿處檢查設置管腳MODE[A:D]的狀態(tài),自舉邏輯開始生效。
1.3 雙DSP系統(tǒng)串行引導模式
根據(jù)以上兩種DSP的引導模式,選用串行引導模式,即把TMS320C62x作為主處理機,外圍接8位寬的FLASH,采用ROM方式引導,TMS320C62x和AD-SP218x的程序都固化在FLASH中,ADSP218x作為從處理機,采用IDMA方式引導,并且兩個DSP之間的通訊也采用IDMA方式。這樣TMS320C62x可以把ADSP218x作為一個存儲區(qū)來訪問,既去掉了握手軟件,提高了工作效率,又可以去掉ADSP218x外圍的FLASH,減少了硬件花銷。主要硬件連接示意圖如圖1所示。
雙DSP系統(tǒng)串行引導的過程如下:系統(tǒng)上電后,TMS320C62x從位于CE1空間FLASH中以ROM引導的方式復制一定數(shù)量的TMS320C62x程序至地址為Ox00000000的內(nèi)部程序存儲空間。當程序復制完畢后,TMS320C62x開始從0x00000000起始的程序地址開始執(zhí)行程序,利用這段程序,把剩下的程序從FLASH中讀出,TMS320C62x進入到正常工作狀態(tài)。然后TMS320C62x負責將存儲在FLASH中的ADSP218x的運行程序讀出,通過IDMA接口發(fā)送至ADSP218x的片內(nèi)PM存儲區(qū),執(zhí)行對ADSP218x的程序裝載。當ADSP218x引導完畢后,ADSP218x運行裝入的程序進入正常的工作狀態(tài),至此系統(tǒng)串行引導完畢。
2 雙DSP系統(tǒng)串行引導的實現(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啟動程序代碼的創(chuàng)建
TMS320C62x啟動程序代碼包含以下幾個部分。
2.2.1 中斷向量表vectors.a(chǎn)sm
中斷向量表缺省保存在TMS320C62x內(nèi)部RAM的從0地址開始長度為0x200字節(jié)的空間,上電或復位后,芯片自動運行復位中斷。因此,復位中斷向量中應包含跳轉(zhuǎn)到引導程序(_boot)的語句,引導程序的主體在boot.a(chǎn)sm中定義。部分程序如下:
2.2.2 自引導的匯編程序boot.a(chǎn)sm
自引導匯編程序主要是配置基本的寄存器,并將保存在外部FLASH中的二進制程序拷貝到DSP內(nèi)部的RAM中再執(zhí)行。匯編程序如下:
2.2.3 主程序main.c
主程序是DSP要實現(xiàn)具體功能的主體,其定義的主函數(shù)main()經(jīng)編譯后在函數(shù)_c_int00中調(diào)用,因此在上面的引導程序結束時,將跳轉(zhuǎn)到函數(shù)_c_int00,即主函數(shù)main執(zhí)行。另外在主程序中,還要包含把ADSP218x的應用程序從FLASH傳送到ADSP218x內(nèi)部存儲區(qū)的子程序。
2.2.4 鏈接命令程序link.cmd
鏈接命令程序用于定義DSP系統(tǒng)各存儲區(qū)的開始地址及大小,并分配編譯后各段到相應的存儲空間,link.cmd內(nèi)容如下:
2.3 TMS320C62X通過IDMA接口把ADSP218x程序拷貝到內(nèi)部存儲器的方法
從TMS320C62x來看,IDMA接口只有三個寄存器,分別是IDMA控制寄存器IDMA_IAL,IDMA讀數(shù)據(jù)寄存器IDMA_IRD和IDMA寫數(shù)據(jù)寄存器ID-MA_IWR。
該三個寄存器的定義如下:
訪問ADSP218x的內(nèi)存單元一般需要三個步驟:
第一步:向IDMA控制寄存器寫該數(shù)據(jù)單元所在的頁面。編程只需要向IDMA_IAL控制寄存器寫入恰當控制字即可。例如要向APSP218x的PM區(qū)的第5頁寫數(shù)據(jù),則應該有下面的命令:
IDMA_IAL=0x8050;
第二步:向IDMA控制寄存器寫該數(shù)據(jù)的地址。
如果是PM區(qū),則該數(shù)據(jù)的地址為當前地址,如果是DM區(qū),必須將當前地址加0x4000。例如要向PM區(qū)的0x0809區(qū)寫數(shù)據(jù),則應該有下面的命令:
IDMA_IAL=0x0809;
如果向DM區(qū)寫數(shù)據(jù),則有命令:
IDMA_IAL=0x0809+0x4000;
第三步:讀寫數(shù)據(jù)。如果是讀數(shù)據(jù),例如要將數(shù)據(jù)讀入到unsigned short XX單元,則應該用下面的命令:
XX=(unsigned short)IDMA_IRD;
如果是寫數(shù)據(jù),例如要將數(shù)據(jù)unsigned short YY寫入某地址單元,則應該用下面的命令IDMA_IWR=YY;
注意以后每讀取或?qū)憯?shù)據(jù),IDMA接口的地址指針自動加1。
TMS320C62x通過IDMA口,在啟動后把AD-SP218x的應用程序拷貝到ADSP218x的內(nèi)部存儲器中。ADSP218x的應用程序作為一個asm文件供TMS320C62x應用軟件調(diào)用,具體格式為:
2.4 FLASH的在線燒寫
上面的工程文件經(jīng)CCS系統(tǒng)編譯、匯編后生成可執(zhí)行COFF文件(.out),它需要轉(zhuǎn)換成可供CCS調(diào)用的數(shù)據(jù)文件,通過JTAG口在線寫入到FLASH中。利用TI公司的HEX6x.exe工具,將生成的.out文件轉(zhuǎn)化成.hex輸出文件。由于該HEX6x.exe工具是提供給EPROM編程器的,用EPROM編程器可直接燒寫.hex文件。但對于FLASH的在線系統(tǒng)編程來說,生成的.hex文件不能直接使用,必須再編寫一段程序?qū)ⅲ甴ex的文件頭去掉,分離出數(shù)據(jù)文件,最后才能由FLASH的在線燒寫程序?qū)⒆罱K的數(shù)據(jù)文件燒寫到FLASH中。
hex6x命令行的格式為:
命令執(zhí)行后會產(chǎn)生三個文件,這三個文件再經(jīng)過轉(zhuǎn)換融合成一個文件flash.a(chǎn)sm,格式如下:
3 結 語
該系統(tǒng)經(jīng)過單板和整機的高低溫、振動、電磁兼容試驗驗證,系統(tǒng)在上電后能夠100%的正常啟動,性能穩(wěn)定。該方法為編寫由TMS320C62x和ADSP218x組成的雙DSP系統(tǒng)的引導程序拓寬了思路,其設計思想對其他型號組成的雙DSP系統(tǒng)的設計也具有借鑒意義。