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

          新聞中心

          EEPW首頁 > 光電顯示 > 設計應用 > 基于CH340的遙控器與PC機接口設計

          基于CH340的遙控器與PC機接口設計

          —— Interface Design Between Remote Controller and PC Based on CH340
          作者:李大雨 劉新文 肖大海 防空兵指揮學院時間:2011-02-22來源:電子產品世界收藏

            飛行模擬訓練系統是一種對地面操縱人員進行培訓的仿真軟件,它通過在計算機中建立飛行場景和飛機三維模型,由遙控器輸入指令進行驅動控制,從而實現飛機的飛行仿真。模擬訓練具有在無風險、無器材消耗的條件下訓練飛行操縱人員的特點,可以節約大量的訓練經費和訓練時間。在飛行模擬訓練系統的設計過程中,首先要解決的問題是遙控器和計算機之間的通訊,以便把遙控器產生的遙控指令送到計算機中。由于遙控器本身不帶口,不能和計算機直接相連,因此需要設計接口電路完成通訊功能。

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

            1 硬件設計

            從理論上來講,遙控器與PC機的連接可以設計成并口、串口、口等多種連接方式,并可以根據不同的連接方式設計相應的接口電路。然而實際的情況是:并口通訊雖然傳輸速度快,但連線多,抗干擾性差,連線不能過長,操縱使用不便;RS232串口通訊使用方便,傳輸距離也較遠,但目前的PC機卻很少再設計有232串口,因此串口方式的使用也受到了限制。同時,由于USB具有傳輸速率高、支持熱插拔以及即插即用等優點,當前的計算機普遍配置有多個USB口,因此采用USB接口進行通信更簡單高效。

            USB接口電路的硬件結構如圖1所示,它主要由信號調理電路、控制單片機、USB接口模塊組成。

            1.1 遙控器及指令編碼格式

            飛行模擬訓練系統所使用的遙控器是通用的Futaba 4通道遙控器,其外形如圖2-a所示,它主要包括一個脈沖編碼電路和一個高頻發射電路。脈沖編碼指的是以不同的脈沖數目、脈沖寬度、脈沖位置或者不同的脈沖組合來代表不同的控制指令的編碼方式。目前使用的遙控器編碼方式主要有PPM和PCM兩種,大多數遙控器同時具備這兩種編碼功能,使用時可根據需要選取其中一種。操縱器背面一般都設有教練口,如圖2-b所示。編碼電路產生的遙控指令編碼信號一方面送到高頻發射電路,一方面還送到教練口輸出,因此教練口送出的也是PPM或PCM信號。

            相比較PCM編碼而言,PPM編碼更具有一定的規律性,因此系統設計中選擇的是對PPM編碼的指令格式進行處理。以4通道的遙控器為例,PPM編碼格式的脈沖波形如圖3所示。

            圖中為一組4通道的脈沖串,其脈沖串寬度為20ms,共由5個脈沖組成,它所攜帶的信息是各通道PWM信號的占空比,其中1通道1.5ms,2通道1.5ms,3通道1ms,4通道2ms。當操縱相應通道的操縱桿時,對應通道的脈沖低電平寬度會出現變化,也就是下一個脈沖出現的位置會變化,但脈沖串總的周期不變,一直保持20ms。

          紅外遙控器相關文章:紅外遙控器原理
          脈沖點火器相關文章:脈沖點火器原理

          上一頁 1 2 3 下一頁

          關鍵詞: 無人機 USB CH340

          評論


          相關推薦

          技術專區

          關閉
          看屁屁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); })();