本發(fā)明涉及網絡技術領域,尤其涉及一種適用于嵌入式設備的網絡IP地址自動分配方法。
背景技術:
當前,大多數的LED異步控制卡與PC端之間都是通過網絡進行通信,而大多數LED異步控制卡的網絡IP地址要么是從路由器端自動分配的,要么是通過軟件系統(tǒng)自己設定的靜態(tài)IP地址,亦或者是用戶自己設定的靜態(tài)IP地址。實際應用中,有可能會遇到無路由器或有路由器但DHCP服務關閉的網絡環(huán)境,如一臺PC端通過交換機接了多張LED異步控制卡以及其他有網絡IP地址的設備時,在這種情況系下,想要實現正常的網絡連接通信又希望設備能自己設定可用的IP地址且無需用戶自己配置時,就會遇到IP自動分配沖突的問題。在不同設備出現相同IP地址時,就可能出現IP地址搶占掉線、離線等問題,導致用戶無法正常連接到LED異步控制卡。
現有的LED異步控制卡的IP地址分配機制是在PC端安裝有上位機搜索連接的軟件,在上位機發(fā)起搜索連接之后,LED異步控制卡在接收到上位機發(fā)出的搜索連接命令之后,LED異步控制卡的軟件會自動記錄搜索自己的PC端的IP地址,并根據該IP地址的網段設定自己的IP地址與PC端的IP地址在同一網段,如:PC端IP地址為192.168.0.10,則LED異步控制卡會自動給自己分配設置一個192.168.0.xxx的IP地址,“xxx”是在1-254之間隨機選擇的一組數,在設定之前軟件通過PING命令去PING自己設定的IP地址是否有被其它設備使用,未使用則最終確定為自己的IP地址。
然而,現有的LED異步控制卡的IP地址分配機制主要存在的問題有:
1)當一臺PC端連接1個終端設備時,IP地址分配沖突的概率為1/254,但是當一臺PC端連接100臺終端設備時,分配IP地址沖突的概率就變?yōu)?00/254,LED異步控制卡的數量越多,分配IP地址沖突的概率越大,這樣就會出現相同IP地址的終端設備離線,無法與PC端建立TCP/IP連接的問題;
2)當前通過PING某個終端設備的IP地址的方式判斷某個IP地址是否已被使用并非完全可靠的判定方式,因為局域網中的PC端的防火墻設置過濾的話,是不會回包給發(fā)起PING命令的另外一個終端設備的,此時PING不通并不能代表該IP地址不存在,但是LED異步控制卡終端自身并不知道該IP地址存在,會在PING不通的情況的下,對自身設置該IP地址,但是一旦設置完成后,在整個網絡內就會出現2張相同IP地址的LED異步控制卡,此時可能會出現這兩個相同IP地址的LED異步控制卡終端有1個或者2個都離線和相互搶占IP地址的情況。
技術實現要素:
因此,本發(fā)明主要針對嵌入式設備例如LED異步控制卡的IP分配及設定沖突問題,提供一種可靠性的IP地址自動分配機制來避免IP地址自動分配沖突的問題。
具體地,本發(fā)明實施例提出的一種網絡IP地址自動分配方法,適用于嵌入式設備的IP地址分配,其包括步驟:(i)上位機發(fā)起UDP廣播搜索連接,以供與所述上位機處于同一局域網中的嵌入式設備在收到UDP廣播后回復包含嵌入式設備本地IP地址的反饋信息;(ii)上位機根據回復的反饋信息建立IP地址維護列表;(iii)上位機為目標嵌入式設備隨機分配一個與所述上位機同一網段的IP地址,其中所述目標嵌入式設備的本地IP地址與所述上位機的IP地址不在同一網段;(iv)上位機通過PING命令確定分配的IP地址是否可用;(v)如果確定所述分配的IP地址不可用,則將所述分配的IP地址丟棄并重新執(zhí)行步驟(iii)和步驟(iv);(vi)如果確定所述分配的IP地址可用,則將所述分配的IP地址記錄至所述IP地址維護列表并將所述分配的IP地址下發(fā)至所述目標嵌入式設備,以供所述目標嵌入式設備將所述分配的IP地址設為本地IP地址并在生效后發(fā)起與所述上位機的TCP/IP連接。
在本發(fā)明的一個實施例中,所述網絡IP地址自動分配方法在步驟(vi)之后還包括步驟:(vii)若所述目標嵌入式設備與所述上位機之間成功建立TCT/IP連接,則上位機在界面上通過指示符顯示所述目標嵌入式設備當前為實連接狀態(tài);反之若所述目標嵌入式設備與所述上位機之間未成功建立TCT/IP連接,此時只是建立了UDP連接,則上位機在界面上通過指示符顯示所述目標嵌入式設備當前為虛連接狀態(tài);其中虛連接狀態(tài)表示所述目標嵌入式設備與所述上位機之間未建立TCP/IP連接但可進行UDP通信。值得一提的是,如果上位機和目標嵌入式設備之間未建立UDP連接也未建立TCP/IP連接的話,則上位機軟件通過指示符顯示所述目標嵌入式設備當前為離線狀態(tài)。
在本發(fā)明的一個實施例中,所述網絡IP地址自動分配方法在步驟(i)之前還包括步驟:上位機響應用戶觸發(fā)UDP廣播搜索連接操作后清空上一次UDP廣播搜索連接時建立的IP地址維護列表。
在本發(fā)明的一個實施例中,所述網絡IP地址自動分配方法在步驟(i)之前還包括步驟:上位機響應用戶操作設置所述目標嵌入式設備為自動分配IP地址方式。
在本發(fā)明的一個實施例中,在步驟(iii)中,隨機分配IP地址時避開所述IP地址維護列表已有的IP地址。
此外,本發(fā)明再一實施例提出的一種網絡IP地址自動分配方法,適用于嵌入式設備的IP地址分配,其包括步驟:(a)嵌入式設備上電啟動后在接收到來自上位機的UDP廣播搜索連接包后回復包括所述嵌入式設備本地IP地址的反饋信號;(b)所述嵌入式設備根據接收到的UDP廣播搜索連接包判斷所述嵌入式設備當前是否被設置為自動分配IP地址方式;(c)如果步驟(b)的判斷結果為“是”,所述嵌入式設備將上位機下發(fā)的IP地址保存至本地;(d)所述嵌入式設備通過PING命令確認所述保存至本地的IP地址是否可用;(e)如果步驟(d)的判斷結果為“是”,所述嵌入式設備將所述保存至本地的IP地址設置為本地IP地址并使設置的本地IP地址生效;(f)所述嵌入式設備利用生效后的本地IP地址發(fā)起TCP/IP連接至所述上位機。
在本發(fā)明的一個實施例中,所述網絡IP地址自動分配方法還包括步驟:如果步驟(b)的判斷結果為“否”,所述嵌入式設備不修改本地IP地址并等待所述上位機的UDP廣播搜索連接。
在本發(fā)明的一個實施例中,所述網絡IP地址自動分配方法還包括步驟:如果步驟(d)的判斷結果為“否”,所述嵌入式設備不修改本地IP地址并告知所述保存至本地的IP地址不可用。
另外,本發(fā)明又一實施例提出的一種網絡IP地址自動分配方法,包括步驟:(x1)上位機發(fā)起UDP廣播搜索連接;(x2)與所述上位機處于同一局域網中的多個嵌入式設備在收到UDP廣播后回復包含各個嵌入式設備本地IP地址的反饋信息;(x3)上位機根據回復的反饋信息建立IP地址維護列表;(x4)上位機為所述多個嵌入式設備中的目標嵌入式設備分配一個與所述上位機同一網段的IP地址,其中所述目標嵌入式設備的本地IP地址與所述上位機的IP地址不在同一網段;(x5)上位機通過PING命令確定分配的IP地址是否可用;(x6)如果確定所述分配的IP地址不可用,則將所述分配的IP地址丟棄并重新執(zhí)行步驟(x4)和步驟(x5);(x7)如果確定所述分配的IP地址可用,則將所述分配的IP地址記錄至所述IP地址維護列表并將所述分配的IP地址通過UDP廣播下發(fā)至所述目標嵌入式設備;(x8)所述目標嵌入式設備通過PING命令再次確認所述分配的IP地址是否可用;(x9)在步驟(x8)的再次確認結果為“是”時,所述目標嵌入式設備將所述分配的IP地址設為本地IP地址并在設置的本地IP地址生效后發(fā)起與所述上位機的TCP/IP連接。
在本發(fā)明的一個實施例中,所述網絡IP地址自動分配方法在步驟(x9)之后還包括步驟:如果所述目標嵌入式設備與所述上位機之間成功建立TCT/IP連接,則上位機在界面上通過指示符顯示所述目標嵌入式設備當前為實連接狀態(tài);反之如果所述目標嵌入式設備與所述上位機之間未成功建立TCT/IP連接,只是建立了UDP連接的話,則上位機在界面上通過指示符顯示所述目標嵌入式設備當前為虛連接狀態(tài);其中虛連接狀態(tài)表示所述目標嵌入式設備與所述上位機之間未建立TCP/IP連接但可進行UDP通信。值得一提的是,如果上位機和目標嵌入式設備之間未建立UDP連接也未建立TCP/IP連接的話,則上位機軟件通過指示符顯示所述目標嵌入式設備當前為離線狀態(tài)。
由上可知,本發(fā)明實施例可以達成以下一個或多個有益效果:(1)增加LED異步控制卡的網路連接的可靠性;以及(2)克服由于多臺終端設備同時連接時的IP分配沖突給用戶帶來的離線問題。
通過以下參考附圖的詳細說明,本發(fā)明的其它方面和特征變得明顯。但是應當知道,該附圖僅僅為解釋的目的設計,而不是作為本發(fā)明的范圍的限定。還應當知道,除非另外指出,不必要依比例繪制附圖,它們僅僅力圖概念地說明此處描述的結構和流程。
附圖說明
下面將結合附圖,對本發(fā)明的具體實施方式進行詳細的說明。
圖1為PC端與LED異步控制卡直連的架構示意圖。
圖2為PC端通過交換機與LED異步控制卡連接的架構示意圖。
圖3為PC端通過路由器與LED異步控制卡連接的架構示意圖。
圖4為PC端通過路由器以及交換機與LED異步控制卡連接的架構示意圖。
圖5為本發(fā)明實施例提出的一種網絡IP地址自動分配的整體流程示意圖。
圖6為本發(fā)明實施例提出的網絡IP地址自動分配方案中的上位機軟件處理流程示意圖。
圖7為本發(fā)明實施例提出的網絡IP地址自動分配方案中的終端軟件處理流程圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本發(fā)明的具體實施方式做詳細的說明。
一、網絡連接環(huán)境
一般而言,在現實情況下,用戶通常遇到的LED控制系統(tǒng)的基本網絡搭建環(huán)境有以下幾種:1)PC與LED異步控制卡直連,如圖1所示;2)PC端通過交換機與LED異步控制卡連接,如圖2所示;3)PC端通過路由器與LED異步控制卡連接,如圖3所示;以及4)PC端通過路由器及交換機與LED異步控制卡連接,如圖4所示。當然,實際的網絡環(huán)境遠遠不止以上提到的四種,但是以上的四種基本囊括了局域網連接的基本連接方式,其他更多的網絡連接環(huán)境基本就是多幾個路由或者交換機等方式,出現的問題基本也都與以上四種網絡連接環(huán)境大同小異,本發(fā)明不再詳細講述。
二.網絡IP地址分配技術方案
本發(fā)明下述實施例主要應用于無路由器、有路由器但DHCP服務未啟用或者有路由器且DHCP服務已啟用但接入的嵌入式設備的IP地址獲取方式設為靜態(tài)IP地址的局域網環(huán)境。
如圖5所示,其為本發(fā)明實施例提出的一種網絡IP地址自動分配的整體流程圖。本實施例在上位機(例如PC機)上例如安裝有西安諾瓦電子科技有限公司自主開發(fā)的集中播放控制軟件Pluto Manager或智能配屏軟件LCT等上位機軟件,因而在進行集中播控或配屏等操作時需要利用上位機對LED異步控制卡進行搜索連接,相應地在LED異步控制卡上會安裝有終端軟件。本實施例的網絡IP地址自動分配機制主要是把不同網段的LED異步控制卡的本地IP地址設置到與上位機的IP地址在同一網段,以便于建立TCP/IP連接,從而進行通信;并且本實施例的系統(tǒng)網絡通信連接架構是以上位機為Server端(服務器端),以LED異步控制卡為Client端(客戶端)。
如圖5所示,本實施例的網絡IP地址自動分配的整體流程是在上位機首先發(fā)起UDP廣播搜索連接,在同一局域網內的LED異步控制卡收到上位機發(fā)出的UDP廣播包后回復包含終端本地IP地址甚至終端名稱的反饋信息給上位機,當然多張LED異步控制卡同時在該局域網內時,會同時推送反饋信息(或稱UDP廣播回包)給上位機,上位機接收到當前的UDP廣播回包后,會對當前局域網內的LED異步控制卡建立一個IP地址維護列表,然后對這些LED異步控制卡逐一隨機分配(此處可以理解的是,隨機分配時會避開IP地址維護列表中已有的IP地址)與本機同網段的IP地址并發(fā)送到當前的LED異步控制卡,在每分配一個IP地址時,上位機會先通過PING命令檢測該IP地址是否可用,不可用則丟棄重新分配,可用則下發(fā)至目標LED異步控制卡,并將已分配的IP地址記錄至IP地址維護列表中,上位機再給下一張LED異步控制卡分配IP地址的時候就排除IP地址維護列表中的IP地址,如果IP地址維護列表已存在某個IP地址則認為不可用,否則如果IP地址維護列表不存在某個IP地址,再通過PING命令來確認是否被其他終端設備占用,如果未被占用則認為該IP地址有效,同時將其下發(fā)至LED異步控制卡并在IP地址維護列表中存為已用IP地址,在發(fā)至LED異步控制卡并等待LED異步控制卡將分配的IP地址設置生效以后,LED異步控制卡主動發(fā)起TCP/IP連接到上位機。如果連接建立成功則上位機軟件顯示綠色指示符以表示當前為實連接狀態(tài),也即表示上位機與目標LED異步控制卡已建立TCP/IP連接;反之,如果TCP/IP連接建立失敗,但此時UDP連接是通的,則上位機軟件顯示黃色指示符以表示當前為虛連接狀態(tài)(也即其與上位機可進行UDP通信但未成功建立TCP/IP連接,借此便于用戶識別哪些LED異步控制卡為離線狀態(tài)以及哪些LED異步控制卡為在線狀態(tài)但未建立TCP/IP連接),此處值得一提的是,對于未建立TCP/IP連接也未建立UDP連接的LED異步控制卡,上位機界面圖標顯示為灰色,表示LED異步控制卡當前為離線狀態(tài);圖6所示為上位機軟件處理流程示意圖。再者,從圖6中可以得知:在上位機發(fā)起UDP廣播搜索連接步驟之前,上位機處于等待用戶觸發(fā)UDP廣播搜索連接狀態(tài),從而當用戶進行UDP廣播搜索連接觸發(fā)操作后其會先清空上一次UDP廣播搜索連接時建立的IP地址維護列表。
圖7為本發(fā)明實施例提出的網絡IP地址自動分配方案中的終端軟件處理流程圖。如圖7所示,LED異步控制卡在上電啟動以后,LED異步控制卡(其上的終端軟件)等待來自上位機的UDP廣播搜索連接,在接收到上位機發(fā)出的UDP廣播包以后,回復包含LED異步控制卡的本地IP地址甚至終端名稱等信息給上位機,由上位機去檢測該本地IP地址是否與上位機的本機IP地址在同一網段,不在同一網段的情況下,如果用戶在上位機上選擇了IP自動分配的功能(典型地,表示選擇了IP自動分配功能的信息會隨廣播包下發(fā)至目標LED異步控制卡),則采用自動分配IP地址的方式給LED異步控制卡終端分配IP地址,此處在上位機上選擇IP自動分配的功能的方式可以是響應用戶的操作逐一設置各張LED異步控制卡為自動分配IP地址方式。如果用戶在上位機上沒有選擇自動分配IP地址的功能,則上位機顯示虛連接狀態(tài)(也即UDP廣播可通,但是TCP/IP連接未建立),等待用戶修改目標IP。
LED異步控制卡收到上位機的UDP廣播搜索連接包之后,回包給上位機,然后根據收到的UDP廣播包判斷用戶在上位機上是否設置了自動分配IP地址的功能,如果未設置,則不修改本地IP地址,繼續(xù)等待上位機的搜索連接信號,如果設置了自動分配IP地址的功能,則等待上位機下發(fā)的IP地址分配數據包,并將收到的IP地址信息先保存在本地臨時空間,LED異步控制卡再通過PING的方式確認該IP地址是否被占用,如果被占用,則不修改本地IP地址,繼續(xù)等待上位機搜索連接,并返回IP地址不可用的信息給到上位機,上位機接收到IP地址不可用信息后會再次重新給LED異步控制卡分配IP地址,直到分配到可用IP地址為止。LED異步控制卡在收到可用IP地址之后將其配置給當前的LED異步控制卡上的網卡中并重啟網卡生效該IP地址,在IP地址生效后主動發(fā)起TCP/IP連接至上位機。上位機接收到下位機的連接信號之后,在上位機軟件界面上顯示LED異步控制卡當前為實連接狀態(tài)。
綜上所述,本發(fā)明前述實施例可以達成以下一個或多個有益效果:(1)增加LED異步控制卡的網路連接的可靠性;以及(2)克服由于多臺終端設備同時連接時的IP分配沖突給用戶帶來的離線問題。此外,值得一提的是,本發(fā)明實施例的網絡IP地址自動分配方案并不限于應用于LED異步控制卡,其也可以應用于帶有網卡的其他嵌入式設備。此外,本發(fā)明上述實施例描述的網絡IP地址自動分配方案的各個步驟可以進行合理組合以得到多個不同的問題解決方案。
以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術人員,在不脫離本發(fā)明技術方案范圍內,當可利用上述揭示的技術內容做出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術方案內容,依據本發(fā)明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術方案的范圍內。