產品分類

      當前位置: 首頁 > 傳感測量產品 > 數據采集產品 > 數據通訊產品

      類型分類:
      科普知識
      數據分類:
      數據通訊產品

      基于UDP協議的ARM、X86平臺之間的通訊方案

      發布日期:2022-04-18 點擊率:70

      基于UDP協議的ARM、X86平臺之間的通訊方案

      來源:維庫電子市場網  作者:佚名2014年07月31日 16:06

      0

      分享

      微信QQ空間新浪微博騰訊微博人人網

      訂閱

      [導讀] 本文介紹了通過案例,首先在觸摸屏進行畫圖,使其在液晶屏上顯示,同時通過網絡傳輸數據,使其在計算機屏幕上顯示,并由計算機控制清除液晶屏上的圖形,實現了基于UDP協議的ARM、X86平臺之間的通訊,從而提出了基于UDP協議的ARM與其它平臺之間通訊的解決方案。

      關鍵詞:X86UDP協議ARM

        0 引言

        隨著人工智能的應用,ARM產品已經遍布到各個領域:工業控制、無線通訊領域、消費類電子產品、成像和安全產品,包括現在流行的數碼相機和打印機中絕大部分采用ARM技術,手機中的32位SIM智能卡也采用了ARM技術。除此以外,ARM微處理器及技術還應用到許多不同的領域,并會在將來取得更加廣泛的應用,因此,ARM與其它平臺之間通訊就顯得尤為重要。

        1.UDP協議本質

        UDP協議是英文User Datagram Protocol的縮寫,即用戶數據報協議,主要用來支持那些需要在計算機之間傳輸數據的網絡應用。包括網絡視頻會議系統在內的眾多客戶/服務器模式的網絡應用都需要使用UDP協議。UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但即使是在今天,UDP仍然不失為一項非常實用和可行的網絡傳輸層協議。

        UDP協議使用端口號為不同的應用保留其各自的數據傳輸通道。UDP和TCP協議正是采用這一機制實現對同一時刻內多項應用同時發送和接收數據的支持。數據發送一方(可以是客戶端或服務器端)將UDP數據報通過源端口發送出去,而數據接收一方則通過目標端口接收數據。有的網絡應用只能使用預先為其預留或注冊的靜態端口;而另外一些網絡應用則可以使用未被注冊的動態端口。因為UDP報頭使用兩個字節存放端口號,所以端口號的有效范圍是從0到65535.一般來說,大于49151的端口號都代表動態端口。

        數據報的長度是指包括報頭和數據部分在內的總的字節數。因為報頭的長度是固定的,所以該域主要被用來計算可變長度的數據部分(又稱為數據負載)。數據報的最大長度根據工作環境的不同而各異。從理論上說,包含報頭在內的數據報的最大長度為65535字節。不過,一些實際應用往往會限制數據報的大小,有時會降低到8192字節。

        UDP協議使用報頭中的校驗值來保證數據的安全。校驗值首先在數據發送方通過特殊的算法計算得出,在傳遞到接收方之后,還需要再重新計算。

        如果某個數據報在傳輸過程中被第三方篡改或者由于線路噪音等原因受到損壞,發送和接收方的校驗計算值將不會相符,由此UDP協議可以檢測是否出錯。其實在UDP協議中校驗功能是可選的,如果將其關閉可以使系統的性能有所提升。這與TCP協議是不同的,后者要求必須具有校驗值。

      無線通訊

        2.實現案例

        實現案例如下:在觸摸屏進行畫圖,使其在液晶屏上顯示,同時通過網絡傳輸數據,使其在計算機屏幕上顯示,并由計算機控制清除液晶屏上的圖形。

        步驟如下:

       ?。?)新建工程

       ?。?)在main.c文件中編輯初始化網絡函數void InitNetWork()//初始化網絡{

        U32 ipaddr32,ipmaskaddr32,ipgateaddr32;

        U8 *Mac;

        ipaddr32=Get_ipaddr(); //獲取IP地址

        ipmaskaddr32=Get_maskaddr();//獲取子網掩碼

        ipgateaddr32=Get_gwaddr(); //獲取網關

        Mac=Get_mac(); //獲取網卡地址NetPortChoose(0);

        //選擇網口,必須在配置網絡以前進行

        initOSNet(ipaddr32, ipmaskaddr32,

        ipgateaddr32,Mac);//配置網絡

        OSTimeDly(1000);//任務掛起1秒

        printk(“init Ethernet and UDP is

        ok! ”);

        }

       ?。?)定義計算機端套接字,全局變量(4)編寫Main_Task任務及消息循環主要負責響應觸摸屏消息,在屏幕上畫圖,然后將數據傳輸到計算機上。

        對觸摸屏消息的處理和鍵盤消息類似,其消息類型pMsg-》Message為OSM_TOUCH_SCREEN,消息參數pMsg-》LParam中包含了觸摸屏的動作信息,定義如下:

        #define TCHSCR_ACTION_NULL

        0

        #define TCHSCR_ACTION_CLICK 1 //觸摸

        屏單擊

        #define TCHSCR_ACTION_DBCLICK 2 //觸

        摸屏雙擊

        #define TCHSCR_ACTION_DOWN 3 //觸摸

        屏按下

        #define TCHSCR_ACTION_UP 4 //觸摸

        屏抬起

        #define TCHSCR_ACTION_MOVE 5 //觸摸

        屏移動

        消息參數pMsg-》WParam中則包含了觸摸

        點的坐標信息,低16位是X坐標值,高16位是Y坐標值。這里當觸摸屏產生“按下”動作后采用MoveTo()函數設置繪圖起始點坐標,當產生“移動”動作后采用LineTo()函數繪制線段。

      12下一頁全文

      本文導航

      • 第 1 頁:基于UDP協議的ARM、X86平臺之間的通訊方案

      • 第 2 頁:解決方案

      分享到:微信QQ空間新浪微博騰訊微博

      0 收藏(0) 打印

      免費訂閱 ElecFans 信息速遞,掌握即時科技產業動態與最新技術方案

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產品

      更多
      主站蜘蛛池模板: 亚洲一区二区三区偷拍女厕 | 国产精品免费大片一区二区| 在线观看视频一区二区| 人妻在线无码一区二区三区| 亚洲午夜日韩高清一区| 伊人色综合视频一区二区三区| 日韩一区二区电影| 久久AAAA片一区二区| 国产一区二区三区不卡在线观看| 精品欧洲av无码一区二区三区| 中文字幕一区二区三区四区| 美女福利视频一区二区| 日本一道一区二区免费看| 亚洲色无码专区一区| 亚洲午夜一区二区三区| 亚洲福利一区二区精品秒拍| 无码一区二区三区老色鬼| 国产内射999视频一区| 在线精品亚洲一区二区小说| 中文字幕一区二区三区免费视频 | 久久91精品国产一区二区| 国产综合一区二区在线观看| 福利在线一区二区| 一区二区三区四区精品| 美女视频免费看一区二区| 麻豆一区二区三区蜜桃免费| 精品一区二区高清在线观看| 福利视频一区二区牛牛| www.亚洲一区| 亚洲一区二区三区无码影院| 国产AV天堂无码一区二区三区| 鲁丝丝国产一区二区| 日韩一区二区三区不卡视频 | 中文字幕日韩一区二区不卡| 无码播放一区二区三区| 亚洲日韩国产欧美一区二区三区| 无码中文字幕乱码一区 | 亚洲av永久无码一区二区三区| 亚洲熟妇无码一区二区三区导航 | 最新中文字幕一区| 国产一区中文字幕在线观看|