在嵌入式底層通信中,像485總線、I2C總線等都是比較常見的通信總線。
今天給大家分享一種相對 485、I2C沒有那么流行,但也是一種常用的總線:1-Wire單總線。
單總線1-Wire介紹
1-Wire,即大家說的單總線。
單總線是美國DALLAS公司推出的外圍串行擴展總線技術。與SPI、I2C串行數(shù)據(jù)通信方式不同.它采用單根信號線,既傳輸時鐘又傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,具有節(jié)省I/O口線、資源結構簡單、成本低廉、便于總線擴展和維護等諸多優(yōu)點。
1-Wire器件按照串行協(xié)議進行供電和數(shù)據(jù)通信,能夠以無與倫比的優(yōu)勢為系統(tǒng)增添特定功能,大大簡化系統(tǒng)的互聯(lián)電路。
1-Wire 產(chǎn)品特點 :
通過單線接口提供器件控制及操作
每個器件具有唯一的工廠光刻ID
通過單總線供電(“寄生電源”)
可掛接多點:單一總線可掛接多個器件
提供額外的ESD保護
1-Wire原理
顧名思義,單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制都由這根線完成。
設備(主機或從機)通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其它設備使用總線,其內(nèi)部等效電路如圖所示:
單總線通常要求外接一個約為4.7kΩ的上拉電阻,這樣,當總線閑置時,其狀態(tài)為高電平。
主機和從機之間的通信主要通過3個步驟完成,分別為:初始化1-wire器件、識別1-wire器件和交換數(shù)據(jù)。
由于它們是主從結構,只有主機呼叫從機時,從機才能應答,因此主機訪問1-wire器件都必須嚴格遵循單總線命令序列,即初始化、ROM、命令功能命令。如果出現(xiàn)序列混亂,1-wire器件將不響應主機(搜索ROM命令,報警搜索命令除外)。
1-Wire時序描述
所有的單總線器件都要遵循嚴格的通信協(xié)議,以保證數(shù)據(jù)的完整性。
1-wire協(xié)議定義了復位脈沖、應答脈沖、寫0、讀0和讀1時序等幾種信號類型。
所有的單總線命令序列(初始化,ROM命令,功能命令)都是由這些基本的信號類型組成的。在這些信號中,除了應答脈沖外,其它均由主機發(fā)出同步信號,并且發(fā)送的所有命令和數(shù)據(jù)都是字節(jié)的低位在前。
其中,(a)是初始化時序,初始化時序包括主機發(fā)出的復位脈沖和從機發(fā)出的應答脈沖。主機通過拉低單總線至少480μs產(chǎn)生Tx復位脈沖;然后由主機釋放總線,并進入Rx接收模式。主機釋放總線時,會產(chǎn)生一由低電平跳變?yōu)楦唠娖降纳仙?,單總線器件檢測到該上升沿后,延時15~60μs,接著單總線器件通過拉低總線60~240μsμ來產(chǎn)生應答脈沖。主機接收到從機的以應答脈沖后,說明有單總線器件在線,然后主機就可以開始對從機進行ROM命令和功能命令操作。
圖中的(b)、(c)、(d)分別是寫1、寫0和讀時序。在每一個時序中,總線只能傳輸一位數(shù)據(jù)。所有的讀、寫時序至少需要60μs,且每兩個獨立的時序之間至少需要1μs的恢復時間。
圖中,讀、寫時序均始于主機拉低總線。在寫時序中,主機將在拉低總線15μs之內(nèi)釋放總線,并向單總線器件寫1;若主機拉低總線后能保持至少60μs的低電平,則向單總線器件寫0。單總線器件僅在主機發(fā)出讀時序時才向主機傳輸數(shù)據(jù),所以,當主機向單總線器件發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便單總線器件能傳輸數(shù)據(jù)。
在主機發(fā)出讀時序之后,單總線器件才開始在總線上發(fā)送0或1。若單總線器件發(fā)送1,則總線保持高電平,若發(fā)送0,則拉低總線。
由于單總線器件發(fā)送數(shù)據(jù)后可保持15μs有效時間,因此,主機在讀時序期間必須釋放總線,且須在15μs的采樣總線狀態(tài),以便接收從機發(fā)送的數(shù)據(jù)。
1-Wire應用
單總線應用在很多領域,比如:單總線IC器件、存儲器、溫濕度傳感器、邏輯器件、時鐘芯片等。
學習過單片機的同學,應該大多數(shù)都用過DS18B20這個經(jīng)典的溫度傳感器,單片機與它的連接(通信)就是通過單總線(1-Wire)實現(xiàn)的。
DS18B20電路圖:
DS18B20單總線應用:
此外,很多器件(模組)為了適應不同需求,會兼容很多通信接口,比如I2C、 SPI、 1-wire同時支持。
除了這個經(jīng)典的DS18B20之外,其實我們接觸的很多器件,也是支持單總線通信的。
原文標題:通信教程 | 1-Wire單總線原理及應用
文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
-
數(shù)據(jù)線
+關注
關注
8文章
298瀏覽量
42712 -
時鐘芯片
+關注
關注
2文章
271瀏覽量
40813 -
單總線
+關注
關注
1文章
36瀏覽量
12580 -
1-Wire
+關注
關注
0文章
70瀏覽量
21625
原文標題:通信教程 | 1-Wire單總線原理及應用
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
基于C++模板技術的1-wire總線編程
Maxim 1-Wire 讀寫器
如何訪問1-Wire API
如何設計嵌入式單總線控制器?
1-wire單總線的基本原理
1-wire單總線的基本原理
利用單總線控制器通訊
DS1820單總線(1-wire)數(shù)字溫度傳感器

1-Wire總線主機
關于1-Wire單總線的介紹與原理及應用

通過調節(jié)上拉電阻來提高1-wire總線器件的驅動能力

實現(xiàn)隔離式1-Wire總線

可靠的長線1-Wire網(wǎng)絡指南

使用UART實現(xiàn)1-Wire總線主控

評論