1-Wire總線是一個(gè)簡(jiǎn)單的信號(hào)傳輸電路,可通過一根共用的數(shù)據(jù)線實(shí)現(xiàn)主控制器與一個(gè)或一個(gè)以上從器件之間的半雙工雙向通信。 電源和數(shù)據(jù)通信通過單根數(shù)據(jù)線傳輸,使得1-Wire器件具有無與倫比的強(qiáng)大功能,可減少系統(tǒng)間的互聯(lián)。 1-Wire器件通過單觸點(diǎn)串行接口提供存儲(chǔ)器、混合信號(hào)和安全認(rèn)證功能。 1-Wire器件的典型應(yīng)用如下:打印墨盒或醫(yī)療消耗品的識(shí)別; 機(jī)架卡的校準(zhǔn)和控制; 印刷電路板、配件及外設(shè)的識(shí)別和認(rèn)證; 知識(shí)產(chǎn)權(quán)保護(hù)、防克隆、安全功能控制。
采用1-Wire技術(shù)時(shí),需要通過1-Wire主機(jī)發(fā)送信號(hào)來識(shí)別總線上的器件并與它們通信。 構(gòu)建一個(gè)1-Wire主機(jī)有很多方法。 本文討論了嵌入式應(yīng)用的主機(jī),包括半徑不超過1米且1-Wire從器件數(shù)目不超過三至五的小型網(wǎng)絡(luò)。 設(shè)計(jì)1-Wire大型網(wǎng)絡(luò)或從器件數(shù)目較多時(shí),可參考應(yīng)用筆記148:"長(zhǎng)線1-Wire網(wǎng)絡(luò)可靠設(shè)計(jì)指南"。
本文中提到的1-Wire主機(jī)兼容于采用3V至5V供電的主機(jī)電路。 1-Wire電路不涉及協(xié)議轉(zhuǎn)換, 也適用于工作電壓低于3V的主機(jī),在這種情況下,主機(jī)和1-Wire從機(jī)之間需要一個(gè)電平轉(zhuǎn)換器。 應(yīng)用筆記4477:"1-Wire?雙向電平轉(zhuǎn)換器(1.8V至5V)參考設(shè)計(jì)"介紹了這樣一種電路。 本文中的RPUP和應(yīng)用筆記4477中的R4對(duì)應(yīng)。
細(xì)節(jié)部分
1-Wire術(shù)語(yǔ)
首先解釋幾個(gè)1-Wire文檔中常見的術(shù)語(yǔ)。
主機(jī)接口
本文討論的電路為1-Wire主機(jī)控制器,它們均與1-Wire從器件通信。 但是,這些1-Wire主機(jī)控制器不能作為單獨(dú)的主體,需要一個(gè)主機(jī)(計(jì)算機(jī))告訴它們?cè)?-Wire側(cè)如何工作。 主機(jī)接口指1-Wire主控制器和“系統(tǒng)中更高級(jí)的指揮官”(即主機(jī))之間的連接類型。
工作電壓
通常情況下,1-Wire器件的工作電壓范圍為2.8V (最小值)至5.25V (最大值)。 多數(shù)1-Wire器件沒有電源引腳。 因此,這種器件以寄生供電的方式從1-Wire通信線路獲取電源。 工作電壓和1-Wire上拉電壓實(shí)際上是同義詞。 工作(上拉)電壓越高,1-Wire器件所得到的功率就越大。 電壓越高,網(wǎng)絡(luò)中可以掛接的1-Wire從器件也越多,時(shí)隙之間的恢復(fù)時(shí)間也越短。
強(qiáng)上拉
強(qiáng)上拉是指一種在時(shí)隙之間向1-Wire網(wǎng)絡(luò)提供額外電源的方法。 需要額外電源的部件如下:EEPROM器件(當(dāng)把數(shù)據(jù)從緩沖區(qū)復(fù)制到EEPROM單元時(shí)); 安全存儲(chǔ)器(當(dāng)SHA-1引擎運(yùn)行時(shí)); 1-Wire溫度傳感器(在溫度轉(zhuǎn)換期間)。 當(dāng)這些1-Wire器件用于3V電壓供電時(shí),強(qiáng)上拉是必需的; 同樣的1-Wire從器件處于5V環(huán)境中時(shí),強(qiáng)上拉則是可選的。 關(guān)于什么情況下使用強(qiáng)上拉或如何選擇合適的上拉電阻值,請(qǐng)參考應(yīng)用筆記4255:"為1-Wire?器件的擴(kuò)展功能供電"。
1-Wire時(shí)序
下面介紹1-Wire時(shí)隙和復(fù)位/應(yīng)答檢測(cè)時(shí)序波形的一般形式,以及產(chǎn)生這些波形的方法。 可以采用特殊的硬件(如自帶定時(shí)發(fā)生器的芯片)或通過軟件直接產(chǎn)生波形。 對(duì)于軟件開發(fā)人員來說,硬件方式比較容易,但需要另加芯片。 軟件方式節(jié)省了硬件成本,但如果所選擇的微控制器沒有軟件支持,則可能會(huì)增加軟件開發(fā)和測(cè)試成本。 如果應(yīng)用軟件是用高級(jí)語(yǔ)言編寫的,采用軟件方式時(shí)需要特別考慮。 對(duì)于產(chǎn)生時(shí)隙和復(fù)位/應(yīng)答檢測(cè)時(shí)序的低級(jí)功能來說,均有必要用匯編語(yǔ)言編寫,這樣一來可以計(jì)算出執(zhí)行一條指令所需的時(shí)鐘周期個(gè)數(shù)。
支持高速模式
多數(shù)1-Wire從器件可以兩種速度通信:標(biāo)準(zhǔn)速度和高速模式。 高速模式下的速度比標(biāo)準(zhǔn)速度約快8倍。 所有1-Wire從器件均支持標(biāo)準(zhǔn)速度通信。 所有2類至4類的主機(jī)(下文中提到的)均支持高速模式。 1類主機(jī)是否支持高速模式取決于微控制器性能(時(shí)鐘速率,每指令周期所需時(shí)鐘周期個(gè)數(shù))。
有源上拉
1-Wire總線或網(wǎng)絡(luò)是一個(gè)開漏環(huán)境,0V (邏輯0)為有效狀態(tài)。 空閑時(shí),總線通過一個(gè)電阻拉高到上拉電壓(電阻上拉)。 因此,下降沿是陡峭的; 上升沿由于電阻和寄生電源的作用相當(dāng)平緩。 有源上拉是指一種測(cè)試上升沿的方法,如果已經(jīng)超過規(guī)定門限,通過低阻通道在有限的時(shí)間內(nèi)旁路上拉電阻。 小型網(wǎng)絡(luò)或只有一個(gè)從器件的網(wǎng)絡(luò)一般不需要有源上拉。 如果帶有源上拉,1-Wire總線再充電的速度比電阻上拉快得多,因此,網(wǎng)絡(luò)中支持多個(gè)1-Wire從器件時(shí),無需延長(zhǎng)時(shí)隙之間的恢復(fù)時(shí)間。 各種1-Wire主機(jī)的旁路上拉強(qiáng)度(阻抗)和控制有源上拉時(shí)間的方法有所不同
1-Wire主機(jī)電路
下面詳細(xì)討論不同的主機(jī)電路。 電路分為以下四類:
內(nèi)置1-Wire主機(jī)的微控制器
合成的1-Wire總線主機(jī)
串行接口協(xié)議轉(zhuǎn)換
每個(gè)分類介紹了一個(gè)或多個(gè)電路。 給出了電路原理圖,列出了前提條件,衡量了優(yōu)缺點(diǎn),給出了注意事項(xiàng)、建議閱讀的參考文檔和支持軟件網(wǎng)址。
1類. 微處理器端口-引腳連接
圖1為最基本的1-Wire主機(jī)。
電路的唯一先決條件是需要一個(gè)備用雙向端口及一定的程序存儲(chǔ)器空間。 電路的優(yōu)點(diǎn)在于它的額外硬件成本極低,僅需一個(gè)上拉電阻。 缺點(diǎn)在于,1-Wire時(shí)序通過軟件產(chǎn)生,增加了前期軟件開發(fā)的時(shí)間和成本。 根據(jù)應(yīng)用中1-Wire從器件數(shù)目和1-Wire上拉電壓,需要其它端口引腳來實(shí)現(xiàn)強(qiáng)上拉。 1-Wire總線最高工作電壓取決于雙向端口特性(最好具有5V容限)。 1-Wire總線上掛接多個(gè)從器件時(shí),RPUP值應(yīng)取低一些。 如果那樣的話檢查VOLMAX是否與1-Wire從器件和微處理器端口的輸入特性兼容。 高速通信模式要求微處理器具備高時(shí)鐘頻率和/或較低的每指令周期時(shí)鐘數(shù)。 更多信息,請(qǐng)參閱應(yīng)用筆記3829:"確定多從機(jī)1-Wire網(wǎng)絡(luò)的恢復(fù)時(shí)間"和應(yīng)用筆記126:"用軟件實(shí)現(xiàn)1-Wire通信"。 應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖1.單向端口引腳,帶用于強(qiáng)上拉的可選電路(虛線)
圖2給出與圖1類似的另一種基本電路。
圖2電路的先決條件是需要兩個(gè)備用單向端口、下拉晶體管及一定的程序存儲(chǔ)器空間。 電路的優(yōu)點(diǎn)是不需要雙向端口。 缺點(diǎn)在于,1-Wire時(shí)序通過軟件產(chǎn)生,增加了前期軟件開發(fā)的時(shí)間和成本。 根據(jù)應(yīng)用中1-Wire從器件和1-Wire上拉電壓,有時(shí)需要其它端口引腳提供強(qiáng)上拉。 1-Wire總線最高工作電壓取決于雙向端口特性(最好具有5V容限)。 1-Wire總線上掛接多個(gè)從器件時(shí),RPUP值應(yīng)取低一些。 此時(shí),應(yīng)檢查VOLMAX是否與1-Wire從器件和微處理器端口的輸入特性兼容。 高速通信模式要求微處理器具備較高的時(shí)鐘頻率和/或較低的每指令周期時(shí)鐘數(shù)。 更多信息請(qǐng)參閱應(yīng)用筆記3829:"確定多從機(jī)1-Wire網(wǎng)絡(luò)的恢復(fù)時(shí)間"和應(yīng)用筆記126:"用軟件實(shí)現(xiàn)1-Wire通信"。 應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖2.雙向端口引腳,帶用于強(qiáng)上拉的可選電路(虛線)
2類. 內(nèi)置1-Wire主機(jī)的微控制器
圖3電路與圖1非常類似,不同之處在于微控制器類型。
圖3電路的主要前提是需要一個(gè)內(nèi)置1-Wire主機(jī)的微控制器,如DS80C400、DS80C410或DS80C411,以及一定的程序存儲(chǔ)器空間。 電路的優(yōu)點(diǎn)在于1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。 因此,整個(gè)應(yīng)用軟件可以用高級(jí)語(yǔ)言編寫。 DS80C400系列微控制器端口帶有5V容限。 缺點(diǎn)在于,只有高端微控制器才內(nèi)置有1-Wire主機(jī)。 根據(jù)應(yīng)用中1-Wire從器件和1-Wire上拉電壓,可能需要其它端口引腳提供強(qiáng)上拉。 1-Wire總線上有不止一個(gè)從器件時(shí),RPUP值應(yīng)取低一些。 此時(shí),應(yīng)檢查VOLMAX是否與1-Wire從器件和微處理器端口的輸入特性兼容。 更多信息,請(qǐng)參閱應(yīng)用筆記3829:"確定多從機(jī)1-Wire網(wǎng)絡(luò)的恢復(fù)時(shí)間"、應(yīng)用筆記613:"DS80C400的Keil C語(yǔ)言編程"、以及DS80C400數(shù)據(jù)資料。 應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖3.DS2480B 連接到主機(jī)微控制器 UART 端口
3類. 合成的1-Wire總線主機(jī)(ASIC/FPGA)
圖4電路與圖3非常類似。 不同之處在于微控制器和1-Wire端口是內(nèi)置在ASIC或PFGA中的。
圖4電路的主前提是需要具有單片機(jī)能力的ASIC或FPGA,至少有一個(gè)空閑的雙向端口引腳,3470個(gè)未使用的門和一定的程序存儲(chǔ)器空間。 電路的優(yōu)點(diǎn)在于1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。 因此,整個(gè)應(yīng)用軟件可以用高級(jí)語(yǔ)言編寫。 缺點(diǎn)在于,并非所有ASIC或FPGA都有5V容限端口。 1-Wire工作電壓取決于ASIC/FPGA的端口特性。 一些2.5V FPGA有5V容限I/O端口,比3.3V FPGA理想。 根據(jù)應(yīng)用中1-Wire從器件和1-Wire上拉電壓,可能需要其它端口引腳提供強(qiáng)上拉。 1-Wire總線上掛接多個(gè)從器件時(shí),RPUP值應(yīng)取低一些。 此時(shí),應(yīng)檢查VOLMAX是否與1-Wire從器件和微處理器端口的輸入特性兼容。 更多信息請(qǐng)參閱應(yīng)用筆記119:"在FPGA或ASIC中嵌入1-Wire主機(jī)"、應(yīng)用筆記120:"利用API控制DS1WM 1-Wire總線主機(jī)"、應(yīng)用筆記145:"Interfacing the Maxim 1-Wire Master (DS1WM) to an ARM7 Processor"、應(yīng)用筆記3829:"確定多從機(jī)1-Wire網(wǎng)絡(luò)的恢復(fù)時(shí)間 "、以及DS1WM數(shù)據(jù)資料。 欲獲取1-Wire主機(jī)Verilog?/VHDL代碼,請(qǐng)通過提交技術(shù)支持要求。 應(yīng)用軟件示例請(qǐng)參見應(yīng)用筆記120和145。
圖4.DS2484連接到主機(jī)微控制器I2C 端口
4類. 串行接口協(xié)議轉(zhuǎn)換
圖5電路只需一個(gè)額外器件即可構(gòu)建一個(gè)功能齊備的1-Wire主機(jī)。
圖5電路的主要前提是需要一種控制UART的方式,例如微控制器、FPGA或PC串行端口,還需要一定的程序存儲(chǔ)器空間。 電路的優(yōu)點(diǎn)在于1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。 因此,整個(gè)應(yīng)用軟件可以用高級(jí)語(yǔ)言編寫。 1-Wire時(shí)序可以通過控制寄存器微調(diào)。 DS2480B支持強(qiáng)上拉和有源上拉。 嵌入式應(yīng)用不需要對(duì)1-Wire時(shí)序和有源上拉進(jìn)行微調(diào),不過,內(nèi)置的4位搜索加速器使1-Wire ROM搜索在軟件中更易實(shí)現(xiàn)。 就缺點(diǎn)而言,DS2480B較圖1至圖4中的分立元件昂貴。 DS2480B僅采用5V工作電壓。 它是功能最強(qiáng)的單芯片1-Wire主機(jī),適合與大量從器件通信。 有源上拉持續(xù)直至超過第二個(gè)門限。 DS2480B也可以編程1-Wire EPROM器件。 更多信息請(qǐng)參閱應(yīng)用筆記192:"DS2480B串行接口1-Wire線驅(qū)動(dòng)器的使用" 、應(yīng)用筆記4104:"DS2480B 1-Wire時(shí)序的理解及配置"、以及DS2480B數(shù)據(jù)資料。 可點(diǎn)此處下載應(yīng)用筆記192的源代碼。
圖5.DS2485連接到主機(jī)微控制器I2C 端口
圖6電路非常適合I2C總線應(yīng)用。
圖6電路的主要前提是需要一個(gè)I2C總線控制器,如微控制器或FPGA/ASIC,還需要一定的程序存儲(chǔ)器空間。 電路的優(yōu)點(diǎn)是性價(jià)比高。 1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。 因此,整個(gè)應(yīng)用軟件可以用高級(jí)語(yǔ)言編寫。 DS2482支持強(qiáng)上拉以及有源上拉。 然而,嵌入式應(yīng)用不需要有源上拉。 內(nèi)置1位搜索加速器使1-Wire ROM搜索更容易在軟件中實(shí)施。 缺點(diǎn)在于,DS2482驅(qū)動(dòng)1-Wire從器件的數(shù)目比不上DS2490或DS2480B。 DS2482還提供8通道版本。 單通道的DS2482-100和DS2482-101有一個(gè)控制輸出,用于增加強(qiáng)上拉功能(Q1)。 與DS2480B和DS2490相比,DS2482的有源上拉持續(xù)時(shí)間是固定的。 I2C上拉電阻值取決于I2C總線的長(zhǎng)度和分布范圍。 更多信息請(qǐng)參閱應(yīng)用筆記3684:"如何使用I2C接口的DS2482 1-Wire?主控制器"、以及DS2482數(shù)據(jù)資料。 可點(diǎn)擊此處下載應(yīng)用筆記3684中的源代碼。
圖6.DS2465 1-Wire主站連接多個(gè)1-Wire SHA-256器件
圖7中的1-Wire主機(jī)特性與DS2480B非常類似。
圖7電路的主要前提是需要USB端口,一般PC中都有。 電路的優(yōu)點(diǎn)在于1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。 因此,整個(gè)應(yīng)用軟件可以用高級(jí)語(yǔ)言編寫。 1-Wire時(shí)序可以通過控制寄存器微調(diào)。 DS2490支持強(qiáng)上拉和有源上拉。 不過,嵌入式應(yīng)用不需要對(duì)1-Wire時(shí)序和有源上拉進(jìn)行微調(diào)。 內(nèi)置的4位搜索加速器使1-Wire ROM搜索在軟件中更容易實(shí)施。 就缺點(diǎn)而言,DS2490較圖5中的器件成本高,且工作電壓僅為5V。 作為1-Wire主機(jī),DS2490沒有DS2480B功能強(qiáng)大。 有源上拉持續(xù)直至超過第二個(gè)門限。 更多信息請(qǐng)參閱DS2490數(shù)據(jù)資料。 應(yīng)用軟件示例見1-Wire Public Domain Kit。 注意DS2490不推薦用于新的設(shè)計(jì)。
圖7.DS2477與DS2E28從機(jī)連接到主機(jī)微控制器I50C端口。
可接PC的適配器方案
由于它們不需要由用戶開發(fā)軟件,因此作為1-Wire主機(jī)的PC機(jī)附件非常便于作為原型評(píng)估1-Wire器件。 除了適配器、待檢測(cè)1-Wire器件和現(xiàn)成的電纜,用戶需要的就是評(píng)估軟件,如基于Java的可免費(fèi)下載的OneWireViewer。 PC機(jī)適配器1-Wire端口即適合連接iButton?也適合母RJ-11連接器。 具體情況如表1所列。
用OneWireViewer評(píng)估1-Wire器件時(shí),識(shí)別芯片存在與否沒有差別。 然而,當(dāng)對(duì)具有1個(gè)從器件的應(yīng)用進(jìn)行建模時(shí),識(shí)別芯片需要執(zhí)行Search ROM命令,而不是Read ROM命令。 這使得建立軟件原型較為復(fù)雜。
港口 | 適配器/套件部件 | 1-線主站 | 筆記 |
USB | DS9481R-3C7+ | DS2480B |
對(duì)于 iButton 評(píng)估用途:DS1402D-DR8 電纜或 DS1402D-DR8+ 藍(lán)點(diǎn)?接收器 對(duì)于其他1-Wire器件,請(qǐng)使用:DS9120插座板 |
USB | DS2484評(píng)估板 | DS2484 | 包含:DS2484 評(píng)估板、DS9400 USB 轉(zhuǎn) I2C 適配器、USB 數(shù)據(jù)線 |
USB | DS28E50VKIT | DS2477 | 包含:TDFN封裝的DS5和DS2477E28各50塊,2塊DS9120BQ+評(píng)估板和1塊DS9481P-300 USB轉(zhuǎn)I2C/1線適配器 |
USB | DS2485VKIT | DS2485 | 包含:TDFN封裝的DS5和DS2485E28各07塊,2塊DS9120BQ+評(píng)估板和1塊DS9481P-300 USB轉(zhuǎn)I2C/1線適配器 |
結(jié)論
適合嵌入式應(yīng)用的1-Wire主站應(yīng)能以合理的成本滿足1-Wire器件的電氣要求(即工作電壓、必要時(shí)的強(qiáng)上拉),同時(shí)提供最佳的整體功能。最終選擇取決于應(yīng)用程序中的備用(未使用)資源,可以是端口引腳、UART 或 I2C 總線和程序存儲(chǔ)器中的空間。目前,Maxim提供的硬件1-Wire母版(類別2)是市場(chǎng)上最通用的選擇,成本非常合理。它們功能豐富且可編程,支持任何和所有1-Wire系統(tǒng),包括具有高安全性要求的<>-Wire系統(tǒng)。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
114文章
17116瀏覽量
184440 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19678瀏覽量
317779 -
寄存器
+關(guān)注
關(guān)注
31文章
5435瀏覽量
124604
發(fā)布評(píng)論請(qǐng)先 登錄
1-Wire時(shí)序的理解及配置
如何采用Verilog語(yǔ)言創(chuàng)建1-Wire主機(jī)?
為嵌入式應(yīng)用選擇合適的1-Wire®主機(jī)

為嵌入式應(yīng)用選擇合適的1-Wire主機(jī)

1-Wire搜索算法

嵌入1-Wire主機(jī)

嵌入1-Wire主機(jī)

1-Wire雙向電平轉(zhuǎn)換器應(yīng)用

1-Wire總線主機(jī)
嵌入式應(yīng)用中的四類1-Wire主機(jī)電路設(shè)計(jì)

為什么UART驅(qū)動(dòng)1-Wire設(shè)備總是出現(xiàn)問題?

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

如何將1-Wire主機(jī)復(fù)用到多個(gè)通道?

如何將1-Wire主機(jī)復(fù)用到多個(gè)通道?
DS2475帶1-Wire主機(jī)的DeepCover ECDSA協(xié)處理器技術(shù)手冊(cè)

評(píng)論