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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單總線技術(shù)及其應(yīng)用

          單總線技術(shù)及其應(yīng)用

          作者: 時(shí)間:2012-12-10 來源:網(wǎng)絡(luò) 收藏
          目前常用的微機(jī)與外設(shè)串行總線主要有我們熟悉的12C總線,SPI總線,SCI總線。其中12C總線是以同步串行2線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)線),SPI總線是以同步串行3線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)輸入線,一條數(shù)據(jù)輸出線),SCI總線是以異步方式進(jìn)行通訊(一條數(shù)據(jù)輸入線,一條數(shù)據(jù)輸出線)。這些總線至少需要有兩條或兩條以上的信號(hào)線。近年來,美國的達(dá)拉斯半導(dǎo)體公司(DALLAS SEMICONDUCTOR)推出了一套單總線(1-Wire Bus)技術(shù),與上述總線不同,它采用單根信號(hào)線,即傳輸時(shí)鐘,又傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,在其線路簡單、硬件開銷少、成本低廉、便于總線的擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。

          單總線適用于單個(gè)主機(jī)系統(tǒng),能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備。主機(jī)可以是微控制器,從機(jī)可以是單總線器件,如圖1所示,


          他們之間的數(shù)據(jù)交換只通過一條數(shù)據(jù)線。當(dāng)只有一個(gè)從機(jī)設(shè)備時(shí)系統(tǒng)可按單節(jié)點(diǎn)系統(tǒng)操作;當(dāng)有多個(gè)從機(jī)設(shè)備時(shí),則系統(tǒng)按多節(jié)點(diǎn)系統(tǒng)操作。

          單總線工作原理
          顧名思義,單總線只有一根數(shù)據(jù)線系統(tǒng)中的數(shù)據(jù)交換、控制都在這根線上完成。設(shè)備(主機(jī)或從機(jī))通過一個(gè)漏極開路或三態(tài)端口連至該數(shù)據(jù)線,這樣允許設(shè)備不發(fā)送數(shù)據(jù)時(shí)釋放總線,以便其他設(shè)備使用總線,其內(nèi)部等效電路如圖2所示。


          單總線要求外接一個(gè)約4.7Ω的上拉電阻,這樣當(dāng)總線閑置時(shí),狀態(tài)為高電平。主機(jī)和從機(jī)之間的通信通過以下三個(gè)步驟完成:1-wire器件,識(shí)別1-wire器件,交換數(shù)據(jù)。由于二者是主從結(jié)構(gòu),只有主機(jī)呼叫從機(jī)時(shí),從機(jī)才能答應(yīng),因此主機(jī)訪問1-wire器件都必須嚴(yán)格遵循單總線命令序列:、ROM命令、功能命令。如果出現(xiàn)序列混亂,1-wire器件不會(huì)響應(yīng)主機(jī)(搜索ROM命令,報(bào)警搜索命令除外)。

          上一頁 1 2 下一頁

          評(píng)論


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