專利名稱:多端口通信協(xié)議的交換方法
技術領域:
本發(fā)明涉及一種通信協(xié)議的交換方法,特別是一種用于多端口通信協(xié)議的交換方法。
背景技術:
嵌入式系統(tǒng)中包含多種通信方式的端口,操作使用這些端口非常的麻煩,經(jīng)常是 用到那一種端口,才對該端口進行開發(fā),端口之間需要通信的時候還需要制定通信協(xié)議,一 個嵌入式系統(tǒng)中往往可能會制定多種的這樣通信協(xié)議。當重新開發(fā)一個嵌入式系統(tǒng)時以前 制定的通信協(xié)議也不一定適合新的應用,耗費了大量的勞動力,因此迫切需要一種能夠處 理多種端口通信,有著良好的系統(tǒng)適應性的多端口通信交換方法。因此,需要一種新的技術方案以解決上述問題。
發(fā)明內(nèi)容
針對上述現(xiàn)有技術所存在的問題和不足,本發(fā)明的目的是提供一種標準化的多端 口通信協(xié)議的交換方法。為實現(xiàn)上述目的,本發(fā)明多端口通信協(xié)議的交換方法可采用如下技術方案一種多端口通信協(xié)議的交換方法,該方法包括(1)提供若干端口,每個端口均具有端口狀態(tài)表,該端口狀態(tài)表定義有端口地址、 端口種類和通信方式三種屬性以及端口初始化、端口發(fā)送數(shù)據(jù)和端口接收數(shù)據(jù)三種訪問方 法;(2)為端口提供通信協(xié)議,所述通信協(xié)議包括操作、目標端口地址、數(shù)據(jù)長度、數(shù)據(jù) 及校驗和。本發(fā)明多端口通信協(xié)議的交換方法與現(xiàn)有技術相比利用端口狀態(tài)表記錄端口屬 性和狀態(tài)制定了標準化的端口,以及標準化的通信協(xié)議,使該多端口通信協(xié)議的交換方法 實現(xiàn)標準化,從而可適應大部分的嵌入式系統(tǒng)。
圖1為本發(fā)明多端口通信協(xié)議的交換方法中端口及通信協(xié)議的定義示意圖。圖2為本發(fā)明多端口通信協(xié)議的交換方法中端口地址結構的示意圖。圖3為本發(fā)明多端口通信協(xié)議的交換方法中端口初始化的訪問方法流程圖。圖4為本發(fā)明多端口通信協(xié)議的交換方法中端口發(fā)送數(shù)據(jù)的訪問方法流程圖。圖5為本發(fā)明多端口通信協(xié)議的交換方法中端口接收數(shù)據(jù)的訪問方法流程圖。
具體實施例方式下面結合附圖和具體實施方式
,進一步闡明本發(fā)明,應理解下述具體實施方式
僅 用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領域技術人員對本發(fā)明的各種等價形式的修改均落于本申請所附權利要求所限定的范圍。請參閱圖1及圖2所示,本發(fā)明公開了一種多端口通信協(xié)議的交換方法,該方法包 括部分(1)提供若干端口,每個端口均具有端口狀態(tài)表,該端口狀態(tài)表定義有端口 地址、端口種類和通信方式三種屬性以及端口初始化、端口發(fā)送數(shù)據(jù)和端口接收數(shù)據(jù)三種 訪問方法;部分O)為端口提供通信協(xié)議,所述通信協(xié)議包括操作、目標端口地址、數(shù)據(jù)長 度、數(shù)據(jù)及校驗和。其中,上述部分(1)中所示的端口中所述端口地址是整個方法訪問端口的基礎,端口地址由一個32位的整數(shù)表示,高 16位表示端口的類型,低16位表示端口的編號,所述類型是對端口的分類,編號是對同一 種類型端口的編號;所述端口種類是對端口訪問的表示,該端口種類分為單發(fā)端口、單收端口及收發(fā) 端口,端口只能發(fā)送數(shù)據(jù)的為單發(fā)端口,端口只能接收數(shù)據(jù)的為單收端口,端口既可以發(fā)送 數(shù)據(jù)也可以接收數(shù)據(jù)的為收發(fā)端口;所述通信方式是對端口能否同時收發(fā)數(shù)據(jù)的表示,該通信方式包括單工模式及雙 工模式,收發(fā)數(shù)據(jù)不能夠同時進行的為單工模式,收發(fā)數(shù)據(jù)能夠同時進行的為雙工模式;所述狀態(tài)表示當前端口的工作狀態(tài)。而上述部分O)中所示的通信協(xié)議中所述操作是表示該條通信的功能,包括初始化、發(fā)送數(shù)據(jù)和接收數(shù)據(jù);所述目標端口地址是表示要操作的目標端口 ;所述數(shù)據(jù)長度是表示該條通信所有數(shù)據(jù)的長度;所述數(shù)據(jù)是該條通信的有效數(shù)據(jù);所述校驗和是該條通信的所有數(shù)據(jù)的累加和。請參閱圖3所示,上述部分(1)中的端口初始化的訪問方法包括以下步驟(1)發(fā)送初始化操作命令;(2)系統(tǒng)接收并解析該操作命令后,首先查找端口狀態(tài)表是否存在要初始化的端 口,如果端口存在,則判斷數(shù)據(jù)區(qū)是否為空,空就刪除該端口,否則就修改該端口 ;如果端口 不存在,就將該端口添加到端口狀態(tài)表中。請參閱圖4所示,上述部分(1)中的端口發(fā)送數(shù)據(jù)的訪問方法包括以下步驟(1)發(fā)送一個發(fā)送數(shù)據(jù)操作命令;(2)系統(tǒng)接收并解析該操作命令后,首先判斷端口地址的類型,如果地址是單個端 口的地址,就在端口狀態(tài)表里查找該端口是否存在,不存在就返回操作失敗信息并結束發(fā) 送操作流程,如果端口存在就轉至步驟(3);如果端口地址屬于組地址或者群地址,就將端 口狀態(tài)表里所有滿足地址要求的端口都找出來逐個轉至步驟(3)。(3)查看端口的種類是否為單收種類,如果是就發(fā)出操作失敗信息并結束發(fā)送 操作流程;不是就查看當前端口所處的狀態(tài),端口狀態(tài)若為接收狀態(tài)就判斷端口的通信方 式是否為單工模式,是就循環(huán)判斷端口狀態(tài)是否為空閑狀態(tài),當為空閑狀態(tài)時就轉至步驟 (4),不是就修改端口狀態(tài)表記錄為收發(fā)狀態(tài),發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送結束后再次判斷端口的狀態(tài),查看端口狀態(tài)是否為發(fā)送狀態(tài),如果是發(fā)送狀態(tài)就將其修改為空閑狀態(tài)并發(fā)出操作 成功信息后結束發(fā)送操作流程,如果是收發(fā)狀態(tài)就將其修改為發(fā)送狀態(tài)并返回操作成功信 息后結束發(fā)送操作流程,其他狀態(tài)就直接返回操作成功信息并結束發(fā)送操作流程;端口狀 態(tài)若為發(fā)送狀態(tài)就循環(huán)判斷端口狀態(tài)是否為空閑狀態(tài),當為空閑狀態(tài)時就轉至步驟; 端口狀態(tài)若為空閑就直接轉至步驟;端口狀態(tài)若為收發(fā)就循環(huán)判斷端口狀態(tài)是否為空 閑或者發(fā)送,如果為空閑轉至步驟(4),如果為接收就執(zhí)行前面端口狀態(tài)為接收描述的流 程;(4)修改端口狀態(tài)為發(fā)送狀態(tài),然后發(fā)送數(shù)據(jù),再次修改端口狀態(tài)為空閑狀態(tài),最 后發(fā)出操作成功信息并結束發(fā)送操作流程。請參閱圖5所示,上述部分(1)中的端口接收數(shù)據(jù)的訪問方法包括以下步驟(1)端口接收到數(shù)據(jù)后首先將1秒鐘計時開關置成關閉狀態(tài),接下來判斷接收命 令緩沖區(qū)是否為空,如果為空就將端口地址添加到接收命令緩沖區(qū),否則就直接將接收到 的數(shù)據(jù)添加到接收命令緩沖區(qū),計算校驗和和數(shù)據(jù)長度,然后判斷端口狀態(tài)是否為空閑,如 果是就將其修改為接收狀態(tài),最后啟動1秒鐘計時;(2) 一個端口在1秒鐘之內(nèi)沒有收到數(shù)據(jù),系統(tǒng)就認為該端口接收數(shù)據(jù)結束,將命 令緩沖區(qū)里的數(shù)據(jù)返回給用戶或者轉發(fā)到其他端口,每一個端口都設置有一個對應的1秒 鐘計時模塊;(3)查看計時開關是否置成關閉,如果是就退出1秒鐘計時模塊,否則就判斷1秒 鐘計時是否到達,如果到達了 1秒鐘,系統(tǒng)將接收命令緩沖區(qū)的數(shù)據(jù)轉存到用戶接收緩沖 區(qū),清空接收命令緩沖區(qū)、校驗和和數(shù)據(jù)長度,然后判斷端口狀態(tài),如果為收發(fā)狀態(tài)就將其 改為發(fā)送狀態(tài)后退出1秒鐘計時,如果為接收狀態(tài)就將其改為空閑狀態(tài)后退出1秒鐘計時, 如果是其他的狀態(tài)就直接退出1秒鐘計時。本發(fā)明多端口通信協(xié)議的交換方法與現(xiàn)有技術相比利用端口狀態(tài)表記錄端口屬 性和狀態(tài)制定了標準化的端口,以及標準化的通信協(xié)議,使該多端口通信協(xié)議的交換方法 實現(xiàn)標準化,從而可適應大部分的嵌入式系統(tǒng)。并且,本發(fā)明多端口通信協(xié)議的交換方法還 提供了對端口初始化,發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的標準操作,在這些標準操作中,充分的考慮了 端口收發(fā)數(shù)據(jù)的沖突問題,以及數(shù)據(jù)的群發(fā)和組發(fā)解決方法,可以很方便的實現(xiàn)對端口進 行數(shù)據(jù)的組發(fā)和群發(fā)。
權利要求
1.一種多端口通信協(xié)議的交換方法,其特征在于該方法包括(1)提供若干端口,每個端口均具有端口狀態(tài)表,該端口狀態(tài)表定義有端口地址、端口 種類和通信方式三種屬性以及端口初始化、端口發(fā)送數(shù)據(jù)和端口接收數(shù)據(jù)三種訪問方法;(2)為端口提供通信協(xié)議,所述通信協(xié)議包括操作、目標端口地址、數(shù)據(jù)長度、數(shù)據(jù)及校 驗和。
2.根據(jù)權利要求1所述的多端口通信協(xié)議的交換方法,其特征在于 在端口中,所述端口地址是整個方法訪問端口的基礎,端口地址由一個32位的整數(shù)表示,高16位 表示端口的類型,低16位表示端口的編號,所述類型是對端口的分類,編號是對同一種類 型端口的編號;所述端口種類是對端口訪問的表示,該端口種類分為單發(fā)端口、單收端口及收發(fā)端口, 端口只能發(fā)送數(shù)據(jù)的為單發(fā)端口,端口只能接收數(shù)據(jù)的為單收端口,端口既可以發(fā)送數(shù)據(jù) 也可以接收數(shù)據(jù)的為收發(fā)端口;所述通信方式是對端口能否同時收發(fā)數(shù)據(jù)的表示,該通信方式包括單工模式及雙工模 式,收發(fā)數(shù)據(jù)不能夠同時進行的為單工模式,收發(fā)數(shù)據(jù)能夠同時進行的為雙工模式; 所述狀態(tài)表示當前端口的工作狀態(tài)。
3.根據(jù)權利要求1或2所述的多端口通信協(xié)議的交換方法,其特征在于 在通信協(xié)議中,所述操作是表示該條通信的功能,包括初始化、發(fā)送數(shù)據(jù)和接收數(shù)據(jù); 所述目標端口地址是表示要操作的目標端口 ; 所述數(shù)據(jù)長度是表示該條通信所有數(shù)據(jù)的長度; 所述數(shù)據(jù)是該條通信的有效數(shù)據(jù); 所述校驗和是該條通信的所有數(shù)據(jù)的累加和。
4.根據(jù)權利要求1所述的多端口通信協(xié)議的交換方法,其特征在于所述端口初始化 的訪問方法包括以下步驟(1)發(fā)送初始化操作命令;(2)系統(tǒng)接收并解析該操作命令后,首先查找端口狀態(tài)表是否存在要初始化的端口,如 果端口存在,則判斷數(shù)據(jù)區(qū)是否為空,空就刪除該端口,否則就修改該端口 ;如果端口不存 在,就將該端口添加到端口狀態(tài)表中。
5.根據(jù)權利要求2所述的多端口通信協(xié)議的交換方法,其特征在于所述端口發(fā)送數(shù) 據(jù)的訪問方法包括以下步驟(1)發(fā)送一個發(fā)送數(shù)據(jù)操作命令;(2)系統(tǒng)接收并解析該操作命令后,首先判斷端口地址的類型,如果地址是單個端口的 地址,就在端口狀態(tài)表里查找該端口是否存在,不存在就返回操作失敗信息并結束發(fā)送操 作流程,如果端口存在就轉至步驟(3);如果端口地址屬于組地址或者群地址,就將端口狀 態(tài)表里所有滿足地址要求的端口都找出來逐個轉至步驟(3)。(3)查看端口的種類是否為單收種類,如果是就發(fā)出操作失敗信息并結束發(fā)送操作流 程;不是就查看當前端口所處的狀態(tài),端口狀態(tài)若為接收狀態(tài)就判斷端口的通信方式是否 為單工模式,是就循環(huán)判斷端口狀態(tài)是否為空閑狀態(tài),當為空閑狀態(tài)時就轉至步驟(4),不是就修改端口狀態(tài)表記錄為收發(fā)狀態(tài),發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送結束后再次判斷端口的狀態(tài),查 看端口狀態(tài)是否為發(fā)送狀態(tài),如果是發(fā)送狀態(tài)就將其修改為空閑狀態(tài)并發(fā)出操作成功信息 后結束發(fā)送操作流程,如果是收發(fā)狀態(tài)就將其修改為發(fā)送狀態(tài)并返回操作成功信息后結束 發(fā)送操作流程,其他狀態(tài)就直接返回操作成功信息并結束發(fā)送操作流程;端口狀態(tài)若為發(fā) 送狀態(tài)就循環(huán)判斷端口狀態(tài)是否為空閑狀態(tài),當為空閑狀態(tài)時就轉至步驟;端口狀態(tài) 若為空閑就直接轉至步驟;端口狀態(tài)若為收發(fā)就循環(huán)判斷端口狀態(tài)是否為空閑或者發(fā) 送,如果為空閑轉至步驟G),如果為接收就執(zhí)行前面端口狀態(tài)為接收描述的流程;(4)修改端口狀態(tài)為發(fā)送狀態(tài),然后發(fā)送數(shù)據(jù),再次修改端口狀態(tài)為空閑狀態(tài),最后發(fā) 出操作成功信息并結束發(fā)送操作流程。
6.根據(jù)權利要求1或2所述的多端口通信協(xié)議的交換方法,其特征在于所述端口接 收數(shù)據(jù)的訪問方法包括以下步驟(1)端口接收到數(shù)據(jù)后首先將1秒鐘計時開關置成關閉狀態(tài),接下來判斷接收命令緩 沖區(qū)是否為空,如果為空就將端口地址添加到接收命令緩沖區(qū),否則就直接將接收到的數(shù) 據(jù)添加到接收命令緩沖區(qū),計算校驗和和數(shù)據(jù)長度,然后判斷端口狀態(tài)是否為空閑,如果是 就將其修改為接收狀態(tài),最后啟動1秒鐘計時;(2)—個端口在1秒鐘之內(nèi)沒有收到數(shù)據(jù),系統(tǒng)就認為該端口接收數(shù)據(jù)結束,將命令緩 沖區(qū)里的數(shù)據(jù)返回給用戶或者轉發(fā)到其他端口,每一個端口都設置有一個對應的1秒鐘計 時模塊;(3)查看計時開關是否置成關閉,如果是就退出1秒鐘計時模塊,否則就判斷1秒鐘計 時是否到達,如果到達了 1秒鐘,系統(tǒng)將接收命令緩沖區(qū)的數(shù)據(jù)轉存到用戶接收緩沖區(qū),清 空接收命令緩沖區(qū)、校驗和和數(shù)據(jù)長度,然后判斷端口狀態(tài),如果為收發(fā)狀態(tài)就將其改為 發(fā)送狀態(tài)后退出1秒鐘計時,如果為接收狀態(tài)就將其改為空閑狀態(tài)后退出1秒鐘計時,如果 是其他的狀態(tài)就直接退出1秒鐘計時。
全文摘要
本發(fā)明提供一種多端口通信協(xié)議的交換方法,其利用端口狀態(tài)表記錄端口屬性和狀態(tài)制定了標準化的端口,以及標準化的通信協(xié)議,使該多端口通信協(xié)議的交換方法實現(xiàn)標準化,從而可適應大部分的嵌入式系統(tǒng)。
文檔編號H04L12/56GK102082725SQ201010569618
公開日2011年6月1日 申請日期2010年12月2日 優(yōu)先權日2010年12月2日
發(fā)明者凌海軍 申請人:南京萊斯信息技術股份有限公司