專(zhuān)利名稱(chēng):基于數(shù)字信號(hào)處理器同步串行接口的數(shù)據(jù)發(fā)送和接收方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)中的數(shù)據(jù)發(fā)送和接收方法,具體地說(shuō)涉及基于數(shù)字信號(hào)處理器同步串行接口的數(shù)據(jù)發(fā)送和接收方法。
為達(dá)到上述目的,本發(fā)明提供的基于數(shù)字信號(hào)處理器同步串行接口的數(shù)據(jù)發(fā)送和接收方法,包括(1)設(shè)置通過(guò)數(shù)字信號(hào)處理器(DSP)的同步串行接口發(fā)送和接收數(shù)據(jù)時(shí)使用的數(shù)據(jù)傳送同步信號(hào),以及設(shè)置同步控制中斷信號(hào);(2)設(shè)置數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū),在數(shù)據(jù)傳送同步信號(hào)的控制下,DSP的同步串行接口發(fā)送模塊和發(fā)送數(shù)據(jù)直接存取存儲(chǔ)器(DMA)控制器利用數(shù)據(jù)發(fā)送緩沖區(qū)進(jìn)行數(shù)據(jù)的發(fā)送,DSP的同步串行接口接收模塊和接收數(shù)據(jù)直接存取存儲(chǔ)器(DMA)控制器利用數(shù)據(jù)接收緩沖區(qū)進(jìn)行數(shù)據(jù)的接收;(3)由同步控制中斷信號(hào)在數(shù)據(jù)發(fā)送或接收的過(guò)程中對(duì)DSP的發(fā)送和接收數(shù)據(jù)的DMA控制器、同步串行接口進(jìn)行數(shù)據(jù)發(fā)送、數(shù)據(jù)接收的同步控制,并對(duì)DSP的中央處理單元(CPU)進(jìn)行數(shù)據(jù)處理能力的監(jiān)測(cè)。
所述方法還包括對(duì)發(fā)送或接收數(shù)據(jù)進(jìn)行格式劃分,將發(fā)送或接收的數(shù)據(jù)以數(shù)據(jù)塊為單位劃分,每個(gè)數(shù)據(jù)塊包括多個(gè)數(shù)據(jù)幀,每個(gè)幀包括多個(gè)時(shí)隙,每個(gè)時(shí)隙包括多個(gè)比特。
步驟(1)中所述設(shè)置數(shù)據(jù)傳送同步信號(hào)為設(shè)置幀同步信號(hào)。
步驟(1)所述同步控制中斷信號(hào)為與數(shù)據(jù)傳送同步信號(hào)同步的中斷信號(hào),用于在數(shù)據(jù)發(fā)送時(shí)以及數(shù)據(jù)接收時(shí)數(shù)據(jù)塊的同步控制。
步驟(2)所述設(shè)置數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū),為設(shè)置兩個(gè)數(shù)據(jù)發(fā)送緩沖區(qū),設(shè)置兩個(gè)數(shù)據(jù)接收緩沖區(qū),上述緩沖區(qū)的大小與數(shù)據(jù)發(fā)送或接收的數(shù)據(jù)塊大小相同。
步驟(2)DSP的同步串行接口發(fā)送模塊和DMA控制器利用數(shù)據(jù)發(fā)送緩沖區(qū)進(jìn)行數(shù)據(jù)發(fā)送的步驟包括(A1)同步串行接口發(fā)送模塊發(fā)送數(shù)據(jù)時(shí),每輸出一個(gè)時(shí)隙的數(shù)據(jù)就向發(fā)送數(shù)據(jù)DMA控制器產(chǎn)生發(fā)送數(shù)據(jù)中斷;(A2)發(fā)送數(shù)據(jù)DMA控制器響應(yīng)中斷,將處于發(fā)送狀態(tài)的發(fā)送緩沖區(qū)的數(shù)據(jù)輸送到同步串行接口發(fā)送模塊發(fā)出,同時(shí)CPU將發(fā)送數(shù)據(jù)發(fā)送到非發(fā)送狀態(tài)的發(fā)送緩沖區(qū)。
步驟(2)DSP的同步串行接口接收模塊和DMA控制器利用數(shù)據(jù)接收緩沖區(qū)進(jìn)行數(shù)據(jù)接收的步驟包括(B1)同步串行接口接收模塊接收數(shù)據(jù)時(shí),每收到一個(gè)時(shí)隙的數(shù)據(jù)就向接收數(shù)據(jù)DMA控制器產(chǎn)生接收數(shù)據(jù)中斷;(B2)接收數(shù)據(jù)DMA控制器響應(yīng)中斷,將同步串行接口接收模塊接收的數(shù)據(jù)發(fā)送到處于接收狀態(tài)的接收緩沖區(qū),同時(shí)CPU將非接收狀態(tài)的接收緩沖區(qū)中數(shù)據(jù)輸出到系統(tǒng)。
所述步驟(3)通過(guò)在數(shù)據(jù)發(fā)送或接收數(shù)據(jù)塊的最后一個(gè)數(shù)據(jù)幀中向系統(tǒng)發(fā)出同步控制中斷信號(hào)實(shí)現(xiàn)。
在同步控制中斷信號(hào)發(fā)出后,對(duì)應(yīng)的中斷服務(wù)過(guò)程包括下述步驟
(C1)判斷CPU是否完成發(fā)送和接收數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)的傳送操作,如果沒(méi)完成,發(fā)出CPU處理能力不足告警,否則,(C2)對(duì)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)DMA控制器和同步串行接口進(jìn)行復(fù)位和初始化。
由于本發(fā)明設(shè)置了通過(guò)DSP的同步串行接口發(fā)送和接收數(shù)據(jù)時(shí)使用的數(shù)據(jù)傳送同步信號(hào)、同步控制中斷信號(hào),在數(shù)據(jù)傳送同步信號(hào)的控制下,DSP的同步串行接口發(fā)送模塊和發(fā)送數(shù)據(jù)DMA控制器利用數(shù)據(jù)發(fā)送緩沖區(qū)進(jìn)行數(shù)據(jù)的發(fā)送,DSP的同步串行接口接收模塊和接收數(shù)據(jù)DMA控制器利用數(shù)據(jù)接收緩沖區(qū)進(jìn)行數(shù)據(jù)的接收,同時(shí),同步控制中斷信號(hào)在數(shù)據(jù)發(fā)送或接收的過(guò)程中對(duì)數(shù)據(jù)發(fā)送、數(shù)據(jù)接收進(jìn)行同步控制;這樣的同步機(jī)制使得對(duì)CPU的占用率大大降低;由于有了同步中斷控制信號(hào),在每一次中斷時(shí),都能對(duì)同步串行接口和DMA控制器進(jìn)行初始化,因此即使時(shí)鐘信號(hào)錯(cuò)誤或幀同步信號(hào)錯(cuò)誤,都能夠使數(shù)據(jù)傳輸自動(dòng)恢復(fù)正常。另外,本發(fā)明還能夠?qū)PU的數(shù)據(jù)處理能力進(jìn)行監(jiān)測(cè),可以較好地協(xié)調(diào)CPU資源分布;因此本發(fā)明所述的數(shù)據(jù)發(fā)送和接收方法的效率和可靠性均較高。
圖1是本發(fā)明所述方法的實(shí)施例流程圖。按照?qǐng)D1,本發(fā)明的第1步所述方法還包括對(duì)發(fā)送或接收數(shù)據(jù)進(jìn)行格式劃分,將發(fā)送或接收的數(shù)據(jù)以數(shù)據(jù)塊為單位劃分,每個(gè)數(shù)據(jù)塊包括多個(gè)數(shù)據(jù)幀,每個(gè)幀包括多個(gè)時(shí)隙,每個(gè)時(shí)隙包括多個(gè)比特。如果確定了每次數(shù)據(jù)發(fā)送或接收的數(shù)據(jù)塊的大小以及塊內(nèi)數(shù)據(jù)的劃分,就可以在步驟2設(shè)置通過(guò)數(shù)字信號(hào)處理器(DSP)的同步串行接口發(fā)送和接收數(shù)據(jù)時(shí)使用的數(shù)據(jù)傳送同步信號(hào),以及設(shè)置同步控制中斷信號(hào)。基于上述步驟1的數(shù)據(jù)格式的劃分,將設(shè)置數(shù)據(jù)傳送同步信號(hào)為設(shè)置幀同步信號(hào),使得在數(shù)據(jù)發(fā)送和接收過(guò)程中,每個(gè)幀的數(shù)據(jù)傳送過(guò)程同步一次;所述同步控制中斷信號(hào)為與數(shù)據(jù)傳送同步信號(hào)同步的中斷信號(hào),是DSP外部的中斷信號(hào),用于實(shí)現(xiàn)CPU、DMA控制器和同步串行接口的同步,通過(guò)數(shù)據(jù)發(fā)送以及數(shù)據(jù)接收時(shí)數(shù)據(jù)塊的同步控制實(shí)現(xiàn),具體在數(shù)據(jù)發(fā)送或接收數(shù)據(jù)塊的最后一個(gè)數(shù)據(jù)幀中向系統(tǒng)發(fā)出同步控制中斷信號(hào)實(shí)現(xiàn),更具體地說(shuō),為了在同步期間初始化同步串行接口和DMA,以及在一個(gè)數(shù)據(jù)塊中盡可能多發(fā)送數(shù)據(jù),在數(shù)據(jù)發(fā)送或數(shù)據(jù)接收時(shí),同步控制中斷信號(hào)在發(fā)送數(shù)據(jù)塊或接收數(shù)據(jù)塊的最后一個(gè)數(shù)據(jù)幀的后半段的時(shí)隙發(fā)出,在向系統(tǒng)發(fā)出同步控制中斷信號(hào)后,在數(shù)據(jù)發(fā)送或數(shù)據(jù)接收數(shù)據(jù)塊的最后一個(gè)數(shù)據(jù)幀中同步控制中斷信號(hào)發(fā)出時(shí)占用的時(shí)隙以及后續(xù)時(shí)隙停止數(shù)據(jù)的發(fā)送或接收。
在步驟3進(jìn)行設(shè)置數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū)設(shè)置,所述設(shè)置數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū)可以分別設(shè)置為多個(gè),例如設(shè)置兩個(gè)數(shù)據(jù)發(fā)送緩沖區(qū)和兩個(gè)數(shù)據(jù)接收緩沖區(qū),以提高數(shù)據(jù)發(fā)送和接收的速度;上述緩沖區(qū)的大小最好相同或?yàn)閿?shù)據(jù)發(fā)送或接收的數(shù)據(jù)塊大小的整數(shù)倍,這樣便于對(duì)緩沖的管理以及提高緩沖區(qū)存儲(chǔ)單元的利用率。
下面是本實(shí)施例具體的數(shù)據(jù)格式劃分、同步信號(hào)的設(shè)置以及緩沖區(qū)的設(shè)置內(nèi)容。將DSP同步串口需要處理的數(shù)據(jù)分為數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包含160幀(第0幀至第159幀),每幀32個(gè)時(shí)隙(第0時(shí)隙至第31時(shí)隙),每時(shí)隙8個(gè)比特(比特0至比特7)。DSP的同步串行接口信號(hào)包括幀同步輸入信號(hào)、時(shí)鐘輸入信號(hào)和輸入/輸出同步串行數(shù)據(jù)碼流。同時(shí),同步中斷信號(hào)為為穩(wěn)定的周期同步脈沖信號(hào),每160幀(與DSP需要處理的數(shù)據(jù)塊大小相同)產(chǎn)生一次,時(shí)序位置在第159幀的第16時(shí)隙至第31時(shí)隙之間。本例中DSP的同步串行接口的數(shù)據(jù)收發(fā)波形參考圖2。圖2中表示了DSP同步串口的幀同步輸入、時(shí)鐘輸入、同步串行數(shù)據(jù)碼流以及DSP外部中斷的時(shí)序關(guān)系。其中,幀同步輸入、時(shí)鐘輸入和DSP外部中斷信號(hào)需要由DSP外部電路產(chǎn)生。輸入幀同步為周期脈沖信號(hào),決定了每一幀的起始位置;輸入時(shí)鐘與輸入幀同步保持相位同步,圖中的時(shí)鐘信號(hào)為占空比50%的周期信號(hào),該時(shí)鐘決定了同步串口接收/發(fā)送同步數(shù)據(jù)碼流的速率;DSP外部中斷脈沖為周期脈沖信號(hào),每160幀產(chǎn)生一個(gè)脈沖,輸入到DSP的外部中斷輸入管腳,該脈沖信號(hào)的時(shí)序位置在第159幀的第16時(shí)隙至第31時(shí)隙之間,脈沖寬度取決于DSP對(duì)外部中斷信號(hào)的時(shí)序要求。
基于上述步驟,在步驟4即可進(jìn)行數(shù)據(jù)發(fā)送及接收,在數(shù)據(jù)傳送同步信號(hào)的控制下,DSP的同步串行接口發(fā)送模塊和發(fā)送數(shù)據(jù)DMA控制器利用數(shù)據(jù)發(fā)送緩沖區(qū)進(jìn)行數(shù)據(jù)的發(fā)送,DSP的同步串行接口接收模塊和接收數(shù)據(jù)DMA控制器利用數(shù)據(jù)接收緩沖區(qū)進(jìn)行數(shù)據(jù)的接收。參考圖3。
在圖3所示的數(shù)據(jù)流程中包含同步數(shù)據(jù)接收和同步數(shù)據(jù)發(fā)送2個(gè)部分。
對(duì)于同步數(shù)據(jù)接收,同步串行碼流輸入到DSP同步串行接口接收模塊,該模塊每收到一個(gè)時(shí)隙的數(shù)據(jù)就向DMA控制器1產(chǎn)生一個(gè)接收數(shù)據(jù)中斷,DMA控制器1響應(yīng)該中斷后負(fù)責(zé)將串行接口接收模塊收到的數(shù)據(jù)搬運(yùn)到接收數(shù)據(jù)緩沖區(qū)。為防止DMA控制器和CPU讀寫(xiě)數(shù)據(jù)發(fā)生沖突,2個(gè)接收緩沖區(qū)的選擇可以由DSP程序中的標(biāo)志位決定。如果DMA控制器1向接收數(shù)據(jù)緩沖區(qū)1搬運(yùn)數(shù)據(jù),則CPU處理接收數(shù)據(jù)緩沖區(qū)2的數(shù)據(jù);如果DMA控制器1向接收數(shù)據(jù)緩沖區(qū)2搬運(yùn)數(shù)據(jù),則CPU處理接收數(shù)據(jù)緩沖區(qū)1的數(shù)據(jù)。
對(duì)于同步數(shù)據(jù)發(fā)送,同步串行碼流從DSP同步串行接口發(fā)送模塊輸出,該模塊每發(fā)送一個(gè)時(shí)隙的數(shù)據(jù)就向DMA控制器2產(chǎn)生一個(gè)發(fā)送數(shù)據(jù)中斷,DMA控制器2響應(yīng)該中斷后負(fù)責(zé)將發(fā)送數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)搬運(yùn)到串行接口發(fā)送模塊。為防止DMA控制器和CPU讀寫(xiě)數(shù)據(jù)發(fā)生沖突,2個(gè)發(fā)送緩沖區(qū)的選擇也可以由DSP程序中的標(biāo)志位決定。如果DMA控制器2向發(fā)送數(shù)據(jù)緩沖區(qū)1搬運(yùn)數(shù)據(jù),則CPU處理發(fā)送數(shù)據(jù)緩沖區(qū)2的數(shù)據(jù);如果DMA控制器2向發(fā)送數(shù)據(jù)緩沖區(qū)1搬運(yùn)數(shù)據(jù),則CPU處理發(fā)送數(shù)據(jù)緩沖區(qū)1的數(shù)據(jù)。
同步控制中斷信號(hào)在數(shù)據(jù)發(fā)送或接收的過(guò)程中對(duì)DSP的發(fā)送和接收數(shù)據(jù)的DMA控制器、同步串行接口進(jìn)行數(shù)據(jù)發(fā)送、數(shù)據(jù)接收的同步控制,并對(duì)DSP的中央處理單元(CPU)進(jìn)行數(shù)據(jù)處理監(jiān)測(cè)。上述控制和監(jiān)測(cè)實(shí)際中是通過(guò)中斷服務(wù)程序?qū)崿F(xiàn)的。該中斷服務(wù)程序通過(guò)設(shè)置CPU處理完成標(biāo)志監(jiān)測(cè)CPU的處理能力,當(dāng)CPU處理能力足夠時(shí)置標(biāo)志為“1”,當(dāng)CPU處理能力不足時(shí)置標(biāo)志為“0”,因此在初始化時(shí)首先置標(biāo)志為“1”。中斷服務(wù)程序的具體步驟參考圖4。同步中斷信號(hào)發(fā)出時(shí),首先在步驟11進(jìn)入中斷服務(wù)程序,然后在步驟12通過(guò)CPU處理完成標(biāo)志判斷CPU的處理能力是否足夠,如果不夠,即置標(biāo)志為“0”,說(shuō)明CPU沒(méi)有及時(shí)完成數(shù)據(jù)塊的傳送操作,因此在步驟13發(fā)出CPU處理能力不足告警并進(jìn)行相應(yīng)的操作,然后進(jìn)行步驟14;如果CPU處理能力足夠,即標(biāo)志為“1”,說(shuō)明CPU已經(jīng)完成了數(shù)據(jù)塊的傳送操作,因此在步驟14設(shè)置標(biāo)志為“0”,這樣設(shè)置標(biāo)志可以在中斷服務(wù)程序結(jié)束之后通過(guò)該標(biāo)志告訴CPU,當(dāng)前DMA已經(jīng)完成了緩沖區(qū)數(shù)據(jù)的發(fā)送和接收,CPU可以對(duì)新的緩沖區(qū)數(shù)據(jù)進(jìn)行處理。在主程序中,如果CPU處理完緩沖區(qū)數(shù)據(jù)之后讀不到標(biāo)志為“0”的狀態(tài),將處于等待狀態(tài)。在步驟15讀取緩沖區(qū)選擇標(biāo)志,產(chǎn)生DMA控制器搬運(yùn)數(shù)據(jù)的目標(biāo)地址,接著在步驟16,無(wú)論DMA控制器和同步串口處于何種狀態(tài),都對(duì)DMA控制器和DSP同步串口進(jìn)行復(fù)位和初始化,這樣保證了即使產(chǎn)生幀同步輸入錯(cuò)誤或時(shí)鐘輸入錯(cuò)誤導(dǎo)致的數(shù)據(jù)傳送失敗都能得以恢復(fù),在最?lèi)毫拥那闆r下,DSP同步串行接口、DMA控制器和CPU之間的同步機(jī)制能夠在160幀以內(nèi)恢復(fù)正常,從而使本發(fā)明具有了可靠自愈的能力。
在與上述中斷服務(wù)程序配合的DSP的主程序中,在初始化階段,首先要對(duì)DSP相關(guān)寄存器進(jìn)行初始化,使DSP能夠正常運(yùn)轉(zhuǎn);然后設(shè)置CUP處理完成標(biāo)志和緩沖區(qū)選擇標(biāo)志,使DSP的同步機(jī)制處于初始狀態(tài);初始化DSP同步串口和DMA控制器,使DSP只對(duì)每幀的第0時(shí)隙至第15時(shí)隙進(jìn)行收發(fā),然后打開(kāi)中斷,并進(jìn)入主循環(huán)程序。之所以使DSP只對(duì)每幀的第0時(shí)隙至第15時(shí)隙進(jìn)行收發(fā),是因?yàn)镈SP的同步串口的所有時(shí)隙不能全部用于數(shù)據(jù)收發(fā)。因?yàn)榇薪涌跀?shù)據(jù)收發(fā)是一個(gè)連續(xù)的過(guò)程,而在DMA和同步串行接口初始化的時(shí)刻不能同時(shí)進(jìn)行數(shù)據(jù)收發(fā)操作,所以必須預(yù)留出一幀的最后幾個(gè)時(shí)隙不進(jìn)行數(shù)據(jù)收發(fā),而且同步中斷信號(hào)也產(chǎn)生于該時(shí)段,CPU進(jìn)入中斷服務(wù)程序后對(duì)DMA和同步串行接口進(jìn)行初始化。
在主循環(huán)程序中,DSP首先等待CPU處理完成標(biāo)志被中斷服務(wù)程序置為“0”,表示DMA控制器已經(jīng)完成了一個(gè)數(shù)據(jù)塊的搬運(yùn);然后DSP對(duì)緩沖區(qū)選擇標(biāo)志進(jìn)行判斷,選擇處理緩沖區(qū)1或緩沖區(qū)2的數(shù)據(jù)(包括發(fā)送緩沖區(qū)和接收緩沖區(qū)),然后由CPU對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)處理完成后,DSP將改變緩沖區(qū)選擇標(biāo)志,使下次循環(huán)操作中CPU和DMA控制器都切換緩沖區(qū);最后程序置CPU處理完成標(biāo)志為1,表示數(shù)據(jù)塊已經(jīng)處理完畢。
權(quán)利要求
1.一種基于數(shù)字信號(hào)處理器同步串行接口的數(shù)據(jù)發(fā)送和接收方法,包括(1)設(shè)置通過(guò)數(shù)字信號(hào)處理器(DSP)的同步串行接口發(fā)送和接收數(shù)據(jù)時(shí)使用的數(shù)據(jù)傳送同步信號(hào),以及設(shè)置同步控制中斷信號(hào);(2)設(shè)置數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū),在數(shù)據(jù)傳送同步信號(hào)的控制下,DSP的同步串行接口發(fā)送模塊和發(fā)送數(shù)據(jù)直接存取存儲(chǔ)器(DMA)控制器利用數(shù)據(jù)發(fā)送緩沖區(qū)進(jìn)行數(shù)據(jù)的發(fā)送,DSP的同步串行接口接收模塊和接收數(shù)據(jù)直接存取存儲(chǔ)器(DMA)控制器利用數(shù)據(jù)接收緩沖區(qū)進(jìn)行數(shù)據(jù)的接收;(3)由同步控制中斷信號(hào)在數(shù)據(jù)發(fā)送或接收的過(guò)程中對(duì)DSP的發(fā)送和接收數(shù)據(jù)的DMA控制器、同步串行接口進(jìn)行數(shù)據(jù)發(fā)送、數(shù)據(jù)接收的同步控制,并對(duì)DSP的中央處理單元(CPU)進(jìn)行數(shù)據(jù)處理監(jiān)測(cè)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于所述方法還包括對(duì)發(fā)送或接收數(shù)據(jù)進(jìn)行格式劃分,將發(fā)送或接收的數(shù)據(jù)以數(shù)據(jù)塊為單位劃分,每個(gè)數(shù)據(jù)塊包括多個(gè)數(shù)據(jù)幀,每個(gè)幀包括多個(gè)時(shí)隙,每個(gè)時(shí)隙包括多個(gè)比特。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于步驟(1)中所述設(shè)置數(shù)據(jù)傳送同步信號(hào)為設(shè)置幀同步信號(hào)。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于步驟(1)所述同步控制中斷信號(hào)為與數(shù)據(jù)傳送同步信號(hào)同步的中斷信號(hào),用于數(shù)據(jù)發(fā)送時(shí)數(shù)據(jù)塊的同步控制以及用于數(shù)據(jù)接收時(shí)數(shù)據(jù)塊的同步控制。
5.根據(jù)權(quán)利要求2所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于步驟(2)所述設(shè)置數(shù)據(jù)發(fā)送緩沖區(qū)和數(shù)據(jù)接收緩沖區(qū),為設(shè)置兩個(gè)數(shù)據(jù)發(fā)送緩沖區(qū),設(shè)置兩個(gè)數(shù)據(jù)接收緩沖區(qū),上述緩沖區(qū)的大小與數(shù)據(jù)發(fā)送或接收的數(shù)據(jù)塊大小相同。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于步驟(2)DSP的同步串行接口發(fā)送模塊和DMA控制器利用數(shù)據(jù)發(fā)送緩沖區(qū)進(jìn)行數(shù)據(jù)發(fā)送的步驟包括(A1)同步串行接口發(fā)送模塊發(fā)送數(shù)據(jù)時(shí),每輸出一個(gè)時(shí)隙的數(shù)據(jù)就向發(fā)送數(shù)據(jù)DMA控制器產(chǎn)生發(fā)送數(shù)據(jù)中斷;(A2)發(fā)送數(shù)據(jù)DMA控制器響應(yīng)中斷,將處于發(fā)送狀態(tài)的發(fā)送緩沖區(qū)的數(shù)據(jù)輸送到同步串行接口發(fā)送模塊發(fā)出,同時(shí)CPU將發(fā)送數(shù)據(jù)發(fā)送到非發(fā)送狀態(tài)的發(fā)送緩沖區(qū)。
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于步驟(2)DSP的同步串行接口接收模塊和DMA控制器利用數(shù)據(jù)接收緩沖區(qū)進(jìn)行數(shù)據(jù)接收的步驟包括(B1)同步串行接口接收模塊接收數(shù)據(jù)時(shí),每收到一個(gè)時(shí)隙的數(shù)據(jù)就向接收數(shù)據(jù)DMA控制器產(chǎn)生接收數(shù)據(jù)中斷;(B2)接收數(shù)據(jù)DMA控制器響應(yīng)中斷,將同步串行接口接收模塊接收的數(shù)據(jù)發(fā)送到處于接收狀態(tài)的接收緩沖區(qū),同時(shí)CPU將非接收狀態(tài)的接收緩沖區(qū)中數(shù)據(jù)輸出到系統(tǒng)。
8.根據(jù)權(quán)利要求2、3、4、5、6或7所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于所述步驟(3)通過(guò)在數(shù)據(jù)發(fā)送或接收數(shù)據(jù)塊的最后一個(gè)數(shù)據(jù)幀中向系統(tǒng)發(fā)出同步控制中斷信號(hào)實(shí)現(xiàn)。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于同步控制中斷信號(hào)發(fā)出后,對(duì)應(yīng)的中斷服務(wù)過(guò)程包括下述步驟(C1)判斷CPU是否完成發(fā)送和接收數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)的傳送操作,如果沒(méi)完成,發(fā)出CPU處理能力不足告警,否則,(C2)對(duì)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)DMA控制器和同步串行接口進(jìn)行復(fù)位和初始化。
10.根據(jù)權(quán)利要求8所述的數(shù)據(jù)發(fā)送和接收方法,其特征在于在向系統(tǒng)發(fā)出同步控制中斷信號(hào)后,在數(shù)據(jù)發(fā)送或數(shù)據(jù)接收數(shù)據(jù)塊的最后一個(gè)數(shù)據(jù)幀中同步控制中斷信號(hào)發(fā)出時(shí)占用的時(shí)隙以及后續(xù)時(shí)隙停止數(shù)據(jù)的發(fā)送或接收。
全文摘要
本發(fā)明公開(kāi)了一種基于數(shù)字信號(hào)處理器同步串行接口的數(shù)據(jù)發(fā)送和接收方法,該方法通過(guò)設(shè)置通過(guò)DSP的同步串行接口發(fā)送和接收數(shù)據(jù)時(shí)使用的數(shù)據(jù)傳送同步信號(hào)、同步控制中斷信號(hào)、數(shù)據(jù)發(fā)送緩沖區(qū)和接收緩沖區(qū),在數(shù)據(jù)傳送同步信號(hào)的控制下,同步串行接口發(fā)送模塊和發(fā)送數(shù)據(jù)DMA控制器進(jìn)行數(shù)據(jù)的發(fā)送,同步串行接口接收模塊和接收數(shù)據(jù)DMA控制器進(jìn)行數(shù)據(jù)的接收;由同步控制中斷信號(hào)在數(shù)據(jù)發(fā)送或接收的過(guò)程中對(duì)DSP的發(fā)送和接收數(shù)據(jù)的DMA控制器、同步串行接口進(jìn)行數(shù)據(jù)發(fā)送、數(shù)據(jù)接收的同步控制,并對(duì)DSP的CPU進(jìn)行數(shù)據(jù)處理監(jiān)測(cè)。這樣的同步機(jī)制使得對(duì)CPU的占用率大大降低;并在時(shí)鐘信號(hào)或幀同步信號(hào)錯(cuò)誤時(shí),都能使數(shù)據(jù)傳輸自動(dòng)恢復(fù)正常。
文檔編號(hào)H04L7/00GK1463114SQ0212203
公開(kāi)日2003年12月24日 申請(qǐng)日期2002年5月31日 優(yōu)先權(quán)日2002年5月31日
發(fā)明者李東濱 申請(qǐng)人:華為技術(shù)有限公司