一種網絡數據采集控制系統及無線路由方法
【技術領域】
[0001] 本發明屬于數據采集和控制技術領域,特別是一種網絡數據采集控制系統及無線 路由方法。
【背景技術】
[0002] 目前,常用的工業現場數據采集和控制設備大多采用中低端的單片機作為控制 器,顯示屏為小尺寸的LCD屏幕,且沒有觸摸功能。其缺點是:隨著工業現場設備聯網的需 求越來越多,中低端單片機很難滿足復雜的網絡功能;中低端單片機很難有一個用戶體驗 很好的人機界面;中低端單片機很難處理日益增多的現場設備數據。而采用嵌入式領域高 檔的處理器和大尺寸觸摸IXD屏,能很好的解決這些問題。同時,工業現場的無線傳感網 絡,通常采用zigbee,而zigbee在復雜的工業現場,往往數據傳輸和組網速率比較低,且不 開源。很多廠家都設計自己的協議棧,來進行組網。
【發明內容】
[0003] 本發明的目的是針對現有技術的不足,而提出一種網絡數據采集控制系統及無線 路由方法。
[0004] 本發明解決其技術問題是采取以下技術方案實現的:
[0005] -種網絡數據采集控制系統,該系統包括主板CPU及分別與主板CPU連接的WIFI 模塊、聯通3G模塊、以太網卡、WSN匯聚節點模塊、CAN控制器模塊、RS485收發器模塊、64路 AD轉換模塊及IXD觸摸屏,通過CAN,RS485總線和工業現場進行數據交互,通過64路AD轉 換模塊獲取無線傳感網匯聚節點的數據,通過3G,WIFI,以太網三種方式與企業服務器進行 數據交互。
[0006] 而且,所述主板CPU具體采用ARM Cortex-A9內核的Exynos4412作為系統網關 的CPU,所述WIFI模塊、聯通3G模塊、以太網卡、WSN匯聚節點模塊、CAN控制器模塊、RS485 收發器模塊及64路AD轉換模塊具體采用的具體型號依次為:SWB-A31、UNA-1 ite、DM9621、 cc2530、Mcp2515、SN65HVD 及 AD7490。
[0007] 而且,64路AD轉換模塊包括一個MCU及與MCU連接的4個16通道ADC芯片 AD7490, MCU采用的具體型號為STM32F105RBT6, MCU通過4個SPI片選腳,2個SPI 口,實 現對4片ADC芯片的64路的采集時序控制,64路AD轉換模塊與主板CPU通過USB和UART 接口進行數據傳輸。
[0008] -種基于上述網絡數據采集控制系統的無線路由方法,包括步驟如下:
[0009] (1)將整個無線傳感網絡分為一個匯聚節點和其余的傳感節點;
[0010] (2)上電開機后,匯聚節點將自己的跳數值設為0,傳感節點將自己的跳數值設為 最大值65535,最大值65535為無效跳數;
[0011] ⑶匯聚節點申請反向路由表內存,傳感節點申請正向路由表內存和反向路由表 內存,路由表由一系列路由表項構成,正向路由表由目的地址是匯聚節點的路由表項構成, 反向路由表由目的地址是傳感節點的路由表項構成,路由表的數據結構如下:
[0012]
[0013] 每一行表示1個路由表項,其中,下_一跳地址表示該節點發送數據到目的地址節 點,選擇將該數據發送至該下一跳地址節點,由下一跳地址節點進行路由轉發,跳數值表示 經過該下一跳地址節點路由轉發總共需要的跳數,信號強度表示該節點到下一跳地址節點 的無線信號強度;
[0014] (4)傳感節點延時一個1秒以內的隨機數,啟動路由發現進程,路由發現進程如 下:
[0015] ①傳感節點以1秒為周期發送RREQ路由請求報文,RREQ路由請求報文數據格式 如下:
[0016]
[0017] 報文類型為0x00,目的地址為匯聚節點的地址0x0000,跳數值為本傳感節點到匯 聚節點的跳數值,報文序列號為依次遞增的整數;
[0018] ②匯聚節點收到RREQ路由請求報文后,回應RREP路由回復報文;
[0019] ③傳感節點收到RREQ路由請求報文后,若本傳感節點已經建立了到匯聚節點的 路由,到匯聚節點的正向路由表非空,則回應RREP路由回復報文;若本傳感節點沒有建立 到匯聚節點的正向路由,到匯聚節點的正向路由表為空,則不作任何處理;RREP路由回復 報文的數據格式如下:
[0020]
[0021] 報文類型為0x01,目的地址為RREQ報文的源傳感節點的地址,跳數值為本傳感節 點到匯聚節點的跳數值,報文序列號為依次遞增的整數;
[0022] ④傳感節點收到RREP路由回復報文后,若RREP路由回復報文的目的地址是本傳 感節點,則作如下處理:
[0023] (a)若RREP路由回復報文中的跳數值大于等于本傳感節點的跳數值,則不做任何 處理;
[0024] (b)若RREP路由回復報文中的跳數值加1等于本傳感節點的跳數值,則將RREP路 由回復報文的源節點地址作為本傳感節點到匯聚節點的路由節點,若到匯聚節點的正向路 由表中沒有這個路由表項,則加入該路由表項到正向路由表中;
[0025] (c)若RREP路由回復報文中的跳數值加1小于本傳感節點的跳數值,則清空到匯 聚節點的正向路由表,將RREP路由回復報文的源節點地址作為本傳感節點到匯聚節點的 路由節點,加入該路由表項到正向路由表中,且將本傳感節點的跳數值設置為等于RREP路 由回復報文中的跳數值加1 ;
[0026] (5)傳感節點結束路由發現進程,進入數據傳輸進程,數據傳輸進程過程如下:
[0027] ①傳感節點傳輸NDATA數據報文至匯聚節點時,先查詢正向路由表中是否有路由 表項,若不存在到匯聚節點的路由表項,則重新啟動路由發現進程;若存在到匯聚節點的路 由表項,則在到匯聚節點的正向路由表中選擇一個信號強度最好的路由表項,將NDATA數 據報文發往該路由表項的路由傳感節點,NDATA數據報文的數據格式為:
[0028]
[0029] 報文類型為0x10,目的地址為匯聚節點地址0x0000,源地址為該傳感節點的地 址,下一跳地址為正向路由表中信號強度最好的路由表項中的下一跳路由傳感節點的地 址,
[0030] ②傳感節點在發送NDATA數據報文時,啟動超時定時器,若在定時器溢出時,還未 收到路由傳感節點的NDATA_ACK數據ACK報文確認,則重傳該NDATA數據報文,若重傳3次, 仍沒有收到路由傳感節點的NDATA_ACK數據ACK報文確認,則認為該路由已經損壞,刪除該 路由表項;
[0031 ] ③若傳感節點依次嘗試完正向路由表中所有路由項均失敗,則啟動路由修復進 程;
[0032] ④傳感節點收到NDATA數據報文后,若該NDATA數據報文的下一跳地址為本傳感 節點地址,則回應NDATA_ACK數據ACK報文,轉發該NDATA數據報文至正向路由表中信號最 強的路由表項中的路由傳感節點,若收到重復的NDATA數據報文,不做轉發,但仍然需要回 應NDATA_ACK數據ACK報文,轉發NDATA數據報文仍然需要步驟(5)中②的超時重發機制 和步驟(5)中③的判斷,NDATA_ACK數據ACK報文的數據格式為:
[0033]
[0034] 報文類型為0x11,目的地址為發送NDATA報文的傳感節點的地址;
[0035] ⑤在步驟(5)的④步中,傳感節點收到NDATA數據報文后,若該NDATA數據報文 的下一跳地址為本傳感節點地址,則根據NDATA數據報文的內容,記錄反向路由表項,將 NDATA數據報文中的源地址作為反向路由表項的目的地址,將轉發NDATA數據報文的傳感 節點的地址作為下一跳路由傳感節點地址;
[0036] (6)若傳感節點沒有任何