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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于FPGA的PROFIBUS-DP總線光電收發(fā)器設(shè)計

          基于FPGA的PROFIBUS-DP總線光電收發(fā)器設(shè)計

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

          3.2 波特率檢測邏輯
          首先應(yīng)對由數(shù)據(jù)傳輸方向檢測功能塊選擇輸出的數(shù)據(jù)進行濾波。不同的波特率分別用相應(yīng)的時鐘對濾波后的數(shù)據(jù)進行采樣,若采到連續(xù)16個“1”,則說明總線目前處于空閑狀態(tài),下一個到來的低電平既是數(shù)據(jù)字節(jié)的起始位,之后即可開始接收數(shù)據(jù),在一個字節(jié)(8 bits)的數(shù)據(jù)接收完畢后,即可判斷接收到的數(shù)據(jù)是否為關(guān)鍵字(關(guān)鍵字為PROFIBUS-DP總線協(xié)議數(shù)據(jù)幀的開始定界符SDx)。如果某一波特率連續(xù)找到3次關(guān)鍵字,則將其它波特率連續(xù)找到關(guān)鍵字的次數(shù)清零。并將原來已經(jīng)確定的波特率位清零。而當該波特率連續(xù)找到6次關(guān)鍵字時,則代表找到了新的波特率,此時可將剛找到的波特率確定為當前系統(tǒng)通訊速率,并將相應(yīng)標志位置1。
          3.3 數(shù)據(jù)交換邏輯
          數(shù)據(jù)傳輸方向和波特率確定之后,就可以進行電端和光端的數(shù)據(jù)交換了。當數(shù)據(jù)傳輸方向為電端到光端時,電端RS-485處于接收狀態(tài),數(shù)據(jù)由電端經(jīng)光發(fā)送器發(fā)送到光端線線路上;當數(shù)據(jù)傳輸方向為光端到電端時,在起始位數(shù)據(jù)“0”發(fā)送完畢之后,即可將電端RS-485改為發(fā)送狀態(tài),在經(jīng)過10個當前通訊波特率的bit時間后,再將RS-485改為接收狀態(tài),并等待接收新的數(shù)據(jù)。圖5所示為數(shù)據(jù)交換流程圖。

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



          4 結(jié)束語
          該設(shè)計的創(chuàng)新點在于其采用FPGA硬件實現(xiàn)光電信號之間的轉(zhuǎn)換,可以自適應(yīng)波特率變化,并自動檢測波特率變化。能支持PROFIBUS-DP協(xié)議規(guī)定的所有波特率,且轉(zhuǎn)發(fā)數(shù)據(jù)無錯包。與一般的RS-485中繼設(shè)備相比,不但在傳輸距離和總線的負載能力上有很大提高。而且在抗干擾和通訊的穩(wěn)定性方面也有突出優(yōu)勢,可用于各種的PROFIBUS-DP總線工業(yè)現(xiàn)場。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 收發(fā)器

          評論


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