1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      用MAXQ3210構建1-Wire溫度記錄儀

      更新時間: 2007-10-18 09:20:06來源: 粵嵌教育瀏覽量:828

        環境監測通常需要小巧靈活的微控制器。如果在這類應用中使用PC機,那么對其計算能力和存儲容量來說都是一種浪費??刹捎靡粋€專用微控制器與溫、濕度傳感器或其他環境監測傳感器通信,讀取并存儲監測數據。為實現更高的靈活性,這些微控制器可連成網絡,各自將監測數據上傳到功能更強大的系統中,對整體環境參數進行分析記錄。本文介紹如何使用低功耗微控制器MAXQ3210實現環境監測應用。增加一個通過一根1-Wire總線實現供電和通信的數字溫度傳感器DS1822,即可用少的元器件構建一個電池供電的非易失溫度記錄系統。


      圖1  MAXQ3210 1-Wire溫度記錄儀演示電路所需的元器件

        1  設計目標

        代碼采用MAXQ匯編語言編寫,在MAXIDE開發環境自帶的標準宏匯編預處理器和匯編器中編譯。該代碼是為MAXQ3210評估板編寫的,因此還需要以下器件(如圖1所示)。

        ◆ 溫度傳感器: DS1822 經濟型1-Wire 數字溫度傳感器(TO92 封裝)。
        ◆ RS-232 電平裝換: MAX233ACWP。演示代碼要完成以下任務(如圖2所示):
        ◆ 通過1-Wire網絡(BitBang)與溫度傳感器DS1822 通信。
        ◆ 每秒喚醒一次測量溫度。
        ◆ 將溫度數據存儲在MAXQ3210內部的EEPROM中。
        ◆ 上電后,以9 600 bps的速率通過串口以Bit-Bang方式發送溫度記錄數據。
        ◆ 在發送前將溫度數據轉換成容易識別的ASCII格式(十進制華氏度)。
        ◆ 根據主機要求清空存儲器(擦除在EEPROM中存儲的溫度數據)。


      圖2  溫度記錄應用的程序流程圖

        幾乎所有低功耗MAXQ 微控制器都可實現這一應用,但MAXQ3210更適用于溫度記錄。(MAXQ3210的內部構成及特點略——編者注)

        2  驅動1-Wire網絡

        Dallas/Maxim提供一系列使用1-Wire網絡接口的傳感器和其他器件。該接口數據通信和供電僅需一根數據線和一根地線。1- Wire網絡工作在“一主多從”模式(多點網絡),時序非常靈活,允許從機以高達16 kbps的速率與主機通信。每個1-Wire器件都有一個全球的64位ROM ID,允許主機精確選擇位于網絡任何位置的一個從機通信。

        1-Wire總線采用漏極開路模式工作,主機(或需要輸出數據的從機)將數據線拉低到地表示數據“0”,將數據線釋放為高表示數據“1”。這通常通過在數據線和Vcc之間連一個分立電阻實現,但MAXQ3210端口引腳支持弱上拉模式,只需將引腳切換到弱上拉模式,數據線即可浮高。因此 MAXQ3210無須外接電阻。由于主機和從機僅需將數據線拉低,而從不將數據線主動拉高,因此數據線可以實現“線或”功能,這可防止多個從機試圖同時通過1-Wire總線發送數據時出現沖突。

        為驅動1-Wire網絡,MAXQ3210利用軟件在一個引腳上實現以下類型的時隙。由于1-Wire所有時隙由主機啟動,因此當MAXQ3210 不與從機通信時不需要監測1-Wire線路,有關1-Wire 時序的更多詳細信息請參考DS1822的數據資料。

        由于MAXQ3210 每毫秒約等于3個半指令周期(約3.58 MHz),軟件可利用一個端口引腳(P1.6)方便地實現1-Wire協議。實現讀時隙的功能與之類似。注意,在1-Wire總線上所有數據均為低有效位(LSB)先發。

        3  用DS1822測量溫度

        3.1  DS1822簡介

        盡管MAXQ3210可以使用上面的代碼與多數1-Wire 從機器件通信,但在本應用中將主要考慮與DS1822通信。DS1822 是一個1-Wire從機器件,可實現9~12位的攝氏溫度測量,測量結果可被1-Wire主機讀取。與多數1-Wire從機一樣,DS1822可以完全由 1-Wire總線供電,稱為“寄生供電”。DS1822的測量范圍可達-55~+125 ℃,適用于多數的室內外溫度測量應用;溫度分辨率在9位下為0.5 ℃,12位下0.062 5 ℃。進行一次溫度轉換所需時間在低分辨率下約為94 ms,在分辨率下約為750 ms。由于這是一個簡單應用,因此選擇9位分辨率,并忽略小位(0.5 ℃)。這樣就可使整個8位帶符號溫度數據與MAXQ3210的8位累加器匹配。

        所有的1-Wire從機器件都支持一個通用指令集,從而使得主機可以判斷總線上的從機數目,讀取ROM ID;并且可以與某一個從機或一組從機進行通信,一旦某個1-Wire從機被激活,主機可以針對該從機類型向其發送特殊指令。其他所有未被激活的從機均處于等待狀態,直到下一個復位脈沖出現,才開始再次監測1-Wire總線。

        由于本應用中總線上僅有一個器件,因此可使用簡單的指令集訪問從機器件,而無須讀取從機的ROM ID。當總線上有多個從機器件時,ROM ID被用來區分不同的從機器件。我們的程序中也讀取了一次DS1822的ROM ID,但僅為了演示。

        3.2  將測量結果存儲在數據EEPROM中

        為防止1-Wire總線偶然出現數據錯誤,演示代碼每次測量都執行3次溫度轉換(A,B和C) ,并從中選擇一個結果存儲。選擇的依據為:

        ◆ 如果所有數據相同,則存儲該數據。
        ◆ 如果3個中有兩個數據相同(A = B,B = C或A = C),則選擇該數據存儲。
        ◆ 如果沒有數據相同,則取中間值存儲。例如,如果A>B>C,則存儲B。

        被選中的值被寫入數據EEPROM的一個字中。由于采樣結果為一個字節,每個字的高字節被用來指示該記錄(如字)是否為空。如果高字節為0,則該記錄/字為空;如果高字節非0,則低字節為有效溫度數據。這樣就能區分空記錄和存儲數據為0 ℃的有效數據。

        記錄采用循環方式,從數據EEPROM地址020h開始到05Fh結束,然后再回到開始處。 之后每寫入一個新記錄,將擦除一個舊的記錄。當通過串行接口向外發送數據時,應用程序通過查找前面是否又有空記錄的方式定位舊的記錄數據。

        3.3  溫度記錄數據

        每次上電復位后,應用程序向主機系統發送溫度記錄數據,數據通過10位異步串行接口以9 600 bps的速率發送(1位開始位,8位數據位,1位停止位)。MAXQ3210不帶硬件UART串口,需要使用一個端口引腳模擬。由于本應用只須發送,無須接收,所以實現起來比較簡單。相關程序可從Maxim網站獲得。

        4  結論

        封裝小、功耗低、I/O靈活的MAXQ3210是電池供電的環境監測應用的選擇。許多1-Wire傳感器可被用來測量溫度、濕度等環境參數,而這些傳感器又可僅通過一個端口實現與MAX3210的接口。,數據還可以被存儲在MAXQ3210自帶的非易失EEPROM 存儲器中,供以后查詢和分析。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩欧美精品一本二本道一区 | 亚洲日韩在线中文字幕第一页 | 日韩全裸美女1区2区在线免费观看 | 亚洲欧洲视频一区直播在线 | 最新亚洲第一AV在线 | 日韩专区亚洲精品 |