卜彥君 劉志強 田雪 謝一博
摘要:文章對比了無線串口和工業(yè)、生活中常見的無線通信方式,提出構(gòu)建基于無線串口的物聯(lián)網(wǎng)數(shù)據(jù)傳輸網(wǎng)絡(luò)。在一定的理論基礎(chǔ)下,進行了真實場景中的單點傳輸和星型組網(wǎng)測試,而且通過編寫程序?qū)崿F(xiàn)了單片機自組網(wǎng)的測試,實驗效果良好。關(guān)鍵詞:無線串口;組網(wǎng)測試;數(shù)據(jù)傳輸
目前常用的無線通信技術(shù)有藍牙,WiFi,ZigBee等[1],其中藍牙是一種用于替代某些電子設(shè)備上使用電纜或連線的短距離無線連接技術(shù),傳輸距離約10 m; WiFi與藍牙技術(shù)一樣,同屬于在辦公室和家庭中使用的短距離無線技術(shù),該技術(shù)使用的是2.4 GHz附近的頻段,傳輸距離約100 m;ZigBee是一種近距離、低復(fù)雜度、低功耗、低速率、低成本的雙向無線通信技術(shù),傳輸距離約100 m。在考慮敏捷開發(fā)、超長傳輸距離、低功耗、穿透能力等綜合因素時,無線串口有著明顯的優(yōu)勢,所以本課題使用無線串口搭建數(shù)據(jù)采集網(wǎng)絡(luò)。
1 工作原理
串口是計算機與外部設(shè)備進行數(shù)據(jù)交換的重要介質(zhì),串行通信也因其線路簡單、操作靈活,在工程中有著廣泛的應(yīng)用。無線數(shù)據(jù)傳輸網(wǎng)絡(luò)就是計算機與無線串口之間的通信鏈路,通過E32-TTL-100模塊,并配以天線,經(jīng)過CP210X驅(qū)動可實現(xiàn)計算機之間數(shù)據(jù)的無線傳輸。其數(shù)據(jù)傳輸流程如圖1所示。
發(fā)送方:計算機上的COM 口與串口調(diào)試助手連接后,通過USB-T2將數(shù)據(jù)以十六進制形式傳給E32-TTL-100無線模塊,模塊根據(jù)當前的工作狀態(tài),在若干時間片后,將數(shù)據(jù)打包發(fā)送。
接收方:無線串口通過解析比對發(fā)送方的地址和信道,對收到的數(shù)據(jù)進行逐幀校驗,校驗通過的數(shù)據(jù)通過USB-T2傳輸?shù)酱谡{(diào)試助手以文本顯示[2]。
2 工作模式
模塊有4種工作模式,由引腳M0和M1設(shè)置,詳情如表1所示。
3 數(shù)據(jù)傳輸網(wǎng)絡(luò)的構(gòu)建
3.1 單點傳輸
單點傳輸可采用透明傳輸或定向傳輸兩種工作方式,透明傳輸把接收和發(fā)送兩端的串口信道設(shè)置相同即可,定向傳輸需要設(shè)置接收和發(fā)送雙方的地址和信道,同時要設(shè)置模塊的標志位。就是把兩個無線模塊的信道值設(shè)置成相同的,它們就可以進行通信,進而進行數(shù)據(jù)傳輸,達到定點傳輸?shù)哪康摹?/p>
3.2 星型組網(wǎng)
星型組網(wǎng)是一個一主多從的網(wǎng)絡(luò)架構(gòu),用戶可以給每一個從機規(guī)定一個地址和信道,并在發(fā)送數(shù)據(jù)時指定目的地址和信道,收到數(shù)據(jù)的從機判斷地址是否與自身匹配,若不匹配則直接丟棄,若匹配,則作出相應(yīng)的動作。
星型組網(wǎng)測試以內(nèi)蒙古工業(yè)大學金川校區(qū)為例,該校區(qū)包含高大建筑物17棟,占地約0.7 km2,對角線距離分別為584 m和888 m。實驗當天氣候干燥,風速4級,氣溫零攝氏度。實驗時4名同學分別位于校區(qū)的四角,每人手持筆記本和無線串口模塊,就位后我們進行了兩組測試。如圖2右側(cè)所示,兩兩之間互相發(fā)送數(shù)據(jù),平均延時約0.1s。如圖2左側(cè)所示,一名同學位于學校中心建筑物,其他3名以其為中心輻射在不同的方向,然后進行數(shù)據(jù)傳輸。兩組實驗中每人都能收到其他3人的數(shù)據(jù),且數(shù)據(jù)傳輸延時較低,這表明金川校區(qū)可采用基于無線串口的物聯(lián)網(wǎng)數(shù)據(jù)傳輸網(wǎng)絡(luò)[3-4]。
3.3 單片機自組網(wǎng)
單片機自組網(wǎng)是由PC機、單片機和無線串口組成的一個組網(wǎng)。他們之間是通過PC機把寫好的程序由USB串口下載到單片機里,然后單片機與無線串口通過他們的TXD和RXD相連接而完成通信。下面是單片機自組網(wǎng)通信程序。
(1)串口初始化程序void initSer()
{
TMOD=TMOD|Ox20;//T1定時器模式,工作方
式2
THl=0Xfd;// 256-(11059200/(32*12*9600))
TLl=0xfd;
SM0=0;//屬于SCON寄存器
SM1=1;//串口工作方式1,10位異步,波特率
可改
REN=1;//允許串口接收
ES=1;//開串口中斷
EA=1;//開總中斷
TR1=1;//啟動定時器
}
(2)發(fā)送一個字節(jié)數(shù)據(jù)void sendChar(uchar Value)
{
SBUF = Value;
sendFlag = 1;//設(shè)置發(fā)送標志位,發(fā)一字節(jié)就置位
while(sendFlag);//直到發(fā)完數(shù)據(jù),將sendFlag清零
后,才退出sendChar函數(shù)
}
(3)主函數(shù)void main(void)
{
initSer();while ⑴
{
while(receFlag)//單片機串口收到任意數(shù)據(jù)后,開始發(fā)送數(shù)據(jù){
sendStr();
receFlag=0;
此單片機自組網(wǎng)首先通過sendStr()函數(shù)把所要發(fā)送的數(shù)據(jù)發(fā)送到單片機緩沖區(qū),然后單片機把所收到的數(shù)據(jù)轉(zhuǎn)發(fā)給無線出口,無線串口分析接收的數(shù)據(jù),通過和自己先前設(shè)置好的地址和信道進行校驗,正確后,把數(shù)據(jù)轉(zhuǎn)發(fā)給另一個無線串口,然后把收到的數(shù)據(jù)在PC機上的串口調(diào)試助手得以顯示。
4 結(jié)語
本文研究了無線串口的通信方式和工作模式,并在真實環(huán)境中進行了組網(wǎng)測試,實驗中數(shù)據(jù)傳輸穩(wěn)定,穿透能力強,誤碼率和延時都很低。通過對比實驗前期的準備工作,發(fā)現(xiàn)無線串口確實使用方便,對專業(yè)背景要求較低。
[參考文獻]
[1]金純,羅祖秋.ZigBee技術(shù)基礎(chǔ)及案列分析[M].北京:國防工業(yè)出版社,2008.
[2]薛衛(wèi)強.基于物聯(lián)網(wǎng)的無線環(huán)境監(jiān)測系統(tǒng)設(shè)計與軟件的實現(xiàn)[D].秦皇島:燕山大學,2013.
[3]黃建清,王衛(wèi)星.基于無線傳感器網(wǎng)絡(luò)的水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測系統(tǒng)開發(fā)與試驗[J].農(nóng)業(yè)工程學報,2013(4):183-190.
[4]楊小牛,褸才.軟件無線電原理與應(yīng)用[M].北京:電子工業(yè)出版社,2001.