亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Socket的Linux與Windows下WiFi模塊間通信的實現(xiàn)

        2014-05-14 11:58:54王云亮王光林
        關鍵詞:服務器端串口嵌入式

        王云亮 ,王光林

        (1.天津理工大學 天津市復雜系統(tǒng)控制理論及應用重點實驗室,天津300384;2.天津理工大學 自動化學院,天津300384)

        現(xiàn)如今無線通信的方式越來越多,組網(wǎng)模式也千姿百態(tài)。一般研究同種操作系統(tǒng)下的Socket或WiFi通信的比較多,但在兩種系統(tǒng)開發(fā)環(huán)境下WiFi之間的通信研究卻并不多。眾所周知,Linux操作系統(tǒng)由于其系統(tǒng)源碼的自由和開放性,以及系統(tǒng)性能的穩(wěn)定性,被廣泛用作服務器的操作系統(tǒng)。而Windows由于其友好的圖形界面和強大的編程環(huán)境,常被廣泛用作客服端的開發(fā)環(huán)境和操作系統(tǒng)[1]。因此,研究兩大操作系統(tǒng)的實時通信問題具有一定的現(xiàn)實意義。

        本文主要研究嵌入式Linux下的ARM與Windows環(huán)境開發(fā)下的STC80C51單片機之間的無線通信問題,通過套接字編程由WiFi進行傳輸,成功實現(xiàn)了兩大開發(fā)環(huán)境下數(shù)據(jù)的無線傳輸,基本解決了兩者之間的通信問題。

        1 Socket原理

        Socket通常稱作 “套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。在客戶端/服務器通信模型中,Socket是網(wǎng)絡通信的基本操作單元,一個Socket描述就是通信連接的一端,在一個網(wǎng)絡通信連接中,兩端通信程序應各有一個Socket對其進行描述,不同的進程通過各自的Socket發(fā)送和接收消息,從而實現(xiàn)了網(wǎng)絡通信[2-3]。

        Linux Socket支持以下 3種常見的套接字類型:(1)流式Socket(SOCK_STREAM),一種最常用的套接字類型,可以保證數(shù)據(jù)傳輸?shù)目煽啃裕粫霈F(xiàn)數(shù)據(jù)丟失、破損或重復出現(xiàn)等差錯;(2)數(shù)據(jù)報 Socket(SOCK_DGRAM)是一種無連接和不可靠的雙工數(shù)據(jù)傳輸服務,數(shù)據(jù)通過獨立的報文進行傳輸,是無序的,并且不保證數(shù)據(jù)的可靠性和無重復性,適用于可靠性要求不高的一些場合;(3)原始 Socket(SOCK_RAW),這種類型的 Socket允許對底層協(xié)議(如IP或ICMP)直接訪問,它功能強大但使用不太方便,一般用于新協(xié)議的開發(fā)。

        Socket的編程方法很多,但主要有兩種方式——面向連接的TCP協(xié)議方式和無連接的UDP協(xié)議方式。本文采用的是TCP協(xié)議方式。

        2 通信平臺的搭建

        本文研究的是兩個平臺的通信,服務器是內(nèi)有嵌入式Linux操作系統(tǒng)的ARM開發(fā)板,客戶端是運行于Windows操作系統(tǒng)開發(fā)環(huán)境下的單片機。本文在實際研究中,服務器端選用ARM11系列的S3C6410為開發(fā)平臺,內(nèi)部嵌入Linux2.6.28內(nèi)核版本,目標代碼的編譯平臺選用裝有Ubuntu12.04操作系統(tǒng)的普通PC,它們通過交叉編譯和NFS掛載的方式實現(xiàn)了服務器端編譯平臺和運行平臺的正常運行;客戶端是在Windows XP系統(tǒng)開發(fā)環(huán)境下的帶有各種傳感器的51單片機。

        為了實現(xiàn)二者之間的通信,WiFi模塊在此過程中起到樞紐的作用,因此通信兩端都有一個WiFi模塊。在服務器端的WiFi模塊選用的是Marvell 88w8686[4],它是一款低成本、低功耗、自帶數(shù)據(jù)鏈路層的WiFi協(xié)議棧,內(nèi)部集成了兩個工作頻率為128 MHz的ARM7 Core,一個 Core負責網(wǎng)絡數(shù)據(jù)的處理,另一個Core負責處理RF方面的工作。該模塊通過SDIO接口與ARM開發(fā)板相連。

        客戶端的WiFi模塊選用海凌科電子有限公司新推出的HLK-RM04模塊[5],是基于通用串行接口的符合網(wǎng)絡標準的低成本嵌入式模塊。通過該模塊,傳統(tǒng)的串口設備在不需要更改任何配置的情況下,即可通過Internet網(wǎng)絡傳輸自己的數(shù)據(jù)。模塊通過雙9針工頭串口線與單片機相連,功能結構圖如圖1所示,由于該模塊內(nèi)置了TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶串口、以太網(wǎng)、無線網(wǎng)(WiFi)3個接口之間的轉(zhuǎn)換。

        圖1 HLK-RM04模塊的功能結構圖

        至此,整個系統(tǒng)的通信平臺的搭建已經(jīng)完成,系統(tǒng)的整體結構功能框圖如圖2所示,從圖中可以看出WiFi模塊的組網(wǎng)模式。

        3 通信過程的實現(xiàn)

        本文以采集到的溫度值的傳輸來說明實現(xiàn)的過程。下面分別從服務器端和客戶端進行介紹。

        圖2 系統(tǒng)的整體功能結構框圖

        3.1 服務器端的實現(xiàn)

        雖然在舉例中采用的是單一客戶端與服務器進行通信,但考慮到實際中往往會遇到多個客戶端連接服務器的情況,像常用的recv、send都是阻塞性函數(shù),若資源沒有準備好,則調(diào)用該函數(shù)的進程將進入睡眠狀態(tài),這樣就無法處理I/O多路復用的情況。鑒于此,使用select函數(shù)既可以實現(xiàn)非阻塞I/O或信號驅(qū)動I/O,還可以設置等待時間。服務器端實現(xiàn)的程序流程圖如圖3所示。

        接下來對其中一些關鍵性的步驟進行闡述。

        (1)建立 Socket

        socketfd=socket(AF_INET,SOCK_STREAM,0);

        圖3 服務器端的程序流程圖

        AF_INET表示的是針對Internet的通信協(xié)議,允許在遠程主機之間通信;SOCK_STREAM表明使用的是TCP協(xié)議,這樣會提供按順序的、可靠的、雙向的、面向連接的比特流;0表示成功時返回文件描述符,失敗時返回-1,這樣通過errno即可知道出錯的詳細情況。

        (2)綁定和監(jiān)聽

        它們都是成功時返回0,出錯時返回-1。

        (3)調(diào)用select函數(shù)與客戶端連接

        3.2 客戶端的實現(xiàn)

        客戶端的實現(xiàn)實際上分兩部分進行:一是單片機通過DALLAS公司的DS18B20溫度傳感器將采集的數(shù)據(jù)傳送給串口;二是與之用串口線相連的 RM04模塊,通過 WiFi與服務器建立連接,具體實現(xiàn)的程序流程如圖4所示。

        圖4 客戶端的程序流程圖

        第一部分采集數(shù)據(jù)傳給串口的過程需要注意數(shù)據(jù)在發(fā)送的過程中應該把數(shù)據(jù)以ASCII形式發(fā)送,這樣服務器端才能以想要的十進制的形式顯示出來,其他的比較簡單,不再贅述。主要介紹第二部分中RM04模塊的配置。

        (1)調(diào)到相應的端口,搜索到該模塊。

        (2)以無線網(wǎng)卡的模式配置該模塊,選擇TCP客戶端模式,遠程端口的IP和端口號,無線局域網(wǎng)的名稱與密碼,本模塊的IP等,具體配置圖如圖5所示。

        圖5 RM04模塊配置圖

        (3)在命令窗口下 ping 192.168.1.120,如果 ping通,說明該模塊成功。

        在Linux系統(tǒng)中進入開發(fā)板,先啟動服務器端,再運行客戶端程序,服務器端出現(xiàn)如圖6所示的結果。

        圖6 服務器端的運行結果圖

        通過圖6可以看出,客戶端與服務器端之間能夠正常通信,并能正確顯示出當前測量的溫度是27.35℃。該項研究主要針對總控制器與分節(jié)點之間的無線通信,對于需要這種模式通信的系統(tǒng)有很大的實際使用價值。

        [1]Li Fei,Yuan Lin,Wang Zhihuo,et al.Realization of communication between Linux and Windows based on Socket[C].Proceedings of the 2010 International Conference on Information Technology and Scientific Management,2010.

        [2]王遠洋,周淵平,郭煥麗.Linux下基于Socket多線程并發(fā)通信的實現(xiàn)[J].微計算機信息,2009,25(5-3):70-72.

        [3]郭東升,田秀華.Linux環(huán)境下基于Socket的網(wǎng)絡通信[J].軟件導刊,2009,8(1):116-118.

        [4]王云亮,李瑩.嵌入式安防遠程監(jiān)控系統(tǒng)的設計[J].化工自動化及儀表,2013,40(2):237-240.

        [5]深圳市海凌科電子有限公司.HLK-RM04應用手冊1串口轉(zhuǎn)以太網(wǎng)應用[K].2012.

        猜你喜歡
        服務器端串口嵌入式
        淺談AB PLC串口跟RFID傳感器的通訊應用
        搭建基于Qt的嵌入式開發(fā)平臺
        淺析異步通信層的架構在ASP.NET 程序中的應用
        成功(2018年10期)2018-03-26 02:56:14
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        在Windows中安裝OpenVPN
        Altera加入嵌入式視覺聯(lián)盟
        基于并行控制的FPGA多串口拓展實現(xiàn)
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        免费人成在线观看视频播放| 久久精品国产自产对白一区| 亚洲综合一区中文字幕| 国产高潮视频在线观看| 99久久精品免费看国产情侣| 国产精品久久一区性色a| 国产激情在线观看免费视频| 亚洲av日韩av天堂久久| 大地资源网更新免费播放视频| 国产亚洲成年网址在线观看| 日本黄色影院一区二区免费看 | 久久日本三级韩国三级| 欧亚精品无码永久免费视频 | 国精产品一区一区三区有限在线| 婷婷亚洲久悠悠色悠在线播放| 专区亚洲欧洲日产国码AV | 亚洲国模一区二区三区视频| 在线不卡精品免费视频| 摸丰满大乳奶水www免费| 男女肉粗暴进来120秒动态图| 国产精品无码不卡在线播放| 亚洲无毛成人在线视频| 亚洲熟女www一区二区三区 | 国产精品欧美韩国日本久久| 亚洲精品美女中文字幕久久| 国产丝袜美女一区二区三区| 国内精品九九久久久精品| 中文字幕一二区中文字幕| 蜜臀av毛片一区二区三区| 中文无码久久精品| 中文字幕一区二区三区在线不卡 | 亚州中文热码在线视频| 天天躁日日躁狠狠躁| 国产a级网站| 丰满人妻一区二区三区52| 亚洲精品国精品久久99热| 国产亚洲精品久久久久秋霞| 一本大道久久精品一本大道久久| 色婷婷色丁香久久婷婷| 久久久午夜精品福利内容 | 日韩熟女精品一区二区三区视频|