引言
1-Wire總線是一個簡單的信號傳輸電路,可通過一根共用的數(shù)據(jù)線實現(xiàn)主控制器與一個或一個以上從器件之間的半雙工雙向通信。電源和數(shù)據(jù)通信通過單根數(shù)據(jù)線傳輸,使得1-Wire器件具有無與倫比的強大功能,可減少系統(tǒng)間的互聯(lián)。1-Wire器件通過受專利保護的單觸點串行接口提供存儲器、混合信號和安全認(rèn)證功能。1-Wire器件的典型應(yīng)用如下:打印墨盒或醫(yī)療消耗品的識別;機架卡的校準(zhǔn)和控制;印刷電路板、配件及外設(shè)的識別和認(rèn)證;知識產(chǎn)權(quán)保護、防克隆、安全功能控制。采用1-Wire技術(shù)時,需要通過1-Wire主機發(fā)送信號來識別總線上的器件并與它們通信。構(gòu)建一個1-Wire主機有很多方法。本文討論了嵌入式應(yīng)用的主機,包括半徑不超過1米且1-Wire從器件數(shù)目不超過三至五的小型網(wǎng)絡(luò)。設(shè)計1-Wire大型網(wǎng)絡(luò)或從器件數(shù)目較多時,可參考應(yīng)用筆記148:"1-Wire網(wǎng)絡(luò)可靠設(shè)計指南"。
1-Wire術(shù)語
首先解釋幾個1-Wire文檔中常見的術(shù)語。主機接口
本文討論的電路為1-Wire主機控制器,它們均與1-Wire從器件通信。但是,這些1-Wire主機控制器不能作為單獨的主體,需要一個主機(計算機)告訴它們在1-Wire側(cè)如何工作。主機接口指1-Wire主控制器和“系統(tǒng)中更高級的指揮官” (即主機)之間的連接類型。工作電壓
通常情況下,1-Wire器件的工作電壓范圍為2.8V (最小值)至5.25V (最大值)。多數(shù)1-Wire器件沒有電源引腳。因此,這種器件以寄生供電的方式從1-Wire通信線路獲取電源。工作電壓和1-Wire上拉電壓實際上是同義詞。工作(上拉)電壓越高,1-Wire器件所得到的功率就越大。電壓越高,網(wǎng)絡(luò)中可以掛接的1-Wire從器件也越多,時隙之間的恢復(fù)時間也越短。強上拉
強上拉是指一種在時隙之間向1-Wire網(wǎng)絡(luò)提供額外電源的方法。需要額外電源的部件如下:EEPROM器件(當(dāng)把數(shù)據(jù)從緩沖區(qū)復(fù)制到EEPROM單元時);安全存儲器(當(dāng)SHA-1引擎運行時);1-Wire溫度傳感器(在溫度轉(zhuǎn)換期間)。當(dāng)這些1-Wire器件用于3V電壓供電時,強上拉是必需的;同樣的1-Wire從器件處于5V環(huán)境中時,強上拉則是可選的。1-Wire時序
下面介紹1-Wire時隙和復(fù)位/應(yīng)答檢測時序波形的一般形式,以及產(chǎn)生這些波形的方法。可以采用特殊的硬件(如自帶定時發(fā)生器的芯片)或通過軟件直接產(chǎn)生波形。對于軟件開發(fā)人員來說,硬件方式比較容易,但需要另加芯片。軟件方式節(jié)省了硬件成本,但如果所選擇的微控制器沒有軟件支持,則可能會增加軟件開發(fā)和測試成本。如果應(yīng)用軟件是用高級語言編寫的,采用軟件方式時需要特別考慮。對于產(chǎn)生時隙和復(fù)位/應(yīng)答檢測時序的低級功能來說,均有必要用匯編語言編寫,這樣一來可以計算出執(zhí)行一條指令所需的時鐘周期個數(shù)。支持高速模式
多數(shù)1-Wire從器件可以兩種速度通信:標(biāo)準(zhǔn)速度和高速模式。高速模式下的速度比標(biāo)準(zhǔn)速度約快8倍。所有1-Wire從器件均支持標(biāo)準(zhǔn)速度通信。所有2類至4類的主機(下文中提到的)均支持高速模式。1類主機是否支持高速模式取決于微控制器性能(時鐘速率,每指令周期所需時鐘周期個數(shù))。有源上拉
1-Wire總線或網(wǎng)絡(luò)是一個開漏環(huán)境,0V (邏輯0)為有效狀態(tài)。空閑時,總線通過一個電阻拉高到上拉電壓(電阻上拉)。因此,下降沿是陡峭的;上升沿由于電阻和寄生電源的作用相當(dāng)平緩。有源上拉是指一種測試上升沿的方法,如果已經(jīng)超過規(guī)定門限,通過低阻通道在有限的時間內(nèi)旁路上拉電阻。小型網(wǎng)絡(luò)或只有一個從器件的網(wǎng)絡(luò)一般不需要有源上拉。如果帶有源上拉,1-Wire總線再充電的速度比電阻上拉快得多,因此,網(wǎng)絡(luò)中支持多個1-Wire從器件時,無需延長時隙之間的恢復(fù)時間。各種1-Wire主機的旁路上拉強度(阻抗)和控制有源上拉時間的方法有所不同。1-Wire主機電路
下面詳細(xì)討論不同的主機電路。電路分為以下四類: 每個分類介紹了一個或多個電路。給出了電路原理圖,列出了前提條件,衡量了優(yōu)缺點,給出了注意事項、建議閱讀的參考文檔和支持軟件網(wǎng)址。1類. 微處理器端口-引腳連接
圖1為最基本的1-Wire主機。電路的唯一先決條件是需要一個備用雙向端口及一定的程序存儲器空間。電路的優(yōu)點在于它的額外硬件成本極低,僅需一個上拉電阻。缺點在于,1-Wire時序通過軟件產(chǎn)生,增加了前期軟件開發(fā)的時間和成本。根據(jù)應(yīng)用中1-Wire從器件數(shù)目和1-Wire上拉電壓,需要其它端口引腳來實現(xiàn)強上拉。1-Wire總線最高工作電壓取決于雙向端口特性(最好具有5V容限)。1-Wire總線上掛接多個從器件時,RPUP值應(yīng)取低一些。如果那樣的話檢查VOLmax是否與1-Wire從器件和微處理器端口的輸入特性兼容。高速通信模式要求微處理器具備高時鐘頻率和/或較低的每指令周期時鐘數(shù)。更多信息,請參閱應(yīng)用筆記3829:"確定多從機1-Wire網(wǎng)絡(luò)的恢復(fù)時間"和應(yīng)用筆記126:"用軟件實現(xiàn)1-Wire通信"。應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖1. 帶可選強上拉電路(虛線部分)的雙向端口引腳
圖2給出與圖1類似的另一種基本電路。
圖2電路的先決條件是需要兩個備用單向端口、下拉晶體管及一定的程序存儲器空間。電路的優(yōu)點是不需要雙向端口。缺點在于,1-Wire時序通過軟件產(chǎn)生,增加了前期軟件開發(fā)的時間和成本。根據(jù)應(yīng)用中1-Wire從器件和1-Wire上拉電壓,有時需要其它端口引腳提供強上拉。1-Wire總線最高工作電壓取決于雙向端口特性(最好具有5V容限)。1-Wire總線上掛接多個從器件時,RPUP值應(yīng)取低一些。此時,應(yīng)檢查VOLmax是否與1-Wire從器件和微處理器端口的輸入特性兼容。高速通信模式要求微處理器具備較高的時鐘頻率和/或較低的每指令周期時鐘數(shù)。更多信息請參閱應(yīng)用筆記3829:"確定多從機1-Wire網(wǎng)絡(luò)的恢復(fù)時間"和應(yīng)用筆記126:"用軟件實現(xiàn)1-Wire通信"。應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖2. 帶可選強上拉電路(虛線部分)的單向端口引腳
2類. 內(nèi)置1-Wire主機的微控制器
圖3電路與圖1非常類似,不同之處在于微控制器類型。圖3電路的主要前提是需要一個內(nèi)置1-Wire主機的微控制器,如DS80C400、DS80C410或DS80C411,以及一定的程序存儲器空間。電路的優(yōu)點在于1-Wire時序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。DS80C400系列微控制器端口帶有5V容限。缺點在于,只有高端微控制器才內(nèi)置有1-Wire主機。根據(jù)應(yīng)用中1-Wire從器件和1-Wire上拉電壓,可能需要其它端口引腳提供強上拉。1-Wire總線上有不止一個從器件時,RPUP值應(yīng)取低一些。此時,應(yīng)檢查VOLmax是否與1-Wire從器件和微處理器端口的輸入特性兼容。更多信息,請參閱應(yīng)用筆記3829:"確定多從機1-Wire網(wǎng)絡(luò)的恢復(fù)時間"、應(yīng)用筆記613:"DS80C400的Keil C語言編程"、以及DS80C400數(shù)據(jù)資料。應(yīng)用軟件示例見1-Wire Public Domain Kit。
ticle/UploadPic/2009-4/2009417103655746.gif">
圖3. 內(nèi)置1-Wire主機的微控制器及可選的強上拉電路(虛線部分)
3類. 合成的1-Wire總線主機(ASIC/FPGA)
圖4電路與圖3非常類似。不同之處在于微控制器和1-Wire端口是內(nèi)置在ASIC或PFGA中的。圖4電路的主前提是需要具有單片機能力的ASIC或FPGA,至少有一個空閑的雙向端口引腳,3470個未使用的門和一定的程序存儲器空間。電路的優(yōu)點在于1-Wire時序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。缺點在于,并非所有ASIC或FPGA都有5V容限端口。1-Wire工作電壓取決于ASIC/FPGA的端口特性。一些2.5V FPGA有5V容限I/O端口,比3.3 FPGA理想。根據(jù)應(yīng)用中1-Wire從器件和1-Wire上拉電壓,可能需要其它端口引腳提供強上拉。1-Wire總線上掛接多個從器件時,RPUP值應(yīng)取低一些。此時,應(yīng)檢查VOLmax是否與1-Wire從器件和微處理器端口的輸入特性兼容。更多信息請參閱應(yīng)用筆記119:"嵌入1-Wire主機"、應(yīng)用筆記120:"利用1-Wire主機通訊"、應(yīng)用筆記145:"Interfacing the Maxim 1-Wire Master (DS1WM) to an ARM7 Processor"、應(yīng)用筆記3829:"確定多從機1-Wire網(wǎng)絡(luò)的恢復(fù)時間"、以及DS1WM數(shù)據(jù)資料。欲獲取1-Wire主機Verilog/VHDL代碼,請通過提交技術(shù)支持要求。應(yīng)用軟件示例請參見應(yīng)用筆記120和145。
圖4. 帶可選強上拉電路(虛線部分)的ASIC/FPGA
4類. 串行接口協(xié)議轉(zhuǎn)換
圖5電路只需一個額外器件即可構(gòu)建一個功能齊備的1-Wire主機。圖5電路的主要前提是需要一種控制UART的方式,例如微控制器、FPGA或PC串行端口,還需要一定的程序存儲器空間。電路的優(yōu)點在于1-Wire時序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。1-Wire時序可以通過控制寄存器微調(diào)。DS2480B支持強上拉和有源上拉。嵌入式應(yīng)用不需要對1-Wire時序和有源上拉進行微調(diào),不過,內(nèi)置的4位搜索加速器使1-Wire ROM搜索在軟件中更易實現(xiàn)。就缺點而言,DS2480B較圖1至圖4中的分立元件昂貴。DS2480B僅采用5V工作電壓。它是功能最強的單芯片1-Wire主機,適合與大量從器件通信。有源上拉持續(xù)直至超過第二個門限。DS2480B也可以編程1-Wire EPROM器件。更多信息請參閱應(yīng)用筆記192:"DS2480B串行接口1-Wire線驅(qū)動器的使用" 、應(yīng)用筆記4104:"DS2480B 1-Wire時序的理解及配置"、以及DS2480B數(shù)據(jù)資料。可點此處下載AN192的源代碼。
圖5. UART/RS-232接口
圖6電路非常適合I2C總線應(yīng)用。
圖6電路的主要前提是需要一個I2C總線控制器,如微控制器或FPGA/ASIC,還需要一定的程序存儲器空間。電路的優(yōu)點是性價比高。1-Wire時序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。DS2482支持強上拉以及有源上拉。然而,嵌入式應(yīng)用不需要有源上拉。內(nèi)置1位搜索加速器使1-Wire ROM搜索更容易在軟件中實施。缺點在于,DS2482驅(qū)動1-Wire從器件的數(shù)目比不上DS2490或DS2480B。DS2482還提供8通道版本。單通道的DS2482-100有一個控制輸出,用于增加強上拉功能(Q1)。與DS2480B和DS2490相比,DS2482-100的有源上拉持續(xù)時間是固定的。I2C上拉電阻值取決于I2C總線的長度和分布范圍。更多信息請參閱應(yīng)用筆記3684:"如何使用代用I2C接口的DS2482 1-Wire主控制器"、以及DS2482-100和DS2482-800數(shù)據(jù)資料。可點擊此處下載應(yīng)用筆記3684中的源代碼。
圖6. 帶可選超強上拉電路(虛線部分)的I2C接口
圖7中的1-Wire主機特性與DS2480B非常類似。
圖7電路的主要前提是需要USB端口,一般PC中都有。電路的優(yōu)點在于1-Wire時序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。1-Wire時序可以通過控制寄存器微調(diào)。DS2490支持強上拉和有源上拉。不過,嵌入式應(yīng)用不需要對1-Wire時序和有源上拉進行微調(diào)。內(nèi)置的4位搜索加速器使1-Wire ROM搜索在軟件中更容易實施。就缺點而言,DS2490較圖5中的器件成本高,且工作電壓僅為5V。作為1-Wire主機,DS2490沒有DS2480B功能強大。有源上拉持續(xù)直至超過第二個門限。更多信息請參閱應(yīng)用筆記117:"DS2490 Universal Serial Bus Descriptors"、以及DS2490數(shù)據(jù)資料。應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖7. USB接口1-Wire主機,該圖為簡化電路,詳細(xì)電路參見DS2490數(shù)據(jù)資料
可接PC的適配器方案
由于它們不需要由用戶開發(fā)軟件,因此作為1-Wire主機的PC機附件非常便于作為原型評估1-Wire器件。除了適配器、待檢測1-Wire器件和現(xiàn)成的電纜,用戶需要的就是評估軟件,如基于Java的可免費下載的OneWireViewer。PC機適配器1-Wire端口即適合連接iButton?也適合母RJ-11連接器。具體情況如表1所列。用OneWireViewer評估1-Wire器件時,識別芯片存在與否沒有差別。然而,當(dāng)對具有1個從器件的應(yīng)用進行建模時,識別芯片需要執(zhí)行Search ROM命令,而不是Read ROM命令。這使得建立軟件原型較為復(fù)雜。
表1. 適合PC的1-Wire適配器
Port Type | Converter | 1-Wire Port | Part Number | Notes |
COM port, DB-9 | DS2480B | iButton | DS1411-009 | Built-in identification chip is hardwired to 1-Wire bus |
DS1411-S09 | No identification chip | |||
RJ-11 | DS9097U-009 | Built-in identification chip is hardwired to 1-Wire bus | ||
DS9097U-S09 | No identification chip | |||
COM port, DB-25 | DS2480B | RJ-11 | DS9097U-E25 | No identification chip; with external 12V supply, this adapter can program 1-Wire EPROMs |
USB port | DS2490 | iButton | DS9490B | Built-in identification chip is hardwired to 1-Wire bus |
RJ-11 | DS9490R |
評論
查看更多