在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>通信技術>無線通信>

WIFI模塊四種工作模式介紹_WIFI模塊工作模式淺析

2018年01月19日 14:45 網絡整理 作者: 用戶評論(0

WIFI模塊四種工作模式介紹

WIFI模塊常見的四種工作模式:透傳模式、串口指令模式、HTTPD Client模式、GPIO模式。使WIFI模塊可以適用于不同環境下工作。透明傳輸模式:在該模式下,模塊實現串口與網絡之間的透明傳輸,實現通用串口設備與網絡設備之間的數據傳遞。串口指令模式:在該模式下,用戶可以按照我們的協議發送數據給服務器,無需重啟即可向不同的服務器發送數據。GPIO模式:在該模式下,用戶可以發送我們協議的指令控制模塊的六個引腳,分別是TXD、RXD、CTS、RTS、nReady,nLink。

1、透明傳輸模式

USR-WIFI232-A/B/C模塊支持串口透明傳輸模式,可以實現串口即插即用,從而最大程度的降低用戶使用的復雜度。在此模式下,所有需要收發的數據都被在串口與WiFi接口之間做透明 傳輸,不做任何解析。

在透明傳輸模式下,可以完全兼容用戶原有的軟件平臺。用戶設備基本不用做軟件改動就可以實現支持無線數據傳輸。

《說明》:

透明傳輸模式是復雜度最少的數據傳輸。用戶也打開串口的硬件流控(CTS/RTS)功能,這樣可以使誤碼率降到最低。如果用戶不需要串口的硬件流控功能,只需要把相應pin腳(CTS/RTS)懸空就可以。

2、串口指令模式

在此模式下,用戶可以將串口的數據發往不同的服務器地址,此模式可以用udp或是tcp client向服務器發送數據。

客戶MCU按照下面的格式發送數據包,模塊解析完成后,只將n字節的數據發送到目標地址。當有數據返回時,不做解析直接將數據從串口輸出。

3、GPIO模式

高性能WIFI模塊,支持GPIO模式。GPIO模式下UART的4個引腳定義為GPIO,nReady,nLink也定義成GPIO。

模塊工作在GPIO模式時,PC或其它網絡設備可以通過WIFI與模塊建立連接(TCP/UDP),然后通過命令控制GPIO或讀GPIO狀態。命令如下:

GPIO n IN:設置GPIOn為輸入,返回GPIO OK或GPIO NOK

GPIO n OUT 0:設置GPIOn為輸出低電平,返回命令OK或命令NOK

GPIO n OUT 1:設置GPIOn為輸出高電平,返回命令 OK或命令 NOK

GPIO n SW:設置GPIOn為輸出并改變原來高低電平狀態,返回GPIO OK或GPIO NOK

GPIO n PWM m1 m2:設置GPIOn輸出一個高低變化的電平,m1為高電平時間,m2為低電平時間(時間單位ms,最小10 ms),返回GPIO OK或GPIO NOK

GPIO n GET:讀取GPIOn狀態,返回I0,I1,O0,O1分別表示輸入低,輸入高,輸出低,輸出高。

注意:n可以為3,4,5,6,8,9,與模塊Pin腳對應。其中GPIO 4只能做輸入,GPIO 3只能做為輸出。

GPIO READ返回當前所有IO的狀態,與GPIO n GET的表示方法一致。如,I1I1I0I0I0I0O1,I表示輸入,O表示輸出。0表示低,1表示高。

4這個引腳是取反的。讀到1實際為0,讀到0實際為1。

4、HTTPD Client模式

此模式用于從HTTP服務器請求數據或是向服務器提交數據。

用戶在用at指令或是網頁設置好HTTP報頭的具體內容后。每次發送數據時,模塊會自動將所發送的數據封裝成HTTP協議數據,發送到指定HTTP服務器上。方便用戶直接從HTTP服務器讀取或提交數據。

WIFI模塊工作模式淺析

這里我們這樣使用我們的設備,開發板上插上網線和WIFI模塊。其工作原理是通過網線把網絡接到開發板,我們的WIFI模塊作為無線的接入點,組成一個迷你的無線路由器。我們的電腦就能通過連接開發板上的AP來上網了。

首先我們還是從ifconfig開始:

~ 》: ifconfig -a

eth0 Link encap:Ethernet HWaddr 00:E5:49:83:76:1A

inet addr:192.168.1.168 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:64 (64.0 B) TX bytes:0 (0.0 B)

Interrupt:51 Base address:0x4300

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:0C:43:30:72:81

BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

~ 》: ifconfig wlan0 192.168.1.2 netmask 255.255.255.0 up

~ 》: ifconfig

eth0 Link encap:Ethernet HWaddr 00:E?49:83:76:1A

inet addr:192.168.1.168 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:14 errors:0 dropped:0 overruns:0 frame:0

TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:896 (896.0 B) TX bytes:272 (272.0 B)

Interrupt:51 Base address:0x4300

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:0C:43:30:72:81

inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

如果你想要讓你的迷你路由器支持DHCP自動分配IP,那么你首先要在你的開發板上移植dhcpd的命令(busybox中也有udhcpd的命令,不過功能沒有dhcpd強大)

它的一些配置文件為:

/tmp 》: vim dhcpd_wlan0.conf

subnet 192.168.5.0 netmask 255.255.255.0 {

range 192.168.5.10 192.168.5.100;/分配的子網的范圍/

option domain-name-servers 4.2.2.2, 8.8.8.8;/域名解析服務器/

option routers 192.168.5.1;/配置路由器表/

default-lease-time 18800;

max-lease-time 72000;

authoritative;

}

subnet 子網

網絡的一部分。它是物理上獨立的網絡段,與網絡其它部分共享網絡地址,并用子網號區分。

并在/tmp目錄下用touch創建dhcpd_wlan0.leases文件

之后運行命令dhcpd -q -pf dhcpd_wlan0.pid -cf dhcpd_wlan0.conf -lf dhcpd_wlan0.leases wlan0

/tmp 》: vim dhcpd_wlan0.pid

704 /這里的進程號是我們dhcp服務開啟時,自己把進程號寫入到這個文件中,每次啟用都會覆蓋寫入/

就設置好了dhcp的服務。

之后我們就要用hostapd工具來配置我們的迷你路由器了,沒有這個工具請自行百度移植。(要學會利用好百度,goole)它的配置文件為:

/apps/etc/network 》: vim hostapd.conf

# Software AP daemon program hostapd configure file

# FILE:/apps/etc/network/hostapd.conf

# Copyright (C) 2012 GuoWenxue 《guowenxue@gmail.com QQ:281143292》

ctrl_interface=/var/run/hostapd

interface=wlan0

#bridge=br0

driver=nl80211

ssid=Router_s3c2440/你可以給你的WIFI起個自己想要的名字/

hw_mode=g

channel=7 /802.11b/g工作在2.4~2.4835GHz頻段,這些頻段被分為11或13個信道,我們一般設置小于10/

macaddr_acl=0

auth_algs=1

ieee80211n=1

dtim_period=2

rts_threshold=2347

fragm_threshold=2346

macaddr_acl=0

eap_server=0

wpa=2

wpa_passphrase=lingyun_embedded/自己設置密碼/

wpa_key_mgmt=WPA-PSK

# WPA standard definition only support TKIP, but the vendor

# support AES-CCMP(A.K.A AES or CCMP) too.

wpa_pairwise=TKIP CCMP

# RSN(A.K.A WPA2) standard define support TIKP AES-CCMP.

rsn_pairwise=TKIP CCMP

wpa_group_rekey=86400

wpa_gmk_rekey=86400

如果你曾配置過路由器,有些選項你會熟悉吧。初學沒必要把每個選項弄懂,把幾個重要的設置好就行了。

配置好之后就可以運行了:

~ 》: mkdir -p /var/run/hostapd

~ 》: hostapd -B /apps/etc/network/hostapd.conf

Configuration file: /apps/etc/network/hostapd.conf

Using interface wlan0 with hwaddr 00:0c:43:30:72:81 and ssid ‘Router_s3c2440’

~ 》: ls /var/run/hostapd/

wlan0(不清楚這里生成和下面的mon.wlan0有什么關系,有大神請留言指教)

可以看到生成的wlan0,而且

~ 》: ifconfig

eth0 Link encap:Ethernet HWaddr 00:E5:49:83:76:1A

inet addr:192.168.1.168 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:371446 errors:0 dropped:43 overruns:0 frame:0

TX packets:306189 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:360520116 (343.8 MiB) TX bytes:140937225 (134.4 MiB)

Interrupt:51 Base address:0x4300

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:22 errors:0 dropped:0 overruns:0 frame:0

TX packets:22 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1320 (1.2 KiB) TX bytes:1320 (1.2 KiB)

mon.wlan0 Link encap:UNSPEC HWaddr 00-0C-43-30-72-81-00-00-00-00-00-00-00-00-00-00

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:2883 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:329852 (322.1 KiB) TX bytes:0 (0.0 B)

wlan0 Link encap:Ethernet HWaddr 00:0C:43:30:72:81

inet addr:192.168.5.1 Bcast:192.168.5.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:310453 errors:0 dropped:0 overruns:0 frame:0

TX packets:372073 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:141302428 (134.7 MiB) TX bytes:365778847 (348.8 MiB)

會發現多生成了一個mon.wlan0的網絡接口。這個查了下也沒弄清是怎么工作的。

但是現在你還無法上網,聯網的結果是會是受限的訪問權限。

這是因為我們數據沒法通過路由器轉發出去,解決方法是用iptables來實現NAT。首先你要移植iptables到你的開發板,

NAT分成了兩種類型,即源NAT(SNAT)和目的NAT(DNAT),顧名思義,所謂SNAT就是改變轉發數據包的源地址,所謂DNAT就是改變轉發數據包的目的地址。

NAT表也有三條缺省的“鏈”(chains),這三條鏈也是規則的容器,它們分別是:

PREROUTING:可以在這里定義進行目的NAT的規則,因為路由器進行路由時只檢查數據包的目的ip地址,所以為了使數據包得以正確路由,我們必須在路由之前就進行目的NAT;

POSTROUTING:可以在這里定義進行源NAT的規則,系統在決定了數據包的路由以后在執行該鏈中的規則。

OUTPUT:定義對本地產生的數據包的目的NAT規則。

有一種SNAT的特殊情況是ip欺騙,也就是所謂的Masquerading,通常建議在使用撥號上網的時候使用,或者說在合法ip地址不固定的情況下使用。

對于nat沒什么深入研究,下面有個網址講的不錯:

http://www.51cto.com/html/2005/0813/1388.htm

配置SNAT

Linux可以很方便的通過iptables配置SNAT服務器,命令如下:

~ 》: ptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

~ 》: iptables -A FORWARD -s 192.168.5.0/24 -j ACCEPT

~ 》: iptables -A FORWARD -d 192.168.5.0/24 -j ACCEPT

其中第一條表示將通過本機的轉發數據包從eth0(外網)這個網卡發出去,另外兩條表示只轉發192.168.5.0/24這個網段過來的數據包,這個網段正好是wlan0其它設備連上本機以后分配的網段。

還需要在打開內核的ip轉發功能:

~ 》: vim /etc/sysctl.conf

添加或修改這樣一段:

net.ipv4.conf.default.rp_filter = 1

然后執行命令

~ 》: sysctl -p

再把我們的網線連上開發板,我們的電腦就可以連接開發板上網了。

非常好我支持^.^

(2) 100%

不好我反對

(0) 0%

( 發表人:龔婷 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 亚洲综合色一区二区三区小说 | 欧美高清免费一级在线 | 天天干天天舔天天操 | 欧美黑人粗硬大在线看 | 69日本xxxxxxxxx98 69日本xxxxxxxxx内谢 | 国产成人一级片 | 99久久99久久精品免费看子伦 | 男人资源在线 | 久久国内精品视频 | 欧美一级看片a免费观看 | 亚洲毛片网站 | 人人干人人爽 | 成熟女人免费一级毛片 | 日本a级三级三级三级久久 日本a级影院 | 色香色香欲天天天影视综合网 | 亚洲伊人久久大香线蕉啊 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 天天摸天天舔天天操 | 黄色免费看网站 | 午夜精品视频在线看 | 午夜骚 | 浓厚な接吻と肉体の交在线观看 | 女人又色又爽又黄 | 欧美成人免费大片888 | 欧洲性开放大片免费观看视频 | 亚洲免费三级 | 丁香啪啪天堂激情婷婷 | 乱色伦图片区 | 六月丁香中文字幕 | 依人成人 | 免费日韩三级 | 天天爽夜夜爽一区二区三区 | 色多多在线观看视频 | 免费观看一级成人毛片 | 色视频在线观看在线播放 | 桃色婷婷| 午夜影院普通 | 天天舔天天插 | 久久成人国产精品免费 | 天天射天 | 亚洲日本久久久午夜精品 |