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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 一種多通道ARINC429總線收發(fā)容錯方法的研究

          一種多通道ARINC429總線收發(fā)容錯方法的研究

          作者: 時(shí)間:2013-06-15 來源:網(wǎng)絡(luò) 收藏

          3 總線接收模塊設(shè)計(jì)
          總線接收模塊,要實(shí)現(xiàn)能自動識別兩種速率100 Kb/s和12.5 Kb/s,并對數(shù)據(jù)進(jìn)行校驗(yàn)。
          3.1 電平轉(zhuǎn)換電路
          和發(fā)送模塊類似,接收模塊在接收信號之前,也要進(jìn)行電平轉(zhuǎn)換,將信號轉(zhuǎn)換成FPGA能識別的電平,接收模塊電平轉(zhuǎn)換電路圖如圖3所示。

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

          d.JPG


          3.2 接收狀態(tài)轉(zhuǎn)換
          接收模塊主要有5個輸入端口和2個輸出端口,輸入端口分別為:時(shí)鐘clk_800khz、復(fù)位rst_n、校驗(yàn)方式set_od、ARINC429總線busa和busb,輸出端口包括:輸出數(shù)據(jù)outdata、輸出使能done_rec。
          接收模塊主要包括兩個狀態(tài):空閑和接收。在空閑狀態(tài)時(shí),ARINC429總線上沒有數(shù)據(jù)傳輸時(shí),兩根線busa和busb都為邏輯“0”,即clk_429=0時(shí),說明有數(shù)據(jù)到來,轉(zhuǎn)到發(fā)送狀態(tài)。
          在接收狀態(tài)時(shí),接收數(shù)據(jù)并移入移位寄存器,當(dāng)有連續(xù)4個周期busa和busb都為0,即clk_429=1時(shí),表示接收完成,轉(zhuǎn)到空閑狀態(tài)。然而,在傳送最后一位數(shù)據(jù)時(shí)還有半個位周期clk_429=0,所以實(shí)際上是連續(xù)4.5個位周期如圖4所示。由于ARINC429總線有兩種發(fā)送速率即12.5 Kb/s和100 Kb/s,所以不同速率時(shí)的4個周期的時(shí)間也不一樣,而且傳輸數(shù)據(jù)時(shí)每一位都有半個位周期是時(shí)鐘周期,因此需列出不同速率和周期對應(yīng)的時(shí)長。本設(shè)計(jì)的時(shí)鐘選取為800 kHz,表2為此時(shí)鐘下的計(jì)數(shù)值。

          e.JPG


          從表2中可以看出,在100 Kb/s速率下4個位周期的計(jì)數(shù)值為32,而12.5 Kb/s時(shí)為256,所以無論任何速率當(dāng)計(jì)數(shù)值為32時(shí)可認(rèn)為是當(dāng)前傳輸結(jié)束。但是,12.5 Kb/s速率時(shí)的半個位周期的計(jì)數(shù)值也為32,會出現(xiàn)錯誤。所以,選擇33為傳輸結(jié)束的計(jì)數(shù)值。



          評論


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