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