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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)的無線信號(hào)編解碼技術(shù)研究

          基于51單片機(jī)的無線信號(hào)編解碼技術(shù)研究

          作者: 時(shí)間:2011-07-21 來源:網(wǎng)絡(luò) 收藏

          隨著微電子、計(jì)算機(jī)信息技術(shù)的迅速發(fā)展,由單片機(jī)和無線傳輸模塊組成的無線數(shù)據(jù)通信系統(tǒng)在石油、電力、水文、冶金、安防等行業(yè)的無線控制、數(shù)據(jù)采集、故障報(bào)警等諸多領(lǐng)域中得到越來越廣泛的應(yīng)用。而數(shù)據(jù)的編解碼對(duì)于無線傳輸可靠性的影響舉足輕重。目前編解碼方式主要有硬件編解碼和軟件編解碼兩種。本文在對(duì)已有硬件及軟件研究的基礎(chǔ)上,設(shè)計(jì)并通過STC89C516RD+單片機(jī)實(shí)現(xiàn)了一種以軟件方式對(duì)傳輸數(shù)據(jù)編解碼的方法。
          1 現(xiàn)有的
          1.1 硬件

           目前有多種用于編碼和解碼的專用芯片,PT2262/PT2272是比較常用的一種。在通常的使用中,一般采用8位地址碼和4位數(shù)據(jù)碼,這時(shí)編碼芯片PT2262和解碼芯片PT2272的第1~8腳為地址設(shè)定腳。有三種狀態(tài)可供選擇:懸空、接正電源和接地,38為6 561,所以地址編碼不重復(fù)度為6 561組,只有發(fā)射端PT2262和接收端PT2272的地址編碼完全相同時(shí),才能配對(duì)使用。當(dāng)編碼啟動(dòng)端TE接低電平時(shí),PT2262就將從數(shù)據(jù)輸入端D0~D3輸入的數(shù)據(jù)經(jīng)過編碼后從DOUT引腳串行輸出[1],數(shù)據(jù)幀的高8位為地址,低4位為數(shù)據(jù),發(fā)送時(shí)以先高位、后低位的順序逐次發(fā)送。每一幀發(fā)送4次,每幀數(shù)據(jù)中間由同步碼隔開。PT2272只有在連續(xù)2次檢測(cè)到相同的地址碼和數(shù)據(jù)碼時(shí)才會(huì)把數(shù)據(jù)碼中的“1”驅(qū)動(dòng)相應(yīng)的數(shù)據(jù)輸出端為高電平和驅(qū)動(dòng)VT引腳同步為高電平[2],將VT引腳反向后接入單片機(jī)的外部中斷輸入引腳,通過觸發(fā)中斷來通知單片機(jī)接收到數(shù)據(jù)了。
          PT2262/PT2272芯片功耗低、外部元器件少、工作電壓范圍寬。但這兩個(gè)芯片在應(yīng)用中必須對(duì)地址統(tǒng)一編碼,配對(duì)使用,而且需要通過改變硬件電路才能重新設(shè)置芯片地址;該編碼芯片的幀格式是固定的,不能隨意改動(dòng),而且編碼的脈沖寬度需要調(diào)節(jié)外接振蕩電阻大小才能改變。這些都給用戶的使用帶來了極大的不便。
          1.2 軟件編解碼技術(shù)
           在利用單片機(jī)和無線傳輸模塊進(jìn)行無線數(shù)據(jù)傳輸?shù)倪^程中,使用軟件編解碼時(shí)通常會(huì)采用定時(shí)采樣的方式??傮w設(shè)計(jì)思想如下:發(fā)送端通過定時(shí)器延時(shí)產(chǎn)生不同寬度的脈沖或脈沖組合來實(shí)現(xiàn)對(duì)數(shù)據(jù)“0”和“1”的編碼。接收端對(duì)接收到的脈沖信號(hào)進(jìn)行定時(shí)采樣,然后通過計(jì)算識(shí)別出對(duì)應(yīng)的數(shù)據(jù)信號(hào)。通過定時(shí)采樣的方式進(jìn)行解碼時(shí),對(duì)采樣頻率具有比較嚴(yán)格的要求。根據(jù)奈奎斯特理論,只有采樣頻率高于發(fā)射信號(hào)最高頻率的2倍時(shí),才能把數(shù)字信號(hào)準(zhǔn)確還原[3]。但是中斷的響應(yīng)與返回以及數(shù)據(jù)的判斷都會(huì)造成時(shí)間延遲,因此,發(fā)射信號(hào)的頻率不能太高,否則容易導(dǎo)致數(shù)據(jù)丟失。同時(shí)定時(shí)采樣需要多次調(diào)用中斷服務(wù)程序,增加了額外的時(shí)間開銷。這些都會(huì)降低無線數(shù)據(jù)傳輸?shù)乃俾省?BR>2 改進(jìn)的編解碼技術(shù)
          2.1 軟件編碼原理及程序流程

           編碼就是用不同形式的碼型來表示二進(jìn)制的“1”和“0”。本文采用的編碼方式為脈沖—間隙編碼,即在下一脈沖前的暫停持續(xù)時(shí)間t表示二進(jìn)制符號(hào)“1”,而下一脈沖前的暫停持續(xù)時(shí)間2t表示二進(jìn)制符號(hào)“0”[4],脈沖—間隙編碼如圖1所示。發(fā)送端的信號(hào)分為同步信號(hào)、數(shù)據(jù)信號(hào)以及校驗(yàn)和信號(hào),無線發(fā)射電路如圖2所示。經(jīng)過編碼后的信號(hào)由單片機(jī)的P1.7引腳輸出到無線發(fā)射模塊,然后無線發(fā)射模塊將基帶信號(hào)經(jīng)高頻載波電路調(diào)制后,通過天線向空間輻射。

          基于51單片機(jī)的無線信號(hào)編解碼技術(shù)研究


           在發(fā)送端對(duì)數(shù)據(jù)進(jìn)行編碼時(shí),由于對(duì)發(fā)送的數(shù)據(jù)位、位數(shù)的判斷以及校驗(yàn)和的生成所產(chǎn)生的延遲時(shí)間不超過70T,其中T為機(jī)器周期,因此,定義100T的高電平脈沖代表“1”,而200T的高電平脈沖代表“0”。在接收端進(jìn)行解碼時(shí),由INT1引腳上的下降沿觸發(fā)中斷并停止定時(shí)器計(jì)數(shù),進(jìn)而識(shí)別數(shù)據(jù)信號(hào),此過程中斷服務(wù)程序的延遲時(shí)間不超過50T。因此,設(shè)置數(shù)據(jù)位之間的低電平脈沖寬度為70T。為了不與數(shù)據(jù)信號(hào)混淆,將同步位定義為300T的高電平脈沖。本實(shí)驗(yàn)采用的石英晶體的晶振頻率為12 MHz,因此一個(gè)機(jī)器周期為1 μs,故一個(gè)字節(jié)的傳輸速率最快為5 882 b/s,最慢為3 703 b/s。

          基于51單片機(jī)的無線信號(hào)編解碼技術(shù)研究

           軟件編碼程序流程圖如圖3所示,采用定時(shí)器0工作在方式1,即16位定時(shí)器工作方式,根據(jù)不同的輸出脈沖寬度需求向計(jì)數(shù)寄存器TH0和TL0中裝入不同的初始值。標(biāo)志位flags_0用來區(qū)分高電平脈沖和低電平脈沖,當(dāng)標(biāo)志位flags_0為0時(shí)輸出兩個(gè)數(shù)據(jù)位之間的低電平脈沖,不為0時(shí)輸出高電平脈沖。標(biāo)志位flags_1用來區(qū)分?jǐn)?shù)據(jù)位和同步位,當(dāng)flags_1為0時(shí)輸出數(shù)據(jù)位高電平脈沖,為1時(shí)輸出同步位高電平脈沖。在發(fā)送的過程中,每發(fā)送一個(gè)字節(jié),就將該字節(jié)累加到校驗(yàn)和中,當(dāng)所有的數(shù)據(jù)發(fā)送完后就發(fā)送校驗(yàn)和。

          基于51單片機(jī)的無線信號(hào)編解碼技術(shù)研究

          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理

          上一頁 1 2 下一頁

          評(píng)論


          相關(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); })();