《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Socket的Linux與Windows下WiFi模塊間通信的實現
基于Socket的Linux與Windows下WiFi模塊間通信的實現
來源:微型機與應用2014年第2期
王云亮1,王光林2
(1.天津理工大學 天津市復雜系統控制理論及應用重點實驗室,天津300384; 2.天津理工大學 自
摘要: 為了實現Linux開發環境下的總控制器與Windows開發環境下分節點之間的數據進行無線傳輸,提出用Socket的方法解決它們所帶WiFi模塊之間的無線通信。該方法能夠實現數據的正常傳輸,并能把數值準確地顯示出來。Socket的使用比較簡單,不會對整體系統增加太多代碼量。這樣開發出來的總控制器與分節點之間的通信,傳輸速率快、誤碼率低、容易實現,具有很強的實用價值。
Abstract:
Key words :

摘  要: 為了實現Linux開發環境下的總控制器與Windows開發環境下分節點之間的數據進行無線傳輸,提出用Socket的方法解決它們所帶WiFi模塊之間的無線通信。該方法能夠實現數據的正常傳輸,并能把數值準確地顯示出來。Socket的使用比較簡單,不會對整體系統增加太多代碼量。這樣開發出來的總控制器與分節點之間的通信,傳輸速率快、誤碼率低、容易實現,具有很強的實用價值。
關鍵詞: 嵌入式Linux;WiFi;Socket;總控制器;分節點

    現如今無線通信的方式越來越多,組網模式也千姿百態。一般研究同種操作系統下的Socket或WiFi通信的比較多,但在兩種系統開發環境下WiFi之間的通信研究卻并不多。眾所周知,Linux操作系統由于其系統源碼的自由和開放性,以及系統性能的穩定性,被廣泛用作服務器的操作系統。而Windows由于其友好的圖形界面和強大的編程環境,常被廣泛用作客服端的開發環境和操作系統[1]。因此,研究兩大操作系統的實時通信問題具有一定的現實意義。
    本文主要研究嵌入式Linux下的ARM與Windows環境開發下的STC80C51單片機之間的無線通信問題,通過套接字編程由WiFi進行傳輸,成功實現了兩大開發環境下數據的無線傳輸,基本解決了兩者之間的通信問題。
1 Socket原理
    Socket通常稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。在客戶端/服務器通信模型中,Socket是網絡通信的基本操作單元,一個Socket描述就是通信連接的一端,在一個網絡通信連接中,兩端通信程序應各有一個Socket對其進行描述,不同的進程通過各自的Socket發送和接收消息,從而實現了網絡通信[2-3]。
    Linux Socket支持以下3種常見的套接字類型:(1)流式Socket(SOCK_STREAM),一種最常用的套接字類型,可以保證數據傳輸的可靠性,不會出現數據丟失、破損或重復出現等差錯;(2)數據報Socket(SOCK_DGRAM)是一種無連接和不可靠的雙工數據傳輸服務,數據通過獨立的報文進行傳輸,是無序的,并且不保證數據的可靠性和無重復性,適用于可靠性要求不高的一些場合;(3)原始Socket(SOCK_RAW),這種類型的Socket允許對底層協議(如IP或ICMP)直接訪問,它功能強大但使用不太方便,一般用于新協議的開發。
    Socket的編程方法很多,但主要有兩種方式——面向連接的TCP協議方式和無連接的UDP協議方式。本文采用的是TCP協議方式。
2 通信平臺的搭建
    本文研究的是兩個平臺的通信,服務器是內有嵌入式Linux操作系統的ARM開發板,客戶端是運行于Windows操作系統開發環境下的單片機。本文在實際研究中,服務器端選用ARM11系列的S3C6410為開發平臺,內部嵌入Linux2.6.28內核版本,目標代碼的編譯平臺選用裝有Ubuntu12.04操作系統的普通PC,它們通過交叉編譯和NFS掛載的方式實現了服務器端編譯平臺和運行平臺的正常運行;客戶端是在Windows XP系統開發環境下的帶有各種傳感器的51單片機。
    為了實現二者之間的通信,WiFi模塊在此過程中起到樞紐的作用,因此通信兩端都有一個WiFi模塊。在服務器端的WiFi模塊選用的是Marvell 88w8686[4],它是一款低成本、低功耗、自帶數據鏈路層的WiFi協議棧,內部集成了兩個工作頻率為128 MHz的ARM7 Core,一個Core負責網絡數據的處理,另一個Core負責處理RF方面的工作。該模塊通過SDIO接口與ARM開發板相連。
    客戶端的WiFi 模塊選用海凌科電子有限公司新推出的HLK-RM04模塊[5],是基于通用串行接口的符合網絡標準的低成本嵌入式模塊。通過該模塊,傳統的串口設備在不需要更改任何配置的情況下,即可通過Internet 網絡傳輸自己的數據。模塊通過雙9針工頭串口線與單片機相連,功能結構圖如圖1所示,由于該模塊內置了TCP/IP協議棧,能夠實現用戶串口、以太網、無線網(WiFi)3個接口之間的轉換。

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

3 通信過程的實現
    本文以采集到的溫度值的傳輸來說明實現的過程。下面分別從服務器端和客戶端進行介紹。
3.1 服務器端的實現
    雖然在舉例中采用的是單一客戶端與服務器進行通信,但考慮到實際中往往會遇到多個客戶端連接服務器的情況,像常用的recv、send都是阻塞性函數,若資源沒有準備好,則調用該函數的進程將進入睡眠狀態,這樣就無法處理I/O多路復用的情況。鑒于此,使用select函數既可以實現非阻塞I/O或信號驅動I/O,還可以設置等待時間。服務器端實現的程序流程圖如圖3所示。

    接下來對其中一些關鍵性的步驟進行闡述。
    (1)建立Socket
    socketfd=socket(AF_INET,SOCK_STREAM,0);
    AF_INET表示的是針對Internet的通信協議,允許在遠程主機之間通信;SOCK_STREAM表明使用的是TCP協議,這樣會提供按順序的、可靠的、雙向的、面向連接的比特流;0表示成功時返回文件描述符,失敗時返回-1,這樣通過errno即可知道出錯的詳細情況。
    (2)綁定和監聽
    bind(socketfd,(structsocketaddr*)&server_sockaddr,
sizeof(structsockaddr));//綁定端口號和地址
    listen(socketfs,n);//監聽,n表示允許與服務器的
最大連接數
    它們都是成功時返回0,出錯時返回-1。
    (3)調用select函數與客戶端連接
    fd_set  readfd,writefd;//文件描述集的聲明
    FD_ZERO(&readfd);//清空readfd與所有文件句柄的聯系
    FD_SET(sockfd,&readfd);//建立文件句柄與readfd的聯系
    select(MAX_CONNECTED_NO,&readfd,NULL,NULL,
(struct timeval*)0);//select函數的調用
    FD_ISSET(sockfd,&readfd);//檢查readfd聯系的文件
句柄sockfd是否可讀寫,當大于0時表示可讀寫
3.2 客戶端的實現
    客戶端的實現實際上分兩部分進行:一是單片機通過DALLAS公司的DS18B20溫度傳感器將采集的數據傳送給串口;二是與之用串口線相連的RM04模塊,通過WiFi與服務器建立連接,具體實現的程序流程如圖4所示。

 

 

    第一部分采集數據傳給串口的過程需要注意數據在發送的過程中應該把數據以ASCII形式發送,這樣服務器端才能以想要的十進制的形式顯示出來,其他的比較簡單,不再贅述。主要介紹第二部分中RM04模塊的配置。
    (1)調到相應的端口,搜索到該模塊。
    (2)以無線網卡的模式配置該模塊,選擇TCP客戶端模式,遠程端口的IP和端口號,無線局域網的名稱與密碼,本模塊的IP等,具體配置圖如圖5所示。

    (3)在命令窗口下ping 192.168.1.120,如果ping通,說明該模塊成功。
    在Linux系統中進入開發板,先啟動服務器端,再運行客戶端程序,服務器端出現如圖6所示的結果。

    通過圖6可以看出,客戶端與服務器端之間能夠正常通信,并能正確顯示出當前測量的溫度是27.35 ℃。該項研究主要針對總控制器與分節點之間的無線通信,對于需要這種模式通信的系統有很大的實際使用價值。
參考文獻
[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多線程并發通信的實現[J].微計算機信息,2009,25(5-3):70-72.
[3] 郭東升,田秀華.Linux環境下基于Socket的網絡通信[J].軟件導刊,2009,8(1):116-118.
[4] 王云亮,李瑩.嵌入式安防遠程監控系統的設計[J].化工自動化及儀表,2013,40(2):237-240.
[5] 深圳市海凌科電子有限公司.HLK-RM04應用手冊1串口轉以太網應用[K].2012.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲人成在线播放网站岛国| 99re6热只有精品免费观看| 久久久99精品免费观看不卡| 欧美亚洲网站| 亚洲精品国产精品国自产观看浪潮 | 日韩视频国产视频| 国产伦精品一区二区三区在线观看| 欧美成人国产一区二区| 性色av一区二区三区在线观看| 亚洲承认在线| 亚洲一区观看| 一本大道久久a久久综合婷婷| 在线成人欧美| 欧美特黄一区| 欧美日韩免费一区二区三区| 欧美日韩成人综合天天影院| 欧美二区在线观看| 免费不卡亚洲欧美| 99精品热视频只有精品10| 亚洲精品在线视频| 亚洲夫妻自拍| 欧美在线二区| 亚洲国内自拍| 欧美一区二区精品在线| 亚洲一区黄色| 性感少妇一区| 校园春色国产精品| 亚洲欧美视频在线观看| 先锋亚洲精品| 欧美在线播放一区| 欧美日韩国产精品一区二区亚洲 | 久久综合网hezyo| 久久久久成人网| 久久久久9999亚洲精品| 久久在线免费观看视频| 欧美成人免费在线| 欧美精品一区二| 欧美三区美女| 国产精品一区二区久久精品| 国产日韩欧美黄色| 狠狠网亚洲精品| 亚洲国产另类精品专区| 亚洲国产精品福利| 亚洲成人在线视频播放| 伊人影院久久| 国产一区二区福利| 激情久久五月| 国产综合一区二区| 极品少妇一区二区三区| 影音先锋亚洲精品| 在线日韩中文字幕| 91久久精品国产91久久性色tv| 一区在线视频观看| 亚洲第一在线综合网站| 亚洲日本电影在线| 一区二区三区.www| 亚洲一区二区在线看| 欧美亚洲视频一区二区| 亚洲第一偷拍| 亚洲片区在线| 亚洲欧美国产va在线影院| 久久国产直播| 欧美日本一道本| 欧美日韩国产小视频| 欧美性做爰猛烈叫床潮| 国产美女精品视频| 国产精品青草久久久久福利99| 国产伦精品一区二区三区免费| 国产日韩欧美中文| 一区免费视频| 亚洲精品日本| 亚洲男人天堂2024| 亚洲福利在线视频| 在线中文字幕一区| 欧美呦呦网站| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩国产二区| 欧美裸体一区二区三区| 国产精品欧美久久久久无广告| 国内外成人免费视频| 国产精品日本欧美一区二区三区| 国产最新精品精品你懂的| 最新国产成人av网站网址麻豆| 在线一区观看| 亚洲国产高清在线| 亚洲天堂av在线免费| 久久精品国产99国产精品澳门| 欧美18av| 国产精品久久一区主播| 精品51国产黑色丝袜高跟鞋| 亚洲乱码精品一二三四区日韩在线 | 亚洲欧美日韩综合| 中日韩午夜理伦电影免费| 欧美激情精品| 99精品国产高清一区二区| 欧美激情综合五月色丁香| 日韩午夜在线电影| 亚洲黄色一区二区三区| 亚洲欧美日韩国产综合精品二区| 欧美一区二区视频在线观看| 国产精品香蕉在线观看| 亚洲激情av在线| 欧美专区日韩专区| 性xx色xx综合久久久xx| 欧美三级视频在线| 亚洲欧洲日韩综合二区| 亚洲盗摄视频| 久久不见久久见免费视频1| 欧美三级在线视频| 亚洲精品国产精品国自产在线| 亚洲激精日韩激精欧美精品| 久久国产免费| 国产精品制服诱惑| 亚洲视频每日更新| 亚洲香蕉网站| 欧美日精品一区视频| 一区二区激情视频| 夜夜嗨av一区二区三区网站四季av| 玖玖精品视频| 好看的日韩av电影| 亚洲欧美电影院| 小处雏高清一区二区三区 | 蜜臀av一级做a爰片久久| 黑人巨大精品欧美一区二区小视频| 午夜精品网站| 欧美在线播放一区二区| 国产毛片精品视频| 欧美一区二区成人| 久久久久久夜| 伊人狠狠色j香婷婷综合| 久久美女性网| 牛人盗摄一区二区三区视频| 国产精品综合色区在线观看| 国产一区二区高清不卡| 影音先锋中文字幕一区| 亚洲欧洲综合另类| 亚洲女人av| 久久精品国产欧美亚洲人人爽| 亚洲美女av网站| 亚洲一区二区视频在线| 欧美美女福利视频| 一本色道久久| 亚洲福利国产| 亚洲一区二区三区高清| 久久久www免费人成黑人精品| 欧美日韩国产专区| 亚洲天堂成人在线观看| 欧美成年人在线观看| 亚洲图片在区色| 亚洲欧美日韩国产中文| 欧美一区二区三区婷婷月色| 久久久在线视频| 今天的高清视频免费播放成人| 亚洲资源在线观看| 国产精品激情av在线播放| 国语自产精品视频在线看一大j8| 国产欧美日韩精品a在线观看| 欧美日韩在线一区| 国产精品私人影院| 亚洲国产合集| 亚洲自拍偷拍一区| 亚洲精品久久嫩草网站秘色 | 欧美日本不卡视频| 欧美精品情趣视频| 国产精品伦一区| 亚洲国产精品久久久久秋霞蜜臀| 亚洲一区二区精品在线| 一本色道久久综合亚洲精品婷婷| 久久综合伊人77777麻豆| 欧美精品日韩综合在线| 伊人久久亚洲美女图片| 亚洲激情成人在线| 美女诱惑一区| 亚洲人在线视频| 欧美在线视频观看| 国产精品成人一区二区网站软件 | 日韩午夜电影在线观看| 午夜视频精品| 久久精品主播| 国产欧美日韩不卡免费| 久久国产欧美日韩精品| 日韩视频在线你懂得| 国产色视频一区| 欧美亚洲尤物久久| 中国亚洲黄色| 国产精品日韩在线| 亚洲少妇自拍| 久久视频在线视频| 国产亚洲激情| 亚洲第一成人在线| 欧美第十八页| 日韩一级黄色大片| av成人天堂| 欧美另类视频| aa级大片欧美| 久久裸体艺术| 亚洲欧美在线视频观看| 欧美成人精品一区二区三区| 日韩亚洲不卡在线| 久久亚洲综合|