新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 機器人遙操作網(wǎng)絡通信平臺的設計

機器人遙操作網(wǎng)絡通信平臺的設計

作者: 時間:2009-04-07 來源:網(wǎng)絡 收藏

  圖4(a)顯示的是服務器端運行之后的界面。服務器端是該程序的核心端,所有客戶端的數(shù)據(jù)都將傳輸?shù)椒掌鞫耍蛻舳酥g通信需要通過服務器端進行中轉(zhuǎn)。而本文所的程序中的服務器端不僅可以實現(xiàn)以廣播的形式向所有連接到該服務器的客戶端發(fā)送信息,還可以以單對單通信的方式向單個的客戶端進行通信。在圖 4(a)中就顯示了服務器端分別利用這兩種方式進行了通信。點擊界面中的發(fā)送按鈕就采取廣播式發(fā)送信息,而點擊界面中的1和2兩個按鈕則是對特定客戶端發(fā)送數(shù)據(jù)。

  本文的程序可以支持多個不同的

通信平臺運行界面

(a)

通信平臺運行界面

(b)

通信平臺運行界面

(c)

圖4 通信運行界面

  客戶端和服務器進行連接并通信。圖4(b)顯示的是IP為“192.168.0.106”的客戶端和服務器建立連接之后的通信,而圖4(c)則是IP為“192.168.0.110”的客戶端和服務器通信的界面。

  3 實驗性能分析

  1.時延和數(shù)據(jù)的丟失問題

  要求數(shù)據(jù)傳輸要具備可靠性和次序性,TCP協(xié)議提供了可靠而有序的傳輸,基于這一特性,可以在傳輸過程中使用超時重傳、分段、重組等檢錯糾錯策略,通過這些檢錯糾錯策略可以保證在數(shù)據(jù)傳輸過程中的可靠性和有序性,可以有效的防止數(shù)據(jù)的丟失。

  遠端遙控制的采用并不意味著實時控制作用被上移到網(wǎng)絡,實時控制依然由現(xiàn)場的控制單元來完成,而網(wǎng)絡遙更關注的是對現(xiàn)場信息的監(jiān)視和管理以及對的非實時控制,所以TCP通信在傳輸過程中存在的時延問題也就顯得影響不大。
 2.數(shù)據(jù)共享問題及其解決方案

  由于本文中程序是多任務多線程的,當多個客戶端同時連接到服務器時,多任務、多線程就極易造成數(shù)據(jù)共享問題。數(shù)據(jù)共享問題可以解釋如下:假定有多個函數(shù)(或者ISR、任務)共享一個變量,如果在某一時刻存在對該變量的數(shù)值的操作,并且在對其施加操作的的過程中,僅有部分操作完成,還有一部分沒有完成,若在此時產(chǎn)生一個中斷,如果此時還有另一個函數(shù)也在共享該變量,且前面的操作已經(jīng)完成,該變量的數(shù)值可能與預期的不同。因此,當一個函數(shù)與另一個函數(shù)共享某變量時,所調(diào)用的ISR或者另一個函數(shù)都有可能改變此變量,是變量的數(shù)值發(fā)生變化,在返回時此變量的新數(shù)值將從堆棧轉(zhuǎn)載到四個寄存器中,未完成的操作將按照寄存器中的新數(shù)值執(zhí)行,程序就會發(fā)生錯誤。

  在本文中,利用了以下措施消除了程序中由共享數(shù)據(jù)問題所導致的錯誤。

1) 對于從中斷返回的變量,在聲明中使用了volatile。此聲明可以警告編譯器,這些變量是可更改的。
2)在中斷之前將完全執(zhí)行的部分中對原子指令使用可再生函數(shù),此部分叫臨界段。
3) 將共享的變量放入循環(huán)隊列中。需要使用該變量數(shù)值的函數(shù)總是從隊列的前端將其刪除。而另一些寫入該變量的數(shù)值的函數(shù)總是從隊列的末端進行操作。
4)在臨界段開始執(zhí)行之前通過使用信號量來關閉中斷,在其完成之時打開中斷。


  4 結(jié)論

  本文了一種基于TCP協(xié)議的,通過該可以實現(xiàn)遠程客戶機與本地服務器之間的信息通信,而且保證了數(shù)據(jù)傳輸?shù)目煽啃院痛涡蛐裕瑢C器人的遙操作提供了可靠的條件。

  平臺的建立,擴大了對機器人操作的遠程化距離,而且該平臺具有架構(gòu)容易,低成本,維護便利等優(yōu)點,對機器人遙操作領域的技術進步將會起到幫助作用。

tcp/ip相關文章:tcp/ip是什么



上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉