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