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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 雙向透明串口擴(kuò)展技術(shù)在嵌入式系統(tǒng)中的實現(xiàn)

          雙向透明串口擴(kuò)展技術(shù)在嵌入式系統(tǒng)中的實現(xiàn)

          作者: 時間:2009-08-24 來源:網(wǎng)絡(luò) 收藏

          2.2數(shù)據(jù)由HOST端發(fā)送到用戶設(shè)備
          為了使HOST端的數(shù)據(jù)能夠及時準(zhǔn)確地發(fā)送到各個用戶設(shè)備,就需要和AT89C2051之間定義好通信協(xié)議。其協(xié)議如下。
          AT89C2051始終監(jiān)視HOST終端發(fā)出的信息,一旦收到HOST終端發(fā)出的選擇命令,如表1所示,立即對P3.4和P3.5引腳進(jìn)行設(shè)置來控制 CD4052模擬開關(guān)選通對應(yīng)通道并控制相應(yīng)的LED燈以作指示。選擇后, HOST終端需要根據(jù)AT89C2051指令執(zhí)行和模擬開關(guān)切換時間延遲一定時間后再開始向?qū)?yīng)用戶設(shè)備發(fā)送數(shù)據(jù)/命令。HOST端數(shù)據(jù)發(fā)送結(jié)束則由接收端的用戶設(shè)備向AT89C2051發(fā)送中斷結(jié)束信號,其結(jié)束處理與數(shù)據(jù)由用戶設(shè)備發(fā)送到HOST端的結(jié)束處理相同。如果同時有用戶設(shè)備向 AT89C2051請求發(fā)送數(shù)據(jù)到HOST端,則優(yōu)先響應(yīng)HOST端的發(fā)送數(shù)據(jù)/命令請求,即HOST端的發(fā)送數(shù)據(jù)/命令請求的優(yōu)先級最高。

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


          本文在設(shè)計中將HOST端的TXD引腳連接到AT89C2051的RXD引腳,這樣就可以通過AT89C2051的接收中斷和HOST端通信, HOST端發(fā)送數(shù)據(jù)/命令時首先發(fā)送串口選擇命令字,其次再發(fā)送數(shù)據(jù)/命令去控制用戶設(shè)備的數(shù)據(jù)采集,例如增益大小、是否啟動血壓測量等命令。
          3軟件設(shè)計
          軟件設(shè)計分為主函數(shù)、串口中斷服務(wù)程序、外部中斷0和1服務(wù)程序4個部分,如圖3所示。


          在很多場合需要進(jìn)行串口以滿足集成多個串口設(shè)備,方法很多,各有優(yōu)缺點。本文提出的用單片機AT89C2051為AT91RM9200串口的方案是基于單片機價格低廉、體積小,完全可以替代一般的專用接口芯片,作為真正意義上的可編程接口,通信,使串口擴(kuò)展模塊變得。這種方案使用靈活,與一般接口芯片相比對外部用戶設(shè)備具有更好的適用性,經(jīng)實驗驗證達(dá)到了設(shè)計目標(biāo)。將單片機等同于普通接口芯片使用,是一種新思路,具有一定的啟迪作用和實際參考價值。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 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); })();