1 概述 在數字化測控系統中,由于單總線微網僅使用1根導線進行雙向數據傳送,并同時為遠端器件提供電源,既降低了測控系統的硬件成本,又提高了系統的可靠性,因而是有著廣泛應用前景的現場總線技術。但是,由于單總線微網一方面要傳送數據, 另一方面還要向單總線器件提供電源,這必然造成單總線上供電電源電壓的波動;而測控系統中所使用的傳感器元件,其輸出值不僅正比于被測量,而且往往還與供電電源的電壓值有關,因此,為了保證傳證傳感器的測量精度,就必須進行相應的電壓校正。另外,傳感器的輸出值往往還受環境溫度的影響,也必須進行相應的溫度補償。 上述問題如果采用基于單總線的普通A/D轉換器件予以解決,會使相應的硬件電路及軟件編程過于復雜。這里利用Dallas 公司的單總線器件DS2438,巧妙地解決了上述問題。下面首先介紹該器件,并重點介紹該器件與測控系統相關的功能。 DS2438 是Dallas公司推出的智能電池監視器。該器件是為了解決便攜式電子產品電池工作狀態的實時監測而推出的,主要性能特點如下: ① 單總線器件,僅需1根口線實現電源及雙向數據傳輸; ②片內13位精度溫度傳感器,最小分辨率0.031 25℃; ③片內10位二通道電壓A/D轉換器,最小分辨率為10mV; ④片內10位電流A/D轉換器; ⑤片內40 字節非易失性用戶存儲器; ⑥片內逝去時間計數器,完成充放電時間計時; ⑦單電源工作,低功耗特性; ⑧工作溫度范圍為-40℃~+80℃。 DS2438采用SOIC表面貼裝封裝形式,其外形及引腳排列如圖1所示,引腳功能說明見表1。 ![]() 表 1 DS2438引腳功能說明 引腳號 引腳名稱 說 明 1 GND 接地 2 VSENS+ 電源電流監視輸入(+) 3 VSENS- 電池電流監視輸入(-) 4 VAD 通用A/D輸入端 5 VDD 供電電壓(2.4~10V) 6,7 NC 空引腳 8 DQ 數據輸入/輸出、1線操作、開漏 2 工作原理 DS2438的內部結構框圖如圖2所示。 ![]() 由圖2可知,DS2438由單總線接口、電壓A/D轉換器、電流A/D轉換器、溫度傳感器、時鐘電路、40字節的E2PROM及與上述硬件相關的寄存器組成。其中的電壓A/D轉換器的輸入,可編程為由VDD電源端輸入或VAD輸入端輸入,以滿足VDD電源端及外部輸入模擬量VAD的測量要求。 2.1 器件存儲單元 DS2438存儲器類型包括易失性的SRAM和非易失性的E2PROM。 DS2438內部的存儲器為一個總容量64字節的存儲器。存儲器被分為8頁,每頁8字節,頁地址為00~07H。其中第00頁是訪問頻率最高的頁,該頁的結構如表2所列。 表2 DS2438存儲器第00頁結構 字節序號 名 稱 內 容 讀/寫特性 易失特性 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 狀態/配置寄存器 X ADB NV TB AD EE CA IAD 讀 非易失 1 溫度低位寄存器 2 -1 2 -2 2 -3 2 -4 2 -5 0 0 0 讀 非易失 2 濕度高位寄存器 S 2 6 2 5 2 4 2 3 2 2 2 1 2 0 讀 非易失 3 電壓低位寄存器 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 讀 非易失 4 電壓高位寄存器 0 0 0 0 0 0 2 9 2 8 讀 非易失 5 電流低位寄存器 0 0 0 0 0 0 2 9 2 8 讀 非易失 6 電流高位寄存器 S S S S S S S 2 8 讀 非易失 7 閾值寄存器 TH2 TH1 0 0 0 0 0 0 讀/ 寫 易失 第1頁為電流累加器、逝去時間計數器和電流補償單元;每2頁包括非易失性時間和充電時間標記;第3~7頁是40字節的提供給用戶使用的 E2PROM,可用于保存用戶數據。 2.2 寄存器 DS2438所有的寄存器都映射到上述的存儲器中,同時對 DS2438的操作都是通過寄存器進行的。 (1)狀態寄存器 狀態寄存器位于存儲器00頁的第0字節,該寄存器用于DS2438的功能控制,其中各位的默認值為1,含義如下: *IAD為電流A/D控制位。IAD=1,啟用電流A/D和ICA, 且以32Hz速率測量電流;IAD=0,禁用電流A/D和ICA。 *CA為電流累加器配置位。CA=1,啟用CCA/DCA存儲數據且可從第7頁恢復數據;CA=0,禁用CCA/DCA,第7頁可用于普通E2PROM存儲。 *EE為隱蔽電流累加器位。 EE=1,將CCA/DCA計數器數據隱蔽到E2PROM,電量每增加0.32C,當前計數器加1;EE=0,CCA/DCA計數器數據將不隱蔽到 E2PROM。 *AD為電壓A/D輸入選擇位。AD=1,電壓A/D選擇由VDD端輸入;AD=0,電壓A/D選擇由VAD端輸入。 *TB為溫度轉換忙標志位。TB=1,溫度轉換正在進行;TB=0,溫度轉換結束。 *NVB為非易失存儲忙標志位。NVB=1,在從可擦除區復制到E2PROM的存儲過程中;NVB=0,非易失存儲空閑狀態。一次E2PROM存儲占用2~10ms。 *ADB為A/D轉換標志位,ADB=1,電壓A/D轉換正在進行;ADB=0,轉換結束或無測量。一次A/D轉換占用約10ms。 *X為不定位。 (2)溫度寄存器 DS2438可在-55~+125℃范圍內以0.031 25℃的分辨率測量溫度值,溫度值為2的碼形式通過2字節溫度寄存器輸出。其中符號位S指示溫度值為正或負;S=0,溫度值為正;S=1,溫度值為負。 (3)電壓寄存器 DS2438的電壓輸入范圍是0~10V,且電壓ADC的輸入,可通過狀態/結構寄存器的AD位來選擇由VDD輸入或由VAD輸入。電壓A/D轉換的結果放在2字節電壓寄存器中,單位為mV。 (4)電流寄存器 DS2438通過測量電流取樣電阻RSENS兩端的電壓來間接測量流過電池的電流。采用10位ADC,其分辨率為0.005C,電流測量值的結果放在2字節的電流寄存器中其中電流測量符號位S,用于指示充電或放電。 2.3 單總線協議 DS2438是Dallas公司基于單總線的器件。該器件的操作完全遵循單總線協議,其ROM命令有4個。 ①讀ROM[33H]; ②匹配 ROM[55H]; ③跳過ROM[F0H]。 主機在操作DS2348之前,必須先發送上述4個ROM命令中的一個。在DS2438成功執行上述命令之后,主機可使用下面的內存命令操作DS2438。 由于DS2438的內存分為7頁,故其內存操作命令和其它的單總線器件略有不同。DS2438的內存操作命令如下: ①寫高速暫存存儲器[4EHXXH]; ②讀高速暫存存儲器[BEHXXH]; ③讀制高速暫存存儲器[48HXX]; ④恢復存儲器 [B8HXXH]; ⑤溫度轉換命令[44H]; ⑥電壓轉換命令[B4H]。 上述內存命令中的XXH為高速暫存存儲器的頁地址,有效的頁碼地址為00~07H。 DS2438對高速暫存存儲器的操作中,除了基本的命令外,還必須將等操作的高暫存存儲器的頁地址送出去。DS2438允許1次讀/寫1頁內的全部8個字節,且讀寫字節操作可使用復位命令在任何瞬間終止。 值得注意的是,DS2438的溫度轉換命令及電壓轉換命令發出后,主機需等待10~20ms,以使DS2438完成溫度及電壓轉換;同時, 若采用寄生電源供電,應將總線拉高,以保證充足的能量供應。 3 DS2438在單總線微網中的應用 下面給出將DS2438應用于單總線微網的具體實例:單總線溫度傳感器設計。溫度的測量在倉儲檢測、生產制造及日常生活中有著廣泛的應用, 但濕度的測量卻較困難。原因是溫度傳感器大都為模擬小信號輸出,且在線性度、重復性、一致性等方面不盡如意。如果能夠利用現有的模擬濕度傳感器,設計出基于單總線的數字式濕度傳感器,則可配合單總線微網技術構成全數字化的多點溫濕度測量系統,如數字化糧情檢測、數字化倉儲檢測系統等。即可降低系統布線費用,又可提高系統性能,因而具有非常不定期實的意義。這里,利用模擬大信號相對濕度傳感器并配合DS2438,設計出一種完全符合單總線協議的濕度傳感器(電路參見圖4)。 ![]() 3.1 濕度傳感器 由于單總線微網采用寄存電源的方式向單總線器件供電,因此, 要求掛接在單總線微網上的器件必須滿足低功耗的要求。這里,選用了具有低功耗特性的模擬大信號濕度傳感器HIH-3610。HIH-3610是美國 Honeywell公司生產的相對濕度傳感器。該傳器采用熱固聚酯電容式傳感頭,同時在內部集成了信號處理功能電路,因此,可完成將相對濕度值變換成電容值,再將電容傳轉換成線性的電壓輸出。同時該傳感器還具精度高、響應快速、高穩定性、低溫漂、抗化學腐蝕性能強及互換性好等優點,其性能指標如表3所列, 輸出電壓與相對濕度的關系曲線如圖3所示。 ![]() 表 3 HIH-3610濕度傳感器性能指標 參 數指 標 RH精度±2%RH,0~100%RH非凝結,25℃(DC供電電壓=5V) RH互換性±5%RH,0~60%RH;±8%@90%RH RH線懷±0.5%RH典型值 RH遲滯±1.2%的RH最大量程 RH重復性0.5%RH RH反應時間/s30(慢流動的空氣中,1/e@25℃) RH穩定性±1%RH典型值,50%RH,5年時間內 DC供電電壓/V4~9(傳感器在DC5V下標定) 消耗電流/mA0.2(DC 5V);2(典型值,DC9V) 輸出電壓Vout=Vsuppl[0.0062(sensor%RH)+0.16] 溫度補償RH(sensor%RH)/(1.0546-0.0216t) 由性能指標及輸出電壓與相對濕度的關系曲線,可得出如下結論。 ①HIH-3610在供電電壓為5V時,其消耗電流僅為200μA,完全可滿足單總線微網對器件低功耗的要求。 ②HIH-3610輸出電壓為Vout=Vsupply[0.0062(sensor%RH)+0.16]即輸出電壓Vout不僅正比于濕度測量值,且與電源電壓值Vsupply圾關。若Vsupply固定為5V,則其值僅由相對濕度值決定,但由于單總線上的供電電壓值為變量,故要求在進行濕度測量的同時還應測量電源電壓Vsupply的值。 ③HIH-3610輸出的濕度值還與環境溫度有關,故應進行溫度補償,補償公式為RH=(sensor%RH)/1.0546-0.0216t 因此,為得到準確的濕度測量值,還應在測量濕度的同時測量環境濕度和單總線供電電壓值。 3.2 DS2438與傳感器接口 本系統中利用DS2438來同時完成對環境溫度的測量、單總線電源電壓的測量及濕度傳感器輸出電壓值的測量。由圖4可知,為了滿足寄生電源工作的要求,為傳感器設計了相應的電源電路。電源電路由VD1、VD2及電容C1構成。其中二極管VD2和電容C1構成半波整流電路,在總線空閑時為 DS2438和HIH-3610供電。DS2438的5腳VDD端的電位即是HIH-3610的電源電壓。通過編程DS2438內部的狀態/結構寄存器的 “AD”位,使二通道電壓A/D轉換器的輸入選擇為VDD端,可完成HIH-3610電源電壓測量功能。通過編程狀態/結構寄存器的“AD”位,使二通道電壓A/D轉換器的輸入選擇為VAD端,即HIH-3610的濕度電壓值輸出端可完成濕度值測量功能,環境溫度的測量可由DS2438內部的濕度傳感器完成,因此,使用1片DS2438即可完成濕度值的測量,并可由相應的軟件算法實現電源電壓的校正及環境溫度補償。 3.3 單片機與傳感器的接口 單片機與單總線濕度傳感器的接口電路如圖4所示。 圖4 單總線濕度傳感器及與單片機的接口 點擊放大 單片機選用AT89C52單片機。這里利用單片機的P1.0口線作為單總線接口;單總線濕度傳感器采用寄存電源供電方式;P1.0口線外接一只 4.7kΩ的上拉電阻,可在總線空閑時向濕度傳感器提供能量。 3.4 軟件編程 網絡補充版(http://www.dpj.com.cn)中,給出單總線濕度傳感器相關的數據采集程序,包括讀濕度測量值、讀單總線供電電壓值及讀濕度值子程序。 結語 由DS2438構成的單總線數字式濕度傳感器,硬件電路結構簡單,與單總線微網的連接也十分簡單;可輕松構成多點數字式濕溫度監測系統,因而 DS2438在類似的單總線微網測控系統中有著廣泛的應用前景。 |