溫洪昌,殷強,張信禹
(宜賓職業(yè)技術(shù)學(xué)院,四川宜賓,644003)
溫度數(shù)據(jù)采集、存儲和回放,廣泛應(yīng)用于國民經(jīng)濟的各個領(lǐng)域;本文以MAX31855為熱電偶至數(shù)字輸出轉(zhuǎn)換器,測溫范圍可以在-270℃至+1800℃,溫度分辨率0.25℃,配以K型熱電偶,溫度范圍為-200℃至+700℃,保持±2℃精度,測溫范圍及環(huán)境不同時精度有差異[1]。配合微控制器,對作業(yè)現(xiàn)場的溫度進行采集,同時將數(shù)據(jù)上傳到由Labview構(gòu)成的上位機監(jiān)控平臺,進行實時數(shù)據(jù)顯示、保存,上位機也可以對歷史數(shù)據(jù)進行查詢等操作;整個過程采用仿真方式實現(xiàn)。
單片機控制熱電偶數(shù)字轉(zhuǎn)換器對K型熱電偶數(shù)據(jù)進行采集,通過通訊接口將數(shù)據(jù)傳給計算機,對采集的數(shù)據(jù)進行顯示,保存和分析。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
1.1.1 控制器與熱電偶至數(shù)字轉(zhuǎn)換器
單片機采用AT89C51RD2[2],內(nèi)部具有64K字節(jié)的在系統(tǒng)可編程Flash存儲器,內(nèi)含256字節(jié)的RAM,44引腳版有32個可編程I/O口線,3個16位的定時/計數(shù)器,指令系統(tǒng)與C51兼容等特點;熱電偶至數(shù)字轉(zhuǎn)換器采用MAX31855KASA,對K型熱電偶溫度數(shù)據(jù)進行采集,在溫度轉(zhuǎn)換時,器件執(zhí)行三項操作:內(nèi)部冷端溫度轉(zhuǎn)換、外部熱電偶溫度轉(zhuǎn)換和熱電偶故障檢測。該器件與微控制器的連接如圖2所示。
圖2 系統(tǒng)硬件電路原理圖
單片機的P1.0連接器件的SO端,P1.1連接器件的SCK端,P1.2連接器件的CS端,驅(qū)動CS為低電平時,SO引腳將輸出第一位數(shù)據(jù)。通過串口讀取完整的冷端補償熱電偶溫度,需要14個時鐘周期。讀取熱電偶和參考端溫度需要32個時鐘周期。在時鐘下降沿讀取輸出位。第一位D31為熱電偶溫度符號位。D[30:18]位包含溫度轉(zhuǎn)換數(shù)據(jù),順序為MSB至LSB。D16位正常狀態(tài)下為低電平,熱電偶輸入開路或?qū)ND或VCC短路時變?yōu)楦唠娖?;D0缺省時為低電平,當(dāng)熱電偶輸入開路或未連接時高電平;D1缺省時為低電平,當(dāng)熱電偶輸入對GND短路時為高電平;D2缺省時為低電平,當(dāng)熱電偶輸入對VCC短路時為高電平;在圖2的硬件電路原理圖中,當(dāng)單片機檢測到D0,D1,D2變成高電平時,分別由P1.5,P1.4,P1.3輸出低電平,使與之相連接的發(fā)光二極管進行狀態(tài)顯示;單片機的P1.6,P1.7用于顯示熱電偶溫度符號,當(dāng)測量溫度為正數(shù)時,顯示綠色,負數(shù)時顯示紅色。參考端溫度數(shù)據(jù)從D15開始。輸出轉(zhuǎn)換數(shù)據(jù)時,CS任何時候均可變?yōu)楦唠娖?。讀寫時序如圖3所示。
圖3 熱電偶轉(zhuǎn)換器讀寫時序
1.1.2 通信電路
單片機與計算機之間的通訊采用USB-TTL轉(zhuǎn)換器模塊實現(xiàn),PL2303是一種高集成度的USB-RS232雙向接口轉(zhuǎn)換器,該器件一方面從主機接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設(shè),另一方面從RS232外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機。這些工作全部由器件自動完成。
由于本文采用的虛擬仿真,電路原理圖中采用了PROTEUS軟件中虛擬串口器件,在電腦的任一USB口插上USB-TTL轉(zhuǎn)換器模塊后,在設(shè)備管理器中就能查到其串口號,將轉(zhuǎn)換器模塊上的TXD、RXD短接。在電腦上安裝虛擬串口驅(qū)動軟件,進行配對,為上位機軟件LABVIEW分配虛擬串口號。如圖4所示,已分配虛擬串口10與物理串口4配對。
圖4 虛擬串口
1.1.3 顯示電路
采用6位的數(shù)碼管顯示電路,段碼線接單片機的P0口,位碼線接單片機的P2口,動態(tài)顯示。
1.2.1 下位機軟件
系統(tǒng)軟件包括下位機和上位機兩部分,下位機程序是單片機里面的運行程序,分為系統(tǒng)初始化程序和數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)顯示及發(fā)送程序,每次采集溫度數(shù)據(jù)后,打包成一個以AB為開頭,0X0A為結(jié)尾的字符串,由串口發(fā)送給上位機,以下是數(shù)據(jù)轉(zhuǎn)換的C語言程序,單片機晶振頻率為12MHz。
1.2.2 上位機軟件
上位機程序采用LABVIEW編寫[3],主要的有串口初始化、開始接受、讀取文件、保存文件、停止運行等,保存文件是將串口接收的數(shù)據(jù)以二進制的形式存入文件中,文件名以接收文件時的時間命名;讀取文件,首先輸入文件名,然后將存取的二進制文件以圖形的方式展現(xiàn);程序如下。
圖5 上位機程序
打開下位機程序進行仿真,程序運行結(jié)果如圖6所示。
圖6 下位機程序仿真
圖中虛擬終端實時顯示下位機向上位機傳送的字符數(shù)據(jù),SCV,SCG,OC三個指示燈分別顯示熱電偶是否與VCC、GND短路,是否斷路,正常情況下都為0,否則為1。D1發(fā)光二極管指示測得溫度的符號,大于0是綠色,小于0是紅色。
上位機的界面如圖7所示,首先選擇串口號,輸入與下位機一致的波特率,運行程序,開始接受,串口來的數(shù)據(jù)及相應(yīng)的系統(tǒng)時間在波形圖表中顯示,并顯示實時的溫度值及其符號,大于0是綠色,小于0顯紅色。此時可以在保存文件的對話框中輸入文件名(為便于分析,最好以采集數(shù)據(jù)時的時間命名),然后點擊保存文件按鈕(變成綠色),保存實時數(shù)據(jù);在讀取文件對話框中輸入已保存的文件名,點擊讀取按鈕(按鈕變?yōu)榫G色,松開變成紅色),將文件中的數(shù)據(jù)在歷史曲線波形表中顯示出來,將最后一個數(shù)據(jù)顯示在波形表的上面。
圖7 系統(tǒng)的前面板
數(shù)據(jù)采集廣泛應(yīng)用于各種測控系統(tǒng)中,單片機作為下位機,在構(gòu)建數(shù)據(jù)采集系統(tǒng)中靈活、方便,簡單;Labview圖形編程軟件,功能豐富,編程簡單,易于構(gòu)建友好的上位機界面,在測控系統(tǒng)中越來越得到廣泛的應(yīng)用;本文結(jié)合二者,搭建了一個簡單的數(shù)據(jù)采集仿真系統(tǒng),給出了詳細的方案,對類似研究有一定的借鑒作用。