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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實現(xiàn)

          基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實現(xiàn)

          作者: 時間:2010-03-12 來源:網(wǎng)絡(luò) 收藏

          OSCOUT、OSCIN為晶振接口,低電平時選擇內(nèi)部時鐘。TXD引腳接收CY7C68013單片機串行端口發(fā)送的數(shù)據(jù),經(jīng)編碼調(diào)制后,以脈沖的方式傳輸?shù)絀R_TXD端口。光脈沖數(shù)據(jù)轉(zhuǎn)變來的電平脈沖信號,經(jīng)IR_RX端口進入HSDL-7001,經(jīng)內(nèi)部解調(diào)后,通過RX引腳將數(shù)據(jù)發(fā)送到CY7C68013單片機的串行端口。引腳A0、A1、A2用于改變HSDL-7001的波特率選擇,以匹配外同設(shè)備與PC機之間數(shù)據(jù)的傳輸。
          本系統(tǒng)選用外部晶體振蕩器,選用頻率為1.843 2 MHz有源晶振,在數(shù)據(jù)編碼過程,HSDL-7001接收TXD傳送的串行數(shù)據(jù),在TXD的每個下降沿開始,IRRXD延遲7CYCLES的時間(16CYCLES為一個晶振周期),然后輸出1個正脈沖,脈寬為3CYCLES,如果TXD0一直為低電平,則每個晶振周期內(nèi),IRRXD都會輸出1個寬度為3CYCLES的正脈沖。如果TXDO為高電平,則IRTXD輸出低電平,如圖3所示。




          解碼過程相反,編碼過程看作是把TXD脈沖變窄的過程,而解碼過程則看作是把脈沖拉寬的過程。解碼過程中,當(dāng)IRRXD傳送1個寬度為3CYCLES的負脈沖,RXD就輸出1個寬度為16CYCLES的負脈沖,如圖4所示。




          3 系統(tǒng)軟件設(shè)計
          系統(tǒng)軟件包括固件程序、USB設(shè)備驅(qū)動程序和應(yīng)用程序。整個軟件包括系統(tǒng)初始化、采樣控制、數(shù)據(jù)傳輸和波形顯示等部分。USB設(shè)備端固件及外圍電路的底層控制程序主要采用C51編寫,計算機端客戶應(yīng)用程序采用Visual Basic和Visual C++混合編程。
          3.1 USB固件設(shè)計
          USB數(shù)據(jù)傳輸有4種方式:塊傳輸、中斷傳輸、同步傳輸和控制傳輸。當(dāng)需要快速精確大批量傳輸數(shù)據(jù)時,一般采用塊傳輸方式。設(shè)計中主要考慮本系統(tǒng)要求高速持續(xù)傳輸大容量的數(shù)據(jù),并且對數(shù)據(jù)的完整性要求較高,故采用塊傳輸方式。
          固件程序的編寫采用Keil公司的Keil C51編譯器(V6.10)。它為8051微控制器的軟件開發(fā)提供C語言環(huán)境,同時保留匯編代碼高效、快速的特點,相對于傳統(tǒng)的匯編開發(fā)環(huán)境更加靈活、高效和易于使用。將代碼在Keil C51環(huán)境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可實現(xiàn)與外圍設(shè)備的數(shù)據(jù)傳輸。


          評論


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