Dsp及fpga之間的實(shí)時(shí)通信方法及實(shí)時(shí)通信系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,更具體地說,涉及一種DSP及FPGA之間的實(shí)時(shí)通信方法及實(shí)時(shí)通信系統(tǒng)。
【背景技術(shù)】
[0002]在數(shù)據(jù)處理芯片領(lǐng)域,DSP具有極高的數(shù)據(jù)處理速率,F(xiàn)PGA芯片因可重復(fù)編程而具有較高的靈活性,業(yè)內(nèi)通常采用將DSP與FPGA相結(jié)合的方式構(gòu)建一個(gè)具有高數(shù)據(jù)處理效率的信號(hào)處理系統(tǒng)。由于通訊系統(tǒng)(例如GSM、TD-SCDMA)對(duì)傳輸數(shù)據(jù)的處理時(shí)間有著嚴(yán)格限制,以期達(dá)到傳輸數(shù)據(jù)的實(shí)時(shí)處理,滿足用戶對(duì)于即時(shí)通信的要求。而在上述信號(hào)處理系統(tǒng)中,DSP與FPGA之間的數(shù)據(jù)交換過程仍存在一定延遲。受限于DSP與FPGA之間的數(shù)據(jù)交換效率,上述信號(hào)處理系統(tǒng)仍然難以滿足用戶即時(shí)通信的要求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題在于針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種可實(shí)現(xiàn)數(shù)據(jù)在DSP及FPGA之間雙向、實(shí)時(shí)、高效傳輸?shù)腄SP及FPGA之間的實(shí)時(shí)通信方法及實(shí)時(shí)通信系統(tǒng)。
[0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種DSP及FPGA之間的實(shí)時(shí)通信方法,包括:
[0005]每接收到FPGA的一個(gè)發(fā)送幀同步信號(hào)時(shí),將存儲(chǔ)于DSP的所有待發(fā)送數(shù)據(jù)搬移并存放于數(shù)據(jù)發(fā)送寄存器,并在接收到FPGA的下一個(gè)發(fā)送幀同步信號(hào)時(shí)將暫存于數(shù)據(jù)發(fā)送寄存器的待發(fā)送數(shù)據(jù)同時(shí)傳送到FPGA的數(shù)據(jù)發(fā)送流程;
[0006]以及每接收到FPGA的一個(gè)接收幀同步信號(hào)時(shí),接收由FPGA同時(shí)輸入的指定數(shù)據(jù)長(zhǎng)度的一部分接收數(shù)據(jù),將該部分接收數(shù)據(jù)存放于數(shù)據(jù)接收寄存器,進(jìn)而將存放于數(shù)據(jù)接收寄存器的該部分接收數(shù)據(jù)傳送到DSP的數(shù)據(jù)接收流程。
[0007]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,所述應(yīng)用于DSP及FPGA的數(shù)據(jù)發(fā)送流程包括如下步驟:
[0008]SUMcBSP對(duì)FSX管腳進(jìn)行實(shí)時(shí)掃描及判斷其接收到來自FPGA的一個(gè)發(fā)送幀同步信號(hào)時(shí),觸發(fā)及執(zhí)行一次用于將存儲(chǔ)于DSP的RAM的待發(fā)送數(shù)據(jù)中指定數(shù)據(jù)長(zhǎng)度的一部分?jǐn)?shù)據(jù)移至數(shù)據(jù)發(fā)送寄存器的第一數(shù)據(jù)搬移操作;
[0009]S2、McBSP將第一數(shù)據(jù)搬移操作執(zhí)行完畢時(shí),繼而將該部分發(fā)送數(shù)據(jù)從數(shù)據(jù)發(fā)送寄存器移至內(nèi)部緩存;
[0010]S3、判斷存儲(chǔ)于RAM的待發(fā)送數(shù)據(jù)是否均已搬移完畢;如待發(fā)送數(shù)據(jù)搬移完畢,則執(zhí)行下一步驟S4 ;
[0011]S4、McBSP對(duì)FSX管腳進(jìn)行實(shí)時(shí)掃描及判斷其接收到來自FPGA的下一個(gè)發(fā)送幀同步信號(hào)時(shí)將暫存于緩存的所有待發(fā)送數(shù)據(jù)同時(shí)傳送到FPGA。
[0012]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,所述步驟SI中所述觸發(fā)及執(zhí)行一次用于將存儲(chǔ)于RAM的待發(fā)送數(shù)據(jù)中指定長(zhǎng)度的一部分?jǐn)?shù)據(jù)移至數(shù)據(jù)發(fā)送寄存器的第一數(shù)據(jù)搬移操作的步驟包括:
[0013]Sll、McBSP通過FSX管腳接收到FPGA的一個(gè)發(fā)送幀同步信號(hào)時(shí),觸發(fā)及生成第一數(shù)據(jù)搬移指令,并向內(nèi)存管理模塊發(fā)送第一數(shù)據(jù)搬移指令;
[0014]S12、內(nèi)存管理模塊接收第一數(shù)據(jù)搬移指令,從存儲(chǔ)于RAM的待發(fā)送數(shù)據(jù)中選取指定數(shù)據(jù)長(zhǎng)度的一部分發(fā)送數(shù)據(jù),并將該部分發(fā)送數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)發(fā)送寄存器。
[0015]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,所述步驟S3還包括如下步驟:
[0016]S31、如判斷RAM中的待發(fā)送數(shù)據(jù)尚未搬移完畢,則觸發(fā)及執(zhí)行第一數(shù)據(jù)搬移操作,并在第一數(shù)據(jù)搬移操作執(zhí)行完畢時(shí),返回步驟S2。
[0017]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,在所述步驟S4之后還包括如下步驟:
[0018]S5、停止該次數(shù)據(jù)發(fā)送流程,產(chǎn)生中斷信號(hào),在中斷期間對(duì)內(nèi)存管理模塊的設(shè)置參數(shù)進(jìn)行重配,并在內(nèi)存管理模塊參數(shù)重配操作執(zhí)行完畢時(shí),返回步驟SI。
[0019]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,所述應(yīng)用于DSP及FPGA的數(shù)據(jù)接收流程包括如下步驟:
[0020]SI丨,McBSP對(duì)FSR管腳進(jìn)行實(shí)時(shí)掃描及檢測(cè)到來自FPGA的一個(gè)接收幀同步信號(hào)時(shí),同時(shí)接收從DR管腳輸入的指定數(shù)據(jù)長(zhǎng)度的一部分接收數(shù)據(jù),并將該部分接收數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)接收寄存器;
[0021]S2' ,McBSP在將該部分接收數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)接收寄存器的同時(shí),執(zhí)行將該部分接收數(shù)據(jù)移至DSP的第二數(shù)據(jù)搬移操作。
[0022]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,所述步驟S2'中所述觸發(fā)及執(zhí)行將該部分接收數(shù)據(jù)移至DSP的第二數(shù)據(jù)搬移操作的步驟包括:
[0023]S21'、McBSP在該部分接收數(shù)據(jù)存入數(shù)據(jù)接收寄存器時(shí),觸發(fā)及生成用于將該部分接收數(shù)據(jù)從數(shù)據(jù)接收寄存器移至RAM的第二數(shù)據(jù)搬移指令,并向內(nèi)存管理模塊發(fā)送第二數(shù)據(jù)搬移指令;
[0024]S22r、內(nèi)存管理模塊接收到第二數(shù)據(jù)搬移指令時(shí),將暫存于數(shù)據(jù)接收寄存器的該部分接收數(shù)據(jù)搬移及轉(zhuǎn)存到RAM。
[0025]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,在所述步驟S22'之后還包括如下步驟:
[0026]S23r、對(duì)FSR管腳進(jìn)行實(shí)時(shí)掃描以判斷是否繼續(xù)接收到來自FPGA的接收幀同步信號(hào);如繼續(xù)接收到來自FPGA的接收幀同步信號(hào),則返回步驟SI';否則,停止該次數(shù)據(jù)接收流程。
[0027]在本發(fā)明上述DSP及FPGA之間的實(shí)時(shí)通信方法中,在所述步驟S23'之后還包括如下步驟:
[0028]S24'、產(chǎn)生中斷信號(hào),在中斷期間對(duì)內(nèi)存管理模塊的設(shè)置參數(shù)進(jìn)行重配,及在內(nèi)存管理模塊的參數(shù)重配操作執(zhí)行完畢時(shí),返回步驟SI'。
[0029]本發(fā)明還構(gòu)造一種DSP及FPGA之間的實(shí)時(shí)通信系統(tǒng),包括DSP及FPGA,所述DSP配置有至少一個(gè)McBSP并通過McBSP與所述FPGA建立通信連接,所述McBSP包括數(shù)據(jù)發(fā)送寄存器及數(shù)據(jù)接收寄存器;
[0030]每一所述McBSP均用于接收到所述FPGA的一個(gè)發(fā)送幀同步信號(hào)時(shí),將存儲(chǔ)于所述DSP的所有待發(fā)送數(shù)據(jù)搬移并存放于所述數(shù)據(jù)發(fā)送寄存器,并在接收到由所述FPGA提供的下一個(gè)發(fā)送幀同步信號(hào)時(shí)將暫存于所述數(shù)據(jù)發(fā)送寄存器中的待發(fā)送數(shù)據(jù)同時(shí)傳送到所述FPGA ;
[0031]每一所述McBSP還用于在每接收到所述FPGA的一個(gè)接收幀同步信號(hào)時(shí),接收由所述FPGA同時(shí)輸入的指定數(shù)據(jù)長(zhǎng)度的一部分接收數(shù)據(jù),將該部分接收數(shù)據(jù)存放于所述數(shù)據(jù)接收寄存器,進(jìn)而將存放于所述數(shù)據(jù)接收寄存器的該部分接收數(shù)據(jù)傳送到所述DSP。
[0032]實(shí)施本發(fā)明DSP及FPGA之間的實(shí)時(shí)通信方法及實(shí)時(shí)通信系統(tǒng),可實(shí)現(xiàn)以下有益效果:
[0033]1、本發(fā)明將DSP中的McBSP作為DSP與FPGA之間的數(shù)據(jù)收發(fā)中轉(zhuǎn)站,極大地提高了 DSP與外部的FPGA之間的數(shù)據(jù)交換效率。
[0034]2、本發(fā)明將EDMA技術(shù)應(yīng)用到DSP內(nèi)的McBSP與RAM之間的數(shù)據(jù)交換,同時(shí)采用了McBSP及內(nèi)存管理模塊的數(shù)據(jù)同步處理機(jī)制。一方面,DSP中的內(nèi)存管理模塊的工作無需占用DSP的處理器資源,降低了 DSP的運(yùn)行負(fù)荷;另一方面,本發(fā)明上述數(shù)據(jù)同步處理機(jī)制極大地提高了 DSP內(nèi)部元件(即McBSP與RAM)之間的數(shù)據(jù)交換速率,實(shí)現(xiàn)了數(shù)據(jù)在DSP與FPGA之間的雙向、實(shí)時(shí)傳輸。
[0035]3、本發(fā)明在DSP/FPGA之間的數(shù)據(jù)收發(fā)過程中設(shè)置中斷控制機(jī)制,本發(fā)明可將該中斷控制機(jī)制與DSP的數(shù)據(jù)處理過程緊密銜接,以適應(yīng)于對(duì)數(shù)據(jù)處理時(shí)限要求嚴(yán)苛的通訊系統(tǒng)。
【附圖說明】
[0036]圖1為本發(fā)明的第一個(gè)較佳實(shí)施例提供的DSP與FPGA之間的實(shí)時(shí)通信系統(tǒng)的結(jié)構(gòu)框圖;
[0037]圖2為圖1所示的DSP與FPGA之間的實(shí)時(shí)通信系統(tǒng)的DSP的結(jié)構(gòu)框圖;
[0038]圖3為圖2所示的DSP的McBSP的結(jié)構(gòu)框圖;
[0039]圖4是本發(fā)明第二個(gè)較佳實(shí)施例提供的DSP與FPGA之間的實(shí)時(shí)通信方法中包含的從DSP到FPGA的數(shù)據(jù)發(fā)送流程的流程圖;
[0040]圖5是本發(fā)明第三個(gè)較佳實(shí)施例提供的DSP與FPGA之間的實(shí)時(shí)通信方法中包含的從FPGA到DSP的數(shù)據(jù)接收流程的流程圖。
【具體實(shí)施方式】
[0041]為了解決現(xiàn)有的應(yīng)用于通信基站的信號(hào)處理系統(tǒng)的DSP100與FPGA200之間存在一定的數(shù)據(jù)傳輸時(shí)延,致使通信基站無法為用戶提供即時(shí)通信服務(wù)的缺陷,本發(fā)明的創(chuàng)新點(diǎn)在于:
[0042]1、將DSP100 中的McBSPlOl (Multichannel Buffered Serial Port,即多通道緩沖串行口 )作為通信雙方DSP100與FPGA200之間的數(shù)據(jù)收發(fā)中轉(zhuǎn)站,提高了 DSP100與外部的FPGA200之間的