專利名稱:一種多通信協(xié)議檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信協(xié)議技術(shù)領(lǐng)域,特別是一種多通信協(xié)議檢測方法。
背景技術(shù):
目前處理多協(xié)議系統(tǒng)中,每個通信協(xié)議所有獨(dú)立的接收緩沖區(qū),獨(dú)立判定各個通 信協(xié)議;數(shù)據(jù)接收大部分中斷服務(wù)程序中完成,如果多個協(xié)議接收緩沖區(qū)需要處理接收數(shù) 據(jù),延長中斷服務(wù)時間,并且每個協(xié)議都需要一個接收數(shù)據(jù)緩沖區(qū),需要占用大量RAM區(qū)資 源。
發(fā)明內(nèi)容
本發(fā)明提供一種多通信協(xié)議檢測方法,以解決現(xiàn)有技術(shù)不能對多個通信協(xié)議統(tǒng)一 處理的技術(shù)問題。為了實(shí)現(xiàn)本發(fā)明的發(fā)明目的,采用的技術(shù)方案如下一種多通信協(xié)議檢測方法,所述方法包括當(dāng)接收到合法完整的協(xié)議幀,則檢查協(xié)議幀的格式,根據(jù)協(xié)議幀的格式調(diào)取相應(yīng) 的協(xié)議處理服務(wù)進(jìn)行協(xié)議處理。作為一種優(yōu)選方案,所述方法還包括設(shè)置數(shù)據(jù)緩沖區(qū)用于接收協(xié)議幀,通過接收指針指向緩沖區(qū)的起始地址;當(dāng)數(shù)據(jù)緩沖區(qū)接收到數(shù)據(jù),則用協(xié)議指針指向接收到的數(shù)據(jù)的地址;定時檢測協(xié)議指針,如果協(xié)議指針與接收指針一致,則判斷為沒有接收到協(xié)議幀, 如果協(xié)議指針與接收指針不一致,則判斷為接收到協(xié)議幀,檢查協(xié)議指針指向的數(shù)據(jù)是否 為合法完整的協(xié)議幀,如果協(xié)議指針指向的數(shù)據(jù)為合法完整的協(xié)議幀,則檢查協(xié)議幀的格 式,根據(jù)協(xié)議幀的格式調(diào)取相應(yīng)的協(xié)議處理服務(wù)進(jìn)行處理,完成協(xié)議處理后,令協(xié)議指針指 向接收指針?biāo)赶虻牡刂?。作為進(jìn)一步的優(yōu)選方案,通過如下方法檢查協(xié)議指針指向的數(shù)據(jù)是否為合法完整 的協(xié)議幀比較接收指針與協(xié)議指針的差值,如果差值大于或等于協(xié)議最小幀的長度,則判 斷為接收到完整的協(xié)議幀,否則判斷為協(xié)議幀未接收完成;當(dāng)判斷為接收到完整的協(xié)議幀后,則檢查協(xié)議指針指向的數(shù)據(jù),檢查是否符合協(xié) 議幀的特征,如果符合,則判斷為接收到合法完整的協(xié)議幀,檢查協(xié)議幀的格式,根據(jù)協(xié)議 幀的格式調(diào)取相應(yīng)的協(xié)議處理服務(wù)進(jìn)行處理,否則協(xié)議指針地址加一。本發(fā)明通過一個循環(huán)數(shù)據(jù)接收鏈表完成接收數(shù)據(jù)的緩存;通過多個通信協(xié)議指針 與接收指針之間關(guān)系,完成各個通信協(xié)議幀的判定和處理,并且互不影響。
圖1為本發(fā)明實(shí)施例的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步詳細(xì)的說明。本發(fā)明實(shí)施例為多種通信協(xié)議檢測方法的編程技術(shù),在一個通信接口中有多種通 信協(xié)議接收、發(fā)送;本實(shí)施例通過一個循環(huán)數(shù)據(jù)接收鏈表完成接收數(shù)據(jù)的緩存;在初始狀 態(tài)下,接收指針與各協(xié)議指針指向循環(huán)接收緩沖區(qū)的同一地址,當(dāng)有數(shù)據(jù)接收時,數(shù)據(jù)存放 到循環(huán)接收緩沖區(qū),并且接收指針自動循環(huán)相加。如圖1所述,本實(shí)施例操作步驟如下1、判定協(xié)議指針與接收指針是否相等;2、如果相等,表示循環(huán)接收緩沖區(qū)無接收數(shù)據(jù),立即退出;3、如果不等,進(jìn)入相應(yīng)的協(xié)議幀判定服務(wù)程序;4、接收指針與協(xié)議指針之差是否大于或等于協(xié)議幀的最小長度;5、如果小于,表示未接收到完幀協(xié)議幀,立即退出;6、如果大于或等于,進(jìn)入?yún)f(xié)議幀格式判定服務(wù)程序;7、是否符合協(xié)議幀;8、如果符合,進(jìn)入相應(yīng)的協(xié)議幀服務(wù)程序,對接收數(shù)據(jù)作相應(yīng)的功能處理,最后重 新將協(xié)議指針指向接收指針?biāo)赶虻耐坏刂?,等待下一次協(xié)議判定。9、如果不符合,協(xié)議指針地址自動循環(huán)加一,重復(fù)1-9判定過程。以上為單個協(xié)議判定過程,如果有多個協(xié)議需要判定,分別用各協(xié)議指針替換上 述協(xié)議指針及相應(yīng)的協(xié)議幀判定服務(wù)程序;即可完成多協(xié)議處理。
權(quán)利要求
1.一種多通信協(xié)議檢測方法,其特征在于,所述方法包括當(dāng)接收到合法完整的協(xié)議幀,則檢查協(xié)議幀的格式,根據(jù)協(xié)議幀的格式調(diào)取相應(yīng)的協(xié) 議處理服務(wù)進(jìn)行協(xié)議處理。
2.根據(jù)權(quán)利要求1所述的檢測方法,其特征在于,所述方法還包括設(shè)置數(shù)據(jù)緩沖區(qū)用于接收協(xié)議幀,通過接收指針指向緩沖區(qū)的起始地址;當(dāng)數(shù)據(jù)緩沖區(qū)接收到數(shù)據(jù),則用協(xié)議指針指向接收到的數(shù)據(jù)的地址;定時檢測協(xié)議指針,如果協(xié)議指針與接收指針一致,則判斷為沒有接收到協(xié)議幀,如果 協(xié)議指針與接收指針不一致,則判斷為接收到協(xié)議幀,檢查協(xié)議指針指向的數(shù)據(jù)是否為合 法完整的協(xié)議幀,如果協(xié)議指針指向的數(shù)據(jù)為合法完整的協(xié)議幀,則檢查協(xié)議幀的格式,根 據(jù)協(xié)議幀的格式調(diào)取相應(yīng)的協(xié)議處理服務(wù)進(jìn)行處理,完成協(xié)議處理后,令協(xié)議指針指向接 收指針?biāo)赶虻牡刂贰?br>
3.根據(jù)權(quán)利要求2所述的檢測方法,其特征在于,通過如下方法檢查協(xié)議指針指向的 數(shù)據(jù)是否為合法完整的協(xié)議幀比較接收指針與協(xié)議指針的差值,如果差值大于或等于協(xié)議最小幀的長度,則判斷為 接收到完整的協(xié)議幀,否則判斷為協(xié)議幀未接收完成;當(dāng)判斷為接收到完整的協(xié)議幀后,則檢查協(xié)議指針指向的數(shù)據(jù),檢查是否符合協(xié)議幀 的特征,如果符合,則判斷為接收到合法完整的協(xié)議幀,檢查協(xié)議幀的格式,根據(jù)協(xié)議幀的 格式調(diào)取相應(yīng)的協(xié)議處理服務(wù)進(jìn)行處理,否則協(xié)議指針地址加一。
全文摘要
本發(fā)明涉及通信協(xié)議技術(shù)領(lǐng)域,特別是一種多通信協(xié)議檢測方法。一種多通信協(xié)議檢測方法,所述方法包括當(dāng)接收到合法完整的協(xié)議幀,則檢查協(xié)議幀的格式,根據(jù)協(xié)議幀的格式調(diào)取相應(yīng)的協(xié)議處理服務(wù)進(jìn)行協(xié)議處理。本發(fā)明通過一個循環(huán)數(shù)據(jù)接收鏈表完成接收數(shù)據(jù)的緩存;通過多個通信協(xié)議指針與接收指針之間關(guān)系,完成各個通信協(xié)議幀的判定和處理,并且互不影響。
文檔編號H04L29/06GK102075376SQ20101057133
公開日2011年5月25日 申請日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者雷剛 申請人:廣東雅達(dá)電子股份有限公司