基于DS2432的USB1-Wire總線適配器設(shè)計
1 引言
隨著計算機(jī)硬件、軟件技術(shù)及集成電路技術(shù)的迅速發(fā)展,基于現(xiàn)場總線技術(shù)的通信網(wǎng)絡(luò)逐步取代分散式工業(yè)控制系統(tǒng),成為計算機(jī)技術(shù)及電子技術(shù)應(yīng)用領(lǐng)域中最具活力的一種邊緣分支并取得巨大進(jìn)步。美國美信公司設(shè)計的1-Wire總線是眾多現(xiàn)場總線中極具競爭力的一種。具備能與計算機(jī)進(jìn)行數(shù)字通信、總線負(fù)載量大、布線簡練、精度高、性能穩(wěn)定、價格便宜等諸多優(yōu)點,特別是非常適合中短距離通信,是工業(yè)系統(tǒng)設(shè)計的高級境界。
l-Wire測量網(wǎng)絡(luò)的實現(xiàn)需要與PC主機(jī)相結(jié)合,所以在1-Wire總線組成的測量網(wǎng)絡(luò)中,網(wǎng)絡(luò)適配器是必不可少的,它擔(dān)負(fù)著主機(jī)監(jiān)控單元與網(wǎng)絡(luò)節(jié)點之間數(shù)據(jù)傳輸?shù)闹匾蝿?wù)。USB接口總線具有高速傳輸、支持熱插拔、即插即用、開發(fā)成本低等優(yōu)點。提供了一種緊湊的密鑰存儲方案,有效地降低了硬件仿制的可行性。據(jù)此,本文提出了一種基于的l-Wire總線USB口適配器的設(shè)計方法。
2 的內(nèi)部結(jié)構(gòu)和加密原理
2.1 DS2432的內(nèi)部結(jié)構(gòu)
DS2432是倒裝芯片,有8個引腳,將控制、尋址、數(shù)據(jù)和電源集于一個數(shù)據(jù)引腳,可以在-40℃~+85℃,2.8 V~5.25 V的寬電壓范圍內(nèi)進(jìn)行讀、寫操作,內(nèi)置多點控制。其引腳排列如圖1所示。
DS2432的內(nèi)部原理框圖如圖2所示。該電路主要由64位掩模ROM、64位暫存器、4個32字節(jié)的、64位寄存器、64位密鑰存儲器及512位SHA-l(安全散列算法)引擎6個主數(shù)據(jù)部件組成。
2.2 DS2432的加密原理
DS2432有四個存儲區(qū):數(shù)據(jù)存儲器、密鑰存儲器、含有特定功能和用戶字節(jié)的寄存器頁和暫存器。數(shù)據(jù)存儲器每頁32個字節(jié)。密鑰、寄存器頁和暫存器均為8字節(jié)。向數(shù)據(jù)存儲器寫數(shù)據(jù)、裝載初始密鑰,或者向寄存器頁寫入數(shù)據(jù)時,暫存器作為緩存器使用。數(shù)據(jù)存儲器、密鑰存儲器和寄存器頁位于線性地址空間中。數(shù)據(jù)存儲器和寄存器頁對讀訪問沒有限制,但向數(shù)據(jù)存儲器和寄存器頁寫數(shù)據(jù)時則需要知道密鑰。密鑰的安裝有二種方法,一是把數(shù)據(jù)從暫存器復(fù)制到密鑰存儲器;二是當(dāng)前密鑰和暫存器內(nèi)容經(jīng)過運(yùn)算后生成新的密鑰。密鑰不能直接讀取,只有SHA引擎能夠訪問它,計算信息鑒定碼MAC。
地址0088H-008FH為寄存器頁,含有特定功能寄存器、通用用戶字節(jié)以及1個工廠字節(jié)。一旦編程為AAH或55H,這些字節(jié)中的大多數(shù)將被寫保護(hù)而不能再更改。所有代碼既不能寫保護(hù),也不能激活與這個特定字節(jié)相關(guān)的特殊功能。特殊功能包括僅寫保護(hù)密鑰;同時寫保護(hù)4個數(shù)據(jù)存儲器頁;僅激活數(shù)據(jù)存儲器頁1的EPROM模式;僅激活數(shù)據(jù)存儲器頁0的EPROM模式。一旦EPROM模式被激活,在數(shù)據(jù)存儲器未加寫保護(hù)的情況下,地址0020H-003FH中的位只能從邏輯1改為邏輯O。若讀取到的地址設(shè)為55H,表明地址008E和008F是可讀/寫的用戶字節(jié),沒有任何特定功能和鎖定機(jī)制。代碼AAH表明這二個字節(jié)被編程為16位的ID,并且被加寫保護(hù)。主機(jī)與1-Wire設(shè)備進(jìn)行通信時,用戶要提供16位的ID識別碼,用來協(xié)助應(yīng)用軟件識別包含DS2432的l-Wire網(wǎng)絡(luò)適配器。
3 適配器的設(shè)計
3.1 硬件電路設(shè)計
適配器需2個分別與計算機(jī)主機(jī)系統(tǒng)和1-Wire網(wǎng)絡(luò)進(jìn)行通信。與主機(jī)系統(tǒng)進(jìn)行通信主要通過USB協(xié)議實現(xiàn),稱為USB;與1-Wire網(wǎng)絡(luò)之間的通信通過USB到l-Wire總線的橋接電路實現(xiàn),但需1個插座,稱為橋接電路。本設(shè)備采用USB總線的供電方式。
3.1.1 USB設(shè)計
USB接口電路的原理如圖3所示。
R3是上拉電阻器,它可使USB口的D+端上拉到的VB端,表示USB主機(jī)系統(tǒng)是高速設(shè)備,同時這個上拉電阻器告訴主機(jī)有USB設(shè)備插入。該上拉電阻器的設(shè)置對適配器的影響很大,它的負(fù)載值和1-Wire網(wǎng)絡(luò)的總長決定1-Wire總線電壓上升到5 V的速度。經(jīng)過實驗測試選擇R3的阻值為27 Ω±lO%。R1、R2為USB數(shù)據(jù)線保護(hù)電阻器。L、L2具有禁止高頻干擾并且減弱EMI輻射的功能。為3.3 V電壓,與周圍元件C1、C2組成強(qiáng)上拉部分,給或溫度等器件提供額外的電源。
3.1.2 RJ-ll橋接電路的設(shè)計
橋接電路的原理如圖4所示。
是USB口與l-Wire器件的橋接電路,可直接連至USB主機(jī)系統(tǒng)。它可產(chǎn)生嚴(yán)格和受電壓擺率控制的1-Wire波形,并且可滿足USB接口通信協(xié)議的要求,保證USB口與l-Wire器件正常、安全地通信。
晶體振蕩器電路主要由X1構(gòu)成,在整個系統(tǒng)中非常重要,可保證DS2490S穩(wěn)定工作。為了產(chǎn)生/s的USB總線速率,系統(tǒng)使用12 MHz的晶體振蕩器。的接入是為了使晶體振蕩器更容易起振。肖特基D1,D2可消除來自于ESD采樣數(shù)的尖峰信號或通過分別導(dǎo)通D1,D2至GND,交叉耦合的鄰近,防止l-Wire總線過電壓。電阻器R5可限制ESD的電流并保護(hù)D1和D2。R4、R5和D3組成諧振電路,其特有的靜電晶體振蕩器放電功能可對1-Wire總線起到保護(hù)作用。
建議在1-Wire網(wǎng)絡(luò)應(yīng)用中使用阻抗約100 Ω非屏蔽雙絞。在本電路設(shè)計中考慮到這方面的原因,將R4、R5的阻值定為1 kΩ,滿足了適配器數(shù)據(jù)通信的要求。整體電路原理如圖5所示。
3.2 適配器軟件設(shè)計
軟件設(shè)計主要包括計算機(jī)端USB接口驅(qū)動程序模塊設(shè)計和DS2490S橋接模塊與讀取DS2432模塊的固件設(shè)計。在設(shè)計中將軟件程序模塊化,可方便調(diào)試和完善。本適配器軟件的設(shè)計是在Win-dows2000系統(tǒng)環(huán)境下進(jìn)行的,設(shè)計工具是VisualC++和DriverStudio。公司為軟件開發(fā)者提供了大量的驅(qū)動程序和測試代碼,使用時僅需針對具體情況進(jìn)行修改。這里不對源代碼進(jìn)行贅述,僅給出加密軟件流程,如圖6所示。
4 適配器通信信號性能測試
對于遠(yuǎn)程1-Wire測量網(wǎng)絡(luò)的通信,在核實信號時,尤其是在末端,必須使用差分探測器和探測器的地浮動參考。另外,探測器的地連接將設(shè)旁路1-Wire參考地并改變系統(tǒng)的拓?fù)?。如果沒有采用差分探測器,必須從總線地通過或使用供電的隔離的地。二者選其一來分離電源供電電纜的安全地。當(dāng)從遠(yuǎn)端反射信號時,在圖形下降沿末尾的中心會產(chǎn)生一些波動(俗稱“鞍”),這是傳輸線的自然動作。電纜短于100 m時看不到該“鞍”。由于條件所限,本適配器的通信信號性能測試在實驗室內(nèi)進(jìn)行。將適配器接入主機(jī)USB接口,再將示波器接入主機(jī),來掃描適配器傳輸?shù)男盘枴D7所示為示波器掃描時序。由圖中可以看出輸入/輸出信號的時序基本滿足1-Wire器件的信號時序,未出現(xiàn)尖峰或混沌現(xiàn)象,適配器的工作基本穩(wěn)定。
5 結(jié)束語
本設(shè)計在適配器硬件、用戶軟件及身份認(rèn)證方面做了一些探索性工作。1-Wire總線設(shè)備是公司力推的產(chǎn)品,雖然價格較高,上市時間不長,在業(yè)界還沒有得到廣泛的應(yīng)用,但具有眾多優(yōu)點,將會有很好的應(yīng)用前景。