嵌入式應(yīng)用中的四類1-Wire主機(jī)電路設(shè)計(jì)
圖6電路非常適合I2C總線應(yīng)用。
圖6電路的主要前提是需要一個I?C總線控制器,如微控制器或FPGA/ASIC,還需要一定的程序存儲器空間。電路的優(yōu)點(diǎn)是性價(jià)比高。1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。DS2482支持強(qiáng)上拉以及有源上拉。然而,嵌入式應(yīng)用不需要有源上拉。內(nèi)置1位搜索加速器使1-Wire ROM搜索更容易在軟件中實(shí)施。缺點(diǎn)在于,DS2482驅(qū)動1-Wire從器件的數(shù)目比不上DS2490或DS2480B。DS2482還提供8通道版本。單通道的DS2482-100有一個控制輸出,用于增加強(qiáng)上拉功能(Q1)。與DS2480B和DS2490相比,DS2482-100的有源上拉持續(xù)時(shí)間是固定的。I2C上拉電阻值取決于I?C總線的長度和分布范圍。更多信息請參閱應(yīng)用筆記3*:"如何使用代用I?C接口的DS2482 1-Wire主控制器"、以及DS2482-100和DS2482-800數(shù)據(jù)資料??牲c(diǎn)擊此處下載應(yīng)用筆記3*中的源代碼。
圖6. 帶可選超強(qiáng)上拉電路(虛線部分)的I2C接口
圖7中的1-Wire主機(jī)特性與DS2480B非常類似。
圖7電路的主要前提是需要USB端口,一般PC中都有。電路的優(yōu)點(diǎn)在于1-Wire時(shí)序由硬件產(chǎn)生,可以減少前期軟件開發(fā)的時(shí)間和成本。因此,整個應(yīng)用軟件可以用高級語言編寫。1-Wire時(shí)序可以通過控制寄存器微調(diào)。DS2490支持強(qiáng)上拉和有源上拉。不過,嵌入式應(yīng)用不需要對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ù)直至超過第二個門限。更多信息請參閱應(yīng)用筆記117:"DS2490 Universal Serial Bus Descriptors"、以及DS2490數(shù)據(jù)資料。應(yīng)用軟件示例見1-Wire Public Domain Kit。
圖7. USB接口1-Wire主機(jī),該圖為簡化電路,詳細(xì)電路參見DS2490數(shù)據(jù)資料
可接PC的適配器方案
由于它們不需要由用戶開發(fā)軟件,因此作為1-Wire主機(jī)的PC機(jī)附件非常便于作為原型*估1-Wire器件。除了適配器、待檢測1-Wire器件和現(xiàn)成的電纜,用戶需要的就是*估軟件,如基于Java的可免費(fèi)下載的OneWireViewer。PC機(jī)適配器1-Wire端口即適合連接iButton?也適合母RJ-11連接器。具體情況如表1所列。
用OneWireViewer*估1-Wire器件時(shí),識別芯片存在與否沒有差別。然而,當(dāng)對具有1個從器件的應(yīng)用進(jìn)行建模時(shí),識別芯片需要執(zhí)行Search ROM命令,而不是Read ROM命令。這使得建立軟件原型較為復(fù)雜。
表1. 適合PC的1-Wire適配器
哪款1-Wire主機(jī)適合我的應(yīng)用?
為更好的回答這一問題,先確定以下事情:
確定應(yīng)用是否需要強(qiáng)上拉。參見“1-Wire術(shù)語”部分。
確定應(yīng)用中的1-Wire工作電壓。參見“1-Wire術(shù)語”部分。
在決策表(表2)中,刪去無法提供的前提條件的方案(列)。
在決策表中,刪去實(shí)際應(yīng)用不支持的工作電壓的方案(列)。
如果應(yīng)用需要強(qiáng)上拉,在第5行填YES,否則填NO。
刪減后剩下的方案,執(zhí)行以下步驟:
估算附加硬件的成本(根據(jù)第3行項(xiàng)目;如果第5行中有YES,則還包括第4行項(xiàng)目)并填寫到第6行。除非需要升級到較大的微控制器或FPGA/ASIC,否則假定增加端口完全免費(fèi)。升級時(shí),微控制器或FPGA/ASIC增加了邊際成本。
估算軟件開發(fā)成本并按照構(gòu)建單元數(shù)平分。將數(shù)據(jù)填入第7行。如果無法估算軟件開發(fā)成本,請?zhí)顚?或留白。
把第6行和第7行的數(shù)字相加,結(jié)果寫到第8行。
第8行中成本最低的就是最佳選擇。
表2. 決策表 Row # Title Schematic/Figure Number
結(jié)束語
適合嵌入式應(yīng)用的1-Wire主機(jī)應(yīng)該在附加成本盡可能低的前提下符合1-Wire器件電氣要求(即工作電壓,若有必要還應(yīng)帶強(qiáng)上拉)。最終選擇取決于應(yīng)用中空閑的(未用)資源,包括端口引腳、UART、I?C總線甚至USB端口,以及程序存儲器空間。如果空閑資源不足,有必要升級為帶有更多端口和/或程序存儲器的微控制器或FPGA。
在串行接口協(xié)議轉(zhuǎn)換類型方面,DS2482-100是最具性價(jià)比的選擇。對于從器件數(shù)目比較多的應(yīng)用, DS2482-800每1-Wire通道成本更低。雖然微處理器端口引腳附件電路的成本大大低于DS2482-100,但在軟件開發(fā)方面投入的額外精力(尤其是當(dāng)需要寫“位拆裂”的低級驅(qū)動器時(shí))只能通過構(gòu)建的單元數(shù)目分擔(dān)。對于基于FPGA的應(yīng)用,合成1-Wire總線主機(jī)是一個值得關(guān)注的解決方案。如果DS80C4XX微控制器的其他功能可以很好的滿足應(yīng)用要求,則利用內(nèi)置1-Wire主機(jī)所需的額外組件成本只有幾美分。采用DS80C400時(shí),1-Wire時(shí)序由硬件產(chǎn)生,所以軟件開發(fā)成本微乎其微。雖然DS2480B和DS2490適合嵌入式應(yīng)用,但它們通常應(yīng)用在PC機(jī)端口適配器中。
評論