<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/158046.htm

          為了避免陷入死循環(huán),在單片機程序中專門設(shè)計了中斷子程序,用于處理此類情況。中斷子程序采用的中斷源是TMR1定時器。一旦死循環(huán)運行超時,就會觸發(fā)TMR1中斷,程序跳轉(zhuǎn)到中斷子程序。中斷子程序的任務(wù)是打破當前的僵局,使雙方的程序運行都能回到正常的軌道上。考慮到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)。如果本次通信仍然不成功,那么單片機程序會遵循中斷一重發(fā)機制運行,直到通信成功為止。當然,如果通信雙方的距離已經(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ù),進行重發(fā),而不再從測試系統(tǒng)中讀取。S端的協(xié)議流程如圖3所示。

          4 結(jié)束語

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


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();