專利名稱:多通道數(shù)據(jù)鏈路協(xié)議處理器及其處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字通信領(lǐng)域,更具體地說,涉及一種實(shí)現(xiàn)非標(biāo)準(zhǔn)數(shù)據(jù)鏈路層通信協(xié)議處理器的裝置與方法。
在申請?zhí)枮?8115418、名稱為“使用高級數(shù)據(jù)鏈路協(xié)議的半雙工通信的傳輸設(shè)備”的專利中,公開了一種通過在標(biāo)準(zhǔn)的HDLC控制器上增加邏輯電路改善其使用功能的技術(shù)。
在申請?zhí)枮?9106796、名稱為“用于互聯(lián)網(wǎng)業(yè)務(wù)的協(xié)議處理系統(tǒng)”的專利中,公開了一種使用串行線和ATM網(wǎng)絡(luò)的互聯(lián)網(wǎng)業(yè)務(wù)的協(xié)議處理系統(tǒng)。
在申請?zhí)枮?7108964、名稱為“交換機(jī)協(xié)議處理器軟件的加載系統(tǒng)及其方法”的專利中,公開了一種軟件加載方法。
在申請?zhí)枮?7198175、名稱為“遠(yuǎn)程工作站和自動呼叫分配系統(tǒng)間適配數(shù)據(jù)鏈路連接的方法和系統(tǒng)”的專利中,公開了一種適配器,用于使遠(yuǎn)程工作站和自動呼叫分配系統(tǒng)之間的諸信號匹配。
在專利號為5,664,091,名稱為“Method and system for a voidingunnecessary retransmissions using a selective rejection data link protocol”的美國專利中,公開了一種控制數(shù)據(jù)包重發(fā)的方法和系統(tǒng)。
在專利號為5,724,515,名稱為“Packet radio communication system”的美國專利中,公開了一種分組無線通信系統(tǒng)中的協(xié)議,有標(biāo)準(zhǔn)協(xié)議和非標(biāo)準(zhǔn)協(xié)議兩種形式。
在專利號為6,263,443,名稱為“Simplified data link protocol processor”的美國專利中,公開了一種用于高速傳輸系統(tǒng)的簡化的數(shù)據(jù)鏈路協(xié)議。
可以看出,上述專利中有一些是針對標(biāo)準(zhǔn)的數(shù)據(jù)鏈路協(xié)議進(jìn)行改善以滿足特定應(yīng)用,有一些是針對協(xié)議本身提出了改進(jìn)的方法以達(dá)到更好的效果。但是對于自定義的數(shù)據(jù)鏈路層協(xié)議,卻沒有一種適用的處理器及其處理方法。
本發(fā)明可通過以下技術(shù)方案實(shí)現(xiàn),構(gòu)造一種多通道數(shù)據(jù)鏈路協(xié)議處理器,其特征在于,所述處理器與外界的接口包括一個時分復(fù)用TDMA輸入輸出接口及一個與主控CPU連接的CPU接口;所述處理器的內(nèi)部包括由CPU接口向TDMA接口發(fā)送數(shù)據(jù)的共享發(fā)送緩沖區(qū)、協(xié)議幀生成模塊以及發(fā)送緩沖區(qū),由TDMA接口接收數(shù)據(jù)到CPU接口的接收緩沖區(qū)、協(xié)議幀搜索模塊、協(xié)議幀處理模塊以及共享接收緩沖區(qū),還包括與所述CPU接口連接的主機(jī)命令接口模塊以及用于完成I/O操作任務(wù)的I/O接口模塊。
本發(fā)明的多通道數(shù)據(jù)鏈路協(xié)議處理器的處理方法包括以下步驟啟動處理器;執(zhí)行主機(jī)命令接口模塊,再執(zhí)行I/O接口模塊;判斷在發(fā)送緩沖區(qū)中是否有“發(fā)送半滿觸發(fā)”標(biāo)志;如果有“發(fā)送半滿觸發(fā)”標(biāo)志,則將由CPU接口輸入到共享發(fā)送緩沖區(qū)中的數(shù)據(jù)經(jīng)協(xié)議幀生成模塊和發(fā)送緩沖區(qū)發(fā)送到TDMA接口;如果沒有“發(fā)送半滿觸發(fā)”標(biāo)志,或者所述發(fā)送步驟已執(zhí)行完畢,則判斷在接收緩沖區(qū)中是否有“接收半滿觸發(fā)”標(biāo)志;如果有“接收半滿觸發(fā)”標(biāo)志,則由TDMA接口輸入到接收緩沖區(qū)中的數(shù)據(jù)經(jīng)協(xié)議幀搜索模塊、協(xié)議幀處理模塊和共享接收緩沖區(qū)后被CPU接口所接收;如果沒有“接收半滿觸發(fā)”標(biāo)志,或者所述接收步驟已執(zhí)行完畢,則返回到所述執(zhí)行主機(jī)命令接口模塊的步驟,并重復(fù)執(zhí)行所述各步驟。
在本發(fā)明所述處理方法的所述發(fā)送步驟中,從共享發(fā)送緩沖區(qū)中取出數(shù)據(jù),由協(xié)議幀生成模塊生成協(xié)議幀后,將生成的協(xié)議幀輸?shù)桨l(fā)送緩沖區(qū),發(fā)送緩沖區(qū)中的數(shù)據(jù)由發(fā)送指針控制不停發(fā)送,此步驟對各個通道執(zhí)行一次。
在本發(fā)明所述處理方法的所述接收步驟中,協(xié)議幀搜索模塊從接收緩沖區(qū)的數(shù)據(jù)中取出完整的協(xié)議幀,然后將其輸入到協(xié)議幀處理模塊進(jìn)行處理,再將處理后的數(shù)據(jù)送到共享接收緩沖區(qū),此步驟將對各個通道執(zhí)行一次。
在本發(fā)明所述處理方法中,所述協(xié)議幀搜索模塊的處理過程包括以下步驟如果在接收緩沖區(qū)中有“接收半滿觸發(fā)”標(biāo)志,則開始搜索接收緩沖區(qū)剛接收到的數(shù)據(jù)的一半?yún)^(qū)域;判斷在此一半?yún)^(qū)域中是否可找到幀頭,如果可找到幀頭并且該幀頭正好處于緩沖區(qū)的頂部,則驗(yàn)證協(xié)議幀的完整性并取出;如果可找出幀頭但該幀頭不是位于緩沖區(qū)的頂部,則將此一半?yún)^(qū)域中由幀頭到底部的數(shù)據(jù)保存到特定內(nèi)存中供下次合并使用,再將此一半?yún)^(qū)域中由幀頭到頂部的數(shù)據(jù)與上次保存的數(shù)據(jù)合并成一個協(xié)議幀,然后驗(yàn)證協(xié)議幀的完整性并取出;如果沒有找到幀頭,并且此區(qū)域頂部和上次尾部能組合出幀頭,則驗(yàn)證協(xié)議幀的完整性并取出。
本發(fā)明的MDPP是一個靈活的數(shù)據(jù)鏈路協(xié)議控制器,運(yùn)行可靠,且可方便升級,可為產(chǎn)品的開發(fā)提供良好的基礎(chǔ)。
下面將結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明。
圖3是本發(fā)明多通道數(shù)據(jù)鏈路協(xié)議處理方法的邏輯流程圖;圖4是本發(fā)明中協(xié)議幀搜索模塊的工作流程圖。
由圖2可見,本發(fā)明提出的MDPP與外界有兩個接口,一個是與主控CPU連接的CPU接口,另一個是時分復(fù)用多個時隙的串行信號輸入輸出接口(TDMA接口),其中的n個通道與n個時隙相對應(yīng)。該處理器由四個緩沖區(qū)和五個模塊組成。四個緩沖區(qū)分別為發(fā)送緩沖區(qū)(TxBuf)1、接收緩沖區(qū)(RxBuf)4、共享發(fā)送緩沖區(qū)(ShTxBuf)3和共享接收緩沖區(qū)(ShRxBuf)7。其中發(fā)送緩沖區(qū)1和接收緩沖區(qū)4的大小為
圖1中協(xié)議幀大小的兩倍,即2×n×m比特;共享發(fā)送緩沖區(qū)3和共享接收緩沖區(qū)7的大小按協(xié)議處理后需要的存儲空間進(jìn)行分配。五個模塊分別是協(xié)議幀生成模塊2、協(xié)議幀搜索模塊5、協(xié)議幀處理模塊6、I/O接口模塊8和主機(jī)命令接口模塊9。其中,協(xié)議幀生成模塊2的功能是將共享發(fā)送緩沖區(qū)3中的數(shù)據(jù)按照自定義協(xié)議的要求組合成協(xié)議幀,放入發(fā)送緩沖區(qū)1中;協(xié)議幀搜索模塊5將接收緩沖區(qū)4中接收到的比特按照幀的定義進(jìn)行合并查找,并將找到的合法幀送入?yún)f(xié)議幀處理模塊6,由協(xié)議幀處理模塊6對協(xié)議幀進(jìn)行校驗(yàn)和解析,并將處理后的數(shù)據(jù)放入共享接收緩沖區(qū)7;I/O接口模塊8和主機(jī)命令接口模塊9完成系統(tǒng)和外部交互信息的功能。
該處理器的實(shí)現(xiàn)可以有多種方法,采用硬件的并行實(shí)現(xiàn)方法時,上述多個模塊可以同時并行工作,實(shí)現(xiàn)多通道協(xié)議處理器;采用軟件的串行實(shí)施方法時,需要合理地計(jì)算協(xié)議幀的處理時間,進(jìn)行合適的調(diào)度。
圖3所示為采用軟件的串行實(shí)施方法時的邏輯流程圖,從圖3中可見,該裝置的串行邏輯流程包括如下步驟步驟301、開始啟動多通道協(xié)議處理器;步驟302、由主機(jī)命令接口模塊9完成自定義的和主控CPU一些命令交互信息;步驟303、由I/O接口模塊8完成一些I/O操作任務(wù);步驟304、判斷發(fā)送緩沖區(qū)1中是否有“發(fā)送半滿觸發(fā)”標(biāo)志,是則執(zhí)行步驟305,否則執(zhí)行步驟306,其中判斷半滿觸發(fā)的標(biāo)準(zhǔn)是看接收指針是否處于接收緩沖區(qū)的一半位置或底部,如果是則稱為半滿觸發(fā),該標(biāo)準(zhǔn)對于發(fā)送緩沖區(qū)也同樣適用;步驟305、如果有“發(fā)送半滿觸發(fā)”標(biāo)志,則從共享發(fā)送緩沖區(qū)3中取出數(shù)據(jù),由協(xié)議幀生成模塊2生成協(xié)議幀,并將生成的協(xié)議幀放入發(fā)送緩沖區(qū)1,發(fā)送緩沖區(qū)中的數(shù)據(jù)由發(fā)送指針控制不停發(fā)送,對應(yīng)物理線路上的TDMA比特流,該步驟將對各個通道執(zhí)行一次;步驟306、判斷接收緩沖區(qū)4中是否有“接收半滿觸發(fā)”標(biāo)志,是則執(zhí)行步驟307,否則返回步驟302;步驟307、如果有“接收半滿觸發(fā)”標(biāo)志,則根據(jù)接收緩沖區(qū)4中的數(shù)據(jù),進(jìn)入?yún)f(xié)議幀搜索模塊5,然后進(jìn)入?yún)f(xié)議幀處理模塊6,再將處理后的數(shù)據(jù)送到共享接收緩沖區(qū)7,該步驟將對各個通道執(zhí)行一次。
圖4所示為協(xié)議幀搜索模塊5的處理流程,該模塊是MDPP中較為關(guān)鍵的一個模塊,從圖中可以看出,該處理過程包括以下步驟步驟401、在上述的步驟306中,如果有“接收半滿觸發(fā)”標(biāo)志,則開始搜索接收緩沖區(qū)4剛接收到數(shù)據(jù)的一半?yún)^(qū)域;步驟402、判斷在此一半?yún)^(qū)域中是否可找到幀頭,是則執(zhí)行步驟404,否則執(zhí)行步驟403;步驟403、如果沒有找到幀頭,則看此區(qū)域頂部和上次緩沖區(qū)尾部能否組合出幀頭,如果可以組合出幀頭,則此區(qū)域能找出一個完整的幀,再執(zhí)行步驟408,如果不能組合出幀頭,則回到401。
步驟404、再判斷該幀頭是否正好處于緩沖區(qū)的頂部,如果是則進(jìn)入步驟408,否則執(zhí)行步驟405;步驟405、如果找出的幀頭不在頂部,則將此一半?yún)^(qū)域中由幀頭到底部的數(shù)據(jù)保存到特定內(nèi)存中,供下次合并使用;步驟406、判斷上次是否有保存數(shù)據(jù),是則進(jìn)入步驟407,否由返回步驟401;步驟407、如果上次有保存數(shù)據(jù),則將此一半?yún)^(qū)域中由幀頭到頂部的數(shù)據(jù)與上次保存的數(shù)據(jù)合并成一個協(xié)議幀;步驟408、驗(yàn)證協(xié)議幀的完整性并取出,同時進(jìn)行相應(yīng)標(biāo)志的設(shè)定。
從以上的描述中可以看出,從主控CPU的角度來看,在發(fā)送方向,主控CPU將需要處理的多路上層數(shù)據(jù)放入MDPP的ShTxBuf,MDPP充當(dāng)了數(shù)據(jù)鏈路層協(xié)議處理器,生成自定義的多通道協(xié)議幀以比特流的形式進(jìn)入物理傳輸線路;在接收方向,多通信協(xié)議幀的比特流進(jìn)入MDPP,它對收取的比特流進(jìn)行協(xié)議幀的搜索與生成,并進(jìn)行解析和處理,取出協(xié)議數(shù)據(jù)送入ShRxBuf,供主控CPU提?。煌ㄐ艑Χ说氖瞻l(fā)過程與此相同,因此,對于兩邊主控CPU來說,中間MDPP充當(dāng)?shù)慕巧褪菍S玫亩嗤ǖ罃?shù)據(jù)鏈路鏈路協(xié)議處理器,完成了數(shù)據(jù)鏈路層的通信任務(wù)。
將圖2所示的多通道數(shù)據(jù)鏈路協(xié)議處理器及其處理方法運(yùn)用到GPRS項(xiàng)目的分組控制單元中,可取得較好的使用效果。在使用中可采取DSP的實(shí)現(xiàn)方案,因此整個實(shí)現(xiàn)是充分利用DSP提供的硬件資源,用軟件來實(shí)現(xiàn)整個邏輯流程,其實(shí)現(xiàn)流程圖可以完全參考圖3所示。具體實(shí)施效果證明,本發(fā)明的MDPP是一個靈活的數(shù)據(jù)鏈路協(xié)議控制器,運(yùn)行可靠,且可方便升級,為產(chǎn)品的開發(fā)提供了良好的基礎(chǔ)。
權(quán)利要求
1.一種多通道數(shù)據(jù)鏈路協(xié)議處理器,其特征在于,所述處理器與外界的接口包括一個時分復(fù)用TDMA輸入輸出接口及一個與主控CPU連接的CPU接口;所述處理器的內(nèi)部包括由CPU接口向TDMA接口發(fā)送數(shù)據(jù)的共享發(fā)送緩沖區(qū)(3)、協(xié)議幀生成模塊(2)以及發(fā)送緩沖區(qū)(1),由TDMA接口接收數(shù)據(jù)到CPU接口的接收緩沖區(qū)(4)、協(xié)議幀搜索模塊(5)、協(xié)議幀處理模塊(6)以及共享接收緩沖區(qū)(7),還包括與所述CPU接口連接的主機(jī)命令接口模塊(9)以及用于完成I/O操作任務(wù)的I/O接口模塊(8)。
2.根據(jù)權(quán)利要求1所述的多通道數(shù)據(jù)鏈路協(xié)議處理器,其特征在于,所述發(fā)送緩沖區(qū)(1)與接收緩沖區(qū)(2)的大小為協(xié)議幀大小的兩倍。
3.一種多通道數(shù)據(jù)鏈路協(xié)議處理器的處理方法,其特征在于,包括以下步驟啟動處理器;執(zhí)行主機(jī)命令接口模塊,再執(zhí)行I/O接口模塊;判斷在發(fā)送緩沖區(qū)中是否有“發(fā)送半滿觸發(fā)”標(biāo)志;如果有“發(fā)送半滿觸發(fā)”標(biāo)志,則將由CPU接口輸入到共享發(fā)送緩沖區(qū)中的數(shù)據(jù)經(jīng)協(xié)議幀生成模塊和發(fā)送緩沖區(qū)發(fā)送到TDMA接口;如果沒有“發(fā)送半滿觸發(fā)”標(biāo)志,或者所述發(fā)送步驟已執(zhí)行完畢,則判斷在接收緩沖區(qū)中是否有“接收半滿觸發(fā)”標(biāo)志;如果有“接收半滿觸發(fā)”標(biāo)志,則由TDMA接口輸入到接收緩沖區(qū)中的數(shù)據(jù)經(jīng)協(xié)議幀搜索模塊、協(xié)議幀處理模塊和共享接收緩沖區(qū)后被CPU接口所接收;如果沒有“接收半滿觸發(fā)”標(biāo)志,或者所述接收步驟已執(zhí)行完畢,則返回到所述執(zhí)行主機(jī)命令接口模塊的步驟,并重復(fù)執(zhí)行所述各步驟。
4.根據(jù)權(quán)利要求3所述的多通道數(shù)據(jù)鏈路協(xié)議處理器的處理方法,其特征在于,其中執(zhí)行主機(jī)命令接口模塊可完成自定義的和主控CPU命令交互信息;執(zhí)行I/O接口模塊可完成I/O操作任務(wù)。
5.根據(jù)權(quán)利要求3所述的多通道數(shù)據(jù)鏈路協(xié)議處理器的處理方法,其特征在于,在所述發(fā)送步驟中,從共享發(fā)送緩沖區(qū)中取出數(shù)據(jù),由協(xié)議幀生成模塊生成協(xié)議幀后,將生成的協(xié)議幀輸?shù)桨l(fā)送緩沖區(qū),發(fā)送緩沖區(qū)中的數(shù)據(jù)由發(fā)送指針控制不停發(fā)送,此步驟對各個通道執(zhí)行一次。
6.根據(jù)權(quán)利要求3所述的多通道數(shù)據(jù)鏈路協(xié)議處理器的處理方法,其特征在于,在所述接收步驟中,協(xié)議幀搜索模塊從接收緩沖區(qū)的數(shù)據(jù)中取出完整的協(xié)議幀,然后將其輸入到協(xié)議幀處理模塊進(jìn)行處理,再將處理后的數(shù)據(jù)送到共享接收緩沖區(qū),此驟將對各個通道執(zhí)行一次。
7.據(jù)權(quán)利要求3或6所述的多通道數(shù)據(jù)鏈路協(xié)議處理器的處理方法,其特征在于,所述協(xié)議幀搜索模塊的處理過程包括以下步驟如果在接收緩沖區(qū)中有“接收半滿觸發(fā)”標(biāo)志,則開始搜索接收緩沖區(qū)剛接收到的數(shù)據(jù)的一半?yún)^(qū)域;判斷在此一半?yún)^(qū)域中是否可找到幀頭,如果可找到幀頭并且該幀頭正好處于緩沖區(qū)的頂部,則驗(yàn)證協(xié)議幀的完整性并取出;如果可找出幀頭但該幀頭不是位于緩沖區(qū)的頂部,則將此一半?yún)^(qū)域中由幀頭到底部的數(shù)據(jù)保存到特定內(nèi)存中供下次合并使用,再將此一半?yún)^(qū)域中由幀頭到頂部的數(shù)據(jù)與上次保存的數(shù)據(jù)合并成一個協(xié)議幀,然后驗(yàn)證協(xié)議幀的完整性并取出;如果沒有找到幀頭,并且此區(qū)域頂部和上次尾部能組合出幀頭,則驗(yàn)證協(xié)議幀的完整性并取出。
全文摘要
本發(fā)明涉及一種多通道數(shù)據(jù)鏈路協(xié)議處理器及其處理方法,其中處理器包括由CPU接口向TDMA接口發(fā)送數(shù)據(jù)的共享發(fā)送緩沖區(qū)、協(xié)議幀生成模塊以及發(fā)送緩沖區(qū),由TDMA接口接收數(shù)據(jù)到CPU接口的接收緩沖區(qū)、協(xié)議幀搜索模塊、協(xié)議幀處理模塊以及共享接收緩沖區(qū),還包括主機(jī)命令接口模塊以及I/O接口模塊。啟動處理器后,通過判斷發(fā)送緩沖區(qū)有無“發(fā)送半滿觸發(fā)”標(biāo)志、以及接收緩沖區(qū)有無“接收半滿觸發(fā)”標(biāo)志,分別執(zhí)行發(fā)送或接收數(shù)據(jù)的任務(wù)。本發(fā)明的處理器和處理方法為一般非標(biāo)準(zhǔn)數(shù)據(jù)鏈路層的協(xié)議處理器的實(shí)現(xiàn)提供一種行之有效的解決方案。
文檔編號H04L29/06GK1427598SQ0113919
公開日2003年7月2日 申請日期2001年12月21日 優(yōu)先權(quán)日2001年12月21日
發(fā)明者謝建良, 何瑛, 趙哲 申請人:深圳市中興通訊股份有限公司上海第二研究所