引言
隨著測控系統(tǒng)的自動化程度、復(fù)雜性,、精度和可靠性要求的不斷提高,,人們對傳感器" title="傳感器">傳感器性能的要求也越來越高。目前IEEE 1451.4為傳感器提供了新的標(biāo)準(zhǔn),。該標(biāo)準(zhǔn)建立了一個使傳感器具有即插即用" title="即插即用">即插即用功能的通用方法——為模擬接口傳感器附加自我描述的功能,,以減少傳感器配置所用的時間,以及在此過程中面臨的風(fēng)險,。識別模塊作為即捅即用傳感器的重要組成部分,,為傳感器提供自我描述信息。DS2430A" title="DS2430A">DS2430A是Maxim公司推出的256位一線式EE-PROM,,具有3引腳TO-92小體積封裝形式或6引腳TSOC表面貼封裝形式,,能安裝到印制電路板上或進行引線,其典型應(yīng)用包括儲存校準(zhǔn)系數(shù),、板卡識別以及產(chǎn)品升級的狀態(tài)信息等,,很適合應(yīng)用到即插即用傳感器系統(tǒng)的識別模塊中。它除了具有一般1-Wire器件的特性外,,還有一些特殊的結(jié)構(gòu)和要求,。
1 DS2430A的內(nèi)部基本結(jié)構(gòu)
DS2430A內(nèi)部結(jié)構(gòu)如圖1所示,。DS2430A有2個主要的數(shù)據(jù)部件:光刻ROM和存儲器,。其存儲器由3個獨立部分組成,分別為256位數(shù)據(jù)存儲器EEPROM,、64位應(yīng)用寄存器和8位狀態(tài)寄存器,。每個數(shù)據(jù)存儲器和應(yīng)用寄存器都有其對應(yīng)的暫存單元,稱為暫存器,,當(dāng)向該器件寫入數(shù)據(jù)時,,暫存器可作為緩沖器使用。數(shù)據(jù)存儲器可在需要時反復(fù)讀寫,,而應(yīng)用寄存器只能編程一次,。一旦對應(yīng)用寄存器進行編程,它將自動進入寫保護狀態(tài),。狀態(tài)寄存器用于指示應(yīng)用寄存器是否已被鎖定或是否可用于存儲數(shù)據(jù),。在應(yīng)用寄存器被編程之前,讀出的狀態(tài)寄存器值是FFH,。當(dāng)把暫存器的數(shù)據(jù)寫入到應(yīng)用寄存器時,,狀態(tài)寄存器的兩個最低有效位將被清零,此后讀出的狀態(tài)寄存器結(jié)果是FCH,。
2 DS2430A的存儲器功能命令及使用方法
(1)Write Scratchpad[0Fh]寫暫存器
發(fā)出Write Scratchpad命令后,,緊接著單片機必須發(fā)出1字節(jié)的地址,隨后將需要送入數(shù)據(jù)存儲器的數(shù)據(jù)寫入暫存器。DS2430A每收到1字節(jié)后地址會自動加1,。當(dāng)?shù)刂窞?Fh的暫存器也收到了數(shù)據(jù)字節(jié)以后,,地址計數(shù)器將返回到OOh,可繼續(xù)寫入下一個字節(jié),,直到單片機發(fā)出復(fù)位脈沖,。
(2)Read Scratchpad[AAh]讀暫存器
該命令用于在將暫存器數(shù)據(jù)復(fù)制到EEPROM存儲器之前對數(shù)據(jù)進行驗證。單片機發(fā)出Read Scratchpad命令后,,要緊接著發(fā)出1字節(jié)的地址,,表明讀取數(shù)據(jù)的起始地址。主機每讀取一個字節(jié),,DS2430A地址將自動加1,。讀取地址為1Fh的數(shù)據(jù)后,地址計數(shù)器將返回到OOh,,可繼續(xù)讀取下一個字節(jié),,直到單片機發(fā)出復(fù)位脈沖。
(3)Copy Scratchpad[55h]復(fù)制暫存器
存入暫存器的數(shù)據(jù)經(jīng)過確認后,,單片機便可發(fā)出Copy Scratchpad命令和確認字節(jié)A5h,,把數(shù)據(jù)從暫存器寫入EEPROM存儲器。該命令總是把暫存器的全部數(shù)據(jù)復(fù)制到EEPROM,。如果只想改變EEPROM中幾個字節(jié)的數(shù)據(jù),,在發(fā)出Write Scratchpad和Copy Scrlatchpad命令之前,暫存器中應(yīng)該包含了最新的EE-PROM數(shù)據(jù),。發(fā)出該命令后,,數(shù)據(jù)線要保持邏輯高電平狀態(tài)至少10 ms。
(4)Read Memory[F0h]讀存儲器
Read Memory命令用于讀取EEPROM數(shù)據(jù)存儲器中的部分或全部數(shù)據(jù),,或把數(shù)據(jù)存儲器中的全部內(nèi)容復(fù)制到暫存器,,為僅改變EEPROM部分字節(jié)做準(zhǔn)備。當(dāng)把數(shù)據(jù)從數(shù)據(jù)存儲器復(fù)制到暫存器并進行讀取時,,單片機必須發(fā)出Read Memory命令和1字節(jié)的數(shù)據(jù)讀取起始地址,。單片機每讀取1字節(jié)的數(shù)據(jù),DS2430A的地址自動加1,。讀取地址1Fh的數(shù)據(jù)后,,地址計數(shù)器將返回到00h,以便繼續(xù)讀取下一個字節(jié),,直到主機發(fā)出復(fù)位脈沖,。如果只希望將數(shù)據(jù)存儲器中的全部數(shù)據(jù)復(fù)制到暫存器中,而不必讀取數(shù)據(jù),,單片機可以在發(fā)出命令字節(jié)后,,立即發(fā)送復(fù)位脈沖,。
(5)Write Application Register[99h]寫應(yīng)用寄存器
該命令與Write Scratchpad命令基本相同,只是它是向64位應(yīng)用寄存器的暫存器寫入數(shù)據(jù),。在發(fā)出命令代碼后,,主機必須提供1字節(jié)的地址,隨后發(fā)送要寫入的數(shù)據(jù),。DS2430每收到1字節(jié)后地址會自動加1,。當(dāng)?shù)刂窞?7h的暫存器收到數(shù)據(jù)后,地址計數(shù)器將返回到00h,,可繼續(xù)寫入下一個字節(jié),,直到主機發(fā)出復(fù)位脈沖。只要應(yīng)用寄存器未被鎖定,,就可以使用Write Application Register命令,。如果向已經(jīng)鎖定的應(yīng)用寄存器發(fā)出該命令,寫入寄存器暫存器的數(shù)據(jù)將會丟失,。
(6)Read Status Register[66h]讀狀態(tài)寄存器
狀態(tài)寄存器的主要作用是向主機指示應(yīng)用寄存器是否已編程并鎖定,。在主機發(fā)出讀狀態(tài)寄存器命令后,在接收狀態(tài)信息之前必須發(fā)出確認字節(jié)00h,。如果應(yīng)用寄存器已被編程并鎖定,,8位狀態(tài)寄存器中的2個最低有效位為O,而其余各位全部為1,。單片機可以在任何時候通過發(fā)出復(fù)位脈沖結(jié)束,。
(7)Read Application Register[C3h]讀應(yīng)用寄存器
該命令用來讀取應(yīng)用寄存器或寄存器暫存器。只要應(yīng)用寄存器未鎖定,,將接收來自寄存器暫存器的數(shù)據(jù),。當(dāng)應(yīng)用寄存器鎖定時,,DS2430A將從應(yīng)用寄存器傳送數(shù)據(jù),,使得寄存器暫存器的內(nèi)容無法讀取。狀態(tài)寄存器的內(nèi)容確定通過該命令接收到的數(shù)據(jù)來自何處,。發(fā)出Read Appli-cation Register命令后,,主機必須提供1字節(jié)的數(shù)據(jù)讀取起始地址。單片機每讀取1字節(jié),,DS2430A地址將自動加1,。讀取地址07h的數(shù)據(jù)后,地址計數(shù)器將返回到00h,,以便繼續(xù)讀取下一個字節(jié),,直到主機發(fā)送復(fù)位脈沖。
(8)Copy&Lock Application Register[5Ah]復(fù)制并鎖存應(yīng)用寄存器
當(dāng)存儲到寄存器暫存單元的數(shù)據(jù)確認后,,主機便可發(fā)出Copy&Lock Application Register命令和確認字節(jié)A5h,,把數(shù)據(jù)從寄存器暫存器全部寫入到應(yīng)用寄存器并對應(yīng)用寄存器進行寫保護,。主機也可以通過發(fā)送復(fù)位脈沖(而不是確認字節(jié))取消該命令。在確認字節(jié)發(fā)出后,,應(yīng)用寄存器中將包含寄存器暫存器的數(shù)據(jù),。隨后對應(yīng)用寄存器進行的寫訪問將被拒絕。注意Copy&Lock Application Register命令只能執(zhí)行1次,。
3 DS2430A的基本操作流程
DS2430A的基本操作流程:初始化→ROM功能命令→存儲器功能命令→數(shù)據(jù)傳輸,。與一般的1-Wire器件類似,所有數(shù)據(jù)處理均從初始化開始,,數(shù)據(jù)傳輸都是從低位開始,。初始化過程由單片機發(fā)送的復(fù)位脈沖和DS2430A發(fā)送的在線應(yīng)答脈沖組成。應(yīng)答脈沖用于通知單片機DS2430A已掛接在總線上,,并已準(zhǔn)備就緒,。一旦單片機檢測到在線應(yīng)答脈沖,就可以發(fā)出4條ROM功能命令中的1個,。所有ROM功能命令的字長均是8位,,表1是這些ROM命令的簡要介紹。
4 DS2430在即插即用傳感器系統(tǒng)中的應(yīng)用
即插即用傳感器測量系統(tǒng)在硬件方面,,主要由以下幾個部分組成:傳感器單元(包括傳統(tǒng)模擬傳感器和識別模塊),、供電單元、信號調(diào)理單元,、A/D轉(zhuǎn)換單元,,如圖2所示。
系統(tǒng)工作過程如下:單片機讀取識別模塊的信息,,用以辨識當(dāng)前與系統(tǒng)連接的傳感器,,然后根據(jù)識別模塊的信息對調(diào)理電路進行適當(dāng)配置;傳感器輸出的信號經(jīng)過A/D轉(zhuǎn)換后送入單片機,。若有必要,,單片機可以通過適當(dāng)?shù)姆绞綄?shù)據(jù)傳輸至上位機。如果要更換不同的傳感器,,只需將單片機復(fù)位,,系統(tǒng)即可再次根據(jù)當(dāng)前傳感器單元的需要對電路進行配置,毋需人工干涉,,從而實現(xiàn)了傳感器的即插即用,。為實現(xiàn)這些目的,IEEE 1451.4標(biāo)準(zhǔn)定義了一種混合模式的接口,,在保留了傳統(tǒng)傳感器模擬信號的同時,,又附加了一個低成本的數(shù)字接口,用以傳送嵌入在傳感器中的傳感器電子數(shù)據(jù)表(TEDS),,以實現(xiàn)自我身份識別和自我描述的功能,。采用DS2430A構(gòu)成的識別模塊主要存儲用于配置傳感器的TEDS信息,。利用單片機AT89S51的P1.0腳向DS2430A數(shù)據(jù)存儲器單元00H和1FH寫入32字節(jié)TEDS數(shù)據(jù),然后讀取數(shù)據(jù)存儲器的全部TEDS數(shù)據(jù),。單片機控制識別模塊的工作過程如圖3所示,。
5 實例仿真
根據(jù)DS2430在即插即用傳感器系統(tǒng)中的應(yīng)用要求,設(shè)計了DS2430與單片機AT89S51連接的Proteus仿真" title="Proteus仿真">Proteus仿真電路,,如圖4所示,。
該電路實現(xiàn)了32字節(jié)的數(shù)據(jù)讀/寫、校驗,,完全滿足即插即用傳感器系統(tǒng)中對識別模塊的要求,。