基于CPCI總線(xiàn)的鏈路口多DSP引導方案的設計實(shí)現
前言
數字信號處理器DSP是一種具有特殊結構的微處理器,它專(zhuān)門(mén)為實(shí)現數字信號處理的各種算法而設計,因而在硬件結構上具有特殊性。TS201是ADI公司TigerSHARC系列中集成了定點(diǎn)和浮點(diǎn)計算功能的高速DSP。該處理器廣泛應用于視頻、通信市場(chǎng)和國防軍事裝備中,適合于大數據量實(shí)時(shí)處理的應用領(lǐng)域。
TigerSHARC系列DSP引導程序的加載方法非常靈活,可根據實(shí)際系統的需求靈活選用。某雷達信號處理機采用6U板形,CPCI總線(xiàn)采用歐洲卡尺寸標準,通過(guò)CPCI總線(xiàn)與主機進(jìn)行數據通信。針對該信號處理機硬件系統,本文提出一種引導方案,該方案采用CPCI總線(xiàn)向板卡傳輸引導代碼,進(jìn)而依靠FPGA通過(guò)鏈路口引導DSP自啟動(dòng)。
1 ADSP-TS201引導模式
DSP的引導就是在DSP系統復位的情況下從DSP外部存儲器裝載算法程序代碼的過(guò)程。TS201支持兩種引導模式:主引導(Master Boot)模式和從引導(S|ave Boot)模式。
在主引導模式下,TS201作為主動(dòng)方,用外部口輸出地址,讀引導方式選擇等控制信號,從EPROM或FLASH中加載代碼。在從引導模式下,TS201作為被動(dòng)方,不向外部輸出控制信號,外部主機或其他設備向TS201的主機或鏈路口傳送要加載的代碼,TS201僅啟動(dòng)若干DMA通道,并執行第一個(gè)DMA所接收的加載核。
另外,FS201還可以選擇一種“非引導”模式,或利用TS201的(仿真器)USB-ICE加載程序,這種方式可直接將程序加載到TS201內部的RAM或外部的RAM中,DSP直接從RAM中運行程序,常用于DSP的調試過(guò)程。
通過(guò)對TS201的引腳的設置,可將DSP的引導過(guò)程設置成主引導模式或從引導模式。在DSP復位期間,如果引腳為低電平,則選擇主引導模式,DSP從外部EPROM或FLASH中加載程序;若引腳為高電平,則進(jìn)入從引導模式,DSP為空閑狀態(tài),等待主機或鏈路口加載程序。兩種引導模式都有相同的加載過(guò)程,具體步驟如下:
(1)TS201自動(dòng)啟動(dòng)一個(gè)DMA,自動(dòng)把256個(gè)字(32位)傳送到內部存儲器的地址0x00~0xFF。
(2)TS201執行上述256個(gè)字的指令(加載核),加載核啟動(dòng)其他DMA,把后續指令和數據加載到內部和/或外部存儲器中。
(3)加載核自我覆蓋,執行DSP算法程序。
本系統引導方案采用從引導模式,通過(guò)CPCI總線(xiàn)將代碼從主機傳至FPGA中,再利用FPGA經(jīng)過(guò)鏈路口啟動(dòng)DSP。
2 某雷達信號處理機的引導設計方案
基于某雷達信號處理機硬件處理平臺,采用如圖1所示的多DSP引導設計方案。
4片DSP的算法程序代碼(.LDR文件)通過(guò)上位機軟件傳輸到FPGA中,FPGA通過(guò)與DSPA的鏈路口給DSPA加載程序。DSPA加載成功后,分別引導DSPB,DSPC,DSPD啟動(dòng)。
采用這種方式加載DSP的優(yōu)點(diǎn):調試DSP時(shí)可以不使用JTAG仿真器;同時(shí)當DSP自啟動(dòng)時(shí),可以不采用FLASH或E2PROM存放程序代碼,對于DSP程序的大小沒(méi)有限制,也節約了電路板的空間及其硬件設計復雜度。
采用這種方式加載DSP的難點(diǎn):CPCI總線(xiàn)與FPGA數據傳輸無(wú)誤及FPGA與TS201鏈路口通信,這兩個(gè)難點(diǎn)在實(shí)際工程中都已經(jīng)解決。CPCI總線(xiàn)與FPGA接口可以采用PLX9656芯片完成數據傳輸,所以這種加載模式的設計是可行的。
2.1 自動(dòng)引導程序設計思路
為了設計加載(自動(dòng)引導)程序,首先必須了解ADSP-TS201的軟件設計流程,其流程圖如圖2所示。
其中,鏈接描述文件(.LDF)定義了整個(gè)系統的存儲器配置和程序中數據及代碼的具體存放位置。加載核文件(.DEX)是指加載引導核程序,其功能是將用戶(hù)工程所編譯成功的可執行文件(.DXE)合成一個(gè)鏈路口加載方式的輸出文件(.LDR)。該加載輸出文件用來(lái)定義加載過(guò)程中TS201的內部和外部存儲器如何被初始化。
在VisualDSP++安裝目錄的ldr子目錄下,ADI公司提供了標準加載核文件和相應的源程序(.ASM)和鏈接描述文件。一般可直接使用提供的標準加載核文件或對其相應的源程序進(jìn)行簡(jiǎn)單修改,重新編譯鏈接生成的加載核文件。加載文件是由引導加載器(elfloader)將可執行文件進(jìn)行一定的格式變化,并在起始位置附加上加載核文件生成的。
由于TS201有三種引導方式(不考慮非引導模式),ADI公司相應地提供了三種不同的加載和文件,分另0為:TS201_prom.dxe,TS201_li-nk.dxe,TS201_host.dxe。三個(gè)程序的核心思想和功能完全一致,只是由于使用的加載端口和方式不同,在具體代碼實(shí)現上稍有差異。由于本系統采用鏈路口啟動(dòng),同時(shí)對于DSPA,DSPB,DSPC,DSPD都采用不同的鏈路口啟動(dòng),因此采用鏈路口加載核文件,需要對加載核文件稍作修改,滿(mǎn)足不用鏈路口啟動(dòng)的需求。
2.2 本信號處理機的復位引導設計流程
如圖1所示,4片DSP要運行的程序最終通過(guò)上位機讀取后,通過(guò)CPCI總線(xiàn)傳至FPGA,4片DSP為鏈路口引導模式。DSP復位后,DSPA從FPGA加載程序,DSPA加載完成后,再分別通過(guò)鏈路口加載DSPB,DSPC,DSPD。加載完成后,4片DSP正常執行各自的程序。
結合以上各部分的分析,可以看出要實(shí)現該信號處理機中4片DSP的正確引導,所需的工作由以下幾步組成:
(1)由DSPB要執行的程序(DSPB.dxe),結合鏈路口的加載核程序生成DSPB的加載文件(DSPB_bin.ldr)。需要注意的是,該鏈路口加載核程序不能直接使用提供的標準鏈路口加載程序,必須將提供的鏈路口加載核文件(TS201_link.asm)中的LINK常數改為1(#define LINK 1),即DSPB由鏈路口1引導。
(2)與(1)類(lèi)似,生成DSPC的加載文件(DSPC_bin.ldr),只是需要把鏈路口加載核文件(TS201_link.asm)中的LINK常數改為2(#define LINK 2),即DSPC由鏈路口2引導。同樣DSPD由鏈路口2加載,同樣生成DSPD的加載文件(DSPD_bin.ldr)。
(3)由于DSPA要通過(guò)鏈路口來(lái)對DSPB,DSPC,DSPD進(jìn)行程序引導,所以在進(jìn)行DSPA編程時(shí),需要在程序的最開(kāi)始添加給后面所有ADSPTS2 01的引導程序。而每片ADSP-TS201的程序都由引導碼和用戶(hù)程序構成,所以在DSPA給其余DSP傳輸程序時(shí)將傳輸完整.1dr文件的數據。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論