基于fpga的多dsp數(shù)據(jù)交換裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)字信號(hào)處理領(lǐng)域,尤其涉及一種基于FPGA的多DSP數(shù)據(jù)交換方法。
【背景技術(shù)】
[0002] 隨著數(shù)字化時(shí)代的來臨,DSP的應(yīng)用幾乎遍及整個(gè)電子領(lǐng)域,在很多需要實(shí)時(shí)數(shù)據(jù) 處理的場(chǎng)合,即使采用目前最先進(jìn)的DSP芯片,單片處理器也無法滿足大量數(shù)據(jù)實(shí)時(shí)處理 的需求,往往需要多只DSP并行工作才能完成任務(wù)。當(dāng)DSP數(shù)量增加時(shí),一方面會(huì)占用FPGA 較多的RAM資源,提高了系統(tǒng)成本,另一方面由于并行高速數(shù)據(jù)傳輸,抗干擾能力較差,傳 輸?shù)目煽啃越档汀?br>
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的技術(shù)效果能夠克服上述缺陷,提供一種基于基于FPGA的多DSP數(shù)據(jù)交換 裝置,其實(shí)現(xiàn)多片DSP之間的較為有效的數(shù)據(jù)交互,并且具有占用FPGA資源少,數(shù)據(jù)傳輸穩(wěn) 定可靠、控制較簡(jiǎn)單等優(yōu)點(diǎn)。
[0004] 為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:其包括可編程器件FPGA、DSP存儲(chǔ)器 及外掛SDRAM存儲(chǔ)器、FPGA程序FLA甜、DSP程序FLA甜、千W太網(wǎng)口、調(diào)試串口、數(shù)據(jù)輸入及 數(shù)據(jù)輸出接口,可編程器件FPGA分別與DSP存儲(chǔ)器、外掛SDRAM存儲(chǔ)器、FPGA程序FLA甜、 DSP程序FLA甜、千W太網(wǎng)口、調(diào)試串口、數(shù)據(jù)輸入及數(shù)據(jù)輸出接口連接,調(diào)試串口連接串口 交換機(jī)。
[0005] 所述的可編程器件FPGA選用Xilinx公司的XC2V3000型號(hào)。
[0006] 所述的串口交換機(jī)內(nèi)部包括;數(shù)據(jù)接收模塊、數(shù)據(jù)檢測(cè)及搬移模塊、數(shù)據(jù)發(fā)送模 塊,數(shù)據(jù)接收模塊完成串行端口數(shù)據(jù)的串并轉(zhuǎn)換并將數(shù)據(jù)寫入到雙端口的緩存中;數(shù)據(jù)檢 測(cè)及搬移模塊完成數(shù)據(jù)包頓頭的解析W及數(shù)據(jù)在不同串行端口緩存之間的數(shù)據(jù)搬移;數(shù)據(jù) 發(fā)送模塊完成數(shù)據(jù)從雙端口緩存的讀取及數(shù)據(jù)的并串轉(zhuǎn)換,并發(fā)送到相應(yīng)的串行端口。
[0007] 本方法在FPGA中實(shí)現(xiàn)了同步串行接口交換機(jī),串口交換機(jī)采用VHDL語言編寫,核 必是一種狀態(tài)機(jī),是系統(tǒng)多只DSP數(shù)據(jù)交換的核必部件。外部各片DSP都通過自己的同步 串行接口連接到一個(gè)接口轉(zhuǎn)換模塊上,接口轉(zhuǎn)換模塊再鏈接到串口交換機(jī)上。接口轉(zhuǎn)換模 塊主要完成同步串行接口數(shù)據(jù)的串并轉(zhuǎn)換或者并串轉(zhuǎn)換,W便和串口交換機(jī)內(nèi)部進(jìn)行數(shù)據(jù) 通信。
【附圖說明】
[0008] 圖1是信號(hào)并行處理模塊系統(tǒng)結(jié)構(gòu)框圖;
[0009] 圖2系統(tǒng)同步串行接口交換的連接框圖。
【具體實(shí)施方式】
[0010] 圖1為多DSP并行處理系統(tǒng),由大規(guī)模可編程器件FPGA、多只DSP及外掛SDRAM存 儲(chǔ)器、FPGA程序FLASH、DSP程序FLA甜、千W太網(wǎng)口、調(diào)試串口、數(shù)據(jù)輸入及數(shù)據(jù)輸出接口 等組成。同步串行接口(SPORT)作為標(biāo)準(zhǔn)外設(shè)出現(xiàn)在各種型號(hào)的DSP中,為DSP之間的通 信提供了方便。每個(gè)同步串行接口均由發(fā)送器和接收器構(gòu)成,一般有6根信號(hào)線組成,分別 為發(fā)送數(shù)據(jù)值T)、接收數(shù)據(jù)值時(shí)、發(fā)送時(shí)鐘燈CLK)、接收時(shí)鐘(RCLK)、發(fā)送頓同步燈F巧和 接收頓同步(RF巧。使用時(shí),在FPGA內(nèi)部通過開關(guān)將不同DSP的同步串行接口的相應(yīng)信號(hào) 互聯(lián),配置相關(guān)寄存器W確保收發(fā)時(shí)鐘、同步信號(hào)和數(shù)據(jù)頓長(zhǎng)度的正確合理,便可W實(shí)現(xiàn)同 步串行接口的數(shù)據(jù)通信。步串行接口的相應(yīng)信號(hào)互聯(lián),配置相關(guān)寄存器W確保收發(fā)時(shí)鐘、同 步信號(hào)和數(shù)據(jù)頓長(zhǎng)度的正確合理,便可W實(shí)現(xiàn)同步串行接口的數(shù)據(jù)通信。本方法FPGA選用 Xilinx公司的XC2V3000,具有64*56個(gè)邏輯陣列,1728肺it的塊RAM、18*18的嵌入式乘法 器、4個(gè)時(shí)鐘管理器,最大達(dá)720個(gè)I/O 口。圖2所示為系統(tǒng)同步串行接口交換的連接框圖, 串口交換機(jī)采用VHDL語言編寫,核必是一種狀態(tài)機(jī),是系統(tǒng)多只DSP數(shù)據(jù)交換的核必部件。 外部各片DSP都通過自己的同步串行接口連接到一個(gè)接口轉(zhuǎn)換模塊上,接口轉(zhuǎn)換模塊再鏈 接到串口交換機(jī)上。接口轉(zhuǎn)換模塊主要完成同步串行接口數(shù)據(jù)的串并轉(zhuǎn)換或者并串轉(zhuǎn)換, W便和串口交換機(jī)內(nèi)部進(jìn)行數(shù)據(jù)通信。
[0011] 串口交換機(jī)內(nèi)部主要包括H個(gè)功能模塊;數(shù)據(jù)接收模塊、數(shù)據(jù)檢測(cè)和搬移模塊 (串口交換機(jī)核必),W及數(shù)據(jù)發(fā)送模塊。數(shù)據(jù)接收模塊完成串行端口數(shù)據(jù)的串并轉(zhuǎn)換并將 數(shù)據(jù)寫入到雙端口的緩存中;數(shù)據(jù)檢測(cè)及搬移模塊完成數(shù)據(jù)包頓頭的解析W及數(shù)據(jù)在不同 串行端口緩存之間的數(shù)據(jù)搬移;數(shù)據(jù)發(fā)送模塊完成數(shù)據(jù)從雙端口緩存的讀取及數(shù)據(jù)的并串 轉(zhuǎn)換,并發(fā)送到相應(yīng)的串行端口。
[0012] 由于所有串口交換機(jī)共有兩個(gè)高速串行端口,其中串行端口 0的發(fā)送和接收端都 經(jīng)過雙端口 RAM掛接在交換機(jī)上,而串口 1的發(fā)送頓標(biāo)志管腳和發(fā)送數(shù)據(jù)管腳設(shè)置為通用 的GPIO管腳,作為交換機(jī)的控制和狀態(tài)信號(hào)。其中,串口 1的發(fā)送頓標(biāo)志管腳作為DSP數(shù) 據(jù)交換時(shí)的請(qǐng)求信號(hào);串口 1的發(fā)送數(shù)據(jù)管腳作為當(dāng)前該片DSP串口 0狀態(tài)指示信號(hào)。當(dāng) DSPl要發(fā)送數(shù)據(jù)給DSP2時(shí),DSPl先檢測(cè)其DXl的狀態(tài),當(dāng)DXl允許時(shí),則通過FSXl向串口 交換機(jī)發(fā)出數(shù)據(jù)交換請(qǐng)求,串口交換機(jī)接收到數(shù)據(jù)請(qǐng)求后,查詢DSP2的DXl狀態(tài),當(dāng)其DXl 允許時(shí),則開始把DSPl串行端口 0的接收緩存值PRAM1)的數(shù)據(jù)搬移到DSP2串行端口 0的 發(fā)送緩存值PRAM4)中,通過串行端口發(fā)送到DSP2中,完成本次數(shù)據(jù)通信;W此類推,其他 DSP之間進(jìn)行數(shù)據(jù)交換時(shí)也采取類似的過程。
[0013] 本發(fā)明的軟件基于TI公司CCS開發(fā)環(huán)境,開發(fā)環(huán)境提供了 DSP芯片支持庫(kù)CSL縮 短了軟件的開發(fā)周期。具體配置和收發(fā)程序如下。串口交換機(jī)的數(shù)據(jù)包格式為:
[0014] 0巧555555抓IDST I SRCI CNT I RESERVED
[0015] RESERVED|RESERVED|RESERVED|DATA
[0016] 其中,0巧55555抓為發(fā)送數(shù)據(jù)頓頭。DST是目的節(jié)點(diǎn)號(hào),SRC是源節(jié)點(diǎn)號(hào),CNT為發(fā) 送數(shù)據(jù)長(zhǎng)度,中間四個(gè)32位字為保留字,最后是數(shù)據(jù)區(qū)。
[0017] 串口交換機(jī)初始化:
[0018] 串口交換機(jī)使用串口 0作為數(shù)據(jù)交換的通道,大部分參數(shù)配置都參考默認(rèn)配置, 需要注意的兩個(gè)地方是:在對(duì)串口 0的配置中將PCR(串口控制寄存器)寄存器的FSXM位 設(shè)置為〇(MCBSP_PCR_FSXM_EXTERNAL),即發(fā)送由外部提供頓信號(hào);在對(duì)串口 1的配置中,將 PCR寄存器的RIOEN為設(shè)置為1 (MCBSP_PCR_RI0EN_GPI0),即將FSR和化KR管腳作為GPIO 使用,用于觸發(fā)串口 O的數(shù)據(jù)發(fā)送。初始化代碼見函數(shù)Mcbsp化blnit。
[0019] void McbspHublni I 0 { /*打開并配置奉口 0*/ gMHubMcbspOCFg. spcr = 0x03000020; gMHubMcbspUCfg. FM = 0xUU04UUA(); 徑細(xì).曲艙bspOCf答XCX =.. Dx00050!JAO;; gMHubfvkbspOCfg. STgr = Ox〇(J3FlFOF; gMH