引言
隨著測(cè)控系統(tǒng)的自動(dòng)化程度、復(fù)雜性、精度和可靠性要求的不斷提高,人們對(duì)傳感器性能的要求也越來(lái)越高。目前IEEE 1451.4為傳感器提供了新的標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)建立了一個(gè)使傳感器具有即插即用功能的通用方法——為模擬接口傳感器附加自我描述的功能,以減少傳感器配置所用的時(shí)間,以及在此過(guò)程中面臨的風(fēng)險(xiǎn)。識(shí)別模塊作為即捅即用傳感器的重要組成部分,為傳感器提供自我描述信息。DS2430A是Maxim公司推出的256位一線式EE-PROM,具有3引腳TO-92小體積封裝形式或6引腳TSOC表面貼封裝形式,能安裝到印制電路板上或進(jìn)行引線,其典型應(yīng)用包括儲(chǔ)存校準(zhǔn)系數(shù)、板卡識(shí)別以及產(chǎn)品升級(jí)的狀態(tài)信息等,很適合應(yīng)用到即插即用傳感器系統(tǒng)的識(shí)別模塊中。它除了具有一般1-Wire器件的特性外,還有一些特殊的結(jié)構(gòu)和要求。
1 DS2430A的內(nèi)部基本結(jié)構(gòu)
DS2430A內(nèi)部結(jié)構(gòu)如圖1所示。DS2430A有2個(gè)主要的數(shù)據(jù)部件:光刻ROM和存儲(chǔ)器。其存儲(chǔ)器由3個(gè)獨(dú)立部分組成,分別為256位數(shù)據(jù)存儲(chǔ)器EEPROM、64位應(yīng)用寄存器和8位狀態(tài)寄存器。每個(gè)數(shù)據(jù)存儲(chǔ)器和應(yīng)用寄存器都有其對(duì)應(yīng)的暫存單元,稱為暫存器,當(dāng)向該器件寫入數(shù)據(jù)時(shí),暫存器可作為緩沖器使用。數(shù)據(jù)存儲(chǔ)器可在需要時(shí)反復(fù)讀寫,而應(yīng)用寄存器只能編程一次。一旦對(duì)應(yīng)用寄存器進(jìn)行編程,它將自動(dòng)進(jìn)入寫保護(hù)狀態(tài)。狀態(tài)寄存器用于指示應(yīng)用寄存器是否已被鎖定或是否可用于存儲(chǔ)數(shù)據(jù)。在應(yīng)用寄存器被編程之前,讀出的狀態(tài)寄存器值是FFH。當(dāng)把暫存器的數(shù)據(jù)寫入到應(yīng)用寄存器時(shí),狀態(tài)寄存器的兩個(gè)最低有效位將被清零,此后讀出的狀態(tài)寄存器結(jié)果是FCH。
2 DS2430A的存儲(chǔ)器功能命令及使用方法
(1)Write Scratchpad[0Fh]寫暫存器
發(fā)出Write Scratchpad命令后,緊接著單片機(jī)必須發(fā)出1字節(jié)的地址,隨后將需要送入數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)寫入暫存器。DS2430A每收到1字節(jié)后地址會(huì)自動(dòng)加1。當(dāng)?shù)刂窞?Fh的暫存器也收到了數(shù)據(jù)字節(jié)以后,地址計(jì)數(shù)器將返回到OOh,可繼續(xù)寫入下一個(gè)字節(jié),直到單片機(jī)發(fā)出復(fù)位脈沖。
(2)Read Scratchpad[AAh]讀暫存器
該命令用于在將暫存器數(shù)據(jù)復(fù)制到EEPROM存儲(chǔ)器之前對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。單片機(jī)發(fā)出Read Scratchpad命令后,要緊接著發(fā)出1字節(jié)的地址,表明讀取數(shù)據(jù)的起始地址。主機(jī)每讀取一個(gè)字節(jié),DS2430A地址將自動(dòng)加1。讀取地址為1Fh的數(shù)據(jù)后,地址計(jì)數(shù)器將返回到OOh,可繼續(xù)讀取下一個(gè)字節(jié),直到單片機(jī)發(fā)出復(fù)位脈沖。
(3)Copy Scratchpad[55h]復(fù)制暫存器
存入暫存器的數(shù)據(jù)經(jīng)過(guò)確認(rèn)后,單片機(jī)便可發(fā)出Copy Scratchpad命令和確認(rèn)字節(jié)A5h,把數(shù)據(jù)從暫存器寫入EEPROM存儲(chǔ)器。該命令總是把暫存器的全部數(shù)據(jù)復(fù)制到EEPROM。如果只想改變EEPROM中幾個(gè)字節(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]讀存儲(chǔ)器
Read Memory命令用于讀取EEPROM數(shù)據(jù)存儲(chǔ)器中的部分或全部數(shù)據(jù),或把數(shù)據(jù)存儲(chǔ)器中的全部?jī)?nèi)容復(fù)制到暫存器,為僅改變EEPROM部分字節(jié)做準(zhǔn)備。當(dāng)把數(shù)據(jù)從數(shù)據(jù)存儲(chǔ)器復(fù)制到暫存器并進(jìn)行讀取時(shí),單片機(jī)必須發(fā)出Read Memory命令和1字節(jié)的數(shù)據(jù)讀取起始地址。單片機(jī)每讀取1字節(jié)的數(shù)據(jù),DS2430A的地址自動(dòng)加1。讀取地址1Fh的數(shù)據(jù)后,地址計(jì)數(shù)器將返回到00h,以便繼續(xù)讀取下一個(gè)字節(jié),直到主機(jī)發(fā)出復(fù)位脈沖。如果只希望將數(shù)據(jù)存儲(chǔ)器中的全部數(shù)據(jù)復(fù)制到暫存器中,而不必讀取數(shù)據(jù),單片機(jī)可以在發(fā)出命令字節(jié)后,立即發(fā)送復(fù)位脈沖。
(5)Write ApplicaTIon Register[99h]寫應(yīng)用寄存器
該命令與Write Scratchpad命令基本相同,只是它是向64位應(yīng)用寄存器的暫存器寫入數(shù)據(jù)。在發(fā)出命令代碼后,主機(jī)必須提供1字節(jié)的地址,隨后發(fā)送要寫入的數(shù)據(jù)。DS2430每收到1字節(jié)后地址會(huì)自動(dòng)加1。當(dāng)?shù)刂窞?7h的暫存器收到數(shù)據(jù)后,地址計(jì)數(shù)器將返回到00h,可繼續(xù)寫入下一個(gè)字節(jié),直到主機(jī)發(fā)出復(fù)位脈沖。只要應(yīng)用寄存器未被鎖定,就可以使用Write