王亞林 郭文慧 查文華
摘 要:監控煤礦運煤皮帶與滾動軸之間的摩擦溫度。利用雙CPU實現高速數據交換和處理,將主控和數據處理等功能分開執行。利用多個紅外測溫傳感器MLX90614,分別固定在各滾軸附近,其簡單的SCK和SDA接口,直接連接于CPU的普通I/O口,各自對應一個不同地址,快速完成滾軸溫度檢測。利用雙端口RAM作為共享數據存儲器,兩個端口有兩套完全獨立的控制總線、地址總線和I/O數據總線,可獨立讀/寫任意地址單元,兩個CPU共享該存儲器,提高了系統的數據傳輸速率。
關鍵詞:MLX90614 雙端口RAM 雙CPU 溫度監控
中圖分類號:TP393 文獻標識碼:A 文章編號:1674-098X(2014)09(c)-0055-02
礦井皮帶機運煤過程中,皮帶與滾軸摩擦容易溫度升高,造成了火災隱患。設計溫度監控,及時觀察溫度異常,并做出防范措施。如果利用接觸式測溫,響應時間長,也受環境影響大;而利用紅外測溫,避免了與物體接觸,響應速度快,測溫范圍廣,不受溫度上限的限制,只需沿滾軸方向,分布防止紅外測量儀,可實時監控溫度異常位置;紅外測溫模塊的數據輸出方式以系統管理總線(SMBus)輸出,可以和多個設備互傳信息,避免了使用獨立的控制線路,也避免了在無法響應及處理串行中斷時,發生數據丟失或者錯誤等問題。利用雙CPU進行高速數據交換和處理,一個用于實現系統的主控制功能,另一個則完成數據傳送、數據處理等功能[1]。
1 硬件結構框圖
硬件結構框圖的具體功能如下:
(1)接收、處理皮帶運行中的溫度狀況,做出超溫報警提示;
(2)實時對SMBus總線上各個紅外測溫模塊的單獨控制、操作和控制;
(3)傳輸溫度異常的具體位置信息;
(4)能對溫度參數設置和監控。
主控制器是整個測溫系統的核心,保證整個系統的穩定運行,在極短時間內對系統所有任務進行響應,并加入LCD顯示溫度參數等。實現了多任務管理、數據通信、處理、安全監測及實時響應的功能。溫度監控器的硬件框圖如圖1所示。
2 主要元器件介紹
2.1 溫度傳感器硬件電路
紅外測溫器是由光學系統、觀點探測器、信號放大器、信號處理器及輸出等部分組成。當光學系統匯聚其視場內的目標紅外輻射能量,視場的大小由測溫儀的光學零件及其位置決定。紅外光聚集在光電探測器上并轉變為相應的電信號,該信號經過放大器和信號處理電路,并按照儀器內的算法和目標發射率校正后轉變為被測目標的溫度值。
紅外溫度傳感器MLX90614AA,其工作電壓為5 V,是單區域測溫;內部聚集了低噪聲放大、17位A/D轉換、可編程FIR和IIR濾波、線性化和補償性等幾大功能;感測的熱量由傳感器內部的熱電偶電壓表征,利用芯片EEPROM中存儲的生產廠設定的校準參數,計算出物體上下限溫度,標注校準參數后,精度可達0.2 ℃,被數字化處理后保持在內部RAM中,需要時經通過SMBus方式讀取;最終測量結果經數字式脈沖寬度調制后,以PWM方式輸出。可測溫度范圍在-60 ℃~+350 ℃,滿足皮帶機溫度升高時,完成報警功能。多個MLX90614可以用于一個系統中,各自對應一個不同地址,訪問不同的地址即可訪問對應的MLX90614,SCK和SDA直接連接F020的普通I/O口即可[2]。MLX90614外圍接口電路如圖2所示。
2.2 高速雙端口RAM
皮帶機運煤過程中,當滾軸溫度異常升高時,能及時高速采集到溫度信息并進行處理,是考慮的關鍵因素之一。利用雙端口RAM作為數據存儲器,以數據共享方式進行傳送,兩個F020共享該存儲器;本文采用IDT700d雙端口RAM,兩個端口有兩套完全獨立的控制總線、地址總線和I/O數據總線,允許兩個F020同時訪問存儲器,可獨立讀/寫任意地址單元,提高了系統或模塊間數據傳輸速率,可靠性好,實現簡單,解決了競爭問題,訪問時間最大只有幾十ns,最快存取時間達到15 ns,無需插入等待[3]。IDT700d雙端口RAM其結構如圖3所示。
2.2.1 旗語邏輯仲裁控制電路
RAM片內的仲裁電路,能解決數據通信中的競爭問題,通過對優先級高的端口進行讀寫操作,另一端口延遲等待,當前者完成讀寫操作后,被延遲端口就可以繼續工作了。IDT7005內部有8個旗語邏輯仲裁控制電路,用來將一個端口的使用狀態傳送到另一端口,同時也獨立于雙端口RAM的鎖存器邏輯電路,在某一段時間,段內RAM只允許一個CPU對其分配的數據塊進行讀寫操作,避免了地址沖突。旗語邏輯電路如圖4所示。
使用過程中,應該為低電平,~用于8個旗語邏輯電路尋址,數據線用于旗語邏輯電路狀態的寫入和讀出。將IDT7005劃分為高地位兩個4K存儲區,旗語邏輯電路0和1分別用來判別是否有端口占用RAM中的低位和高位存儲區。當1號端口要對低位存儲區操作,則先向旗語電路0寫入“0”,再讀入旗語狀態,若讀入值為“1”,表示2號端口在操作該地區;反之為1號端口在操作低位區。當2號口正在操作該低位存儲區時,1號端口可以通過循環查詢旗語狀態的方式來等待2號端口釋放RAM的使用權。
2.3 SMBus總線介紹
MLX90614數據的輸出方式以系統管理總線SMBus的方式輸出,接入F020微控制器時,作為從器件工作。SMBus是基于的操作原理,具有兩線接口;一線實現系統和電源管理任務,另一線和其他設備通信。MLX90614的數據傳輸時序為:數據在SCL的上升沿被捕獲,16位數據分兩次傳輸,每次傳輸一個字節,每個字節都是按照高溫(MSB)在前,低位(LSB)在后的方式傳輸,字節中間的第9個時鐘是應答時鐘[4]。
2.3.1 總線讀器件格式
讀EEPROM還是RAM的數據,由命令決定,讀數據格式如圖5所示。endprint
當主機讀MLX90614時,先寫控制碼,在讀數據,主機每發送完一個字節開始查詢應答信號,再收到一個字節就給出一個應答信號;先向從器件發送器件地址和寫數據命令,沒有應答則再次發送器件地址,收到后開始發送要進行的操作命令字節,再次接收應答信號,沒有收到,全部重發進行前面的兩次操作。接著從器件連續向主機發送要讀取的字和錯誤信息碼,單片機每收到一個字節,則發送一個應答信號給從器件。
2.3.2 總線寫器件格式
由于MLX90614的RAM是只讀的,故只能向EEPROM某些單元地址中寫數據,寫數據格式如圖6所示。
寫MLX90614時,主機每發送完一個字節,開始查詢應答信號,當出現如何一次沒有收到應答信號情況,都要重新開始發送。
3 對溫度的計算方法
3.1 溫度上下限值算法
溫度傳感器中的EEPROM存儲單元,地址為000H~01FH,地址單元通過SMBus讀取,期中部分地址單元的內容,用戶可以改寫。地址000H和001H分別用來寫入測量溫度范圍的上下限值,002H為PWM設定,003H為環境溫度設定,01CH-01FH為ID地址。EEPROM中,寫入溫度上下限值的算法相同[1],則:
(1)
假設溫度值 ℃,帶入式(1)中,得:
此值即為將要寫入對應地址單元中的數據。
3.2 模擬溫度的算法
從SMBus總線上讀取某個MLX90614的16進制數據,換算為十進制溫度數據的方法為:
(2)
假設=0x35AC,帶入式(2)中,得:
℃
此值即為測得的溫度值。
3.3 溫度轉換子程序
從MLX90614讀出的數據,被轉換為溫度并顯示出來。當溫度為正值時,即當值大于27315時,為正溫度或0;小于27315時,為負的溫度值。以顯示正溫度值的函數為利,在液晶屏上寫數據時,對應各個顯示位的溫度值顯示方法,部分函數如下:
4 結論
該研究具有較好的實用價值,不僅在煤礦皮帶運煤過程中監控溫度,也可用于其他非接觸測溫場所,如體溫、食品、化學藥劑等場合。測試多個點的場合,只需要增加紅外測溫芯片即可,CPU的數據端口無需另外增加。不足之處,隨著溫度范圍的增加,精確度有所降低。
參考文獻
[1] 鄭鋒,王巧芝,李英建,等.51單片機應用系統典型模塊開發大全[M].中國鐵道出版社.
[2] 曾德志.MLX90614系列紅外線測溫模塊的原理及應用[J].電信技術,2003(4).
[3] 李紅玲,舒乃秋,曾喜聞.雙口RAM器件IDT7005在標準源中的應用[J].國外電子測量技術,2006(8).
[4] 韓豐田,高鐘毓,王永梁.ISA總線與雙口RAM芯片IDT7025的接口設計及應用[J].電測與儀表,2000(11).
[5] 宿元斌.基于SMBus總線的智能溫度傳感器MAX6697[J].機械管理開發,2007(4).endprint
當主機讀MLX90614時,先寫控制碼,在讀數據,主機每發送完一個字節開始查詢應答信號,再收到一個字節就給出一個應答信號;先向從器件發送器件地址和寫數據命令,沒有應答則再次發送器件地址,收到后開始發送要進行的操作命令字節,再次接收應答信號,沒有收到,全部重發進行前面的兩次操作。接著從器件連續向主機發送要讀取的字和錯誤信息碼,單片機每收到一個字節,則發送一個應答信號給從器件。
2.3.2 總線寫器件格式
由于MLX90614的RAM是只讀的,故只能向EEPROM某些單元地址中寫數據,寫數據格式如圖6所示。
寫MLX90614時,主機每發送完一個字節,開始查詢應答信號,當出現如何一次沒有收到應答信號情況,都要重新開始發送。
3 對溫度的計算方法
3.1 溫度上下限值算法
溫度傳感器中的EEPROM存儲單元,地址為000H~01FH,地址單元通過SMBus讀取,期中部分地址單元的內容,用戶可以改寫。地址000H和001H分別用來寫入測量溫度范圍的上下限值,002H為PWM設定,003H為環境溫度設定,01CH-01FH為ID地址。EEPROM中,寫入溫度上下限值的算法相同[1],則:
(1)
假設溫度值 ℃,帶入式(1)中,得:
此值即為將要寫入對應地址單元中的數據。
3.2 模擬溫度的算法
從SMBus總線上讀取某個MLX90614的16進制數據,換算為十進制溫度數據的方法為:
(2)
假設=0x35AC,帶入式(2)中,得:
℃
此值即為測得的溫度值。
3.3 溫度轉換子程序
從MLX90614讀出的數據,被轉換為溫度并顯示出來。當溫度為正值時,即當值大于27315時,為正溫度或0;小于27315時,為負的溫度值。以顯示正溫度值的函數為利,在液晶屏上寫數據時,對應各個顯示位的溫度值顯示方法,部分函數如下:
4 結論
該研究具有較好的實用價值,不僅在煤礦皮帶運煤過程中監控溫度,也可用于其他非接觸測溫場所,如體溫、食品、化學藥劑等場合。測試多個點的場合,只需要增加紅外測溫芯片即可,CPU的數據端口無需另外增加。不足之處,隨著溫度范圍的增加,精確度有所降低。
參考文獻
[1] 鄭鋒,王巧芝,李英建,等.51單片機應用系統典型模塊開發大全[M].中國鐵道出版社.
[2] 曾德志.MLX90614系列紅外線測溫模塊的原理及應用[J].電信技術,2003(4).
[3] 李紅玲,舒乃秋,曾喜聞.雙口RAM器件IDT7005在標準源中的應用[J].國外電子測量技術,2006(8).
[4] 韓豐田,高鐘毓,王永梁.ISA總線與雙口RAM芯片IDT7025的接口設計及應用[J].電測與儀表,2000(11).
[5] 宿元斌.基于SMBus總線的智能溫度傳感器MAX6697[J].機械管理開發,2007(4).endprint
當主機讀MLX90614時,先寫控制碼,在讀數據,主機每發送完一個字節開始查詢應答信號,再收到一個字節就給出一個應答信號;先向從器件發送器件地址和寫數據命令,沒有應答則再次發送器件地址,收到后開始發送要進行的操作命令字節,再次接收應答信號,沒有收到,全部重發進行前面的兩次操作。接著從器件連續向主機發送要讀取的字和錯誤信息碼,單片機每收到一個字節,則發送一個應答信號給從器件。
2.3.2 總線寫器件格式
由于MLX90614的RAM是只讀的,故只能向EEPROM某些單元地址中寫數據,寫數據格式如圖6所示。
寫MLX90614時,主機每發送完一個字節,開始查詢應答信號,當出現如何一次沒有收到應答信號情況,都要重新開始發送。
3 對溫度的計算方法
3.1 溫度上下限值算法
溫度傳感器中的EEPROM存儲單元,地址為000H~01FH,地址單元通過SMBus讀取,期中部分地址單元的內容,用戶可以改寫。地址000H和001H分別用來寫入測量溫度范圍的上下限值,002H為PWM設定,003H為環境溫度設定,01CH-01FH為ID地址。EEPROM中,寫入溫度上下限值的算法相同[1],則:
(1)
假設溫度值 ℃,帶入式(1)中,得:
此值即為將要寫入對應地址單元中的數據。
3.2 模擬溫度的算法
從SMBus總線上讀取某個MLX90614的16進制數據,換算為十進制溫度數據的方法為:
(2)
假設=0x35AC,帶入式(2)中,得:
℃
此值即為測得的溫度值。
3.3 溫度轉換子程序
從MLX90614讀出的數據,被轉換為溫度并顯示出來。當溫度為正值時,即當值大于27315時,為正溫度或0;小于27315時,為負的溫度值。以顯示正溫度值的函數為利,在液晶屏上寫數據時,對應各個顯示位的溫度值顯示方法,部分函數如下:
4 結論
該研究具有較好的實用價值,不僅在煤礦皮帶運煤過程中監控溫度,也可用于其他非接觸測溫場所,如體溫、食品、化學藥劑等場合。測試多個點的場合,只需要增加紅外測溫芯片即可,CPU的數據端口無需另外增加。不足之處,隨著溫度范圍的增加,精確度有所降低。
參考文獻
[1] 鄭鋒,王巧芝,李英建,等.51單片機應用系統典型模塊開發大全[M].中國鐵道出版社.
[2] 曾德志.MLX90614系列紅外線測溫模塊的原理及應用[J].電信技術,2003(4).
[3] 李紅玲,舒乃秋,曾喜聞.雙口RAM器件IDT7005在標準源中的應用[J].國外電子測量技術,2006(8).
[4] 韓豐田,高鐘毓,王永梁.ISA總線與雙口RAM芯片IDT7025的接口設計及應用[J].電測與儀表,2000(11).
[5] 宿元斌.基于SMBus總線的智能溫度傳感器MAX6697[J].機械管理開發,2007(4).endprint