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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AVR單片機(jī)TWI的模塊化檢測系統(tǒng)設(shè)計(jì)

          基于AVR單片機(jī)TWI的模塊化檢測系統(tǒng)設(shè)計(jì)

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

          3.2 從機(jī)驅(qū)動程序
          由于對于主機(jī)而言,等待NT置位在任何情況下都能在很短的時間內(nèi)完成,所以對于MT和MR模式的程序都是通過軟件查詢NT位實(shí)現(xiàn)。但是對于從機(jī)而言,由于首先要接收主機(jī)發(fā)送的從機(jī)地址,并且主機(jī)并不是總是在訪問同一個從機(jī),所以從機(jī)在接收主機(jī)發(fā)送的地址時,如使用軟件查詢方法,勢必要等待很長時間,這樣就浪費(fèi)了大量的時間。因此在從機(jī)ST和SR模式程序的設(shè)計(jì)時,需要使用中斷,這樣在等待TWINT置位期間可以執(zhí)行其他程序,有效地提高了程序的運(yùn)行效率。圖5為從機(jī)ST和SR模式程序流程,具體的ST和SR處理程序可以參考相關(guān)的設(shè)計(jì)手冊,這里給出的只是ST和SR切換以及程序。當(dāng)TWINT置位時,進(jìn)入TWI中斷服務(wù)程序。

          f.jpg


          在從機(jī)TWI總線程序設(shè)計(jì)時,在等待TWINT置位期間TWI總線可能因?yàn)橥饨绺蓴_出現(xiàn)一些故障,所以程序不僅在TWI中斷服務(wù)程序得到調(diào)用,在等待TWINT置位期間也要調(diào)用該程序。從機(jī)的程序代碼如下:
          g.jpg

          4 系統(tǒng)測試
          檢測系統(tǒng)測試時,主要使用了以下從機(jī)檢測模塊:3個超聲波模塊、電子羅盤、紅外距離檢測模塊以及溫度檢測模塊。在系統(tǒng)測試時針對TWI總線,主要測試了總線的傳輸速度、實(shí)時響應(yīng)、出錯率、抗干擾能力。測試時為便于觀察各個觀測量的狀態(tài),使用了LCD顯示。測試過程中總線的比特率設(shè)定為100 kbps,通過觀測LCD顯示的變量,TWI總線實(shí)時響應(yīng)速度比較快。在外加電磁干擾的條件下,總線只有在極少數(shù)開機(jī)時出現(xiàn)錯誤,主要原因是開機(jī)時出現(xiàn)的浪涌電流。

          結(jié)語
          本文設(shè)計(jì)的檢測系統(tǒng),利用TWI總線作為各個器件通信的媒介,并以此為基礎(chǔ)構(gòu)建總線式拓?fù)渚W(wǎng)絡(luò),簡化了硬件和軟件設(shè)計(jì),縮短了系統(tǒng)的開發(fā)周期。在TWI總線驅(qū)動程序設(shè)計(jì)上,增加容錯處理程序,使總線運(yùn)行更加穩(wěn)定和可靠,提高了系統(tǒng)的抗干擾能力。同時在從機(jī)TWI總線驅(qū)動程序設(shè)計(jì)時使用TWI中斷,合理安排各個功能程序的執(zhí)行時間,有效地提高了程序的運(yùn)行效率。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: TWI I2C BUS 模塊化 容錯處理

          評論


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