開發(fā)環(huán)境:
主機(jī):Ubuntu12.04
開發(fā)板:RT5350
Openwrt:Openwrt15.05
1 添加 ser2net 應(yīng)用程序
在上一章中,我們成功的讓驅(qū)動(dòng)程序支持了串口 2,并且做了簡(jiǎn)單的測(cè)試。接下來(lái),我們就為串口 2 添加一個(gè)應(yīng)用程序,從而實(shí)現(xiàn) Wi-Fi 串口。實(shí)現(xiàn)過(guò)程非常簡(jiǎn)單,首先進(jìn)入 OpenWrt 系統(tǒng)源碼,然后運(yùn)行 make menuconfig 命令進(jìn)行配置。
make menuconfig
在彈出的配置菜單中,配置如下。
Network -- >
< * >ser2net
然后選中 ser2net 這個(gè)選項(xiàng),如圖所示。
圖1
最后退出保存,再編譯。
make V=99
2 配置 Wi-Fi 串口
既然是 Wi-Fi 串口, 那么我們就可以理解為它由兩部分組成,一部分是網(wǎng)絡(luò)編程器的 TCP服務(wù)器,用于接收客戶端通過(guò) Wi-Fi 傳來(lái)的數(shù)據(jù);另一部分就是串口,用于將 TCP 服務(wù)器接收到的數(shù)據(jù)通過(guò)串口發(fā)送出去。
既然是 TCP 服務(wù)器,那么我們需要設(shè)置它的 IP 地址和端口號(hào)。既然是串口,那么我們需要設(shè)置它的波特率等參數(shù)。那么,這些參數(shù),我們?cè)趺磥?lái)設(shè)置呢?通過(guò)修改 ser2net.conf 這個(gè)配置文件來(lái)實(shí)現(xiàn),位于開發(fā)板上的/etc 目錄下。
將上面編譯出來(lái)的固件,重新燒寫到開發(fā)板上面,然后上電啟動(dòng),進(jìn)入/etc 目錄。
cd /etc
vi ser2net.conf
我們打開 ser2net.conf 這個(gè)配置文件,再它的最下面,我們可以看到以下這些內(nèi)容。
2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2002:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
2003:raw:5:/dev/ttyS2:9600
2004:raw:5:/dev/ttyS3:115200
2005:raw:5:/dev/ttyS4:9600
2006:raw:5:/dev/ttyS5:9600
2007:raw:5:/dev/ttyS6:9600 tw=tw1 tr=tr1
3001:telnet:0:/dev/ttyS0:19200 remctl banner1
3011:telnet:3:/dev/ttyS0:19200 banner2
#3002:telnet:0:/dev/ttyS1:9600
3003:telnet:0:/dev/ttyS2:9600 banner3
3003:telnet:0:/dev/ttyS2:9600 signature1
3004:telnet:0:/dev/ttyS3:115200
3005:telnet:0:/dev/ttyS4:9600
3006:telnet:0:/dev/ttyS5:9600 open1
3007:telnet:0:/dev/ttyS6:9600 close1
5001:rawlp:10:/dev/lp0
那么這些內(nèi)容是什么意思呢?我們通過(guò)看 ser2net.conf 這個(gè)配置文件前面的說(shuō)明注釋部分,可以知道,這些參數(shù)的格式如下:
# < TCP port >:< state >:< timeout >:< device >:< options >
< TCP port >:用于設(shè)置 TCP 服務(wù)器要監(jiān)聽的端口號(hào);
< state >:用于設(shè)置 TCP 服務(wù)器的狀態(tài);
< timeout >:用于設(shè)置超時(shí)時(shí)間,如果設(shè)置為 0,表示不開啟超時(shí)時(shí)間;
< device >:用于選擇使用哪個(gè)串口設(shè)備;
< options >:用于設(shè)置波特率、校驗(yàn)位等參數(shù)。
更多詳細(xì)的介紹,就請(qǐng)大家看 ser2net.conf 這個(gè)配置文件前面的說(shuō)明注釋部分。那么,如果我想讓我們的 Wi-Fi 串口實(shí)現(xiàn)監(jiān)聽 8002 這個(gè)端口,然后通過(guò)串口 2 輸出, 波特率是 115200,應(yīng)該怎么做呢?
如果我們看懂了前面的內(nèi)容, 就發(fā)現(xiàn), 要實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)單, 只需要在 ser2net.conf這個(gè)配置中的最后面添加一行以下內(nèi)容即可。
8002:raw:0:/dev/ttyS0:115200
最后保存退出,然后重啟開發(fā)板,即可。
3 測(cè)試 Wi-Fi 串口
通過(guò)前面的那么多的努力,我們終于把 Wi-Fi 串口這個(gè)系統(tǒng)給做好了,接下來(lái)我們就來(lái)測(cè)試它。
1)將開發(fā)板的串口2 和電腦的串口連接起來(lái),設(shè)置好相應(yīng)的串口(波特率是115200)。
圖2
2)啟動(dòng)開發(fā)。
3)啟動(dòng) ser2net 軟件,只需要在調(diào)試串口測(cè),輸入如下命令即可
ser2net
4)手機(jī)連接上開發(fā)板發(fā)出的 WiFi 信號(hào)RT5350_ap。
5)啟動(dòng)“網(wǎng)絡(luò)調(diào)試助手”軟件。
6)選擇 tcp client。
圖3
7)點(diǎn)添“加按”按鈕。然后在彈出的對(duì)話框中填入開發(fā)板的 IP 地址,還有就是 Wi-Fi 串口的端口號(hào) 8002.
圖4
8)接下來(lái),我們的手機(jī)就可以通過(guò) Wi-Fi 串口和電腦進(jìn)行傳數(shù)據(jù)了。
4 開機(jī)自啟動(dòng) Wi-Fi 串口
我們的最終目的,肯定是要做出一個(gè)產(chǎn)品來(lái),而產(chǎn)品,不可能還要用戶通過(guò)調(diào)試串口來(lái)輸入命令,從而才能啟動(dòng) Wi-Fi 串口。
那么,接下來(lái),我們就來(lái)實(shí)現(xiàn)開機(jī)自啟動(dòng) Wi-Fi 串口。
首先打開開發(fā)板上的/etc 目錄下的 rc.local 這個(gè)文件。
vi /etc/rc.local
然后在 exit0 前面加入一條 ser2net,詳情如下。
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
ser2net
exit 0
最后保存退出,重啟開發(fā)板,然后我們通過(guò) ps 命令查看一下,發(fā)現(xiàn) ser2net 已經(jīng)啟動(dòng)好了。
這樣,我們的 Wi-Fi 串口就這樣做好了。
注意:發(fā)現(xiàn)好多人調(diào)試不通,原因大概有以下三個(gè)問(wèn)題:
短路帽位置不對(duì);
波特率設(shè)置不對(duì),顯示亂碼或無(wú)輸出;
手機(jī)建立 tcp 客戶端顯示連接失敗,一般是端口號(hào)不對(duì),請(qǐng)用 ps 查下正確的端口號(hào)再連接。還有一種就是 ser2net 沒有啟動(dòng),最好再做一次此實(shí)驗(yàn),也可以用我們里面提供的“openwrt.bin” 固件測(cè)試。
審核編輯:湯梓紅
-
wi-fi
+關(guān)注
關(guān)注
14文章
2126瀏覽量
124413 -
串口
+關(guān)注
關(guān)注
14文章
1550瀏覽量
76375 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5018瀏覽量
97341 -
OpenWrt
+關(guān)注
關(guān)注
10文章
130瀏覽量
39294
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論