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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 紅外通信的設計與實現(xiàn)

          紅外通信的設計與實現(xiàn)

          作者: 時間:2009-08-11 來源:網(wǎng)絡 收藏

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

          4.2 接收電路的硬件

          接收電路中使用了HS0038A接收器,HS0038A的內(nèi)部邏輯框圖如圖3所示。

          由此可看出該接收器內(nèi)部接收、放大、濾波及解調(diào)功能,當收到載波光信號時,紅外接收器輸出低電平,反之紅外接收器輸出高電平,從而可以將時斷時續(xù)的紅外光信號調(diào)制成連續(xù)的方波信號,經(jīng)內(nèi)部處理可以將其轉(zhuǎn)換成原來的數(shù)據(jù)。

          硬件原理圖如圖4所示。

          由于HS0038A內(nèi)置濾波并且采用環(huán)氧塑封,可以作為紅外濾波器,因此電路中不需要另外增加濾波器,并且HS0038A具備較強的抗干擾能力。

          紅外接收器輸出引腳RevData連接在TPM2通道0,使用了TPM的輸入捕捉功能,在上升沿時發(fā)生輸入捕捉,比較兩次捕捉發(fā)生時通道TPM2C0V的值,可以得到一個周期脈沖的寬度,根據(jù)發(fā)射數(shù)據(jù)的時序圖,就可知道不同的脈沖寬度對應的數(shù)據(jù)是什么,由此就可將原數(shù)據(jù)還原出來。

          5 紅外的軟件

          5.1 38 kHz紅外載波

          MC9S08GT60使用了外部4 MHz的晶振頻率,通過配置ICG1=0x78,ICG2=0x30,將總線頻率控制為20 MHz。MC9S08GF60內(nèi)部有定時/脈沖輸出模塊,將TPM1的狀態(tài)控制的位CPWMS置1,則TPM1工作在中心脈寬輸出模式;將TPM1通道0的狀態(tài)控制的ELS0B:ELS0A設置為10,控制發(fā)生輸出比較時將脈沖信號置高或置低。為使TPM1C1輸出38 kHz頻率的載波信號,就要對20 MHz的總線頻率進行526分頻,即526個20 MHz的方波周期產(chǎn)生一個38 kHz的方波周期,因為是中心脈寬輸出模式,輸出脈沖寬度是通道值寄存器TPM1C1V中值的2倍,輸出脈沖周期是通道預置寄存器TPM1M0D中值的2倍,因此令TPM1C1V=131,TPM1M0D=263,啟動定時器后,定時器1的計數(shù)器TPM1CNTL在自增1計數(shù)時,當該值跟通道值寄存器TPM1C1V中值匹配時,將脈沖輸出信號拉低,定時器1的計數(shù)器TPMlCNTL在計數(shù)值開始進行自減1操作時,當下降到跟通道寄存器TPMlClV時,將脈沖輸出信號拉高。中心脈寬輸出的時序圖如圖5所示。從此通道輸出的方波頻率通過示波器查看為37.9 kHz或38 kHz。

          5.2 數(shù)據(jù)編碼的設計

          MC9S08GT60有36個端口,大部分端口都具有雙重功能,本文使用端口PTA7,配置該端口的方向寄存器PTADD_PTADD7為1,即PTA7為輸出,根據(jù)脈沖編碼的規(guī)則,進行不同的延時操作,使該端口輸出一定寬度的數(shù)據(jù)脈沖,通過示波器查看該端口,可看到穩(wěn)定的脈沖序列。



          評論


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