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

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 1-Wire器件與8051系列單片機(jī)的軟件接口

          1-Wire器件與8051系列單片機(jī)的軟件接口

          作者: 時(shí)間:2012-04-16 來(lái)源:網(wǎng)絡(luò) 收藏
          摘 要:分析了總線的硬件結(jié)構(gòu)和通信協(xié)議,結(jié)合實(shí)際應(yīng)用設(shè)計(jì)了器件與系列的軟件接口。
          關(guān)鍵詞:總線,軟件接口,CRC校驗(yàn)
          1 引言
          現(xiàn)在,應(yīng)用系統(tǒng)的外圍擴(kuò)展已逐漸從以并行方式為主過(guò)渡到以串行方式為主,許多新型外圍器件都帶有串行擴(kuò)展接口。通常的串行擴(kuò)展接口和串行擴(kuò)展總線有:UART的移位寄存器方式,MOTOROLA公司的SPI,NS公司的Microwire,Philips公司的IIC和Dallas公司的1-Wire總線等。1-Wire總線是一種最簡(jiǎn)單的總線形式,它通過(guò)單條連接線完成了全部的控制、通信和供電,節(jié)省了I/O口,降低了系統(tǒng)成本并簡(jiǎn)化了設(shè)計(jì)。1-Wire器件家族包含多種功能的器件,如身份識(shí)別器、傳感器、控制和存儲(chǔ)器等。在應(yīng)用系統(tǒng)中,需要將這些簡(jiǎn)易實(shí)用的外圍器件與系統(tǒng)中的微控制器互連。常用的方法包括:簡(jiǎn)單的軟件方案;串行接口芯片,如DS2480;或以VHDL方式整合1-Wire主控器于定制的ASIC中。本文結(jié)合以1-Wire溫度傳感器構(gòu)成的溫度測(cè)控系統(tǒng),詳細(xì)講述1-Wire器件與常用的系列的軟件接口。
          2 1-Wire總線簡(jiǎn)述
          2.1 硬件配置
          1-Wire總線通常如圖1連接,構(gòu)成一個(gè)簡(jiǎn)捷的1-Wire網(wǎng)絡(luò),它包括三個(gè)主要部分:帶有控制軟件的主控器(Master),連接上拉電阻和穩(wěn)壓二極管的連接線,以及各種功能的1-Wire器件(Slave)。漏極開(kāi)路的端口結(jié)構(gòu)和上拉電阻Rpu使總線空閑時(shí)處于高電平狀態(tài)(3V至5.5V),從器件可直接從數(shù)據(jù)線上獲得工作電能(節(jié)省了電源線)。每一位讀寫(xiě)時(shí)隙開(kāi)始時(shí),主控器把總線拉低(小于0.8V),結(jié)束時(shí),釋放總線為高電平,這種按位自同步的數(shù)據(jù)傳輸方式節(jié)省了時(shí)鐘線。穩(wěn)壓二極管將總線最高電平限定在5.6V,起保護(hù)端口的作用。
          1-Wire器件內(nèi)部結(jié)構(gòu)如圖1所示,1-Wire接口實(shí)現(xiàn)供電和同步。ROM存儲(chǔ)一個(gè)由廠家光刻的、全球唯一的、且不可更改的64位序列號(hào),內(nèi)容如圖2所示。最低8位是器件的類(lèi)型號(hào)(Family Code),功能相同的一類(lèi)器件具有相同的類(lèi)型號(hào);然后是48位器件序列號(hào)(Serial Code);最后是8位CRC校驗(yàn)位用于驗(yàn)證數(shù)據(jù)傳輸?shù)恼_性,這樣,實(shí)際可用的256個(gè)序列號(hào)為器件或其附著的電路板或系統(tǒng)在1-Wire網(wǎng)絡(luò)中提供唯一的電子識(shí)別。外圍部件完成某一特定的功能,主控器通過(guò)對(duì)RAM的讀寫(xiě)操作對(duì)器件進(jìn)行控制。
          2.2 通信規(guī)程
          1-Wire總線采用主從式、位同步、半雙工串行方式通信,如圖3所示,分以下三步:
          (1)總線初始化,主控器先復(fù)位脈沖,然后從器件發(fā)應(yīng)答脈沖。
          (2)ROM指令,主控器通過(guò)ROM指令來(lái)讀取各從器件的ROM識(shí)別碼,以選擇1-Wire總線上的某一器件,其余器件忽略主控器的后續(xù)指令。
          (3)RAM指令,通過(guò)對(duì)從器件RAM的讀寫(xiě)操作,讓外圍器件實(shí)現(xiàn)某一功能。
          所有1-Wire器件與主控器之間的通信都符合上述規(guī)程,但不同類(lèi)型的1-Wire器件的結(jié)構(gòu)和功能不同,8比特的ROM指令和RAM指令會(huì)略有不同,系統(tǒng)設(shè)計(jì)時(shí)查器件數(shù)據(jù)手冊(cè)即可。
          3 接口時(shí)序及軟件模擬
          在所設(shè)計(jì)的溫度測(cè)控系統(tǒng)中,選用了達(dá)拉斯公司性能優(yōu)良的1-Wire溫度傳感器DS1822,以一片常用的AT89C51作為系統(tǒng)主控器。89C51與1-Wire器件互連時(shí),需要根據(jù)1-Wire總線協(xié)議,用軟件模擬1-Wire總線接口,89C51的P1和P3口都具有與1-Wire器件相同的集電極開(kāi)路接上拉電阻的端口結(jié)構(gòu),根據(jù)管腳分配情況,選用P1.0模擬1-Wire總線接口。
          如圖4所示,1-Wire總線上的數(shù)據(jù)傳輸是通過(guò)1-Wire總線協(xié)議最底層的操作時(shí)隙完成的。每個(gè)通信周期起始于主控器發(fā)出復(fù)位脈沖,然后,1-Wire器件以應(yīng)答脈沖做出響應(yīng)。當(dāng)主控器將總線從空閑狀態(tài)的邏輯高拉為邏輯低時(shí),即啟動(dòng)了一個(gè)讀寫(xiě)時(shí)隙。在寫(xiě)“0”時(shí)隙中,主控器在整個(gè)時(shí)隙期間將總線拉低;而后在15us之內(nèi)釋放總線為高。在讀時(shí)隙中,主控器將總線拉低1us,接頭釋放總線,這樣,1-Wire從器件就能夠接管總線,輸出有效數(shù)據(jù)。所有的讀寫(xiě)時(shí)隙在60us至120us內(nèi)完成,并且每個(gè)時(shí)隙之間至少需要1us的恢復(fù)時(shí)間。
          按圖4的時(shí)序要求,先建立以下幾個(gè)關(guān)鍵的子函數(shù),作為1-Wire器件與系列單片機(jī)的軟件接口的基礎(chǔ)(晶振頻率為12M,一個(gè)機(jī)器周期為1us)。


          在上述時(shí)序模擬子函數(shù)的基礎(chǔ)上,建立讀、寫(xiě)一個(gè)子節(jié)函數(shù),根據(jù)1-Wire協(xié)議的要求,傳送數(shù)據(jù)時(shí)低位在前高位在后。

          主控器讀入1-Wire器件數(shù)據(jù)后,會(huì)進(jìn)行CRC校驗(yàn)。1-Wire協(xié)議采用的8位CRC校驗(yàn)的生成多項(xiàng)式為:
          g(x)=x8+x5+x4+1
          其硬件生成器如圖5所示。

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 1-Wire 8051 單片機(jī)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();