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

          新聞中心

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

          采用單片機(jī)的多機(jī)并行通訊系統(tǒng)方案設(shè)計

          作者: 時間:2012-02-29 來源:網(wǎng)絡(luò) 收藏

          5.2 通訊協(xié)議的執(zhí)行過程

          下面以檢測方式為例說明通訊協(xié)議的執(zhí)行過程。

          5.2.1 主機(jī)向從機(jī)寫數(shù)過程:(主機(jī)寫, 從機(jī)讀)

          主機(jī)向74HC646寫數(shù)據(jù),然后通知從機(jī)有數(shù)據(jù)來,從機(jī)從74HC646中讀取數(shù)據(jù)。

          ① 主機(jī)讀取狀態(tài)位,檢測TFNF*位是否為零。

          ②若TFNF*=1,主機(jī)暫時等待;若TFNF*=0,主機(jī)向74HC646寫數(shù)據(jù),使TFNF*=1,同時使TFNE*=0。

          ③ 從機(jī)讀取狀態(tài)位,檢測TFNE*位是否為零。若TFNE*=1,從機(jī)暫時等待;若TFNE*=0,從機(jī)從74HC646讀數(shù)據(jù),使TFNE*=1,同時使TFNF*=0。

          ④ 主機(jī)再次檢測狀態(tài)位TFNF*是否為零,若為“0”,說明從機(jī)已將數(shù)據(jù)從74HC646中取走,主機(jī)可發(fā)送下一數(shù)據(jù)。

          5.2.2 主機(jī)讀從機(jī)過程:(從機(jī)寫, 主機(jī)讀)

          從機(jī)向74HC646寫數(shù)據(jù),然后通知主機(jī)有數(shù)據(jù)來,主機(jī)收到信號后,將數(shù)據(jù)從74HC646中取走。

          ① 從機(jī)讀取狀態(tài)位,檢測RFNF*位是否為零。

          ②若RFNF*=1,從機(jī)暫時等待;若RFNF*=0,從機(jī)向74HC646寫數(shù)據(jù),使RFNF*=1,同時使RFNE*=0。

          ③ 主機(jī)讀取狀態(tài)位,檢測RFNE*位是否為零。若RFNE*=1,主機(jī)暫時等待;若RFNE*=0,主機(jī)從74HC646讀數(shù)據(jù),使RFNE*=1,同時使RFNF*=0。

          ④ 從機(jī)再次檢測狀態(tài)位RFNF*是否為零,若為“0”,說明從機(jī)已將數(shù)據(jù)從74HC646中取走,主機(jī)可發(fā)送下一數(shù)據(jù)。

          6 流程圖(檢測方式)

          檢測方式的程序流程如圖3所示。

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



          圖3 檢測方式的程序流程圖

          若使用中斷方式, 只需對執(zhí)行過程和流程圖稍加修改即可。


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