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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機的多機并行通訊系統(tǒng)

          基于單片機的多機并行通訊系統(tǒng)

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

          在一些復(fù)雜的系統(tǒng)中,系統(tǒng)與分系統(tǒng)、分系統(tǒng)與設(shè)備等之間存在數(shù)據(jù)的傳遞問題,往往采用通信的方式來解決。由于分系統(tǒng)、沒備等通信波特率的不同,特別是一些特殊波特率設(shè)備的存在,使得系統(tǒng)中設(shè)備間的相互通信不易實現(xiàn)。例如,在一個系統(tǒng)中,上位機接收某一設(shè)備的數(shù)據(jù),如圖1所示,設(shè)備l和設(shè)備2采用的是172.8 kbps的波特率,而上位機用VB編程,其通信波特率為115.2 kbps、128 kbps或256 kbps,等,這樣設(shè)備之間就不能相互通信,給設(shè)計帶來困難。為了解決上述問題,采用雙電路,設(shè)計了波特率變換器,將接收波特率為172.8 kbps的數(shù)據(jù),轉(zhuǎn)換成波特率為115.2 kbps的輸出,從而使不同波特率設(shè)備之間的通信成為可能。



          1 波特率變換電路

          波特率變換電路如圖2所示。電路采用2片89C5l作為電路的核心,利用的UART串行口與相關(guān)設(shè)備通信。單片機u1_L.(接波特率低的設(shè)備)與波特率為115.2 kbps的設(shè)備通信,單片機U2_H(接波特率高的設(shè)備)與波特率為172.8 kbps的設(shè)備通信。Ul_I,與U2_H的通信采用口方式,以加快Ul_I。與U2_H之間數(shù)據(jù)傳遞的速率。U1_L與U2_H的通信可以采用中斷查詢的方式,也可以采用握手查詢的方式進行數(shù)據(jù)傳遞。



          電路采用2片75176接口驅(qū)動芯片組成一個RS-422通信接口。U3和U4組成的通信接口與115.2 kbps的設(shè)備相連,U5和U6組成的通信接口與172.8 kbps的設(shè)備相連,通信接口采用中斷技術(shù)。波特率變換器工作原理如下:U1_I。從串行口收到設(shè)備的數(shù)據(jù)后,從Pl口輸出數(shù)據(jù),并通知U2_H取數(shù),U2_H取到數(shù)據(jù)后向設(shè)備發(fā)出數(shù)據(jù),同時通知Ul_I.已取走數(shù)據(jù),為U1一L下一次輸出數(shù)據(jù)做準備。當U2_H從串行口收到設(shè)備的數(shù)據(jù)后,查詢U1_I,是否允許接收數(shù)據(jù),如允許接收數(shù)據(jù),U2_H從P1口輸出數(shù)據(jù),并通知Ul_L取數(shù),Ul_L取到數(shù)據(jù)后向設(shè)備發(fā)出數(shù)據(jù),同時通知U2_H已取走數(shù)據(jù),為U2_H下一次輸出數(shù)據(jù)做準備;如Ul_L不允許接收數(shù)據(jù),則U2_H暫緩送數(shù)。

          2 波特率變換器的應(yīng)用

          波特率變換器在應(yīng)用中,根據(jù)使用情況可以分為單向傳送和雙向傳送。兩單片機之間的數(shù)據(jù)傳遞可以采用中斷方式.也可以采用查詢方式。如采用查詢方式,編程時利用P2口的幾位作為查詢信號,實現(xiàn)單向或雙向傳送。


          上一頁 1 2 3 下一頁

          評論


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