專利名稱:一種基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及ー種遠(yuǎn)程控制與訪問技術(shù),具體涉及通過橋接IEEE1394設(shè)備與UPnP(Universal Plug and Play,通用即插即用)設(shè)備,實現(xiàn)遠(yuǎn)程控制和訪問的方法及裝置。
背景技術(shù):
IEEE 1394 是 1995 年 12 月由 IEEE (Institute of Electronic and ElectricalEngineers)制定的ー種高性能串行總線標(biāo)準(zhǔn),又名火線(Fire Wire) 。同時支持等時和異步兩種傳輸模式。對等時傳輸?shù)闹С郑梢员WC在規(guī)定的時間內(nèi)完成規(guī)定數(shù)據(jù)量的傳輸。低于I微秒的時間延遲非常有利于圖像、聲音等對時間延遲比較敏感的數(shù)據(jù)的傳輸。而異步請求-響應(yīng)方式可重試的傳輸可用于對傳輸正確性要求較高的數(shù)據(jù)的傳輸。采用基于CSR(Control and Status Register,控制和狀態(tài)寄存器)的64位尋■址方式,節(jié)點(diǎn)間采用內(nèi)存至內(nèi)存的傳遞,無需軟件傳輸開銷,優(yōu)化了帶寬利用。1394總線網(wǎng)絡(luò)是ー個對等網(wǎng)絡(luò),各節(jié)點(diǎn)可以脫離主機(jī)執(zhí)行事務(wù),實現(xiàn)分布式控制,適合實時多任務(wù)系統(tǒng)。采用ー個1394網(wǎng)絡(luò),便可以實現(xiàn)所有數(shù)據(jù)、圖形、圖像、話音、視頻、遙測和控制等信息的傳輸。1394技術(shù)廣泛的應(yīng)用在家庭網(wǎng)絡(luò)中,并且由于其以上的優(yōu)點(diǎn)甚至被認(rèn)為是將來在航天和軍事領(lǐng)域載荷網(wǎng)絡(luò)總線。但是1394網(wǎng)絡(luò)傳輸距離比較短,普通電纜的傳輸距離為4. 5米,采用光纖也只能達(dá)到100米。對1394網(wǎng)絡(luò)與IP網(wǎng)絡(luò)想結(jié)合,實現(xiàn)對1394網(wǎng)絡(luò)的遠(yuǎn)程訪問與控制就非常值得研究且是實用的技木。以IP協(xié)議為基礎(chǔ)的UPnP技術(shù)是ー種基于C/S (Client Service客戶端服務(wù)器)結(jié)構(gòu)的服務(wù)發(fā)現(xiàn)網(wǎng)絡(luò)。UPnP技術(shù)擴(kuò)展了傳統(tǒng)單機(jī)的設(shè)備和計算機(jī)系統(tǒng)的概念,在基于分布式、開放的網(wǎng)絡(luò)結(jié)構(gòu)上,提供了聯(lián)網(wǎng)設(shè)備之間的發(fā)現(xiàn)、接ロ聲明和其它信息的交換等互動操作功能。它主要用于實現(xiàn)設(shè)備的智能互連互通,它被設(shè)計為透明網(wǎng)絡(luò)和可自動發(fā)現(xiàn)任何供應(yīng)商提供的UPnP智能設(shè)備,支持零配置。如果將UPnP網(wǎng)絡(luò)和IEEE1394網(wǎng)絡(luò)相結(jié)合,將會對1394設(shè)備進(jìn)行遠(yuǎn)程控制和訪問變得非常簡單。UPnP協(xié)議是基于HTTP (Hyper TextTransfer Protocol,超文本傳送協(xié)議)和IP的協(xié)議,底層的協(xié)議基礎(chǔ)是TCP/UDP協(xié)議,而1394設(shè)備通過1394協(xié)議組成網(wǎng)絡(luò)。在應(yīng)用中,需要實現(xiàn)UPnP設(shè)備對非UPnP設(shè)備(1394設(shè)備)的訪問,這就需要IEEE1394橋來實現(xiàn)UPnP協(xié)議和IEEE1394協(xié)議之間的互聯(lián),使得UPnP設(shè)備和1394設(shè)備進(jìn)行無縫連接。該橋必須解決的幾個問題1) IEEE1394設(shè)備的尋址,這是對其進(jìn)行訪問的基礎(chǔ)。同一個1394設(shè)備的通信地址會在1394網(wǎng)絡(luò)發(fā)生復(fù)位時發(fā)生變化;2)協(xié)議的轉(zhuǎn)換,UPnP協(xié)議的實現(xiàn)依賴幾種協(xié)議,比如SSDP(Simple Service DiscoveryProtocol,簡單服務(wù)發(fā)現(xiàn)協(xié)議),SOAP (Simple Object Access Protocol,簡單對象訪問協(xié)議)和 GENA (Generic Event Notification Architecture,普通用事件通知體系)協(xié)議,這就需要將這些協(xié)議轉(zhuǎn)化為1394的等時事務(wù)或異步事務(wù),反之將1394的等時事務(wù)和異步事務(wù)轉(zhuǎn)化為SSDP,SOAP和GENA協(xié)議。3) 1394協(xié)議和基于IP的UPnP協(xié)議在帶寬,傳輸速率,包長度,包發(fā)送速率等方面都不同。例如1394b能達(dá)到的傳輸速率100Mbps,200Mbps,400Mbps, 800Mbps, I. 6Gbps,而一般的 Internet 傳輸速率為 1Mbps, 2Mbps, 10Mbps。1394傳輸數(shù)據(jù)時,數(shù)據(jù)包長比較短,數(shù)據(jù)包傳輸速率快,而IP數(shù)據(jù)包包長較長,傳輸速率慢。4)IEEE1394網(wǎng)絡(luò)在傳輸大量數(shù)據(jù)時,比如視頻數(shù)據(jù),采用的是等時傳輸方式,這種服務(wù)方式是有QoS (Quality of Service,服務(wù)質(zhì)量)保障的,一旦等時傳輸獲得了總線帶寬,那么信道就在每個125us周期內(nèi)收到保證的時間包。每個總線周期最多有80%可分配給等時通道。而IP協(xié)議是ー種盡力而為的協(xié)議,它不提供QoS保證,于是這個橋需要提供應(yīng)用層QoS來保證UPnP端視頻傳輸質(zhì)量。也就是說,在采用IEEE1394橋來實現(xiàn)UPnP協(xié)議和IEEE1394協(xié)議之間的互聯(lián)時,存在IEEE1394網(wǎng)絡(luò)和UPnP網(wǎng)絡(luò)在傳輸視頻流時的QoS不匹配問題?,F(xiàn)有的橋接技術(shù),如參考文件I (《IEEE1394/UPnP軟件橋分析及應(yīng)用》,冷雪峰,蘇紹景,2006 年 I 月 8 日)及參考文件 2 (《IEEE1394software bridge)), Donghee Kim, JunHee Park等,2005年2月I日)中,并沒有提供IEEE1394設(shè)備的具體尋址方式,而在軟件橋中1394設(shè)備的尋址對于UPnP控制點(diǎn)的正確訪問非常重要;也沒有提供具體的數(shù)據(jù)處理方法,比如解決兩種協(xié)議在傳輸過程中的協(xié)議轉(zhuǎn)換和速率匹配等問題?,F(xiàn)有的橋接技術(shù)也沒 有對UPnP/1394橋設(shè)備做節(jié)點(diǎn)地址調(diào)度,這樣在接受遠(yuǎn)程控制訪問時會造成地址浪費(fèi)以及出現(xiàn)數(shù)據(jù)傳輸錯誤等問題,也沒有考慮到兩者總線在進(jìn)行視頻傳輸時的QoS保證協(xié)議。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是當(dāng)IEEE1394總線作為現(xiàn)場總線時,具體如何實現(xiàn)對1394網(wǎng)絡(luò)的遠(yuǎn)程控制和訪問,包括如何解決1394設(shè)備的尋址、在傳輸過程中的協(xié)議轉(zhuǎn)換和速率匹配、節(jié)點(diǎn)內(nèi)存空間的自動調(diào)度以及進(jìn)行實時數(shù)據(jù)傳輸時的QoS保證等問題。本發(fā)明利用UPnP協(xié)議支持零配置,自動設(shè)備發(fā)現(xiàn)和服務(wù)發(fā)現(xiàn)的特點(diǎn),將UPnP技術(shù)和1394技術(shù)相結(jié)合,提出一種基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法及裝置。本發(fā)明為基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問裝置,也稱為UPnP/1394軟件橋,包括UPnP堆棧層模塊、1394通信層模塊和UPnP over 1394層模塊。UPnP堆棧層模塊實現(xiàn)了 UPnP協(xié)議中的SSDP協(xié)議、GENA協(xié)議和SOAP協(xié)議。UPnP over 1394層模塊實現(xiàn)UPnP協(xié)議與1394協(xié)議之間的轉(zhuǎn)換,包括七個模塊服務(wù)描述模塊、數(shù)據(jù)庫模塊、ARP模塊、IP over 1394模塊、緩沖區(qū)控制模塊、UPnP/1394軟件橋內(nèi)存管理模塊和QoS控制模塊;UPnP/1394軟件橋內(nèi)存管理模塊用于對UPnP/1394軟件橋的內(nèi)存地址進(jìn)行調(diào)度管理,維護(hù)了 UPnP/1394軟件橋的地址管理表;ARP模塊用于地址尋址,將各1394設(shè)備的節(jié)點(diǎn)ID和唯一標(biāo)示符保存在1394設(shè)備地址表中;服務(wù)描述模塊用于將IEEE1394網(wǎng)絡(luò)中的1394設(shè)備提供的服務(wù)進(jìn)行描述,具體服務(wù)可以抽象為節(jié)點(diǎn)服務(wù)和代理服務(wù),節(jié)點(diǎn)服務(wù)包括設(shè)置傳輸速率、獲得可用帶寬、控制總線復(fù)位、發(fā)送物理層數(shù)據(jù)包、獲得總線管理器、設(shè)置時間碼、獲得總線節(jié)點(diǎn)數(shù)、以及開啟/關(guān)閉端ロ,代理服務(wù)包括訪問1394設(shè)備內(nèi)部文件、獲得1394傳感器數(shù)據(jù)、以及獲取1394視頻采集設(shè)備的視頻數(shù)據(jù);IP over 1394模塊進(jìn)行協(xié)議的轉(zhuǎn)化,將UPnP的控制信息轉(zhuǎn)化為1394的控制信息。緩沖區(qū)控制模塊用于控制等時數(shù)據(jù)流的傳輸,建立了一個緩沖池及一個緩沖區(qū)處理線程,緩沖池中包含四個緩沖區(qū),每個緩沖區(qū)的大小為一幀數(shù)據(jù)的大小,1394通信層模塊接收等時通道上的數(shù)據(jù)填充緩沖區(qū),當(dāng)一個緩沖區(qū)被填滿,則發(fā)送ー個信號給緩沖區(qū)處理線程,將填滿的緩沖區(qū)交給UPnP over 1394層模塊。QoS控制模塊用于保證等時數(shù)據(jù)傳輸?shù)姆?wù)質(zhì)量;數(shù)據(jù)庫模塊用于存儲各數(shù)據(jù)表的數(shù)據(jù),包括UPnP/1394軟件橋的地址管理表,1394設(shè)備地址表,SOAP狀態(tài)信息表,所述的SOAP狀態(tài)信息表,記錄了 UPnP控制點(diǎn)的SOAP請求信息的處理狀態(tài),包括=UPnP控制點(diǎn)的IP地址、服務(wù)操作、目的1394設(shè)備的唯一標(biāo)識符、處理狀態(tài)、參數(shù)名稱和參數(shù)類型;處理狀態(tài)總共由四種,分別為確認(rèn)請求、請求中、超時和完成。1394通信層模塊用于接收UPnP over 1394層模塊的信息并發(fā)送給1394網(wǎng)絡(luò),或是接收1394網(wǎng)絡(luò)的信息并轉(zhuǎn)發(fā)給UPnP over 1394層模塊。一種應(yīng)用本發(fā)明上述裝置的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,具體包括如下步驟步驟I :當(dāng)1394設(shè)備上有節(jié)點(diǎn)的插入或移除或者UPnP控制點(diǎn)發(fā)出了總線復(fù)位信息時,發(fā)生總線復(fù)位,總線復(fù)位后,初始化UPnP/1394軟件橋的地址管理表;步驟2 :設(shè)備尋址,包括UPnP/1394軟件橋的尋址和1394設(shè)備的尋址;1394設(shè)備的尋址通過下面過程實現(xiàn)UPnP/1394軟件橋向1394網(wǎng)絡(luò)廣播ARP請求報文,請求獲取各1394設(shè)備的惟一標(biāo)識符,各1394設(shè)備發(fā)回ARP應(yīng)答報文,UPnP/1394軟件橋在收到ARP應(yīng)·答報文后,獲得各1394設(shè)備的惟一標(biāo)識符和節(jié)點(diǎn)ID號,并保存到1394設(shè)備地址表中;步驟3 :設(shè)備發(fā)現(xiàn),包括如下子步驟步驟3. I UPnP/1394軟件橋向1394設(shè)備發(fā)送服務(wù)描述文檔請求信息,生成1394設(shè)備的服務(wù)描述文檔;所述的UPnP/1394軟件橋?qū)崿F(xiàn)了節(jié)點(diǎn)服務(wù)和代理服務(wù);節(jié)點(diǎn)服務(wù)包括設(shè)置傳輸速率,獲得可用帶寬,控制總線復(fù)位,發(fā)送物理層數(shù)據(jù)包,獲得總線管理器,設(shè)置時間碼,獲得總線節(jié)點(diǎn)數(shù),以及開啟/關(guān)閉端ロ ;代理服務(wù)包括訪問1394設(shè)備內(nèi)部文件,獲得1394傳感器數(shù)據(jù),獲取1394視頻采集設(shè)備的視頻數(shù)據(jù);步驟3. 2 UPnP/1394軟件橋獲取服務(wù)描述文檔后,通過SSDP通知信息對UPnP網(wǎng)絡(luò)中的UPnP控制點(diǎn)公布1394設(shè)備的服務(wù);步驟4 =UPnP控制點(diǎn)對1394設(shè)備進(jìn)行控制和訪問,包括如下步驟步驟4. I :當(dāng)UPnP控制節(jié)點(diǎn)對1394設(shè)備的服務(wù)比較感興趣時,發(fā)送SOAP請求信息給UPnP/1394軟件橋,請求1394網(wǎng)絡(luò)設(shè)備中的服務(wù);步驟4. 2 UPnP/1394軟件橋在接收到SOAP請求信息后,將SOAP請求信息記錄在SOAP狀態(tài)信息表中,并對接收到的SOAP請求信息進(jìn)行解析,通過1394設(shè)備地址表查找到目的1394設(shè)備的節(jié)點(diǎn)ID,通過UPnP/1394軟件橋內(nèi)存管理模塊及其維護(hù)的地址管理表,在UPnP/1394軟件橋中分配唯一的地址空間范圍給該操作,既在該地址范圍內(nèi)等待接收該操作的目的1394設(shè)備返回的數(shù)據(jù);然后將解析的SOAP請求信息封裝為符合1394協(xié)議的數(shù)據(jù)包發(fā)送給1394網(wǎng)絡(luò)的目的1394設(shè)備;在此過程中,更新SOAP狀態(tài)信息表中對應(yīng)SOAP請求的處理狀態(tài);步驟4. 3 :在目的1394設(shè)備完成所請求的操作后,返回數(shù)據(jù)給UPnP/1394軟件橋,更新SOAP狀態(tài)信息表中對應(yīng)SOAP請求的處理狀態(tài);步驟4. 4 :UPnP/1394軟件橋?qū)?394設(shè)備返回的數(shù)據(jù)進(jìn)行SOAP封裝后返回給UPnP控制點(diǎn),并更新SOAP狀態(tài)信息表中對應(yīng)SOAP請求信息的處理狀態(tài)。本發(fā)明的優(yōu)點(diǎn)與積極效果在于(I)本發(fā)明的裝置通過UPnP over 1394層模塊,實現(xiàn)了 IEEE1394設(shè)備和UPnP設(shè)備之間的互聯(lián),使得兩種協(xié)議上的設(shè)備能進(jìn)行無縫連接。(2)本發(fā)明的裝置和方法對UPnP/1394軟件橋的內(nèi)存地址進(jìn)行了調(diào)度管理,防止了橋設(shè)備地址浪費(fèi)和可能出現(xiàn)的數(shù)據(jù)傳輸錯誤。(3)本發(fā)明的裝置和方法采用1394ARP協(xié)議獲取1394網(wǎng)絡(luò)的統(tǒng)ー資源標(biāo)識符(UEI-64),建立了 1394設(shè)備地址表,保存1394設(shè)備的64位唯一地址標(biāo)識符(ΕΠ-64)和異步通信地址節(jié)點(diǎn)ID的之間的映射關(guān)系,對外公布的服務(wù)地址為ΕΠ-64,這樣當(dāng)發(fā)生總線復(fù)位或網(wǎng)絡(luò)故障恢復(fù)吋,從UPnP控制點(diǎn)發(fā)出的控制信息中解析出目的1394設(shè)備的EUI-64,通過查找1394設(shè)備地址表,能夠方便地找到對應(yīng)的1394設(shè)備的節(jié)點(diǎn)ID,不需要重新公布1394設(shè)備新的ID地址。(4)本發(fā)明的裝置和方法中設(shè)置了 SOAP狀態(tài)信息表,保存了 UPnP控制點(diǎn)和1394設(shè)備的控制狀態(tài),當(dāng)在控制執(zhí)行過程中整個1394網(wǎng)絡(luò)發(fā)生復(fù)位或是網(wǎng)絡(luò)故障恢復(fù)時,可以讀取狀態(tài)信息并完成未完成的操作,使得操作能夠迅速恢復(fù)。
(5)本發(fā)明的裝置和方法采用H264解決UPnP網(wǎng)絡(luò)和IEEE1394的傳輸速率不匹配問題,并通過RTP的發(fā)送端和接收端報告,預(yù)測網(wǎng)絡(luò)帶寬,控制H264的起始幀量化參數(shù),使輸出碼流適應(yīng)網(wǎng)絡(luò)帶寬,解決IEEE1394網(wǎng)絡(luò)和UPnP網(wǎng)絡(luò)在傳輸視頻流時的QoS不匹配問題。
圖I是本發(fā)明的遠(yuǎn)程控制和訪問裝置的應(yīng)用場景示意圖;圖2是本發(fā)明提供的遠(yuǎn)程控制和訪問裝置的整體結(jié)構(gòu)示意圖;圖3是UPnP/1394軟件橋提供的節(jié)點(diǎn)服務(wù)框圖;圖4是UPnP/1394軟件橋提供的代理服務(wù)框圖;圖5是UPnP/1394軟件橋控制處理數(shù)據(jù)的流程圖;圖6是等時數(shù)據(jù)流傳輸?shù)氖疽鈭D;圖7是保證QoS的等時數(shù)據(jù)流傳輸?shù)氖疽鈭D;圖8是本發(fā)明的遠(yuǎn)程控制和訪問方法的整體信號流示意圖;圖9是本發(fā)明的地址調(diào)度管理的流程示意圖。
具體實施例方式下面將結(jié)合附圖和實施例對本發(fā)明作進(jìn)ー步的詳細(xì)說明。如圖I所示,為本發(fā)明的遠(yuǎn)程控制和訪問裝置所應(yīng)用的整個網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),整個通信系統(tǒng)由基于以太網(wǎng)的UPnP網(wǎng)絡(luò)、基于IEEE1394的1394網(wǎng)絡(luò)、以及本發(fā)明的裝置組成。本發(fā)明的遠(yuǎn)程控制和訪問裝置也稱為UPnP/1394軟件橋。在由1394網(wǎng)絡(luò)組成的通信系統(tǒng)中,UPnP/1394軟件橋?qū)崿F(xiàn)了把1394設(shè)備連接到UPnP控制點(diǎn)上的功能,這樣UPnP控制點(diǎn)就可以非常方便地通過UPnP/1394軟件橋?qū)?394網(wǎng)絡(luò)進(jìn)行控制,以及訪問其1394設(shè)備提供的服務(wù)。UPnP/1394軟件橋支持四個先后基本的過程1394設(shè)備地址管理,設(shè)備尋址,設(shè)備發(fā)現(xiàn)、控制和事件處理過程。在設(shè)備發(fā)現(xiàn)過程中,UPnP/1394軟件橋必須將1394設(shè)備情況向UPnP網(wǎng)絡(luò)進(jìn)行廣播,保證1394設(shè)備連接上計算機(jī)或網(wǎng)絡(luò)吋,UPnP控制點(diǎn)可以發(fā)現(xiàn)新的1394設(shè)備。為此,UPnP/1394軟件橋必須知道連接的是哪種類型的設(shè)備,井能對新接入的設(shè)備進(jìn)行設(shè)備和服務(wù)的描述。如圖2所示,本發(fā)明提供的遠(yuǎn)程控制和訪問裝置包括三個協(xié)議棧層模塊,分別為UPnP堆棧層模塊,UPnP over 1394層模塊以及1394通信層模塊。UPnP堆棧層模塊實現(xiàn)了 UPnP協(xié)議中的SSDP簡單訪問協(xié)議,GENA協(xié)議和SOAP協(xié)議,使得UPnP控制點(diǎn)能夠發(fā)現(xiàn)1394設(shè)備,查找1394設(shè)備,以及接收UPnP控制點(diǎn)的控制信息,是和UPnP網(wǎng)絡(luò)的外部接ロ,此外,UPnP堆棧層模塊中還提供了用戶接ロ、迷你服務(wù)器、XML解析模塊和HTTP解析模塊。UPnP over 1394層模塊主要實現(xiàn)的是UPnP協(xié)議與1394協(xié)議之間的轉(zhuǎn)換,以及解決兩種協(xié)議之間的傳輸速率不匹配,帶寬不匹配,包發(fā)送速率不匹配等問題,包括七 個模塊,分別是服務(wù)描述模塊,數(shù)據(jù)庫模塊,ARP模塊,IP over 1394模塊,緩沖區(qū)控制模塊,UPnP/1394軟件橋內(nèi)存管理模塊和QoS控制模塊。UPnP/1394軟件橋內(nèi)存管理模塊用于對各UPnP/1394軟件橋的內(nèi)存地址進(jìn)行調(diào)度管理,維護(hù)了 UPnP/1394軟件橋的地址管理表。UPnP/1394軟件橋的地址管理表,是ー個將遠(yuǎn)程控制操作和UPnP/1394軟件橋用于接收遠(yuǎn)程控制操作所對應(yīng)的返回數(shù)據(jù)的內(nèi)存地址進(jìn)行映射的數(shù)據(jù)表,對于1394設(shè)備內(nèi)部的寄存器空間,采用16進(jìn)制表示的48位地址范圍是(FFFFF0000000-FFFFFFFFFFFF),對于1394/UPnP軟件橋的內(nèi)存空間,采用16進(jìn)制表示的48位地址范圍為(000000000000-FFFFDFFFFFFF),表I給出了一個該表的示例,UPnP/1394軟件橋內(nèi)存管理模塊通過內(nèi)存映射表對該48位地址進(jìn)行合理的分配,保證某段內(nèi)存空間的獨(dú)占和防止內(nèi)存碎片的形成。ARP模塊用于地址尋址,將各1394設(shè)備的的節(jié)點(diǎn)ID和唯一標(biāo)示符(ΕΠ-64)保存在1394設(shè)備地址表中,表5給出了 1394設(shè)備地址表的示例,該表中記錄各1394設(shè)備的信息,包括節(jié)點(diǎn)ID、最大有效數(shù)據(jù)長度、最大傳輸速度和硬件地址;所述的硬件地址是指1394設(shè)備的唯一標(biāo)示符。服務(wù)描述模塊用于將IEEE1394網(wǎng)絡(luò)中的1394設(shè)備提供的服務(wù)進(jìn)行描述,服務(wù)包括節(jié)點(diǎn)服務(wù)和代理服務(wù),如圖3所示,節(jié)點(diǎn)服務(wù)包括設(shè)置傳輸速率、獲得可用帶寬、控制總線復(fù)位、發(fā)送物理層數(shù)據(jù)包、獲得總線管理器、設(shè)置時間碼、獲得總線節(jié)點(diǎn)數(shù)、以及開啟/關(guān)閉端ロ。如圖4所示,代理服務(wù)包括訪問1394設(shè)備內(nèi)部文件、獲得1394傳感器數(shù)據(jù)、以及獲取1394視頻采集設(shè)備的視頻數(shù)據(jù)。IP over 1394模塊進(jìn)行協(xié)議的轉(zhuǎn)化,將UPnP的控制信息轉(zhuǎn)化為1394的控制信息。緩沖區(qū)控制模塊用于控制等時數(shù)據(jù)的傳輸,建立了一個緩沖池及一個緩沖區(qū)處理線程,緩沖池中包含四個緩沖區(qū),每 個緩沖區(qū)的大小為ー幀數(shù)據(jù)的大小,1394通信層模塊接收等時通道上的數(shù)據(jù)填充緩沖區(qū),當(dāng)一個緩沖區(qū)被填滿,則發(fā)送ー個信號給緩沖區(qū)處理線程,將填滿的緩沖區(qū)交給UPnP over1394層模塊。QoS控制模塊用于保證等時數(shù)據(jù)的傳輸?shù)腝oS。數(shù)據(jù)庫模塊用于存儲各數(shù)據(jù) 表的數(shù)據(jù),包括UPnP/1394軟件橋的地址管理表,1394設(shè)備地址表,SOAP狀態(tài)信息表。所述的SOAP狀態(tài)信息表,記錄了 UPnP控制點(diǎn)的SOAP請求信息的處理狀態(tài),包括=UPnP控制點(diǎn)的IP地址、服務(wù)操作、目的1394設(shè)備的唯一標(biāo)識符、處理狀態(tài)、參數(shù)名稱和參數(shù)類型;處理狀態(tài)總共由四種,分別為確認(rèn)請求、請求中、超時和完成。1394通信層模塊,主要是和UPnP over 1394層模塊進(jìn)行通信,接收UPnP over1394層模塊的信息發(fā)送給1394網(wǎng)絡(luò)或是接收1394網(wǎng)絡(luò)的信息轉(zhuǎn)發(fā)給UPnP over 1394層模塊,包括1394API模塊、串行總線管理器、應(yīng)用層、1394硬件驅(qū)動層、1394鏈路層和1394
物理層。
本發(fā)明的一種基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,如圖8所示,具備包括如下步驟
步驟I :當(dāng)1394設(shè)備上有節(jié)點(diǎn)的插入或移除或是UPnP控制點(diǎn)發(fā)出了總線復(fù)位信息時,本發(fā)明的遠(yuǎn)程控制和訪問裝置(UPnP/1394軟件橋)接收到總線復(fù)位信號,執(zhí)行下一步驟。發(fā)生總線復(fù)位吋,1394設(shè)備的節(jié)點(diǎn)標(biāo)識(節(jié)點(diǎn)ID)會發(fā)生變化,這個時候初始化1394設(shè)備的地址管理表。本步驟對應(yīng)圖8中的SI,SlO0在IEEE1394通信模型中,一般的數(shù)據(jù)請求信息和控制信息都是通過異步傳輸方式完成的。這種傳輸方式采用了 64位地址空間到地址空間的映射。具體來說就是通過ID號找到通信的目的主機(jī),而通過余下的48位找到節(jié)點(diǎn)內(nèi)部的數(shù)據(jù)傳輸?shù)刂?。其中有ー些固定的地址是指其內(nèi)部的寄存器地址,不能應(yīng)用于節(jié)點(diǎn)之間數(shù)據(jù)傳輸?shù)刂贰榱朔乐沟刂防速M(fèi)和有可能出現(xiàn)的數(shù)據(jù)傳輸錯誤,必須對地址進(jìn)行統(tǒng)一有效的管理。本發(fā)明采用UPnP/1394軟件橋內(nèi)存管理模塊來實現(xiàn)對地址的統(tǒng)一有效的管理,具體方法是首先建立一個將遠(yuǎn)程控制操作和UPnP/1394軟件橋用于接收遠(yuǎn)程控制操作所對應(yīng)的返回數(shù)據(jù)的內(nèi)存地址進(jìn)行映射的數(shù)據(jù)表。如表I所示,在該表中的1394設(shè)備地址分為兩類,ー類是寄存器空間,48位的地址范圍是FFFFF0000000-FFFFFFFFFFFF (用16進(jìn)制表示的48位地址空間),例如,獲得1394總線上的循環(huán)開始寄存器(Get_CyCle_Time)的值,必須向循環(huán)控制器的節(jié)點(diǎn)地址為FFFF FFFF F00002000進(jìn)行數(shù)據(jù)的讀寫。另外ー種1394設(shè)備地址是存儲空間,其地址范圍為000000000000-FFFFDFFFFFFF,UPnP/1394軟件橋需在這個地址空間內(nèi)進(jìn)行數(shù)據(jù)的讀寫。為了實現(xiàn)遠(yuǎn)程控制與訪問,對這類地址就需要UPnP/1394軟件橋內(nèi)存管理模塊進(jìn)行合理的調(diào)度和利用。UPnP/1394軟件橋內(nèi)存管理模塊通過地址管理表對該48位地址進(jìn)行合理的分配,保證某段內(nèi)存空間的獨(dú)占和防止內(nèi)存碎片的形成。其流程如圖9所示,包括如下步驟步驟I. 1,UPnP/1394軟件橋發(fā)送寫請求給1394設(shè)備;‘步驟I. 2,1394設(shè)備返回寫響應(yīng)信息,該信息中包含請求信息地址長度;步驟I. 3,UPnP/1394軟件橋根據(jù)地址管理表對節(jié)點(diǎn)地址空間進(jìn)行調(diào)度計算,并且分配合理的內(nèi)存空間給本次操作步驟I. 4,UPnP/1394軟件橋發(fā)送數(shù)據(jù)傳輸信息,在上面分配的地址空間內(nèi)等待數(shù)據(jù)的接收;步驟I. 5,開始數(shù)據(jù)傳輸;步驟I. 6,數(shù)據(jù)傳輸完畢更新節(jié)點(diǎn)地址管理表。以請求某個1394設(shè)備的文件(LoadFile)操作為例,軟件橋接收到UPnP控制點(diǎn)的LoadFile信息時,則準(zhǔn)備進(jìn)行文件數(shù)據(jù)的獲取。在IEEE1394網(wǎng)絡(luò)中進(jìn)行文件傳輸時,采用數(shù)據(jù)塊讀寫的方式進(jìn)行,既需要在節(jié)點(diǎn)存儲空間內(nèi)分配連續(xù)的地址接收數(shù)據(jù)。比如此時遍歷軟件橋的1394設(shè)備的地址管理表,發(fā)現(xiàn)了獲得遠(yuǎn)程數(shù)據(jù)(Get Remote Data)操作,使用的地址空間為(FFFF 0FFFF000, FFFF 0FFFFFFF),那么為LoadFile分配的地址空間則為(FFFF 10000000, FFFF 10002000),當(dāng)操作完成以后,需將地址空間釋放,其他的操作可以在該層內(nèi)完成。此時如果有其他的操作,比如同時還需要獲取其他的文件數(shù)據(jù),則必須在新的地址空間內(nèi)進(jìn)行傳輸,而不能出現(xiàn)地址復(fù)用情況,若出現(xiàn)地址復(fù)用情況,必將導(dǎo)致數(shù)據(jù)的傳輸錯誤,導(dǎo)致此次遠(yuǎn)程訪問出錯。表IUPnP/1394軟件橋的地址管理表
權(quán)利要求
1.一種基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問裝置,也稱為UPnP/1394軟件橋,包括UPnP堆棧層模塊和1394通信層模塊,UPnP堆棧層模塊實現(xiàn)了 UPnP協(xié)議中的SSDP協(xié)議、GENA協(xié)議和SOAP協(xié)議,其特征在于,該裝置還包括UPnP over 1394層模塊;所述的UPnP over 1394層模塊實現(xiàn)UPnP協(xié)議與1394協(xié)議之間的轉(zhuǎn)換,包括七個模塊服務(wù)描述模塊、數(shù)據(jù)庫模塊、ARP模塊、IP over 1394模塊、緩沖區(qū)控制模塊、UPnP/1394軟件橋內(nèi)存管理模塊和QoS控制模塊;1394通信層模塊用于接收UPnP over 1394層模塊的信息并發(fā)送給1394網(wǎng)絡(luò),或是接收1394網(wǎng)絡(luò)的信息并轉(zhuǎn)發(fā)給UPnP over 1394層模塊; UPnP/1394軟件橋內(nèi)存管理模塊用于對UPnP/1394橋設(shè)備的內(nèi)存地址進(jìn)行調(diào)度管理,通過維護(hù)UPnP/1394軟件橋的地址管理表完成調(diào)度;ARP模塊用于地址尋址,將各1394設(shè)備的節(jié)點(diǎn)ID和唯一標(biāo)示符保存在1394設(shè)備地址表中;服務(wù)描述模塊用于將IEEE1394網(wǎng)絡(luò)中的1394設(shè)備提供的服務(wù)進(jìn)行描述,服務(wù)包括節(jié)點(diǎn)服務(wù)和代理服務(wù),節(jié)點(diǎn)服務(wù)包括設(shè)置傳輸速率、獲得可用帶寬、控制總線復(fù)位、發(fā)送物理層數(shù)據(jù)包、獲得總線管理器、設(shè)置時間碼、獲得總線節(jié)點(diǎn)數(shù)、以及開啟/關(guān)閉端口,代理服務(wù)包括訪問1394設(shè)備內(nèi)部文件、獲得1394傳感器數(shù)據(jù)、以及獲取1394視頻采集設(shè)備的視頻數(shù)據(jù);IP over 1394模塊進(jìn)行協(xié)議的轉(zhuǎn)化,將UPnP的控制信息進(jìn)行解析得到目的1394設(shè)備的唯一地址標(biāo)識符和節(jié)點(diǎn)內(nèi)存地址,并通過1394設(shè)備內(nèi)存管理模塊得到返回數(shù)據(jù)的接收地址,然后調(diào)用1394通信層模塊,發(fā)送給目的1394設(shè)備;緩沖區(qū)控制模塊用于控制等時數(shù)據(jù)流的傳輸,建立了一個緩沖池及一個緩沖區(qū)處理線程,緩沖池中包含四個緩沖區(qū),每個緩沖區(qū)的大小為一幀數(shù)據(jù)的大小,1394通信層模塊接收等時通道上的數(shù)據(jù)填充緩沖區(qū),當(dāng)一個緩沖區(qū)被填滿,則發(fā)送一個信號給緩沖區(qū)處理線程,將填滿的緩沖區(qū)交給UPnP over 1394層模塊;QoS控制模塊用于保證等時數(shù)據(jù)流傳輸?shù)姆?wù)質(zhì)量;數(shù)據(jù)庫模塊用于存儲各數(shù)據(jù)表的數(shù)據(jù),包括UPnP/1394軟件橋的地址管理表,1394設(shè)備地址表,SOAP狀態(tài)信息表; 所述的SOAP狀態(tài)信息表,記錄了 UPnP控制點(diǎn)的SOAP請求信息的處理狀態(tài),包括=UPnP控制點(diǎn)的IP地址、服務(wù)操作、目的1394設(shè)備的唯一標(biāo)識符、處理狀態(tài)、參數(shù)名稱和參數(shù)類型;處理狀態(tài)總共由四種,分別為確認(rèn)請求、請求中、超時和完成; 其中,UPnP表示通用即插即用,SSDP協(xié)議表示簡單服務(wù)發(fā)現(xiàn)協(xié)議,GENA協(xié)議表示普通用事件通知體系協(xié)議,SOAP協(xié)議表示簡單對象訪問協(xié)議,ARP表示地址解析協(xié)議,QoS表示服務(wù)質(zhì)量。
2.根據(jù)權(quán)利要求I所述的遠(yuǎn)程控制和訪問裝置,其特征在于,所述的UPnP/1394軟件橋的地址管理表,是一個將遠(yuǎn)程控制操作和UPnP/1394軟件橋用于接收遠(yuǎn)程控制操作所對應(yīng)的返回數(shù)據(jù)的內(nèi)存地址進(jìn)行映射的數(shù)據(jù)表,對于UPnP/1394軟件橋的寄存器空間,采用16進(jìn)制表示的48位地址范圍是(FFFFF0000000-FFFFFFFFFFFF),對于UPnP/1394軟件橋的內(nèi)存空間,采用16進(jìn)制表示的48位地址范圍為(000000000000-FFFFDFFFFFFF),UPnP/1394軟件橋內(nèi)存管理模塊通過內(nèi)存映射表對該48位地址進(jìn)行合理的分配,保證某段內(nèi)存空間的獨(dú)占和防止內(nèi)存碎片的形成。
3.根據(jù)權(quán)利要求I所述的遠(yuǎn)程控制和訪問裝置,其特征在于,所述的1394設(shè)備地址表,用于記錄各1394設(shè)備的信息,包括節(jié)點(diǎn)ID、最大有效數(shù)據(jù)長度、最大傳輸速度和硬件地址;所述的硬件地址是指1394設(shè)備的唯一標(biāo)示符。
4.一種應(yīng)用權(quán)利要求I所述的遠(yuǎn)程控制和訪問裝置的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,包括如下步驟 步驟I :當(dāng)1394設(shè)備上有節(jié)點(diǎn)的插入或移除或是UPnP控制點(diǎn)發(fā)出了總線復(fù)位信息時,發(fā)生總線復(fù)位,總線復(fù)位后,初始化UPnP/1394軟件橋的地址管理表;UPnP表示通用即插即用; 步驟2 :設(shè)備尋址,包括UPnP/1394軟件橋的尋址和1394設(shè)備的尋址;1394設(shè)備的尋址通過下面過程實現(xiàn)UPnP/1394軟件橋向1394網(wǎng)絡(luò)廣播ARP請求報文,請求獲取各1394設(shè)備的惟一標(biāo)識符,各1394設(shè)備發(fā)回ARP應(yīng)答報文,UPnP/1394軟件橋在收到ARP應(yīng)答報文后,獲得各1394設(shè)備的惟一標(biāo)識符和節(jié)點(diǎn)ID號,并保存到1394設(shè)備地址表中;ARP表示地址解析協(xié)議; 步驟3 :設(shè)備發(fā)現(xiàn),包括如下子步驟 步驟3. I UPnP/1394軟件橋向1394設(shè)備發(fā)送服務(wù)描述文檔請求信息,生成1394設(shè)備的服務(wù)描述文檔;所述的UPnP/1394軟件橋?qū)崿F(xiàn)了節(jié)點(diǎn)服務(wù)和代理服務(wù);節(jié)點(diǎn)服務(wù)包括設(shè)置傳輸速率,獲得可用帶寬,控制總線復(fù)位,發(fā)送物理層數(shù)據(jù)包,獲得總線管理器,設(shè)置時間碼,獲得總線節(jié)點(diǎn)數(shù),以及開啟/關(guān)閉端口 ;代理服務(wù)包括訪問1394設(shè)備內(nèi)部文件,獲得1394傳感器數(shù)據(jù),獲取1394視頻采集設(shè)備的視頻數(shù)據(jù); 步驟3. 2 UPnP/1394軟件橋完成服務(wù)描述文檔后,通過SSDP通知信息對UPnP網(wǎng)絡(luò)中的UPnP控制點(diǎn)公布1394設(shè)備的服務(wù);SSDP表示簡單服務(wù)發(fā)現(xiàn)協(xié)議; 步驟4 =UPnP控制點(diǎn)對1394設(shè)備進(jìn)行控制和訪問,具體包括如下子步驟 步驟4. I :當(dāng)UPnP控制節(jié)點(diǎn)對1394設(shè)備的服務(wù)比較感興趣時,發(fā)送SOAP請求信息給UPnP/1394軟件橋,請求1394網(wǎng)絡(luò)設(shè)備中的服務(wù); 步驟4. 2 UPnP/1394軟件橋在接收到SOAP請求信息后,將SOAP請求信息記錄在SOAP狀態(tài)信息表中,并對接收到的SOAP請求信息進(jìn)行解析,通過1394設(shè)備地址表查找到目的1394設(shè)備的節(jié)點(diǎn)ID,通過UPnP/1394軟件橋內(nèi)存管理模塊及其維護(hù)的地址管理表,在1394/UPnP軟件橋中分配唯一的地址空間范圍給該操作,在該地址空間范圍內(nèi)等待接收目的1394設(shè)備的返回數(shù)據(jù),然后將解析的SOAP請求信息封裝為符合1394協(xié)議的數(shù)據(jù)包發(fā)送給1394網(wǎng)絡(luò)的目的1394設(shè)備;在此過程中,更新SOAP狀態(tài)信息表中對應(yīng)SOAP請求的處理狀態(tài);S0AP協(xié)議表示簡單對象訪問協(xié)議; 步驟4. 3 :在目的1394設(shè)備完成所請求的操作后,返回數(shù)據(jù)給UPnP/1394軟件橋,更新SOAP狀態(tài)信息表中對應(yīng)SOAP請求的處理狀態(tài); 步驟4. 4 =UPnP/1394軟件橋?qū)?394設(shè)備返回的數(shù)據(jù)進(jìn)行SOAP封裝后返回給UPnP控制點(diǎn),并更新SOAP狀態(tài)信息表中對應(yīng)SOAP請求信息的處理狀態(tài)。
5.根據(jù)權(quán)利要求4所述的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,步驟I中所述的初始化UPnP/1394軟件橋的地址管理表,具體是建立一個將遠(yuǎn)程控制操作和UPnP/1394軟件橋用于接收遠(yuǎn)程控制操作所對應(yīng)的返回數(shù)據(jù)的內(nèi)存地址進(jìn)行映射的數(shù)據(jù)表,該映射表就是地址管理表,對于寄存器空間,采用16進(jìn)制表示的48位地址范圍是(FFFFF0000000-FFFFFFFFFFFF),對于存儲空間,采用16進(jìn)制表示的48位地址范圍為(000000000000-FFFFDFFFFFFF)。
6.根據(jù)權(quán)利要求4所述的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,步驟2中所述的1394設(shè)備地址表,其中記錄各1394設(shè)備的信息,包括節(jié)點(diǎn)ID、最大有效數(shù)據(jù)長度、最大傳輸速度和硬件地址;所述的硬件地址是指1394設(shè)備的唯一標(biāo)示符。
7.根據(jù)權(quán)利要求4所述的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,步驟4. 2中所述的SOAP狀態(tài)信息表,其中記錄了 UPnP控制點(diǎn)的SOAP請求信息的處理狀態(tài),包括=UPnP控制點(diǎn)的IP地址、服務(wù)操作、目的1394設(shè)備的唯一標(biāo)識符、處理狀態(tài)、參數(shù)名稱和參數(shù)類型;處理狀態(tài)總共由四種,分別為確認(rèn)請求、請求中、超時和完成。
8.根據(jù)權(quán)利要求4所述的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,所述的步驟4. 4具體包括如下子步驟 步驟A : 1394/UPnP軟件橋接收到1394網(wǎng)絡(luò)發(fā)來的數(shù)據(jù)包后,將該數(shù)據(jù)包拷貝到數(shù)據(jù)緩沖區(qū)中; 步驟B:判斷數(shù)據(jù)包類型,返回的數(shù)據(jù)類型分為兩種,一種是以異步數(shù)據(jù)包的形式返回,一種是以等時數(shù)據(jù)包的形式返回,若是異步數(shù)據(jù)包執(zhí)行步驟C,若是等時數(shù)據(jù)包執(zhí)行步驟D; 步驟C :當(dāng)UPnP/1394軟件橋接收到異步數(shù)據(jù)包時,將該數(shù)據(jù)包添加到緩沖區(qū),并且判斷緩沖區(qū)的大小,當(dāng)緩沖區(qū)大小達(dá)到了 SOAP數(shù)據(jù)的封裝大小N時,將緩沖區(qū)內(nèi)的數(shù)據(jù)重組為SOAP數(shù)據(jù),發(fā)送給UPnP網(wǎng)絡(luò); 步驟D :當(dāng)UPnP/1394軟件橋接收到的是等時數(shù)據(jù)包時,將等時數(shù)據(jù)包填入緩沖池中的緩沖區(qū),當(dāng)填滿一個緩存區(qū)時,對該緩存區(qū)進(jìn)行RTP格式封裝,然后發(fā)送給UPnP網(wǎng)絡(luò)中的支持RTP協(xié)議的視頻播放器;所述的緩沖區(qū)的大小為一幀數(shù)據(jù)的大小,緩沖池中有兩個以上的緩沖區(qū);在等時數(shù)據(jù)包的傳送過程中,還通過QoS控制模塊保證等時數(shù)據(jù)傳輸?shù)姆?wù)質(zhì)量,QoS表不服務(wù)質(zhì)量,RTP表不實時傳輸協(xié)議。
9.根據(jù)權(quán)利要求8所述的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,所述的緩沖區(qū),由160個數(shù)據(jù)包組成,每20ms完成一幀完整數(shù)據(jù)的發(fā)送。
10.根據(jù)權(quán)利要求8所述的基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法,其特征在于,所述的通過QoS控制模塊保證等時數(shù)據(jù)傳輸?shù)姆?wù)質(zhì)量,具體通過如下步驟實現(xiàn) (1)從1394等時數(shù)據(jù)緩沖區(qū)接收等時數(shù)據(jù)包,將等時數(shù)據(jù)包通過X264編碼器進(jìn)行壓縮,打包為RTP格式數(shù)據(jù),然后保存到緩沖區(qū)中發(fā)送到UPnP網(wǎng)絡(luò),在獲取RTCP的接收方報告RR后,對報告RR進(jìn)行數(shù)據(jù)分析,獲得丟包率Y ;RTCP表示實時傳輸控制協(xié)議; (2)對當(dāng)前的丟包率進(jìn)行低通濾波,得到濾波后的丟包率YlYl= (1-d) Y+dYO其中,YO為上次濾波后的丟包率,d為YO和Yl之間的相關(guān)性系數(shù),取值為O. 3 ; 判斷當(dāng)前濾波后的丟包率Yl是否在(O. 2,O. 6)之間,若是,則證明當(dāng)前碼流適應(yīng)當(dāng)前網(wǎng)絡(luò)狀況,等待接收下一個RTCP的RR數(shù)據(jù)包,然后執(zhí)行(I);否則進(jìn)行下一步驟; (3)確定當(dāng)前輸出碼率X:
全文摘要
本發(fā)明為一種基于IEEE1394與UPnP技術(shù)的遠(yuǎn)程控制和訪問方法及裝置,所述裝置在UPnP堆棧模塊和1394通信模塊之間新增了UPnP over 1394模塊,新增模塊實現(xiàn)了1394設(shè)備和UPnP控制點(diǎn)的無縫連接。所述方法在總線復(fù)位后,對1394設(shè)備內(nèi)存地址進(jìn)行統(tǒng)一調(diào)度管理,通過ARP協(xié)議獲取1394設(shè)備的硬件地址和節(jié)點(diǎn)ID號之間的映射,發(fā)現(xiàn)1394設(shè)備并生成其服務(wù)描述文檔,保存控制點(diǎn)控制信息狀態(tài)用于故障分析,由緩沖區(qū)控制模塊和QoS控制模塊保證等時視頻流傳輸和服務(wù)質(zhì)量。本發(fā)明防止了橋設(shè)備地址沖突和浪費(fèi),且不會因為節(jié)點(diǎn)ID變化而導(dǎo)致遠(yuǎn)程訪問失敗,并且具有故障診斷能力和視頻傳輸?shù)腝oS能力。
文檔編號H04L12/28GK102685149SQ20121017765
公開日2012年9月19日 申請日期2012年5月31日 優(yōu)先權(quán)日2012年5月4日
發(fā)明者萬月亮, 叢向超, 史潔琴 申請人:北京航空航天大學(xué)