專利名稱:網管系統和傳輸設備間數據發送及接收方法
技術領域:
本發明涉及網管系統主控單板和傳輸設備的業務單板之間大數據量數 據的發送和接收傳輸方法。
背景技術:
現有網管的層次結構中,板間通訊口是處于網管系統和傳輸設備間的接 口,如圖1所示。單板間大量數據可靠高效傳輸機制是由一些模塊組成的,包括發送任 務、接收任務、分組包任務、定時任務等任務,以及發送隊列,此外還包括 發送緩沖區和接收緩沖區等兩個緩沖區。在現有的通訊機制中,因為效率的原因,不能使用復雜的通訊協議,但 是又要充分保證通訊的可靠行。所以怎么實現簡單高效,但是可靠性強的協 議和通訊機制成為目前急需解決的課題。另外,因為單板業務種類不斷增多,數據量成倍增加,由于以前網管和 傳輸設備之間沒有統一的分包機制,導致每加一塊新的單板,都要做一次分 包處理,大大增加了工作代價,網管系統和傳輸設備之間的通訊效率急待改進。發明內容本發明要解決的技術問題是提供一種網管系統和傳輸設備間簡單高效、 可靠性強的數據傳輸方法。為了解決上述技術問題,本發明提出了一種網管系統發送數據到傳輸設備的方法,包含如下步驟(a)發送任務從發送隊列獲取消息數據,將所述消息數據放入發送緩 沖區中;(b)當下行隨機存取存儲器RAM需要寫數據,且發送緩沖區不空時, 發送任務從發送緩沖區中取出消息數據,寫入下行RAM中。進一步地,上述方法還可具有以下特點,所述步驟(b)中,發送任務 從所述發送緩沖區取出消息數據后,判斷是否需要分包,如果是,將所述消 息數據進行分包,將分包后的發送數據寫入下行RAM中。進一步地,上述方法還可具有以下特點,所述步驟(b)中,發送任務 首先讀取下行RAM的控制字,如果所述控制字表明當前下行RAM需要寫 數據或下行RAM數據已被正確讀取,則釋放上一次寫入RAM的消息數據, 將消息數據寫入下行RAM后置發送次數為1。進一步地,上述方法還可具有以下特點,所述步驟(b)中,發送任務 首先讀取下行RAM的控制字,如果所述控制字表明下行RAM中的數據還 未被讀取,發送次數加l,并判斷發送次數是否已達到最大發送次數,如果 是,置發送次數為O,釋放上一次寫入RAM中的消息數據。進一步地,上述方法還可具有以下特點,所述步驟(b)中,發送任務 首先讀取下行RAM的控制字,如果所述控制字表明被讀取的數據校驗出錯, 則再次寫入上一次寫入下行RAM的消息數據,發送次數加l,并判斷發送 次數是否已達到最大發送次數,如果是,置發送次數為0,釋放本次寫入 RAM中的消息數據。進一步地,上述方法還可具有以下特點,所述步驟(b)中,發送任務 首先讀取下行RAM的控制字,如果所述控制字表明讀下行數據出錯,則發 送次數加l,并判斷發送次數是否已達到最大發送次數,如果是,置發送次 數為O,釋放上一次寫入RAM中的消息數據。進一步地,上述方法還可具有以下特點,傳輸設備收到網管系統發送的 所有消息數據后,向網管系統發送一成功報文;如果網管系統在指定時間內 沒有收到所述成功報文,則判斷發送失敗,重新進行消息數據的發送,重新 發送消息數據的次數達到指定次數時,終結當前發送過程。一種網管系統從傳輸設備接收數據的方法,傳輸設備上傳數據至上行 RAM,產生中斷信號,接收任務收到中斷信號后,從上行RAM中讀取數據。進一步地,上述方法還可具有以下特點,所述接收任務收到一組分包數 據時,對所述分包數據按照分包數據的序列號進行組包處理。進一步地,上述方法還可具有以下特點,接收任務設置一定時器,接收 任務接收分包數據時,將收到的分包數據緩存,設置同組分包數據中未收到 的分包數據的中序列號最小的包為預期包,當預期包發生改變時定時器復 位,如果定時器超時還未收到預期包,接收任務終止當前接收進程。本發明提出的傳輸方法,保證了板間大數據量通訊的可靠性和高效性。 其中,本發明通過發送緩沖區和雙口 RAM控制字,實現通訊的流量控制和 丟失報文重發功能,保證了通訊的可靠性;通過通訊口統一分包組包實現了 大數據傳輸對業務層透明;在接收單板大量數據時,用中斷方式,保證數據 傳輸的速度,實現了通訊的高效性;在接收端組包時采用亂序數據報緩沖機 制和超時要求單板重發,保證了可靠性。
圖1板間通訊示意圖;圖2單板間大數據量通訊機制;圖3本發明發送數據流程圖;圖4本發明從緩沖區到雙口 RAM寫數據處理流程圖。
具體實施方式
本發明設計了 一個具備流量控制和重傳機制的板間通訊子系統,通過這 個子系統能夠保證板間大數據量通訊的可靠性和高效性。如圖2所示,所述 通訊口通訊模塊包含如下模塊發送任務單元,接收任務單元,分組包任務 單元,定時任務單元,以及發送隊列,此外還包括發送緩沖區和接收緩沖區 兩個緩沖區,下行RAM (隨機存取存儲器)和上行RAM,其中上行RAM 和下4亍RAM可以-使用一個雙口 RAM。發送任務在發送隊列、發送緩沖區、下行RAM三者之間進行輪詢,利
用緩沖機制實現流量控制和簡單重傳功能。本發明從網管系統到傳輸設備之間的發送數據流程描述如圖3所示,具體包含如下步驟步驟310,網管代理上層業務處理模塊把下發消息數據發給發送隊列, 發送隊列接收消息數據;步驟320,發送任務單元定時從發送隊列獲取消息數據,并將所獲得的 消息數據放入發送緩沖區;當發送隊列有消息且發送緩沖區不滿,發送任務單元就從發送隊列中取 出消息數據,放到發送緩沖區中。步驟330,發送緩沖區非空,獲取下行雙口 RAM控制權,如果失敗, 則返回;否則,根據當前下行RAM讀寫控制字狀態,分別進行下述處理1 )如果當前需要寫新數據,則寫新數據至下行RAM,并置發送次數為1;2) 主控單板已經正確讀取數據,則釋放原有消息;如果發送緩沖區不 空,則寫新數據至下行RAM,并將發送次^t置l,否則置0;3) 如果主控單板還沒有讀數據,則發送次數加1;如果發送次數已經 達到最大值,則置發送次數為O,并釋放消息;4) 如果主控單板讀數據校驗出錯,則重新寫一遍上一次寫入的消息,發送次數加1;如果發送次數已經達到最值,則置發送次數為0,并釋放消 自 5) 如果主控單板讀數據出錯,則發送次數加1;如果發送次數已經達 到最值,則置發送次數為O,并釋放消息。步驟340,當步驟330中判斷需要寫數據(如下行RAM數據被成功讀 取),且發送緩沖區不空,則發送任務從發送緩沖區取出消息數據,判斷是 否需要分包,如果需要,轉入步驟360,否則,轉入步驟370;步驟360,將所取出的消息數據進行分包處理,轉入步驟370,步驟370,將分包數據寫入下行RAM中,返回310。
對于發送任務在收到大報文后分包下發,當單板接收端成功接收到所有分包報文后,應當向發送端發送一成功報文;發送端在發送完成之后隨即啟 動一計時器,如杲計時器超時仍然沒有收到接收端上報的成功消息,那么判 定為發送失敗而重新開始分包發送過程。為了避免可能的無限循環發送,連 續啟動指定次數(如三次)重發機制后仍然不能成功則終結當前發送進程(歸 為通訊層的內部處理,不需要向網管上報命令失敗消息)。本發明提出的網管系統從傳輸設備接收數據的方法,從上行雙口 RAM 到接收緩沖區采取中斷方式,具體流程如下步驟410,接收任務單元收到中斷信號;傳輸設備上傳數據至上行RAM,產生中斷信號,接收任務單元收到中 斷信號;步驟420,接收任務單元獲取上行雙口 RAM控制權,如果失敗,則直 接返回;否則,從上行雙口 RAM取數據至接收緩沖區;步驟430,如果取數據沒有成功,則直接返回;步驟440,釋放上行雙口 RAM控制權;步驟450,釋放取出來的數據。其中,步驟420中,涉及到接收組包處理,具體如下1 )計算一共取到了多少個消息,當接收端在接收到一組多包報文后, 應當依照收到數據中的序列號(報文頭中)來進行報文合并。如果接收端收 到的數據包沒有嚴格按照正確的順序,等待下一預期的數據包,以實現數據 包的序列順序恢復處理。2)為了避免可能出現的對預期包的無限等待,需要對當前接收進程設 置一計時器,在計時器超時前緩存所有收到的屬于當前大包的子包,期間預 期包始終保持為還未收到的子包中序號最小的包,計時器不作復位處理;當 預期包發生改變時計時器重新復位。如果計時器超時仍然沒有收到預期包, 那么接收端立即判定接收失敗,結束當前接收進程(包括釋放接收緩沖區)。 不需要向發送端返回一接收失敗報文以達到中止發送端繼續發送的目的,因
為實際情況是當接收端通過計時器判定失敗之前,發送端已經全部發送完畢 了,所以此時的失敗報文將沒意義。實施例圖2中是一個完整的發送和接收數據的流程。1. 當有大量數據下發時,發送任務定時從發送隊列獲取消息,并將數據放入發送緩沖區。當下行RAM中數據已被成功讀取且發送緩沖區不空, 則發送任務從緩沖區取出多條消息數據,如果是大包消息數據則啟動分包機 制,然后將消息數據寫入下行RAM中。利用緩沖機制實現流量控制,如出 現丟包或發送失敗則啟動簡單重傳功能,采取輪詢方式。如圖4所示。2. 當傳輸設備有大量數據上傳,則采取中斷方式從上行雙口 RAM到 接收緩沖區。如果是分包數據則進行組包處理。
權利要求
1、 一種網管系統發送數據到傳輸設備的方法,包含如下步驟(a) 發送任務從發送隊列獲取消息數據,將所述消息數據放入發送緩 沖區中;(b) 當下行隨機存取存儲器RAM需要寫數據,且發送緩沖區不空時, 發送任務從發送緩沖區中取出消息數據,寫入下行RAM中。
2、 如權利要求l所述的方法,其特征在于,所述步驟(b)中,發送任 務從所述發送緩沖區取出消息數據后,判斷是否需要分包,如果是,將所述 消息數據進行分包,將分包后的發送數據寫入下行RAM中。
3、 如權利要求l所述的方法,其特征在于,所述步驟(b)中,發送任 務首先讀取下行RAM的控制字,如果所述控制字表明當前下行RAM需要 寫數據或下行RAM數據已被正確讀取,則釋放上一次寫入RAM的消息數 據,將消息數據寫入下行RAM后置發送次數為1。
4、 如權利要求l所述的方法,其特征在于,所述步驟(b)中,發送任 務首先讀取下行RAM的控制字,如果所述控制字表明下行RAM中的數據 還未被讀取,發送次數加l,并判斷發送次數是否已達到最大發送次數,如 果是,置發送次數為0,釋放上一次寫入RAM中的消息數據。
5、 如權利要求l所述的方法,其特征在于,所述步驟(b)中,發送任 務首先讀取下行RAM的控制字,如果所述控制字表明被讀取的數據校驗出 錯,則再次寫入上一次寫入下行RAM的消息數據,發送次數加l,并判斷 發送次數是否已達到最大發送次數,如果是,置發送次數為O,釋放本次寫 入RAM中的消息數據。
6、 如權利要求l所述的方法,其特征在于,所述步驟(b)中,發送任 務首先讀取下行RAM的控制字,如果所述控制字表明讀下行數據出錯,則 發送次數加l,并判斷發送次數是否已達到最大發送次數,如果是,置發送 次數為0,釋放上一次寫入RAM中的消息數據。
7、 如權利要求1或2所述的方法,其特征在于,傳輸設備收到網管系 統發送的所有消息數據后,向網管系統發送一成功報文;如果網管系統在指定時間內沒有收到所述成功報文,則判斷發送失敗,重新進行消息數據的發 送,重新發送消息數據的次數達到指定次數時,終結當前發送過程。
8、 一種網管系統從傳輸設備接收數據的方法,傳輸設備上傳數據至上行RAM,產生中斷信號,接收任務收到中斷信號后,從上行RAM中讀取數據。
9、 如權利要求8所述的方法,其特征在于,所述接收任務收到一組分 包數據時,對所述分包數據按照分包數據的序列號進行組包處理。
10、 如權利要求9所述的方法,其特征在于,接收任務設置一定時器, 接收任務接收分包數據時,將收到的分包數據緩存,設置同組分包數據中未 收到的分包數據的中序列號最小的包為預期包,當預期包發生改變時定時器 復位,如果定時器超時還未收到預期包,接收任務終止當前接收進程。
全文摘要
本發明提出一種網管系統發送數據到傳輸設備的方法,包含如下步驟(a)發送任務從發送隊列獲取消息,將所述消息數據放入發送緩沖區中;(b)當下行隨機存取存儲器RAM需要寫數據,且發送緩沖區不空時,發送任務從發送緩沖區中取出消息數據,寫入下行RAM中。本發明還提出一種網管系統從傳輸設備接收數據的方法,傳輸設備上傳數據至上行RAM,產生中斷信號,接收任務收到中斷信號后,從上行RAM中讀取數據。
文檔編號H04L12/24GK101145968SQ20071014010
公開日2008年3月19日 申請日期2007年8月2日 優先權日2007年8月2日
發明者宇 洪 申請人:中興通訊股份有限公司