無線通信協(xié)議編寫.doc
《無線通信協(xié)議編寫.doc》由會員分享,可在線閱讀,更多相關(guān)《無線通信協(xié)議編寫.doc(9頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
單片機(jī)無線通信模塊開發(fā)與應(yīng)用(五) 好久沒發(fā)貼了,這場病病得不輕啊,不過病早好了,這次延誤是因?yàn)樵诒本┙恿藗€項(xiàng)目,而且正好是關(guān)于這套系統(tǒng)的應(yīng)用,所以干脆就拖了一段時間. 說正題了.前面那么多貼子只是一些外圍的制作和設(shè)計,但沒有外圍的建設(shè)怎么能做出好東西呢?呵呵,這次給大家發(fā)點(diǎn)正經(jīng)東西,相信這就是大伙兒最關(guān)心的部分---通信協(xié)議,其實(shí)也不能稱其為協(xié)議,只能叫做射頻編碼,為了便于理解起見才叫它通信協(xié)議的,大家心里清楚這點(diǎn)就行了,免得說我混淆視聽.通信協(xié)議分成硬件層和軟件層,硬件層,即數(shù)據(jù)的電信號表示方法,而軟件層,指的是數(shù)據(jù)包的處理.由于軟件層定義很廣,且跟應(yīng)用場合相關(guān),不同的應(yīng)用可能使用完全不同的協(xié)議,所以這里就只說說如何傳輸數(shù)據(jù)包吧.相信大家都有這能力進(jìn)行下一步的擴(kuò)展.我也會在今后的貼子里給出一些應(yīng)用的實(shí)例,以供參考. 我看到論壇上有些朋友之前也做過無線模塊的應(yīng)用,卻不成功,例如明浩提過他做的232無線模塊,干擾很大,通信不能進(jìn)行.為什么會這樣呢?要解釋這問題,先要說說無線模塊的結(jié)構(gòu)和特性: 發(fā)射:無線模塊使用一個三級管進(jìn)行射頻發(fā)射,從說明書上可看到,當(dāng)連續(xù)發(fā)送時間高于5毫秒時,發(fā)射效率會降低. 接收:超再生電路.超再生電路有一個特性,即在沒有信號時會收到大量的白噪聲,接收模塊已經(jīng)對該噪聲進(jìn)行了處理,白噪聲被大幅度削弱了,但是,這并不是說噪聲就完全消除了,事實(shí)上,當(dāng)信號源停止發(fā)射后幾毫秒,噪聲會再次出現(xiàn),也就是所謂的"零電平干擾",根據(jù)說明書的提示,這段時間大約為5毫秒. 別外,說明書上也指出,信號發(fā)射的寬度不應(yīng)小于0.08毫秒,占空比也不能太大,否則很容易受到干擾. 從上面的資料,我們可以很輕易地分析出干擾來源. 根據(jù)資料,我們可以得出一個大概的設(shè)計原則: 1.占空比有限制,我們?nèi)藶橄拗频?:4之內(nèi). 2.發(fā)射時間小于3毫秒. 3.兩次發(fā)射的間隔小于3毫秒. 4.正式發(fā)射信號前要使用前導(dǎo)信號,以消除"零電平干擾". 根據(jù)上面幾點(diǎn),我參考紅外信號算法,寫出了發(fā)送一字節(jié)的算法: 1.高低信號電平交替使用,與實(shí)際被發(fā)送數(shù)據(jù)的電平值無關(guān),而發(fā)送寬度及兩次發(fā)送的間隔寬度,與被發(fā)送數(shù)據(jù)的電平值相關(guān),對應(yīng)關(guān)系在后面作出描述. 2.以寬度為0.6毫秒的寬度表示位低電平. 3.以寬度為1.2毫秒的寬度表示位高電平. 4.以寬度為1.8毫秒的寬度表示數(shù)據(jù)正文的發(fā)送與結(jié)束. 以下給出流程: 1.從零電平開始,交替發(fā)送/停止寬度為0.6毫秒的信號,數(shù)量為單數(shù)個,最少要有2個,發(fā)送完后信號電平自然回到高電平,這里,我稱該組信號為"前導(dǎo)信號",用來清除"零電平干擾".前導(dǎo)信號的第一個信號很可能會丟失,但其設(shè)計目的本來就是用來丟失的,所以無須關(guān)心接收方實(shí)際收到的數(shù)量,該信號在接收方接收時只要收到一個即可. 2.發(fā)送一個寬脈沖,作為數(shù)據(jù)引導(dǎo),指示下一個信號將是數(shù)據(jù)正文.由于有前導(dǎo)信號保護(hù),該信號不會丟失. 3.發(fā)送數(shù)據(jù)正文的各個位,低位在前,從bit0開始,位的值為0時發(fā)送0.6毫秒信號,值為1時發(fā)送1.2毫秒脈沖.這里要再次說明,所謂"發(fā)送信號",并不等于發(fā)送射頻信號,關(guān)閉射頻同樣是發(fā)送信號. 4.發(fā)送一個寬脈沖,作為結(jié)束信號,表示數(shù)據(jù)發(fā)送完畢,脈沖結(jié)束后射頻信號正好自然轉(zhuǎn)為停止發(fā)送,即零電平. 上面的文字說明有點(diǎn)復(fù)雜,下面給出圖示,圖示中的字節(jié)數(shù)據(jù)值為十六進(jìn)制數(shù)A6,圖中高電平時為發(fā)送射頻信號: 1 01 0 0 1 1 0 _________|-|_|-|_|-|___|--|_|--|_|-|__|--|_|---|_________ A B C D EF A: 無關(guān)信號,可能為任何電平值.此時數(shù)據(jù)還未開始發(fā)送,不關(guān)心其電平為何值. B: 前導(dǎo)信號,交替發(fā)送/靜默0.6毫秒. C: 引導(dǎo)信號,靜默1.8毫秒. D: 一字節(jié)數(shù)據(jù)正文,用發(fā)送/靜默0.6毫秒表示0,發(fā)送/靜默0.6毫秒1.2毫秒表示1. E: 結(jié)束信號,發(fā)送射頻1.8毫秒. F: 無關(guān)信號,可能為任何電平值.此時數(shù)據(jù)已經(jīng)發(fā)送完畢,不關(guān)心其電平為何值. 看圖是不是清楚多了?如果還不懂,那我也沒辦法了. 接下來是一個寫好的例子,發(fā)送和接收例程都有,一次發(fā)送或接收24個字節(jié)定長數(shù)據(jù)包.程序使用了并行工作機(jī)制,發(fā)送和接收可同時進(jìn)行,但由于發(fā)送與接收共用同一個內(nèi)存塊作緩沖區(qū),所以應(yīng)用時不能時調(diào)用,有興趣的可以自已改改程序,使用獨(dú)立的緩沖區(qū),這樣就可以同時發(fā)送和接收了,但我個人認(rèn)為意義不大,因?yàn)槭盏降臄?shù)據(jù)就是自已發(fā)的數(shù)據(jù),沒什么實(shí)際用處.晶振采用22.1184M,串口通信速率115200bps如果使用11.059M,232串口通信速率要改成57600. MCU端源代碼下載:http://202.103.67.224/shaoshan/mu/mcu/rftest1.rar PC端源代碼下載:http://202.103.67.224/shaoshan/mu/mcu/scommtest.rar PC端代碼默認(rèn)端口是COM4,自已改改吧,改成你要的就行了,具體怎么改,去上一講里面找. 由于單片機(jī)的內(nèi)存限制,數(shù)據(jù)包不能做得太大,同時,長數(shù)據(jù)包比短數(shù)據(jù)包的受干擾機(jī)率更大,所以,24字節(jié)是一個比較實(shí)用的值.經(jīng)測試,發(fā)送接收全部不用天線,發(fā)射電壓為5V時,傳輸距離5米,如果加上25公分天線,傳個幾十米不成問題,想要更遠(yuǎn)則要提高發(fā)射電壓了,電壓上限為12V,理論上應(yīng)該有300米,由于我自已的應(yīng)用場合是家用,所以沒測試過,不知道實(shí)際有多遠(yuǎn). 使用例子的時候注意一下,測試程序main()的發(fā)送與接收是用條件編譯分開的,下面的代碼中已有說明.發(fā)送與接收要單獨(dú)編譯和燒片,要兩套硬件才能完成測試.在正式應(yīng)用中,應(yīng)注意一點(diǎn):收發(fā)程序都并非退出后就有數(shù)據(jù)的,一定要重復(fù)調(diào)用,直到滿足特定條件.并且,每兩次調(diào)用的時間間隔不能超過50微秒,否則會丟失數(shù)據(jù).為什么要將程序?qū)懗蛇@樣?是因?yàn)?寫成這樣子,我們就可以在發(fā)送和接發(fā)數(shù)據(jù)的同時作一些別的事情,例如鍵盤掃描,紅外發(fā)送接收,LED數(shù)碼管驅(qū)動等. #if 1//測試時,發(fā)送方寫#if 1 接收改成 #if 0 //正式應(yīng)用的話,請將程序插入你自已的應(yīng)用中,收發(fā)不能同時執(zhí)行. //調(diào)用格式: //while(w_send_step < 6 + W_BUF_LEN * 8){ // w_send(); // //這里可寫些別的代碼,例如鍵盤掃描,LED驅(qū)動等,但時間不能超過50uS //} //while(w_recv_step == 3 + W_BUF_LEN * 8) // w_recv(); // //這里可寫些別的代碼,例如鍵盤掃描,LED驅(qū)動等,但時間不能超過50uS //} if(send_over){ for(i=0; i- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 無線 通信協(xié)議 編寫
鏈接地址:http://www.3dchina-expo.com/p-9096785.html