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