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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 利用1-Wire?鏈路功能獲取位置信息—一種確定器

          利用1-Wire?鏈路功能獲取位置信息—一種確定器

          作者: 時間:2011-12-28 來源:網(wǎng)絡(luò) 收藏
          摘要:本文介紹了一種基于尋址協(xié)議的低成本串行總線系統(tǒng),用來識別丟失元件的物理位置。在測量或控制串行總線中可能存在這樣的問題,例如:多點溫度測量系統(tǒng)。本文詳細介紹了在低成本串行總線中,如1-Wire,如何利用具有功能的DS28EA00獲得位置信息。

          本文還發(fā)表在Maxim工程期刊,第60期(PDF, 848kB)。

          數(shù)字總線系統(tǒng)的共同特性即為共享。隨著微處理器的推廣,并行總線系統(tǒng)應(yīng)用日益廣泛,總線上掛接的所有元件共享數(shù)據(jù)線和地址線。片選信號可由地址線和控制信號解碼得到。根據(jù)硬件設(shè)計和布線,連接在總線上的各個器件的物理地址總是已知的。隨著技術(shù)向低成本串行總線系統(tǒng)的發(fā)展1,首先省去了地址線。但SPI?和MICROWIRE?串行總線仍具有片選功能。許多先進的串行總線系統(tǒng)引入了基于協(xié)議的尋址方式,將地址信息作為一個前導(dǎo)碼傳輸給數(shù)據(jù)。該類總線的典型代表為I2C/SMBus?,此類通信接口縮減到只有數(shù)據(jù)線和時鐘線。為了進一步降低成本,可以將時鐘信息嵌入到數(shù)據(jù)流中。該類總線的典型代表為1-Wire、LIN和SensorPath?總線。

          由于采用了基于協(xié)議的尋址方式,因此元件物理位置方面的信息將缺失。對于采用串行總線的儀表和控制應(yīng)用(例如測量多點溫度),這將是一個問題。對于I2C總線而言,地址引腳與邏輯1、邏輯0、SCL或SDA相連,在某種程度上解決了這個問題。采用這一辦法,單個引腳可被設(shè)定到4種不同的數(shù)字狀態(tài),相當(dāng)于兩個位。盡管這種方法簡單、有效,但由于最初的I2C協(xié)議僅提供7個地址位,因此具有一定的局限性。1-Wire總線具有64位地址,在這一方面可提供更高的靈活性。無論如何,每個增加一個地址引腳將增加成本,因此增加地址引腳不是一個好的選擇。

          圖1給出了一種簡單的低成本方案,可重新獲取串行總線上掛接的多個器件的物理位置,將網(wǎng)絡(luò)的起始位置的器件標識為位置#1,并依次為網(wǎng)絡(luò)上掛接的器件編號。該方案的電路連接如圖中藍色粗線所示。在位置1處,線路接地即可。

          利用1-Wire?鏈路功能獲取位置信息—一種確定器
          圖1. 可進行位置檢測的串行網(wǎng)絡(luò)

          除了圖1中標有IN和OUT的兩個引腳外,還需要通過片上邏輯讀取IN引腳和寫OUT引腳。如果協(xié)議支持多點網(wǎng)絡(luò)功能,那么借助于上述這些方法,主機可首先識別出第一個器件,然后再識別下一個器件,以此類推,直到完成對所有器件的定位。1-Wire總線即可滿足這一要求的串行總線系統(tǒng)。

          1-Wire總線是一種簡單的信令協(xié)議,可通過一條公共數(shù)據(jù)線實現(xiàn)主機/主控制器和一個或多個從機之間的半雙工、雙向通信(圖2)??梢酝ㄟ^單根1-Wire總線實現(xiàn)供電以及與從機之間的數(shù)據(jù)通信。供電通過以下方式實現(xiàn):在數(shù)據(jù)傳輸過程中,總線狀態(tài)為高時從機的內(nèi)部電容從總線上獲取電荷,總線狀態(tài)為低時利用該電荷為器件供電。典型的1-Wire主機包括一個開漏I/O引腳,并通過電阻上拉至3V至5V電源。采用這種智能通信技術(shù),可以隨時方便、高效地增加存儲器、認證和混合信號功能。

          利用1-Wire?鏈路功能獲取位置信息—一種確定器
          圖2. 不帶功能的典型1-Wire網(wǎng)絡(luò)

          所有的1-Wire系統(tǒng)都有一個重要的基本特征:每個從機都具有一個唯一的、不能更改(ROM)的64位、工廠激光刻制序列號(ID),這個序列號永遠不會與其它器件重復(fù)。除了為終端產(chǎn)品提供唯一的電子ID外,64位ROM ID還允許主機從掛接在同一條總線上的許多從機設(shè)備中選擇一個器件。64位ROM ID中包含有8位家族碼,用于識別器件的類型和支持的功能。

          通常,當(dāng)系統(tǒng)啟動初始化時,1-Wire主機可能并不知道總線上掛接的器件數(shù)量以及他們的ROM ID。利用總線的線與特性,主機可采用排除法確定總線上掛接的所有器件的ID。通過SearchROM*功能2,主機可確定總線上所掛接器件的ROM ID。然而,Search ROM結(jié)果無法提供單個器件的位置。例如,如圖2所示的器件ROM ID,器件的ID按照表1所示的順序獲取。

          表1. 器件搜索順序
          Sequence
          ROM ID (Hexadecimal)
          Position in Network
          1
          C7000000007AD242
          Location #2
          2
          5A00000000853E42
          Location #3
          3
          16000000008A8142
          Location #1

          功能的概念

          采用鏈路功能確定1-Wire網(wǎng)絡(luò)環(huán)境中器件的物理位置時,遵循以下幾點:
          1. 已知系統(tǒng)級1-Wire網(wǎng)絡(luò)的物理分布,例如第一個、誰是第二個,等等,以及器件/節(jié)點的物理位置。
          2. 獲取器件(ROM ID)的物理連接順序,哪個是第一個,哪個是最后一個。
          其中a) 已知的系統(tǒng)信息,可從1-Wire網(wǎng)絡(luò)的物理布局獲得。b) 項通常是未知的,可以采用鏈路功能通信很容易獲取這些信息。鏈路功能(圖3)通過兩個引腳,輸入引腳(/EN)在搜索期間使能器件響應(yīng),而輸出引腳(/DONE)通知鏈路中的下一個器件它之前的器件已完成搜索。/DONE信號連接至下一個器件的/EN輸入。鏈路中第一個器件的/EN輸入被連接至GND。實現(xiàn)鏈路功能的連線如圖中藍色粗線所示。除了/EN和/DONE引腳之外,順序搜索功能還需要具備一個新的網(wǎng)絡(luò)功能命令,Conditional Read ROM。只有滿足特定條件時(下文進行說明),該命令才報告器件的ROM ID。相反,Read ROM可使網(wǎng)絡(luò)中所有器件在同一時間發(fā)送其ROM ID。DS28EA00是業(yè)界首款帶有新型鏈路功能的器件(如圖3所示)。

          利用1-Wire?鏈路功能獲取位置信息—一種確定器
          圖3. 具有鏈路功能的DS28EA00在1-Wire網(wǎng)絡(luò)中的典型連接

          /EN和/DONE引腳除了用于順序搜索之外,還可作為數(shù)字PIO。為了實現(xiàn)這一功能,鏈路功能定義了三種鏈路狀態(tài),OFF、ON和DONE。通過Chain命令控制鏈路狀態(tài)的轉(zhuǎn)換。表2給出了鏈路狀態(tài)及相應(yīng)工作狀態(tài)。

          表2. 鏈路狀態(tài)
          Chain State
          Device Behavior
          Active-Low EN (PIOB)
          Active-Low DONE (PIOA)
          Conditional Read ROM
          OFF (default)
          PIO (high impedance)
          PIO (high impedance)
          Ignored
          ON
          Active-low EN input
          Pullup on
          Recognized if active-low EN is logic 0
          DONE
          No function
          Pulldown on (active-low DONE is logic 0)
          Ignored

          上電默認鏈路狀態(tài)為OFF,此時/DONE (PIOA)和/EN (PIOB)由PIO Access Read和PIO Access Write命令單獨控制,如DS28EA00數(shù)據(jù)資料所述3。鏈路狀態(tài)為ON時,/DONE通過一個40kΩ的片上電阻(RCO)上拉至器件內(nèi)部電源VDD,進而向下一個器件的/EN引腳發(fā)送邏輯‘1’信號。如果/EN引腳為邏輯‘0’,則僅處于ON鏈路狀態(tài)的器件才能響應(yīng)Conditional Read ROM命令。在順序搜索過程中,網(wǎng)絡(luò)中器件的最大值應(yīng)滿足這一條件。

          要將器件從Chain OFF轉(zhuǎn)換為Chain ON或Chain DONE狀態(tài),主機需采用Chain命令實現(xiàn)。圖4給出了各種可能的轉(zhuǎn)換。Chain命令代碼后,主機必須緊接著發(fā)送一個適當(dāng)?shù)腃hain Control字節(jié)。為了降低接收錯誤Chain命令的幾率,首先以原碼形式發(fā)送控制字節(jié),然后再以反碼形式發(fā)送。當(dāng)主機接收到AAh確認字節(jié)時,表明鏈路狀態(tài)成功轉(zhuǎn)換。

          圖4.鏈路狀態(tài)轉(zhuǎn)換圖
          圖4.鏈路狀態(tài)轉(zhuǎn)換圖

          開始順序搜索時,主機必須將所有器件都置為Chain ON狀態(tài)。當(dāng)主機通過Conditional Read ROM讀取完一個的器件ROM ID后,應(yīng)該將該器件置為Chain DONE狀態(tài),從而允許鏈路中的下一個器件以響應(yīng)Conditional Read ROM命令。在順序搜索的過程中,器件將依次進入Chain DONE狀態(tài),直到搜索完所有器件。最后,所有器件都被設(shè)置到Chain OFF狀態(tài),從而釋放/EN和/DONE引腳,使之變?yōu)镻IO,并恢復(fù)到上電默認狀態(tài)。

          順序搜索例程

          前提 主機控制網(wǎng)絡(luò)如圖3所示。所有器件都支持鏈路功能。若要搜索鏈路中器件的順序,例如位置編號以及該處器件的ROM ID (即注冊碼),主機需執(zhí)行以下步驟:

          初始化 主機發(fā)送Skip ROM命令,緊接著發(fā)送Chain ON命令,將所有器件置于Chain ON狀態(tài)。除了鏈路中的第一個器件之外,對于其它所有器件,通過/DONE引腳的RCO上拉電阻將/DONE//EN變?yōu)檫壿?。

          第一個周期 主機發(fā)送Conditional Read ROM命令,鏈路中的第一個器件對命令進行響應(yīng),可得到第一個器件的64位ROM ID。主機存儲該ROM ID,并將其確定為鏈路的第一個器件。隨后,主機發(fā)送Chain DONE命令。該命令通過器件#1的/DONE引腳,將鏈路中第二個器件的/EN引腳設(shè)置為邏輯0,同時防止器件#1再次響應(yīng)。

          第二個周期 主機發(fā)送Conditional Read ROM命令。由于此時器件#2是鏈路中唯一一個/EN為邏輯0的器件,因此該器件發(fā)送其ROM ID作為響應(yīng)。主機將該ROM ID保存為序列碼'2'。(器件#1處于Chain DONE狀態(tài),所以不會響應(yīng)該命令。) 隨后,主機發(fā)送Chain DONE命令。

          重復(fù)周期 要識別剩余器件的ROM ID及其物理位置,主機需要重復(fù)發(fā)送Conditional Read ROM和Chain DONE命令。如果沒有器件響應(yīng)Conditional Read ROM命令,說明鏈路中的所有器件均已被識別。

          終止 搜索過程結(jié)束后,鏈路中的所有器件都處于Chain DONE狀態(tài)。主機應(yīng)發(fā)送Skip ROM命令后,緊接著發(fā)送Chain OFF命令,用于終止順序搜索。這樣可將所有器件都進入Chain OFF狀態(tài),變成由PIO Access功能命令控制PIO引腳。關(guān)于Conditional Read ROM和Chain命令的詳細說明,以及完整的流程圖,請參考DS28EA00數(shù)據(jù)資料4。

          假定采用標準的1-Wire速率(復(fù)位/在線檢測周期為960μs,每個時隙為65μs),初始化和結(jié)束共約用去7ms (一次總共占用的時間)。各個器件的搜索和位置檢測約占用7.7ms。相同條件下,執(zhí)行Search ROM命令時,每個器件約占用14ms。例如,在100ms之內(nèi),如果具有鏈路功能的話,主機能識別和定位12個器件,但是如果僅依靠Search ROM功能的話,主機只能識別7個器件。

          補充說明

          電纜電容 常用于構(gòu)建1-Wire網(wǎng)絡(luò)的5類電話線的每對雙絞線對之間具有大約50pF/m的電容。根據(jù)網(wǎng)絡(luò)的規(guī)模,當(dāng)所有器件都處于Chain ON狀態(tài)時,會給線路增加非常大的電容負載。在寄生供電模式下,有時候需要采用有源1-Wire線路上拉,這樣可避免電壓跌落至最小允許值以下。采用主電源或本地VCC電源供電時無需采用這一措施。

          Conditional Read ROM DS2401及其兼容的、1993年停產(chǎn)的DS2400硅序列號,均將這一命令讀為Read ROM。因此,不要將DS2401連接到采用鏈路功能的網(wǎng)絡(luò)中。所以,使用1-Wire端口適配器時,應(yīng)選擇不帶DS2401的器件。DS2405版本A也能像DS2401一樣響應(yīng)Conditional Read ROM命令代碼。1998年開始投產(chǎn)的DS2405版本B則會忽略Conditional Read ROM命令代碼。

          1-Wire主控制器電路 在嵌入式應(yīng)用環(huán)境下,可采用各種低成本、分立式、基于IC的1-Wire主控制器。分立解決方案包括上拉電阻、空閑的μC端口引腳以及高級驅(qū)動器5。專門用于驅(qū)動1-Wire總線的集成驅(qū)動器包括DS2480B6 (串行端口,UART),DS24907 (USB端口)以及DS24828,9 (I2C端口,圖5)。8通道版本的DS2482具有3個地址引腳,允許單個主控制器控制多達64個獨立的1-Wire網(wǎng)絡(luò)。應(yīng)用筆記192,"DS2480B串行接口1-Wire線驅(qū)動器的使用"10,從軟件開發(fā)的角度對DS2480B進行了說明。與之類似的一篇針對DS2482驅(qū)動器的文章也可供參考11。

          利用1-Wire?鏈路功能獲取位置信息—一種確定器
          圖5. 單通道I2C至1- Wire橋接器件DS2482作為1-Wire主控制器。其/DONE輸出也可用于驅(qū)動一個LED,并不會影響鏈路功能。

          電源 如果提供VCC電源,所有DS28EA00可同時進行溫度轉(zhuǎn)換。隨后發(fā)送Conditional Search命令,可以篩選出那些發(fā)出報警溫度的器件。通過順序搜索,可得出器件的ROM ID及其位置信息,能迅速知道需要在哪些地方采取糾正措施。如果沒有VCC電源,溫度轉(zhuǎn)換必須依次進行。此外,開始進行順序搜索時(所有器件從Chain OFF狀態(tài)轉(zhuǎn)換至Chain ON狀態(tài)),必須確保1-Wire數(shù)據(jù)線路上的電壓不會跌落的太多。

          速率 高速模式下的快速時序不適用于包含多個器件,或超過3m的1-Wire網(wǎng)絡(luò);此時應(yīng)采用標準速率替代。根據(jù)網(wǎng)絡(luò)中的器件數(shù)量,即使采用標準速率,也需要延長恢復(fù)時間,特別是當(dāng)采用寄生電源供電時12。

          故障診斷 如果無法實現(xiàn)順序搜索,則在發(fā)送Chain ON命令后,察看1-Wire線路上的壓降。如果電壓跌落至3.0V以下,則命令有可能不能正常執(zhí)行。為了避免電壓跌落,Chain ON以后,可采用帶有源上拉的驅(qū)動電路,或者采用主電源供電。如果鏈路中第一個器件的/EN輸入開路、或者連接至1-Wire線路,或者連接至VCC,都將導(dǎo)致順序檢測失敗。確保網(wǎng)絡(luò)中無DS2401。不允許將并聯(lián)的兩個或多個網(wǎng)絡(luò)連接至同一個1-Wire端口,因此此時所有的“首個器件”將同時響應(yīng),這樣會得到帶無效CRC字節(jié)的ROM ID。

          結(jié)束語

          鏈路功能是一種新型特性,主機可在軟件控制下確定線性網(wǎng)絡(luò)中器件的物理順序,無需人工參與。DS28EA00 1-Wire數(shù)字溫度計是首款集成鏈路功能的器件。在多點溫度測量應(yīng)用中,與那些通過地址引腳獲得器件位置的解決方案相比,DS28EA00是最劃算的選擇。


          關(guān)鍵詞: 鏈路 確定器

          評論


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