專利名稱:一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒ê脱b置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒ê脱b置。
背景技術(shù):
近幾年,隨著智能卡在金融、商業(yè)、交通等行業(yè)中的應(yīng)用推廣,需要在智能卡上實(shí)現(xiàn)和支持的應(yīng)用越來(lái)越多。智能卡不僅具有數(shù)據(jù)存儲(chǔ)功能,同時(shí)具有命令處理和數(shù)據(jù)安全保護(hù)等功能??▋?nèi)部數(shù)據(jù)和密鑰受到內(nèi)置的智能卡操作系統(tǒng)的保護(hù),外部不可能越過(guò)COS的控制直接對(duì)卡內(nèi)的數(shù)據(jù)或密鑰進(jìn)行操作。智能卡可以使用接觸或非接觸式接口與外部系統(tǒng)進(jìn)行通訊,被廣泛應(yīng)用于金融、電信、交通、身份認(rèn)證等對(duì)安全要求較高的領(lǐng)域。多應(yīng)用智能卡與單應(yīng)用智能卡相比,更便于用戶攜帶、使用和管理。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷由于多應(yīng)用集成往往需要平臺(tái)具備更大的數(shù)據(jù)存儲(chǔ)空間和更強(qiáng)的數(shù)據(jù)處理能力,而智能卡作為一種移動(dòng)安全設(shè)備,其存儲(chǔ)空間和數(shù)據(jù)處理能力都是有限的。特別是在使用智能卡同時(shí)支持多個(gè)復(fù)雜的應(yīng)用,而應(yīng)用又具有復(fù)雜邏輯時(shí),對(duì)空間和時(shí)間響應(yīng)的要求更高,現(xiàn)有的單管道傳輸機(jī)制已無(wú)法對(duì)智能卡進(jìn)行方便地處理。
發(fā)明內(nèi)容
本發(fā)明提供了一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒ê脱b置,用于解決現(xiàn)有技術(shù)中單管道數(shù)據(jù)傳輸?shù)娜毕?。本發(fā)明提供了一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒?,包括以下步驟Al、等待接收數(shù)據(jù)包;A2、根據(jù)接收到的數(shù)據(jù)包生成消息,對(duì)所述消息進(jìn)行判斷,并根據(jù)所述數(shù)據(jù)包所包含的管道ID,從自身存儲(chǔ)的上下文中檢索所述管道的信息;如果沒(méi)有從所述上下文中檢索到所述管道的信息,則發(fā)送用于表示管道不存在的響應(yīng),并返回步驟Al ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為關(guān)閉狀態(tài),且所述消息不是打開管道命令,則發(fā)送用于表示管道未打開的響應(yīng),并返回步驟Al ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為關(guān)閉狀態(tài),且所述消息為打開管道命令,則執(zhí)行步驟A4 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為管道創(chuàng)建通知時(shí),則執(zhí)行步驟A3 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為管道管理命令時(shí),則執(zhí)行步驟A7 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為配置項(xiàng)管理命令時(shí),則執(zhí)行步驟AS ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為其他命令時(shí),則執(zhí)行步驟A13 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為事件時(shí),則執(zhí)行步驟A14 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為響應(yīng)時(shí),則執(zhí)行步驟A15 ;A3、將所述管道創(chuàng)建通知中的管道信息保存到所述上下文中,通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),并返回步驟Al ;A4、判斷所述打開管道命令是否包含參數(shù),如果是,則執(zhí)行步驟A5 ;否則,執(zhí)行步驟A6 ;A5、通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng),并返回步驟Al ;A6、根據(jù)與所述管道連接的端口的ID,檢索所述上下文,獲取所述端口上處于打開狀態(tài)的管道的數(shù)量,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為打開狀態(tài),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),并返回步驟Al,所述響應(yīng)包含獲取的處于打開狀態(tài)的管道的數(shù)量;A7、對(duì)所述上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ;AS、判斷所述配置項(xiàng)管理命令是否包含參數(shù),如果是,則執(zhí)行步驟AlO ;否則,執(zhí)行步驟A9 ;A9、通過(guò)所述管道發(fā)送用于表示命令格式錯(cuò)誤的響應(yīng),并返回步驟Al ;A10、根據(jù)所述配置項(xiàng)管理命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù),判斷是否檢索到配置項(xiàng)參數(shù),如果是,則執(zhí)行步驟A12 ;否則,執(zhí)行步驟All ;AU、通過(guò)所述管道發(fā)送用于表示配置項(xiàng)參數(shù)不可識(shí)別的響應(yīng),并返回步驟Al ;A12、對(duì)檢索到的配置項(xiàng)參數(shù)進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ;A13、根據(jù)所述命令進(jìn)行相應(yīng)的處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ;A14、處理所述事件,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ;A15、處理所述響應(yīng),并返回步驟Al。本發(fā)明還提供了一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)难b置,包括接收模塊,用于接收數(shù)據(jù)包;生成模塊,用于根據(jù)所述接收模塊接收到的數(shù)據(jù)包生成消息;第一判斷模塊,用于對(duì)所述消息進(jìn)行判斷;存儲(chǔ)模塊,用于存儲(chǔ)上下文;第一檢索模塊,用于根據(jù)所述接收模塊接收到的數(shù)據(jù)包所包含的管道ID,從所述存儲(chǔ)模塊存儲(chǔ)的上下文中檢索所述管道的信息;第一處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為管道創(chuàng)建通知時(shí),將所述管道創(chuàng)建通知中的管道信息保存到所述上下文中,觸發(fā)發(fā)送模塊;第二判斷模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為關(guān)閉狀態(tài),且所述第一判斷模塊判斷所述消息為打開管道命令時(shí),判斷所述打開管道命令是否包含參數(shù);第二處理模塊,用于在所述第二判斷模塊判斷所述打開管道命令不包含參數(shù)時(shí),根據(jù)與所述管道連接的端口的ID,檢索所述上下文,獲取所述端口上處于打開狀態(tài)的管道的數(shù)量,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為打開狀態(tài),并觸發(fā)發(fā)送模塊;第三處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為管道管理命令時(shí),對(duì)所述上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,并觸發(fā)發(fā)送模塊;第三判斷模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為配置項(xiàng)管理命令時(shí),判斷所述配置項(xiàng)管理命令是否包含參數(shù);第二檢索模塊,用于在所述第三判斷模塊判斷所述配置項(xiàng)管理命令包含參數(shù)時(shí),根據(jù)所述配置項(xiàng)管理命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù);第四處理模塊,用于在所述第二檢索模塊檢索到配置項(xiàng)參數(shù)時(shí),對(duì)檢索到的配置項(xiàng)參數(shù)進(jìn)行處理,并觸發(fā)發(fā)送模塊;第五處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為事件時(shí),處理所述事件,并觸發(fā)發(fā)送模塊;第六處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為響應(yīng)時(shí),處理所述響應(yīng);發(fā)送模塊,用于在所述第一檢索模塊沒(méi)有從所述上下文中檢索到所述管道的信息時(shí),發(fā)送用于表示管道不存在的響應(yīng);在接收到所述第一處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng);在所述第二判斷模塊判斷所述打開管道命令包含參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng);在接收到所述第二處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),所述響應(yīng)包含獲取的處于打開狀態(tài)的管道的數(shù)量;在所述第三判斷模塊判斷所述配置項(xiàng)管理命令不包含參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示命令格式錯(cuò)誤的響應(yīng);在所述第二檢索模塊未檢索到配置項(xiàng)參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示配置項(xiàng)參數(shù)不可識(shí)別的響應(yīng);在接收到所述第三處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送與所述第三處理模塊的處理結(jié)果對(duì)應(yīng)的響應(yīng);在接收到所述第四處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送與所述第四處理模塊的處理結(jié)果對(duì)應(yīng)的響應(yīng);在接收到所述第五處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送與所述第五處理模塊的處理結(jié)果對(duì)應(yīng)的響應(yīng)。本發(fā)明提供的技術(shù)方案中,通過(guò)在主機(jī)網(wǎng)絡(luò)中的實(shí)體之間創(chuàng)建動(dòng)態(tài)通道,實(shí)現(xiàn)多管道數(shù)據(jù)傳輸,并為每個(gè)管道設(shè)置對(duì)應(yīng)的傳輸緩沖區(qū),從而避免各管道之間可能出現(xiàn)交叉的情況,減少了實(shí)體之間的數(shù)據(jù)傳輸錯(cuò)誤,提高了數(shù)據(jù)傳輸?shù)目煽啃裕挥捎趧?dòng)態(tài)管道可被動(dòng)態(tài)地創(chuàng)建和刪除,避免了對(duì)管理資源的長(zhǎng)期占用,節(jié)省了主機(jī)的資源;此外,本發(fā)明提供的技術(shù)方案還并能夠?qū)崿F(xiàn)集中式控制,支持網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),設(shè)施簡(jiǎn)單,部署方便,支持底層的多種數(shù)據(jù)載體,適用于多種應(yīng)用場(chǎng)景,錯(cuò)誤處理能力強(qiáng),可兼容多種硬件平臺(tái)。
圖1為本發(fā)明實(shí)施例中的一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒鞒虉D;圖2為本發(fā)明實(shí)施例中的一種根據(jù)待發(fā)送消息生成數(shù)據(jù)包的方法流程圖;圖3為本發(fā)明實(shí)施例中的一種根據(jù)數(shù)據(jù)包生成消息的方法流程圖4為本發(fā)明實(shí)施例中的一種執(zhí)行創(chuàng)建管道命令的方法流程圖;圖5為本發(fā)明實(shí)施例中的主機(jī)控制器執(zhí)行打開管道命令的方法流程圖;圖6為本發(fā)明實(shí)施例中的主機(jī)執(zhí)行打開管道命令的方法流程圖;圖7為本發(fā)明實(shí)施例中的一種執(zhí)行關(guān)閉管道命令的方法流程圖;圖8為本發(fā)明實(shí)施例中的一種執(zhí)行刪除管道命令的方法流程圖;圖9為本發(fā)明實(shí)施例中的一種執(zhí)行更新配置項(xiàng)參數(shù)命令的方法流程圖;圖10為本發(fā)明實(shí)施例中的一種執(zhí)行獲取配置項(xiàng)參數(shù)命令的方法流程圖;圖11為本發(fā)明實(shí)施例中的一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)难b置結(jié)構(gòu)圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例的技術(shù)方案應(yīng)用于嵌入式系統(tǒng)中的主機(jī)網(wǎng)絡(luò),該主機(jī)網(wǎng)絡(luò)包含一個(gè)主機(jī)控制器以及與該主機(jī)控制器連接的一個(gè)或多個(gè)主機(jī),其中,主機(jī)控制器用于管理自身所在的主機(jī)網(wǎng)絡(luò),主機(jī)用于執(zhí)行一種或多種服務(wù),主機(jī)可以是智能卡,也可以是其他類型的實(shí)體。主機(jī)和主機(jī)控制器均可包含一個(gè)或多個(gè)端口,主機(jī)上的端口為主機(jī)的服務(wù)提供接入點(diǎn)。
由兩個(gè)分別位于同一主機(jī)網(wǎng)絡(luò)中的不同實(shí)體上的端口構(gòu)成的通道稱為管道,主機(jī)通過(guò)管道與主機(jī)網(wǎng)絡(luò)中的其他主機(jī)和主機(jī)控制器交互信息,管道按類型可以分為靜態(tài)管道和動(dòng)態(tài)管道,靜態(tài)管道長(zhǎng)期有效,無(wú)需創(chuàng)建也不能刪除;動(dòng)態(tài)管道需要?jiǎng)?chuàng)建,可被刪除。每個(gè)管道對(duì)應(yīng)一個(gè)傳輸緩沖區(qū),該傳輸緩沖區(qū)用于存儲(chǔ)需要發(fā)送的消息,其大小取決于對(duì)應(yīng)的管道所連接的端口的類型。主機(jī)網(wǎng)絡(luò)中傳輸?shù)南⒌念愋桶?、事件和響?yīng),其中,響應(yīng)的類型和含義如下表所示:表I響應(yīng)的類型和含義的對(duì)應(yīng)表
權(quán)利要求
1.一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,包括以下步驟: Al、等待接收數(shù)據(jù)包; A2、根據(jù)接收到的數(shù)據(jù)包生成消息,對(duì)所述消息進(jìn)行判斷,并根據(jù)所述數(shù)據(jù)包所包含的管道ID,從自身存儲(chǔ)的上下文中檢索所述管道的信息; 如果沒(méi)有從所述上下文中檢索到所述管道的信息,則發(fā)送用于表示管道不存在的響應(yīng),并返回步驟Al ; 如果從所述上下文中檢索到所述管道的狀態(tài)信息為關(guān)閉狀態(tài),且所述消息不是打開管道命令,則發(fā)送用于表示管道未打開的響應(yīng),并返回步驟Al ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為關(guān)閉狀態(tài),且所述消息為打開管道命令,則執(zhí)行步驟A4 ; 如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為管道創(chuàng)建通知時(shí),則執(zhí)行步驟A3 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為管道管理命令時(shí),則執(zhí)行步驟A7 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為配 置項(xiàng)管理命令時(shí),則執(zhí)行步驟AS ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為其他命令時(shí),則執(zhí)行步驟A13 ; 如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為事件時(shí),則執(zhí)行步驟A14 ;如果從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述消息為響應(yīng)時(shí),則執(zhí)行步驟A15 ; A3、將所述管道創(chuàng)建通知中的管道信息保存到所述上下文中,通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),并返回步驟Al ; A4、判斷所述打開管道命令是否包含參數(shù),如果是,則執(zhí)行步驟A5 ;否則,執(zhí)行步驟A6 ; A5、通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng),并返回步驟Al ; A6、根據(jù)與所述管道連接的端口的ID,檢索所述上下文,獲取所述端口上處于打開狀態(tài)的管道的數(shù)量,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為打開狀態(tài),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),并返回步驟Al,所述響應(yīng)包含獲取的處于打開狀態(tài)的管道的數(shù)量; A7、對(duì)所述上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ; AS、判斷所述配置項(xiàng)管理命令是否包含參數(shù),如果是,則執(zhí)行步驟AlO ;否則,執(zhí)行步驟A9 ; A9、通過(guò)所述管道發(fā)送用于表示命令格式錯(cuò)誤的響應(yīng),并返回步驟Al ; A10、根據(jù)所述配置項(xiàng)管理命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù),判斷是否檢索到配置項(xiàng)參數(shù),如果是,則執(zhí)行步驟A12 ;否則,執(zhí)行步驟All ; AU、通過(guò)所述管道發(fā)送用于表示配置項(xiàng)參數(shù)不可識(shí)別的響應(yīng),并返回步驟Al ; A12、對(duì)檢索到的配置項(xiàng)參數(shù)進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ; A13、根據(jù)所述命令進(jìn)行相應(yīng)的處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ; A14、處理所述事件,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),并返回步驟Al ; A15、處理所述響應(yīng),并返回步驟Al。
2.如權(quán)利要求1所述的方法,其特征在于,所述管道管理命令為打開管道命令;所述對(duì)上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),具體為: 判斷所述打開管道命令是否包含參數(shù),如果是,則通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng);否則,根據(jù)與所述管道連接的端口的ID,檢索所述上下文,獲取所述端口上處于打開狀態(tài)的管道的數(shù)量,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為打開狀態(tài),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),所述響應(yīng)包含獲取的處于打開狀態(tài)的管道的數(shù)量。
3.如權(quán)利要求1所述的方法,其特征在于,所述管道管理命令為關(guān)閉管道命令;所述對(duì)上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),具體為: 判斷所述關(guān)閉管道命令是否包含參數(shù),如果是,則通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng);否則,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為關(guān)閉狀態(tài),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng)。
4.如權(quán)利要求1所述的方法,其特征在于,所述管道管理命令為管道刪除通知;所述對(duì)上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),具體為: 將所述管道的信息從所述上下文中刪除,通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng)。
5.如權(quán)利要求1所述的方法,其特征在于,所述配置項(xiàng)管理命令為獲取配置項(xiàng)參數(shù)命令;所述對(duì)檢索到的配置項(xiàng)參數(shù)進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),具體為: 讀取所述檢索到的配置 項(xiàng)參數(shù),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),所述響應(yīng)包含所述檢索到的配置項(xiàng)參數(shù)的取值。
6.如權(quán)利要求1所述的方法,其特征在于,所述配置項(xiàng)管理命令為更新配置項(xiàng)參數(shù)命令;所述對(duì)檢索到的配置項(xiàng)參數(shù)進(jìn)行處理,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),具體為: 判斷所述檢索到的配置項(xiàng)參數(shù)是否可寫,如果是,則使用所述更新配置項(xiàng)參數(shù)命令中的參數(shù)值,對(duì)所述檢索到的配置項(xiàng)參數(shù)進(jìn)行更新,通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng);否則,通過(guò)所述管道發(fā)送用于表示寫入權(quán)限錯(cuò)誤的響應(yīng)。
7.如權(quán)利要求1所述的方法,其特征在于,所述管道創(chuàng)建通知中的管道信息為動(dòng)態(tài)管道信息;所述將所述管道創(chuàng)建通知中的管道信息保存到所述上下文中,具體為: 當(dāng)自身已創(chuàng)建的動(dòng)態(tài)管道的數(shù)量小于預(yù)設(shè)的最大管道數(shù)時(shí),將所述管道創(chuàng)建通知中的動(dòng)態(tài)管道信息保存到所述上下文中; 所述將所述管道創(chuàng)建通知中的動(dòng)態(tài)管道信息保存到所述上下文中之前,還包括: 獲取自身已創(chuàng)建的動(dòng)態(tài)管道的數(shù)量,判斷所述已創(chuàng)建的動(dòng)態(tài)管道的數(shù)量是否小于預(yù)設(shè)的最大管道數(shù)。
8.如權(quán)利要求1所述的方法,其特征在于,所述管道創(chuàng)建通知中的管道信息為動(dòng)態(tài)管道信息;所述將所述管道創(chuàng)建通知中的管道信息保存到所述上下文中,具體為:當(dāng)所述管道創(chuàng)建通知所包含的源端口 ID的取值在預(yù)設(shè)范圍內(nèi)時(shí),將所述管道創(chuàng)建通知中的動(dòng)態(tài)管道信息保存到所述上下文中; 所述將所述管道創(chuàng)建通知中的動(dòng)態(tài)管道信息保存到所述上下文中之前,還包括: 判斷所述管道創(chuàng)建通知所包含的源端口 ID的取值是否在預(yù)設(shè)范圍內(nèi)。
9.如權(quán)利要求1所述的方法,其特征在于,所述處理所述事件,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng),具體為: 當(dāng)與所述管道連接的端口支持所述事件時(shí),處理所述事件,通過(guò)所述管道發(fā)送與處理結(jié)果對(duì)應(yīng)的響應(yīng); 所述處理所述事件,通過(guò)所述管道發(fā)送相應(yīng)的響應(yīng)之前,還包括: 判斷與所述管道連接的端口是否支持所述事件。
10.如權(quán)利要求1所述的方法,其特征在于,所述處理所述響應(yīng),具體為: 當(dāng)所述響應(yīng)與自身最近一次發(fā)送的命令相匹配,且所述響應(yīng)不是用于表示命令被拒絕的響應(yīng)時(shí),處理所述響應(yīng); 所述處理所述響應(yīng)之前,還包括: 判斷所述響應(yīng)是否與自身最近一次發(fā)送的命令相匹配,以及所述響應(yīng)是否為用于表示命令被拒絕的響應(yīng)。
11.如權(quán)利要求1所述的方法,其特征在于,所述配置項(xiàng)管理命令為更新配置項(xiàng)參數(shù)命令;所述根據(jù)所述配置 項(xiàng)管理命令包含的參數(shù)索引,檢索對(duì)應(yīng)的配置項(xiàng)參數(shù),具體為: 當(dāng)所述更新配置項(xiàng)參數(shù)命令的長(zhǎng)度為第二預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)所述更新配置項(xiàng)參數(shù)命令包含的參數(shù)索引,檢索對(duì)應(yīng)的配置項(xiàng)參數(shù); 所述根據(jù)所述配置項(xiàng)管理命令包含的參數(shù)索引,檢索對(duì)應(yīng)的配置項(xiàng)參數(shù)之前,還包括: 判斷所述更新配置項(xiàng)參數(shù)命令的長(zhǎng)度是否為第二預(yù)設(shè)長(zhǎng)度。
12.如權(quán)利要求1所述的方法,其特征在于,所述配置項(xiàng)管理命令為獲取配置項(xiàng)參數(shù)命令;所述根據(jù)所述配置項(xiàng)管理命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù),具體為: 當(dāng)所述獲取配置項(xiàng)參數(shù)命令中的參數(shù)的長(zhǎng)度為第三預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)所述獲取配置項(xiàng)參數(shù)命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù); 所述根據(jù)所述配置項(xiàng)管理命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù)之前,還包括: 判斷所述獲取配置項(xiàng)參數(shù)命令中的參數(shù)的長(zhǎng)度是否為第三預(yù)設(shè)長(zhǎng)度。
13.—種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)难b置,其特征在于,包括: 接收模塊,用于接收數(shù)據(jù)包; 生成模塊,用于根據(jù)所述接收模塊接收到的數(shù)據(jù)包生成消息; 第一判斷模塊,用于對(duì)所述消息進(jìn)行判斷; 存儲(chǔ)模塊,用于存儲(chǔ)上下文; 第一檢索模塊,用于根據(jù)所述接收模塊接收到的數(shù)據(jù)包所包含的管道ID,從所述存儲(chǔ)模塊存儲(chǔ)的上下文中檢索所述管道的信息; 第一處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為管道創(chuàng)建通知時(shí),將所述管道創(chuàng)建通知中的管道信息保存到所述上下文中,觸發(fā)發(fā)送模塊;第二判斷模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為關(guān)閉狀態(tài),且所述第一判斷模塊判斷所述消息為打開管道命令時(shí),判斷所述打開管道命令是否包含參數(shù); 第二處理模塊,用于在所述第二判斷模塊判斷所述打開管道命令不包含參數(shù)時(shí),根據(jù)與所述管道連接的端口的ID,檢索所述上下文,獲取所述端口上處于打開狀態(tài)的管道的數(shù)量,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為打開狀態(tài),并觸發(fā)發(fā)送模塊; 第三處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為管道管理命令時(shí),對(duì)所述上下文中存儲(chǔ)的所述管道的信息進(jìn)行處理,并觸發(fā)發(fā)送模塊; 第三判斷模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為配置項(xiàng)管理命令時(shí),判斷所述配置項(xiàng)管理命令是否包含參數(shù); 第二檢索模塊,用于在所述第三判斷模塊判斷所述配置項(xiàng)管理命令包含參數(shù)時(shí),根據(jù)所述配置項(xiàng)管理命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù); 第四處理模塊,用于在所述第二檢索模塊檢索到配置項(xiàng)參數(shù)時(shí),對(duì)檢索到的配置項(xiàng)參數(shù)進(jìn)行處理,并觸發(fā)發(fā)送模塊; 第五處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為事件時(shí),處理所述事件,并觸發(fā)發(fā)送模塊; 第六處理模塊,用于在所述第一檢索模塊從所述上下文中檢索到所述管道的狀態(tài)信息為打開狀態(tài),且所述第一判斷模塊判斷所述消息為響應(yīng)時(shí),處理所述響應(yīng); 發(fā)送模塊,用于在所述第一檢索模塊沒(méi)有從所述上下文中檢索到所述管道的信息時(shí),發(fā)送用于表示管道不存在的響應(yīng);在接收到所述第一處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng);在所述第二判斷模塊判斷所述打開管道命令包含參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng);在接收到所述第二處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),所述響應(yīng)包含獲取的處于打開狀態(tài)的管道的數(shù)量;在所述第三判斷模塊判斷所述配置項(xiàng)管理命令不包含參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示命令格式錯(cuò)誤的響應(yīng);在所述第二檢索模塊未檢索到配置項(xiàng)參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示配置項(xiàng)參數(shù)不可識(shí)別的響應(yīng);在接收到所述第三處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送與所述第三處理模塊的處理結(jié)果對(duì)應(yīng)的響應(yīng);在接收到所述第四處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送與所述第四處理模塊的處理結(jié)果對(duì)應(yīng)的響應(yīng);在接收到所述第五處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送與所述第五處理模塊的處理結(jié)果對(duì)應(yīng)的響應(yīng)。
14.如權(quán)利要求13所述的裝置,其特征在于,所述管道管理命令為打開管道命令; 所述第三處理模塊,具體用于判斷所述打開管道命令是否包含參數(shù),在不包含參數(shù)時(shí),根據(jù)與所述管道連接的端口的ID,檢索所述上下文,獲取所述端口上處于打開狀態(tài)的管道的數(shù)量,將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為打開狀態(tài),觸發(fā)所述發(fā)送模塊; 所述發(fā)送模塊,具體用于在所述第三處理模塊判斷所述打開管道命令包含參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng);在接收到所述第三處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),所述響應(yīng)包含獲取的處于打開狀態(tài)的管道的數(shù)量。
15.如權(quán)利要求13所述的裝置,其特征在于,所述管道管理命令為關(guān)閉管道命令;所述第三處理模塊,具體用于判斷所述關(guān)閉管道命令是否包含參數(shù),在不包含參數(shù)時(shí),將所述上下文中存儲(chǔ)的所述管道的狀態(tài)信息設(shè)置為關(guān)閉狀態(tài),并觸發(fā)所述發(fā)送模塊; 所述發(fā)送模塊,具體用于在所述第三處理模塊判斷所述關(guān)閉管道命令包含參數(shù)時(shí),通過(guò)所述管道發(fā)送用于表示命令被拒絕的響應(yīng);在接收到所述第三處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng)。
16.如權(quán)利要求13所述的裝置,其特征在于,所述管道管理命令為管道刪除通知; 所述第三處理模塊,具體用于將所述管道的信息從所述上下文中刪除; 所述發(fā)送模塊,具體用于通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng)。
17.如權(quán)利要求13所述的裝置,其特征在于,所述配置項(xiàng)管理命令為獲取配置項(xiàng)參數(shù)命令; 所述第四處理模塊,具體用于讀取所述檢索到的配置項(xiàng)參數(shù); 所述發(fā)送模塊,具體用于通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng),所述響應(yīng)包含所述檢索到的配置項(xiàng)參數(shù)的取值。
18.如權(quán)利要求13所述的裝置,其特征在于,所述配置項(xiàng)管理命令為更新配置項(xiàng)參數(shù)命令; 所述第四處理模塊,具體用于判斷所述檢索到的配置項(xiàng)參數(shù)是否可寫,在可寫時(shí),使用所述更新配置項(xiàng)參數(shù)命令中的參數(shù)值,對(duì)所述檢索到的配置項(xiàng)參數(shù)進(jìn)行更新,觸發(fā)所述發(fā)送模塊; 所述發(fā)送模塊,具體用于在所述第四處理模塊判斷所述檢索到的配置項(xiàng)參數(shù)不可寫時(shí),通過(guò)所述管道發(fā)送用于表示寫入權(quán)限錯(cuò)誤的響應(yīng);在接收到所述第四處理模塊的觸發(fā)時(shí),通過(guò)所述管道發(fā)送用于表示命令執(zhí)行成功的響應(yīng)。
19.如權(quán)利要求13所述的裝置,其特征在于,所述管道創(chuàng)建通知中的管道信息為動(dòng)態(tài)管道信息; 所述裝置,還包括: 獲取模塊,用于獲取已創(chuàng)建的動(dòng)態(tài)管道的數(shù)量; 第四判斷模塊,用于判斷所述獲取模塊獲取的已創(chuàng)建的動(dòng)態(tài)管道的數(shù)量是否小于預(yù)設(shè)的最大管道數(shù); 所述第一處理模塊,具體用于在已創(chuàng)建的動(dòng)態(tài)管道的數(shù)量小于預(yù)設(shè)的最大管道數(shù)時(shí),將所述管道創(chuàng)建通知中的動(dòng)態(tài)管道信息保存到所述上下文中。
20.如權(quán)利要求13所述的裝置,其特征在于,所述管道創(chuàng)建通知中的管道信息為動(dòng)態(tài)管道信息; 所述裝置,還包括: 第五判斷模塊,用于判斷所述管道創(chuàng)建通知所包含的源端口 ID的取值是否在預(yù)設(shè)范圍內(nèi); 所述第一處理模塊,具體用于在所述管道創(chuàng)建通知所包含的源端口 ID的取值在預(yù)設(shè)范圍內(nèi)時(shí),將所述管道創(chuàng)建 通知中的動(dòng)態(tài)管道信息保存到所述上下文中,觸發(fā)所述發(fā)送模塊。
21.如權(quán)利要求13所述的裝置,其特征在于,還包括: 第六判斷模塊,用于判斷與所述管道連接的端口是否支持所述事件; 所述第五處理模塊,具體用于在所述第六判斷模塊判斷與所述管道連接的端口支持所述事件時(shí),處理所述事件。
22.如權(quán)利要求13所述的裝置,其特征在于,還包括: 第七判斷模塊,用于判斷所述響應(yīng)是否與所述發(fā)送模塊最近一次發(fā)送的命令相匹配,以及所述響應(yīng)是否為用于表示命令被拒絕的響應(yīng); 所述第六處理模塊,具體用于在所述第七判斷模塊判斷所述響應(yīng)與所述發(fā)送模塊最近一次發(fā)送的命令相匹配,且所述響應(yīng)不是用于表示命令被拒絕的響應(yīng)時(shí),處理所述響應(yīng)。
23.如權(quán)利要求13所述的裝置,其特征在于,所述配置項(xiàng)管理命令為更新配置項(xiàng)參數(shù)命令; 所述的裝置,還包括: 第八判斷模塊,用于判斷所述更新配置項(xiàng)參數(shù)命令的長(zhǎng)度是否為第二預(yù)設(shè)長(zhǎng)度; 所述第二檢索模塊,具體用于在所述第八判斷模塊判斷所述更新配置項(xiàng)參數(shù)命令的長(zhǎng)度為第二預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)所述更新配置項(xiàng)參數(shù)命令包含的參數(shù)索引,檢索對(duì)應(yīng)的配置項(xiàng)參數(shù)。
24.如權(quán)利要求13所述的裝置,其特征在于,所述配置項(xiàng)管理命令為獲取配置項(xiàng)參數(shù)命令; 所述的裝置,還包括: 第九判斷模塊,用于判斷所述獲取配置項(xiàng)參數(shù)命令中的參數(shù)的長(zhǎng)度是否為第三預(yù)設(shè)長(zhǎng)度; 所述第二檢索模塊,具體用于在所述第九判斷模塊判斷所述獲取配置項(xiàng)參數(shù)命令中的參數(shù)的長(zhǎng)度為第三預(yù)設(shè)長(zhǎng)度時(shí),根據(jù)所述獲取配置項(xiàng)參數(shù)命令中的參數(shù),檢索對(duì)應(yīng)的配置項(xiàng)參數(shù)。
全文摘要
本發(fā)明公開一種嵌入式系統(tǒng)中實(shí)現(xiàn)多管道數(shù)據(jù)傳輸?shù)姆椒ê脱b置,通過(guò)在主機(jī)網(wǎng)絡(luò)中的實(shí)體之間創(chuàng)建動(dòng)態(tài)通道,實(shí)現(xiàn)多管道數(shù)據(jù)傳輸,并為每個(gè)管道設(shè)置對(duì)應(yīng)的傳輸緩沖區(qū),從而避免各管道之間可能出現(xiàn)交叉的情況,減少了實(shí)體之間的數(shù)據(jù)傳輸錯(cuò)誤,提高了數(shù)據(jù)傳輸?shù)目煽啃?;由于?dòng)態(tài)管道可被動(dòng)態(tài)地創(chuàng)建和刪除,避免了對(duì)管理資源的長(zhǎng)期占用,節(jié)省了主機(jī)的資源;此外,本發(fā)明提供的技術(shù)方案還并能夠?qū)崿F(xiàn)集中式控制,支持網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),設(shè)施簡(jiǎn)單,部署方便,支持底層的多種數(shù)據(jù)載體,適用于多種應(yīng)用場(chǎng)景,錯(cuò)誤處理能力強(qiáng),可兼容多種硬件平臺(tái)。
文檔編號(hào)G06F13/12GK103077134SQ20121057996
公開日2013年5月1日 申請(qǐng)日期2012年12月27日 優(yōu)先權(quán)日2012年12月27日
發(fā)明者陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司