<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > LED 顯示屏網(wǎng)絡(luò)直連的設(shè)計與實現(xiàn)

          LED 顯示屏網(wǎng)絡(luò)直連的設(shè)計與實現(xiàn)

          作者: 時間:2011-07-11 來源:網(wǎng)絡(luò) 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/168927.htm

            在 工程應(yīng)用中,一般在出廠前要做好參數(shù)配置、調(diào)試、點亮,并做節(jié)目測試,否則由于現(xiàn)場條件限制,這些工作很難開展。在做調(diào)試和節(jié)目測試時,可通過串口和網(wǎng)口進行通信,而隨著普及和速度的提升,通信方式被更多的用戶采用,即用戶通過集線器或直連的方式與通信。其中通過集線器,PC 機和顯示屏IP 可不在同一個網(wǎng)段;而網(wǎng)絡(luò)直連時,PC 機和顯示屏的IP 地址必須在同一個網(wǎng)段。不管采用哪一種方法,都必須知道兩者的IP 地址才能進行通信。但在調(diào)試過程中,由于 控制卡太多、放置時間太長或由不同的人進行配置,有時用戶可能不知道顯示屏的IP 地址,這樣就很難開展工作了。另外,出廠配置的IP 地址和現(xiàn)場安裝的IP 地址可能不一樣,并且現(xiàn)場安裝的顯示屏IP 地址由于用戶千差萬別,其IP 地址段也不一樣。這樣一來,在調(diào)試過程中,需要反復(fù)修改顯示屏或PC 機的IP 地址,帶來很大的工作量。因此,基于應(yīng)用中的這些問題,有用戶提出能否采用網(wǎng)絡(luò)直連的方式,無需知道 顯示屏的IP 地址,也不用修改PC 機的IP 就可PC 機與LED 顯示屏網(wǎng)絡(luò)通信,讓用戶更方便地調(diào)試LED 顯示屏。通過市場調(diào)研,有些軟件聲稱了LED 顯示屏網(wǎng)絡(luò)直連的方式,但在具體上并不能令人滿意,例如穩(wěn)定性、可靠性和時效性等方面并不如意。經(jīng)過研究,本文提出一種新的網(wǎng)絡(luò)直連的方法,可以很好地解決這些問題,讓用戶方便、可靠、高效地調(diào)試顯示屏。

            1 主要功能需求分析和模型構(gòu)建

            對于網(wǎng)絡(luò)直連,硬件如圖1 所示,用網(wǎng)絡(luò)直連線將PC 機和顯示屏連接起來,然后手動設(shè)置它們的IP 地址在同一個網(wǎng)段,即可進行通信了。

          網(wǎng)絡(luò)直連硬件圖

            但采用這種方式,如果事先不知道顯示屏的IP地址,將很難進行通信。為了達(dá)到不知道顯示屏IP地址也能實現(xiàn)PC 機與顯示屏直連通信的目的,可借助DHCP 服務(wù)原理來解決:即設(shè)置LED 顯示屏為某固定IP 地址的DHCP 服務(wù)器,設(shè)置PC 機網(wǎng)卡為自動獲取IP 地址的方式,通過DHCP 服務(wù)功能,自動配置PC 機的網(wǎng)卡IP 地址,這樣網(wǎng)絡(luò)連接通道就建立了。有些開發(fā)商就采用這種方式實現(xiàn)了網(wǎng)絡(luò)直連,但這種方法存在一些問題:其一,由于UDP 通信為不連接通信,其通信可靠性要差一些,容易失??;其二,只能通過操作系統(tǒng)自帶的系統(tǒng)完成,沒有干預(yù),用戶不能設(shè)置超時,有時等待時間太長,最長為60 秒;其三,DHCP 為固定IP 方式,在實際應(yīng)用中顯然不太好;其四,退出系統(tǒng)時,不能恢復(fù)PC 機原有的網(wǎng)卡配置信息。

          網(wǎng)絡(luò)直連系統(tǒng)模型

            基于此,經(jīng)過研究,本文提出一種新的網(wǎng)絡(luò)直連方法,可以實現(xiàn)網(wǎng)絡(luò)直連、自動獲取IP 地址以及實現(xiàn)PC 機網(wǎng)卡配置信息保存和恢復(fù)等功能,克服當(dāng)前實現(xiàn)方法的不足,提高可靠性、穩(wěn)定性和時效性等各方面性能,其系統(tǒng)模型如圖2 所示,主要功能和工作流程如下:

           ?。?)啟動系統(tǒng)時,檢索、訪問PC 機的所有網(wǎng)卡,并保存其網(wǎng)卡配置信息,供退出系統(tǒng)時恢復(fù);(2)啟動網(wǎng)絡(luò)直連進程;(3)廣播IP 地址請求數(shù)據(jù)包;(4)返回IP 地址數(shù)據(jù)包;(5)解包,獲取PC 機和LED 顯示屏的IP 地址,設(shè)置PC 機的IP 地址;(6)返回LED 顯示屏的IP 地址,關(guān)閉網(wǎng)絡(luò)直連,完成通信通道的建立;(7)建立PC 機和LED 顯示屏的通信通道后,即可對顯示屏進行讀/ 寫參數(shù)、發(fā)送節(jié)目、開關(guān)屏等通信控制操作;(8)退出系統(tǒng)時,根據(jù)(1)保存的網(wǎng)卡配置信息,恢復(fù)PC 機網(wǎng)卡的原始狀態(tài)。

            在以上流程中,(2)~(6) 是核心過程,它模擬DHCP 服務(wù),實現(xiàn)PC 機廣播請求IP 地址,獲取PC機IP 地址并設(shè)置,上傳LED 顯示屏IP 地址,完成網(wǎng)絡(luò)直連通道的建立,是進行網(wǎng)絡(luò)直連操作時必做的步驟;(1)和(8)是啟動和退出系統(tǒng)時所做的保存PC機網(wǎng)卡配置信息和恢復(fù)網(wǎng)卡配置信息操作;(7)是在完成網(wǎng)絡(luò)直連通道后進行的顯示屏控制的一般操作。本文重點介紹前兩者。

            2 關(guān)鍵功能的和實現(xiàn)

            2.1 保存PC 機網(wǎng)卡配置信息

            用來調(diào)試顯示屏的PC 機,一般是一機多用,在調(diào)試顯示屏的同時,還用來辦公、上網(wǎng),其網(wǎng)卡IP 地址可能是固定的或自動獲取的。在做網(wǎng)絡(luò)直連時,可能會改變其IP 地址,為了不影響用戶的工作,退出時需要自動恢復(fù)其IP 地址。而要做到這一點,可在啟動LED 控制軟件時,讀取當(dāng)前網(wǎng)卡配置信息,如IP 地址、網(wǎng)卡名、MAC 地址、網(wǎng)卡類型、是否是自動配置IP 地址等等,將這些信息放入一個鏈表中保存,同時設(shè)置一個標(biāo)識,記錄用戶在調(diào)試顯示屏的過程中,是否使用過網(wǎng)絡(luò)直連操作,待退出系統(tǒng)時使用。

            在Windows 操作系統(tǒng)中,可使用IP Helper 接口來讀取網(wǎng)卡信息,它是一套用于管理本地網(wǎng)絡(luò)設(shè)置的API,通過它使用IP_ADAPTER_INFO 結(jié)構(gòu),可以方便地提取上述網(wǎng)卡配置信息,保存到鏈表中。

            2.2 借鑒DHCP 服務(wù)原理,構(gòu)建網(wǎng)絡(luò)直連通道

            要實現(xiàn)PC 機和LED 顯示屏網(wǎng)絡(luò)直連通信,必須解決兩個關(guān)鍵問題:其一,讓PC 機和LED 顯示屏在同一個網(wǎng)段;其二,知道LED 顯示屏的IP 地址。

            除此之外,還要解決多網(wǎng)卡、無線網(wǎng)卡對網(wǎng)絡(luò)直連的干擾等現(xiàn)象。借鑒DHCP 原理,主要解決思路如下:

           ?。?)在PC 機端一個網(wǎng)絡(luò)直連控制進程;(2) 需要網(wǎng)絡(luò)直連時, 啟動該進程, 通過Windows 相關(guān)網(wǎng)絡(luò)API 函數(shù)和注冊表信息,確定與LED 顯示屏連接的非無線網(wǎng)卡,將其MAC 地址放入構(gòu)建請求IP 地址的UDP 數(shù)據(jù)包中,然后廣播出去,同時啟動內(nèi)部UDP 包捕獲子進程;(3)LED 顯示屏收到請求IP 地址的UDP 包后,根據(jù)本身IP 地址,構(gòu)造一個PC 機的IP 地址,將其廣播出去,為了不引起混亂,這里構(gòu)建的是偽DHCP 包,正常的Windows 客戶端收到該UDP 包時,并不會自動改變其IP 地址;(4)網(wǎng)絡(luò)直連控制進程的UDP 包捕獲子進程接收到分配的IP 地址的UDP 包后,解包得到PC機的IP 地址和LED 顯示屏的IP 地址;(5)設(shè)置PC 機網(wǎng)卡IP 地址,上傳LED 顯示屏的IP 地址給控制軟件,成功后,關(guān)閉網(wǎng)絡(luò)直連控制進程,完成網(wǎng)絡(luò)直連通道的建立。

            這個網(wǎng)絡(luò)直連的過程涉及三個系統(tǒng):(1)網(wǎng)絡(luò)直連控制進程,它構(gòu)建請求IP 地址UDP 數(shù)據(jù)包并廣播出去,同時監(jiān)控目標(biāo)網(wǎng)卡的68 端口,捕獲返回的UDP 數(shù)據(jù)包,解析出PC 機的IP 地址和LED 顯示屏的IP 地址,然后設(shè)置PC 機的IP 地址,將LED顯示屏的IP 地址提交給主進程,完成網(wǎng)絡(luò)直連的任務(wù);(2)LED 顯示屏DHCP 服務(wù)子進程,它接收PC機的IP 地址請求,構(gòu)建并設(shè)置自身IP 地址,并返回PC 機的IP 地址的偽DHCP 包;(3)LED 控制軟件,當(dāng)用戶選擇網(wǎng)絡(luò)直連方式時,啟動網(wǎng)絡(luò)直連控制子進程,實現(xiàn)網(wǎng)絡(luò)直接通道的建立,完成后,關(guān)閉該進程。

            2.3 恢復(fù)PC 機網(wǎng)卡的配置信息

            退出系統(tǒng)時,根據(jù)2.1 保存的是否使用過網(wǎng)絡(luò)直連的標(biāo)識進行判斷,如果沒有使用過網(wǎng)絡(luò)直連方式,則無需執(zhí)行網(wǎng)絡(luò)IP 恢復(fù)功能;否則將執(zhí)行恢復(fù)功能,還原2.1 保存的網(wǎng)卡配置,恢復(fù)網(wǎng)卡IP 地址可使用netsh interface ip set 命令。同時,為了加快處理速度并提高成功率,可按禁用網(wǎng)卡、設(shè)置網(wǎng)卡IP地址、再啟用網(wǎng)卡的步驟實施:

           ?。?)使用Windows 的SetupAPI 相關(guān)接口API函數(shù)禁用目標(biāo)網(wǎng)卡;(2)恢復(fù)目標(biāo)網(wǎng)卡IP 設(shè)置,根據(jù)靜態(tài)IP 地址和動態(tài)IP 地址,分別用不同的命令:

            a. 恢復(fù)靜態(tài)IP 地址命令。

            a. 恢復(fù)靜態(tài)IP 地址命令

            netsh interface ip set address name=“本地連接”

            source=STatic addr=192.168.1.19 mask=255.

            255.255.0 gateway=nONe

            b. 恢復(fù)動態(tài)IP 地址命令。

            netsh interface ip set address“本地連接”dhcp

           ?。?)使用SetupAPI 相關(guān)接口API 函數(shù)啟用目標(biāo)網(wǎng)卡,這樣就完成了網(wǎng)卡配置信息的恢復(fù)。

            3 結(jié)論

            本文針對LED 顯示屏調(diào)試過程中對網(wǎng)絡(luò)直連的需求,提出一種網(wǎng)絡(luò)直連的方法,系統(tǒng)在啟動時自動保存網(wǎng)卡配置信息,使用網(wǎng)絡(luò)直連進程構(gòu)建網(wǎng)絡(luò)直連通道,退出系統(tǒng)時自動恢復(fù)網(wǎng)卡配置信息,使用戶無需知道LED 顯示屏的IP 地址,也不用修改PC機的IP 地址,便可實現(xiàn)PC 機與LED 顯示屏的網(wǎng)絡(luò)通信。該方法在LED 導(dǎo)航者軟件中使用,其可靠性、穩(wěn)定性和時效性得到了用戶的認(rèn)可,取得了良好的效果。實踐證明,該方法可為類似的應(yīng)用提供一種可供借鑒的解決方案。

          led顯示器相關(guān)文章:led顯示器原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();