新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 基于nRF905的無線數(shù)據(jù)傳輸系統(tǒng)

基于nRF905的無線數(shù)據(jù)傳輸系統(tǒng)

作者: 時間:2009-05-27 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/158046.htm

為了避免陷入死循環(huán),在單片機(jī)程序中專門設(shè)計了中斷子程序,用于處理此類情況。中斷子程序采用的中斷源是TMR1定時器。一旦死循環(huán)運行超時,就會觸發(fā)TMR1中斷,程序跳轉(zhuǎn)到中斷子程序。中斷子程序的任務(wù)是打破當(dāng)前的僵局,使雙方的程序運行都能回到正常的軌道上??紤]到S系統(tǒng)此時處于接收模式,正在等待來自M系統(tǒng)的指令,所以,M系統(tǒng)在中斷子程序中重發(fā)上一條指令,然后返回主程序中,繼續(xù)查詢CD/AM/DR信號的狀態(tài),等待來自S系統(tǒng)的。而S系統(tǒng)收到該指令后判斷是否是S端協(xié)議內(nèi)容。通過M端重發(fā)指令的方式,使雙方再建立一次通信,跳出上一次的死循環(huán)。如果本次通信仍然不成功,那么單片機(jī)程序會遵循中斷一重發(fā)機(jī)制運行,直到通信成功為止。當(dāng)然,如果通信雙方的距離已經(jīng)超出了信號的有效覆蓋范圍,通信是不會成功的。

3.2.2 S端協(xié)議設(shè)計

S端的協(xié)議處于從控位置,相對簡單。設(shè)計中,仍然通過查詢的CD/AM/DR狀態(tài)接收指令,關(guān)鍵要解決指令的判讀問題,即分清是正常流程內(nèi)指令還是重發(fā)指令。這一問題在沖擊波存儲測試系統(tǒng)的工作參數(shù)設(shè)定階段不存在,因為每一個參數(shù)設(shè)定指令都不一樣,S端第一次收到某個指令肯定是正常流程內(nèi)指令,第二次收到該指令則肯定是重發(fā)的指令。但在讀數(shù)階段就不同了,因為存儲可能有幾兆字節(jié),如此大的量需要拆成無數(shù)個包才能發(fā)送,而M端不可能每讀一次都使用不同的指令。為此,S端協(xié)議采用兩個讀數(shù)指令K1和K2,循環(huán)發(fā)送。K1之后收到K2或K2之后收到K1均為正常,S端協(xié)議從測試系統(tǒng)讀取存儲數(shù)據(jù)并緩存到內(nèi)部寄存器,然后發(fā)送出去。若連續(xù)收到兩個相同的指令,說明M端沒有收到剛才的數(shù)據(jù),此時,S端從內(nèi)部寄存器中讀取剛才的數(shù)據(jù),進(jìn)行重發(fā),而不再從測試系統(tǒng)中讀取。S端的協(xié)議流程如圖3所示。

4 結(jié)束語

系統(tǒng)調(diào)試成功后,進(jìn)行了多次數(shù)據(jù)傳輸實驗,從實驗數(shù)據(jù)可得,信號在室內(nèi)傳輸環(huán)境下的損耗要遠(yuǎn)大于室外街道環(huán)境;在同等條件下,誤碼率主要與距離延伸有關(guān);過往車輛對數(shù)據(jù)傳輸影響不大。該無線數(shù)據(jù)已成功應(yīng)用于多個存儲測試系統(tǒng)中。實現(xiàn)了控制指令和測試數(shù)據(jù)的無線傳輸


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉