張 杰, 申晉祥
(山西大同大學 數(shù)學與計算機科學學院, 大同 037009)
物聯(lián)網(wǎng)使用戶不僅可訪問虛擬資源, 還可以和物理世界中的實體互動, 具有減少運營成本、提高產(chǎn)品競爭力等優(yōu)勢, 被廣泛應用于各個領域[1–3]. 當前物聯(lián)網(wǎng)通常是專有應用, 系統(tǒng)較為封閉, 存在差異的系統(tǒng)使用的數(shù)據(jù)格式也存在差異, 造成不同系統(tǒng)之間無法進行自由的數(shù)據(jù)交換, 是物聯(lián)網(wǎng)發(fā)展的瓶頸[4–6]. 數(shù)據(jù)交換節(jié)點指的是通信數(shù)據(jù)進行傳輸中, 需要進行數(shù)據(jù)轉換或交換, 由此在數(shù)據(jù)交換的過程中, 需要設計適應數(shù)據(jù)交換的節(jié)點. 由于計算機具有不同操作系統(tǒng), 或者具有不同網(wǎng)段的系統(tǒng). 所以需要設計一種高效的數(shù)據(jù)交換節(jié)點, 以實現(xiàn)不同系統(tǒng)之間的通信[7,8].
文獻[9]提出一種基于可靠數(shù)據(jù)傳輸協(xié)議的數(shù)據(jù)交換節(jié)點設計方法, 利用本地緩存與轉發(fā)機制實現(xiàn)鏈路之間的數(shù)據(jù)交換. 該方法鏈路利用率較高, 但適應能力較差; 文獻[10]依據(jù)數(shù)據(jù)緩沖、轉發(fā)及分布式路由思想, 設計了依據(jù)數(shù)據(jù)流轉發(fā)的數(shù)據(jù)交換節(jié)點, 為節(jié)點設置組網(wǎng)功能, 結合路由機制, 減少數(shù)據(jù)延遲, 實時性較高, 但容易出現(xiàn)數(shù)據(jù)丟失的情況; 文獻[11]提出一種基于輕量級物聯(lián)網(wǎng)數(shù)據(jù)交換協(xié)議的數(shù)據(jù)交換節(jié)點設計方法, 針對請求數(shù)據(jù), 首先通過三級壓縮機制對其進行壓縮處理, 然后通過上報模式實現(xiàn)數(shù)據(jù)交換節(jié)點的設計.該方法計算量小, 但實現(xiàn)過程較為復雜, 不適于實際應用.
針對上述方法的弊端, 提出一種新的面向物聯(lián)網(wǎng)的高速數(shù)據(jù)交換節(jié)點設計方法, 介紹了節(jié)點所處物聯(lián)網(wǎng)的拓撲結構, 給出高速數(shù)據(jù)交換節(jié)點內(nèi)部結構, 詳細設計了調(diào)制模塊、碼字相加模塊和解調(diào)模塊. 通過碼分多址技術實現(xiàn)高速數(shù)據(jù)交換節(jié)點的軟件設計. 實驗結果表明, 所提方法帶寬使用率高、傳輸速度快、響應能力強.
節(jié)點所處物聯(lián)網(wǎng)的拓撲結構如圖1所示, 通過上行通道將采集到的數(shù)據(jù)經(jīng)數(shù)據(jù)交換節(jié)點發(fā)送至更高級的節(jié)點進行處理, 通過下行通道對采集數(shù)據(jù)進行管理[12–14].
圖1 節(jié)點所處物聯(lián)網(wǎng)的拓撲結構
1.2.1 高速數(shù)據(jù)交換節(jié)點內(nèi)部結構
圖2描述的是高速數(shù)據(jù)交換節(jié)點內(nèi)部方框圖, 其主要由碼字相加模塊、調(diào)制模塊、緩存模塊和解調(diào)模塊構成, 每個和高速數(shù)據(jù)交換節(jié)點的IP模塊均經(jīng)輸入端口與輸出端口和交換節(jié)點相連, 在各輸入端口處設置一個緩沖隊列, 通過調(diào)制模塊讀取數(shù)據(jù), 傳輸至碼字加法器模塊進行加法運算, 將計算結果發(fā)送至各個解調(diào)模塊進行處理后, 把數(shù)據(jù)傳輸至目的IP模塊.
1.2.2 調(diào)制模塊設計
圖2 交換節(jié)點的內(nèi)部方框圖
調(diào)制模塊接口信號框圖如圖3所示, 在調(diào)制模塊中安裝一個寄存器對從FIFO讀入的數(shù)據(jù)包進行讀取,利用目的IP模塊的地址選擇相應的8bite Walsh正交碼完成擴展處理, 將擴展數(shù)據(jù)傳輸至碼字相加模塊. 調(diào)制模塊的目的是在碼字相加模塊處理數(shù)據(jù)前, 對數(shù)據(jù)進行預處理, 調(diào)制模塊可以對不同輸入數(shù)據(jù)進行擴展處理, 經(jīng)過數(shù)據(jù)擴展后, 可以實現(xiàn)最小化總功率的目的,降低數(shù)據(jù)傳輸能耗.
圖3 調(diào)制模塊的接口信號框圖
1.2.3 碼字相加模塊設計
碼字相加模塊可以對經(jīng)過預處理的數(shù)據(jù)進行碼字相加, 其可以將特定含義的輸入數(shù)據(jù)信號轉換為二進制代碼, 有助于統(tǒng)一規(guī)劃處理數(shù)據(jù).
碼字相加模塊門級電路圖如圖4所示, 將從調(diào)制模塊接收到的擴展數(shù)據(jù)在碼字相加模塊中進行處理,將處理結果傳輸至解調(diào)模塊[15–17].
圖4 碼字相加模塊的門級電路圖
1.2.4 解調(diào)模塊設計
解調(diào)模塊主要負責對碼字相加模塊傳輸?shù)臄?shù)據(jù)進行還原. 利用碼字相加后, 數(shù)據(jù)變成二進制代碼形式,其處理與傳輸較為方便快捷, 響應能力較高, 但最終傳輸數(shù)據(jù)還是需要以數(shù)據(jù)信號的形式. 因此需要解調(diào)模塊, 對二進制代碼形式的數(shù)據(jù)進行還原. 解調(diào)模塊接口信號框圖如圖5所示.
圖5 解調(diào)模塊的接口信號框圖
本節(jié)通過碼分多址技術實現(xiàn)高速數(shù)據(jù)交換節(jié)點的軟件設計. 在發(fā)送物聯(lián)網(wǎng)高速數(shù)據(jù)前, 節(jié)點利用唯一的擴展碼對數(shù)據(jù)進行擴展處理, 接收節(jié)點通過相應的接收器對其中的數(shù)據(jù)進行采集[18–20]. 由于擴展碼存在正交性, 因此接收節(jié)點能夠有效獲取原始數(shù)據(jù).
在整個高速數(shù)據(jù)交換周期中, 硬件首先對所有數(shù)據(jù)包的頭部進行檢測, 得到其地址信息, 再通過高速序列對待發(fā)送數(shù)據(jù)進行擴展, 數(shù)據(jù)抵達目的地后, 接收節(jié)點通過其唯一碼字對數(shù)據(jù)進行提取, 實現(xiàn)高速數(shù)據(jù)交換. 本節(jié)選用的擴展碼為Walsh正交碼, 主要是由于該種擴展碼的正交性較好. 而擴展碼存在正交性可以保證接收節(jié)點能夠有效獲取原始數(shù)據(jù). 原始數(shù)據(jù)的獲取有助于提高數(shù)據(jù)的響應能力. 通過哈達碼矩陣產(chǎn)生Walsh函數(shù). 哈達碼矩陣是一個方陣, 其中的元素均為+1 和–1, 通過邏輯值{0, l}對哈達碼矩陣進行描述,則2×2的2階哈達碼矩陣可描述成:
將上式中的 1 變成 0, –1 變成 1, 則有:
上式即為設計高速數(shù)據(jù)交換節(jié)點時所用的Walsh正交碼, 本節(jié)將的行向量看作擴展碼.
碼分多址的調(diào)制算法: 如果需傳輸?shù)臄?shù)據(jù)是0, 則傳輸擴展碼的原碼; 反之, 傳輸擴展碼的反碼.
為了驗證本文提出的面向物聯(lián)網(wǎng)的高速數(shù)據(jù)交換節(jié)點設計方法的有效性, 需要進行相關的實驗分析. 實驗將基于ZigBee的數(shù)據(jù)交換節(jié)點設計方法和基于UDP協(xié)議的數(shù)據(jù)交換節(jié)點設計方法作為對比, 通過Java實現(xiàn)設計的節(jié)點原型, 將4臺PC服務器看作交換節(jié)點服務器, 采集5000個數(shù)據(jù)進行實驗.
帶寬使用率是設計的數(shù)據(jù)交換節(jié)點資源利用率的體現(xiàn), 帶寬使用率越高, 則設計節(jié)點的資源利用率越高,其可通過下式求出:
將消息型數(shù)據(jù)源傳輸至設計的數(shù)據(jù)交換節(jié)點, 通過節(jié)點進行數(shù)據(jù)交換后傳輸至主機, 對得到的數(shù)據(jù)進行測試, 本文方法、ZigBee方法和UDP協(xié)議方法的帶寬使用率比較結果如圖6所示.
圖6 三種方法針對消息型數(shù)據(jù)的帶寬使用率比較結果
分析圖6可以看出, 隨著數(shù)據(jù)量的逐漸增多, 本文方法、ZigBee方法和UDP協(xié)議方法的帶寬使用率均呈上升趨勢, 這主要是因為在待處理數(shù)據(jù)量逐漸增大的情況下, 系統(tǒng)對服務器CPU資源的需求量大大增加,使得帶寬利用率增加. 然而本文方法針對消息型數(shù)據(jù)的帶寬利用率曲線一直高于ZigBee方法和UDP協(xié)議方法, 說明本文方法針對消息型數(shù)據(jù)的資源利用率較高.
圖7描述的是本文方法、ZigBee方法和UDP協(xié)議方法針對文件型數(shù)據(jù)的帶寬使用率比較結果.
圖7 三種方法針對文件型數(shù)據(jù)的帶寬使用率比較結果
分析圖7可以看出, 隨著文件型數(shù)據(jù)大小的逐漸增加, 本文方法、ZigBee方法和UDP協(xié)議方法的帶寬使用率均呈先升高再平緩的趨勢, 這是因為當文件型數(shù)據(jù)達到一定量的情況下, 系統(tǒng)對CPU 資源的需求過大, 導致帶寬產(chǎn)生瓶頸. 但本文方法的帶寬使用率一直高于其它兩種方法, 進一步驗證了本文方法的性能.
表1描述的是針對消息型數(shù)據(jù)和文件型數(shù)據(jù)的綜合體, 本文方法、ZigBee方法和UDP協(xié)議方法的帶寬使用率比較結果.
表1 三種方法帶寬使用率比較結果
分析表1可以看出, 在有效幀長度從1000 B增加至5000 B的過程中, 本文方法的帶寬利用率一直高于相同有效幀長度下的ZigBee方法和UDP協(xié)議方法,進一步驗證了本文方法的性能.
在物聯(lián)網(wǎng)中, 數(shù)據(jù)流在交換的過程中會在一定程度上產(chǎn)生效率損耗, 本節(jié)通過數(shù)據(jù)傳輸速度的變化情況對效率損耗進行衡量. 圖9描述的是高速數(shù)據(jù)交換延遲示意圖.
圖8 高速數(shù)據(jù)交換延遲示意圖
如圖8所示, 在第一個數(shù)據(jù)包依次從節(jié)點1傳輸至節(jié)點n的過程中, 假設第一個數(shù)據(jù)包經(jīng)過相鄰節(jié)點所需的轉發(fā)時間用進行描述, 物聯(lián)網(wǎng)帶寬用進行描述, 所需傳輸?shù)臄?shù)據(jù)大小用進行描述, 數(shù)據(jù)包大小用進行描述, 數(shù)據(jù)通過節(jié)點完成交換的總用時用進行描述, 則傳輸速度可通過下式求出:
其中,
傳輸速度越快, 說明設計的節(jié)點處理能力越強, 性能越高.
表2描述的是本文方法、ZigBee方法和UDP協(xié)議方法在傳輸數(shù)據(jù)量逐漸增加的情況下的傳輸速度比較結果.
表2 三種方法傳輸速度比較結果
分析表2可知, 隨著傳輸數(shù)據(jù)量的逐漸增加, 本文方法的傳輸速度越來越快, 在傳輸數(shù)據(jù)是50 KB的情況下, 傳輸速度是 1/3 B, 在傳輸速度是 5000 KB 的情況下, 傳輸效率超過帶寬的 99%, 趨于帶寬飽滿. 而在數(shù)據(jù)量相同的情況下, 本文方法的傳輸速度一直高于ZigBee方法和UDP協(xié)議方法, 說明本文方法的傳輸速度最快, 使得節(jié)點交換效率高, 能夠滿足系統(tǒng)對傳輸速度的要求.
在待處理數(shù)據(jù)量不同的情況下, 分別采用本文方法、ZigBee方法和UDP協(xié)議方法對其進行處理, 三種方法的響應效率比較結果用表3進行描述.
表3 三種方法的響應效率比較結果
分析表3可知, 與ZigBee方法和UDP協(xié)議方法相比, 在數(shù)據(jù)量相同的情況下, 本文方法的響應效率一直最高, 說明本文方法實時性強, 響應性能高.
出現(xiàn)以上實驗結果的原因主要是: ZigBee技術是一種短距離、低功耗的無線通信技術. UDP提供無連接通信, 且不對傳送數(shù)據(jù)包進行可靠性保證, 適合于一次傳輸少量數(shù)據(jù). 該兩種技術均是目前常用的通信技術. ZigBee 技術雖能耗較低, 但其最適合短距離, 對長距離數(shù)據(jù)傳輸?shù)倪^程適應性較差, 使其性能不好.UDP協(xié)議適合少量數(shù)據(jù)傳輸, 若需要傳輸?shù)臄?shù)據(jù)量較大, 極易導致其性能下降. 而本文方法將數(shù)據(jù)進行預處理, 化為二進制代碼傳輸, 增加其效率, 最后進行解調(diào),提高了其帶寬利用率等.
本文提出一種新的面向物聯(lián)網(wǎng)的高速數(shù)據(jù)交換節(jié)點設計方法, 介紹了節(jié)點所處物聯(lián)網(wǎng)的拓撲結構, 給出高速數(shù)據(jù)交換節(jié)點內(nèi)部結構, 詳細設計了調(diào)制模塊、碼字相加模塊和解調(diào)模塊. 通過碼分多址技術實現(xiàn)高速數(shù)據(jù)交換節(jié)點的軟件設計, 實現(xiàn)調(diào)制模塊和解調(diào)模塊的基本功能. 實驗結果表明, 所提方法帶寬使用率高、傳輸速度快、響應能力強.