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