溫洪昌,殷強(qiáng),張信禹
(宜賓職業(yè)技術(shù)學(xué)院,四川宜賓,644003)
溫度數(shù)據(jù)采集、存儲(chǔ)和回放,廣泛應(yīng)用于國民經(jīng)濟(jì)的各個(gè)領(lǐng)域;本文以MAX31855為熱電偶至數(shù)字輸出轉(zhuǎn)換器,測溫范圍可以在-270℃至+1800℃,溫度分辨率0.25℃,配以K型熱電偶,溫度范圍為-200℃至+700℃,保持±2℃精度,測溫范圍及環(huán)境不同時(shí)精度有差異[1]。配合微控制器,對作業(yè)現(xiàn)場的溫度進(jìn)行采集,同時(shí)將數(shù)據(jù)上傳到由Labview構(gòu)成的上位機(jī)監(jiān)控平臺(tái),進(jìn)行實(shí)時(shí)數(shù)據(jù)顯示、保存,上位機(jī)也可以對歷史數(shù)據(jù)進(jìn)行查詢等操作;整個(gè)過程采用仿真方式實(shí)現(xiàn)。
單片機(jī)控制熱電偶數(shù)字轉(zhuǎn)換器對K型熱電偶數(shù)據(jù)進(jìn)行采集,通過通訊接口將數(shù)據(jù)傳給計(jì)算機(jī),對采集的數(shù)據(jù)進(jìn)行顯示,保存和分析。系統(tǒng)總體結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)總體結(jié)構(gòu)圖
1.1.1 控制器與熱電偶至數(shù)字轉(zhuǎn)換器
單片機(jī)采用AT89C51RD2[2],內(nèi)部具有64K字節(jié)的在系統(tǒng)可編程Flash存儲(chǔ)器,內(nèi)含256字節(jié)的RAM,44引腳版有32個(gè)可編程I/O口線,3個(gè)16位的定時(shí)/計(jì)數(shù)器,指令系統(tǒng)與C51兼容等特點(diǎn);熱電偶至數(shù)字轉(zhuǎn)換器采用MAX31855KASA,對K型熱電偶溫度數(shù)據(jù)進(jìn)行采集,在溫度轉(zhuǎn)換時(shí),器件執(zhí)行三項(xiàng)操作:內(nèi)部冷端溫度轉(zhuǎn)換、外部熱電偶溫度轉(zhuǎn)換和熱電偶故障檢測。該器件與微控制器的連接如圖2所示。

圖2 系統(tǒng)硬件電路原理圖
單片機(jī)的P1.0連接器件的SO端,P1.1連接器件的SCK端,P1.2連接器件的CS端,驅(qū)動(dòng)CS為低電平時(shí),SO引腳將輸出第一位數(shù)據(jù)。通過串口讀取完整的冷端補(bǔ)償熱電偶溫度,需要14個(gè)時(shí)鐘周期。讀取熱電偶和參考端溫度需要32個(gè)時(shí)鐘周期。在時(shí)鐘下降沿讀取輸出位。第一位D31為熱電偶溫度符號(hào)位。D[30:18]位包含溫度轉(zhuǎn)換數(shù)據(jù),順序?yàn)镸SB至LSB。D16位正常狀態(tài)下為低電平,熱電偶輸入開路或?qū)ND或VCC短路時(shí)變?yōu)楦唠娖剑籇0缺省時(shí)為低電平,當(dāng)熱電偶輸入開路或未連接時(shí)高電平;D1缺省時(shí)為低電平,當(dāng)熱電偶輸入對GND短路時(shí)為高電平;D2缺省時(shí)為低電平,當(dāng)熱電偶輸入對VCC短路時(shí)為高電平;在圖2的硬件電路原理圖中,當(dāng)單片機(jī)檢測到D0,D1,D2變成高電平時(shí),分別由P1.5,P1.4,P1.3輸出低電平,使與之相連接的發(fā)光二極管進(jìn)行狀態(tài)顯示;單片機(jī)的P1.6,P1.7用于顯示熱電偶溫度符號(hào),當(dāng)測量溫度為正數(shù)時(shí),顯示綠色,負(fù)數(shù)時(shí)顯示紅色。參考端溫度數(shù)據(jù)從D15開始。輸出轉(zhuǎn)換數(shù)據(jù)時(shí),CS任何時(shí)候均可變?yōu)楦唠娖健Wx寫時(shí)序如圖3所示。

圖3 熱電偶轉(zhuǎn)換器讀寫時(shí)序
1.1.2 通信電路
單片機(jī)與計(jì)算機(jī)之間的通訊采用USB-TTL轉(zhuǎn)換器模塊實(shí)現(xiàn),PL2303是一種高集成度的USB-RS232雙向接口轉(zhuǎn)換器,該器件一方面從主機(jī)接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設(shè),另一方面從RS232外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機(jī)。這些工作全部由器件自動(dòng)完成。
由于本文采用的虛擬仿真,電路原理圖中采用了PROTEUS軟件中虛擬串口器件,在電腦的任一USB口插上USB-TTL轉(zhuǎn)換器模塊后,在設(shè)備管理器中就能查到其串口號(hào),將轉(zhuǎn)換器模塊上的TXD、RXD短接。在電腦上安裝虛擬串口驅(qū)動(dòng)軟件,進(jìn)行配對,為上位機(jī)軟件LABVIEW分配虛擬串口號(hào)。如圖4所示,已分配虛擬串口10與物理串口4配對。

圖4 虛擬串口
1.1.3 顯示電路
采用6位的數(shù)碼管顯示電路,段碼線接單片機(jī)的P0口,位碼線接單片機(jī)的P2口,動(dòng)態(tài)顯示。
1.2.1 下位機(jī)軟件
系統(tǒng)軟件包括下位機(jī)和上位機(jī)兩部分,下位機(jī)程序是單片機(jī)里面的運(yùn)行程序,分為系統(tǒng)初始化程序和數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)顯示及發(fā)送程序,每次采集溫度數(shù)據(jù)后,打包成一個(gè)以AB為開頭,0X0A為結(jié)尾的字符串,由串口發(fā)送給上位機(jī),以下是數(shù)據(jù)轉(zhuǎn)換的C語言程序,單片機(jī)晶振頻率為12MHz。


1.2.2 上位機(jī)軟件
上位機(jī)程序采用LABVIEW編寫[3],主要的有串口初始化、開始接受、讀取文件、保存文件、停止運(yùn)行等,保存文件是將串口接收的數(shù)據(jù)以二進(jìn)制的形式存入文件中,文件名以接收文件時(shí)的時(shí)間命名;讀取文件,首先輸入文件名,然后將存取的二進(jìn)制文件以圖形的方式展現(xiàn);程序如下。

圖5 上位機(jī)程序
打開下位機(jī)程序進(jìn)行仿真,程序運(yùn)行結(jié)果如圖6所示。

圖6 下位機(jī)程序仿真
圖中虛擬終端實(shí)時(shí)顯示下位機(jī)向上位機(jī)傳送的字符數(shù)據(jù),SCV,SCG,OC三個(gè)指示燈分別顯示熱電偶是否與VCC、GND短路,是否斷路,正常情況下都為0,否則為1。D1發(fā)光二極管指示測得溫度的符號(hào),大于0是綠色,小于0是紅色。
上位機(jī)的界面如圖7所示,首先選擇串口號(hào),輸入與下位機(jī)一致的波特率,運(yùn)行程序,開始接受,串口來的數(shù)據(jù)及相應(yīng)的系統(tǒng)時(shí)間在波形圖表中顯示,并顯示實(shí)時(shí)的溫度值及其符號(hào),大于0是綠色,小于0顯紅色。此時(shí)可以在保存文件的對話框中輸入文件名(為便于分析,最好以采集數(shù)據(jù)時(shí)的時(shí)間命名),然后點(diǎn)擊保存文件按鈕(變成綠色),保存實(shí)時(shí)數(shù)據(jù);在讀取文件對話框中輸入已保存的文件名,點(diǎn)擊讀取按鈕(按鈕變?yōu)榫G色,松開變成紅色),將文件中的數(shù)據(jù)在歷史曲線波形表中顯示出來,將最后一個(gè)數(shù)據(jù)顯示在波形表的上面。

圖7 系統(tǒng)的前面板
數(shù)據(jù)采集廣泛應(yīng)用于各種測控系統(tǒng)中,單片機(jī)作為下位機(jī),在構(gòu)建數(shù)據(jù)采集系統(tǒng)中靈活、方便,簡單;Labview圖形編程軟件,功能豐富,編程簡單,易于構(gòu)建友好的上位機(jī)界面,在測控系統(tǒng)中越來越得到廣泛的應(yīng)用;本文結(jié)合二者,搭建了一個(gè)簡單的數(shù)據(jù)采集仿真系統(tǒng),給出了詳細(xì)的方案,對類似研究有一定的借鑒作用。