胡鑫杰,周群
(電子工程學(xué)院,合肥 230037)
溫度測(cè)試在工業(yè)生產(chǎn)、醫(yī)療衛(wèi)生和環(huán)境監(jiān)測(cè)等領(lǐng)域的應(yīng)用十分廣泛。傳統(tǒng)的模擬儀表測(cè)量已經(jīng)不能滿足現(xiàn)代科技對(duì)測(cè)試速度和精度的要求,越來越多的數(shù)字化集成溫度傳感器開始使用。為了滿足現(xiàn)代溫度測(cè)試的實(shí)時(shí)性和大容量數(shù)據(jù)存儲(chǔ)的需求,構(gòu)建一種以計(jì)算機(jī)為信息處理中心,微控制器系統(tǒng)為終端的智能測(cè)試系統(tǒng)已成為測(cè)試儀表的發(fā)展方向。本文在此基礎(chǔ)上設(shè)計(jì)了一種基于LPC2378微控制器的高精度、多通道智能溫度測(cè)試系統(tǒng)。
系統(tǒng)設(shè)計(jì)的總體構(gòu)架如圖1所示,主要包括:溫度傳感器、信號(hào)調(diào)理電路、A/D轉(zhuǎn)換器、LPC2378主控制器、SD卡存儲(chǔ)單元和USB通信單元。溫度傳感器采集的多路模擬信號(hào)經(jīng)過調(diào)理電路后由模/數(shù)轉(zhuǎn)換器實(shí)現(xiàn)信號(hào)的采集和數(shù)字化。微控制器LPC2378負(fù)責(zé)數(shù)字信號(hào)的處理和整個(gè)系統(tǒng)的控制功能。USB總線使外設(shè)和計(jì)算機(jī)連接更加快捷方便,數(shù)據(jù)可以通過USB送到計(jì)算機(jī)顯示。SD卡的使用擴(kuò)展了系統(tǒng)的存儲(chǔ)空間和增加了系統(tǒng)的靈活性,在USB總線無法連接或出現(xiàn)故障的情況下,數(shù)據(jù)可以直接保存在SD卡上,然后再轉(zhuǎn)移到計(jì)算機(jī)顯示處理。這非常適合在不利于現(xiàn)場(chǎng)作業(yè)的測(cè)試環(huán)境中應(yīng)用。
圖1 溫度測(cè)試系統(tǒng)總體框圖
模擬前端電路由溫度傳感器和信號(hào)調(diào)理電路組成。選擇體積小、精度高、穩(wěn)定性好的Pt100作為溫度傳感器,為消除導(dǎo)線電阻對(duì)Pt100阻值的影響,進(jìn)一步提高測(cè)量精度采用了四線制的接法[1]。四線制測(cè)量原理如圖2所示,RL1、RL2、RL3和RL4分別為導(dǎo)線L1、L2、L3和L4的等效電阻,在V1和V2兩端外接恒流源激勵(lì)I(lǐng),V3和V4兩端接入高輸入阻抗電路,則流過RL3和RL4電流值為0,故V3、V4兩端的測(cè)量電壓值為熱電阻RTD兩端的真實(shí)電壓值。
圖2 熱電阻四線制原理
圖 3為具體應(yīng)用電路,LM358內(nèi)部包含兩個(gè)獨(dú)立的運(yùn)算放大器U1A和U1B,U1A構(gòu)成了測(cè)量回路的外部恒流源。根據(jù)運(yùn)輸放大器虛短和虛斷的概念,U1A的正向輸入端和反向輸入端的電壓值相等且輸入電流值為零,所以不論P(yáng)t100的阻值如何變化,流過其電流值的大小始終為為了減少流過Pt100電流所產(chǎn)生的溫度對(duì)自身阻值的影響,外部恒流源的激勵(lì)電流不易過大,一般不超過5mA[2]。U1B實(shí)現(xiàn)對(duì)傳感器輸出信號(hào)的放大功能。為了增加U1B的輸入阻抗,R2和R3的取值要盡可能的大。根據(jù)流經(jīng)R3和R5電流值相等,可得公式:
圖3 Pt100恒流源測(cè)溫電路
LPC2378提供了豐富的串行接口資源,能夠滿足絕大多數(shù)串行通信的需要。主控制器內(nèi)部集成了一個(gè)轉(zhuǎn)換精度為10位的逐次逼近式模數(shù)轉(zhuǎn)換器可供一般數(shù)據(jù)采集系統(tǒng)使用,但考慮到本系統(tǒng)對(duì)分辨率和測(cè)量精度要求,在設(shè)計(jì)時(shí)采用了外置模/數(shù)轉(zhuǎn)換器AD7718。
AD7718是一款低噪聲、高分辨率、高可靠性和線性度較好的24位A/D轉(zhuǎn)換器件。圖4所示為AD7718利用SPI總線主微控制器實(shí)現(xiàn)數(shù)據(jù)通信。LPC2378設(shè)置為SPI主機(jī),AD7718為從機(jī)。主控制器的P0-14口用查詢的方式來檢測(cè)數(shù)據(jù)有效否,為提高系統(tǒng)效率也可以利用外部中斷口采用中斷方式來檢測(cè)。LPC2378讀寫AD7718的時(shí)序控制如圖5所示。
圖4 LPC2378和AD7718接口電路
圖5 AD7718讀寫時(shí)序圖
主控制器LPC2378內(nèi)部集成了USB2.0設(shè)備控制器,使CPU與外設(shè)之間的數(shù)據(jù)交換可以穩(wěn)定地達(dá)到很高的速度,同時(shí)也減少了開發(fā)難度,提高了芯片的性價(jià)比。USB接口電路如圖6所示,USB1D-和USB1D+為LPC2378中USB端口的一對(duì)差分?jǐn)?shù)據(jù)線,分別通過27 的匹配電阻與USB接口連接。VBUS用于檢測(cè)USB總線電源是否連接,當(dāng)USB總線連接時(shí),該管腳輸入高電平。U1CONNECT靈活控制LPC2378與PC之間的連接與斷開。當(dāng)該口輸出低電平時(shí),D+數(shù)據(jù)線通過1.5kΩ的上拉電阻連接到VD3V3通知PC:設(shè)備要與之連接;輸出高電平時(shí),D+數(shù)據(jù)線與電源VD3V3斷開,通知PC:設(shè)備已經(jīng)斷開與主機(jī)的連接。USB_U1UP_LED口用于控制LED亮滅以指示USB總線的活動(dòng)狀態(tài),當(dāng)USB設(shè)備枚舉成功時(shí),LED點(diǎn)亮;枚舉成功后,當(dāng)USB總線處于正常通行狀態(tài)時(shí),LED閃爍;當(dāng)USB設(shè)備處于掛起狀態(tài)或通信不正常時(shí),LED熄滅[4]。PRTR5V0U2X為ESD元件,用于防止靜電從USB總線中進(jìn)入電路中損壞芯片。
為了擴(kuò)展系統(tǒng)的存儲(chǔ)空間和使用范圍,增加系統(tǒng)的靈活性,在設(shè)計(jì)中采用了移動(dòng)設(shè)備中使用較為廣泛的SD卡作為數(shù)據(jù)存儲(chǔ)器件。LPC2378內(nèi)部提供了一個(gè)SD接口,支持SPI和SD兩種讀寫模式。本設(shè)計(jì)中采用了SD模式,SD卡與主機(jī)的接口電路如圖7所示。將SD卡與主控制器相應(yīng)的數(shù)據(jù)線(DATA[3:])、時(shí)鐘線(CLK)和命令線(CMD)直接相連。SD_CD定義為通用輸入管腳,用來檢測(cè)SD卡是否完全插入。當(dāng)SD卡完全插入時(shí),卡座內(nèi)部的觸點(diǎn)連接到GND,輸出低電平;當(dāng)卡拔出時(shí),該引腳同過47K的電阻上拉至高電平[5]。同理,SD_WP用來檢測(cè)SD卡的寫保護(hù)操作。
圖7 SD卡接口電路
系統(tǒng)軟件設(shè)計(jì)包括3個(gè)部分:下位機(jī)固件設(shè)計(jì)、USB驅(qū)動(dòng)開發(fā)和上位機(jī)軟件設(shè)計(jì)。
下位機(jī)固件是整個(gè)系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵,是系統(tǒng)功能實(shí)現(xiàn)的重要保障。下位機(jī)系統(tǒng)固件主要完成用A/D轉(zhuǎn)換器實(shí)現(xiàn)多路溫度信號(hào)的采集,把采集到的電壓信號(hào)通過計(jì)算變換為溫度值送到上位機(jī)顯示或直接存儲(chǔ)在SD卡上[6]。系統(tǒng)固件設(shè)計(jì)采取分塊設(shè)計(jì)的思想,根據(jù)硬件功能和信號(hào)流程分塊編寫了系統(tǒng)初始化、數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)和顯示存儲(chǔ)等4個(gè)子程序,主函數(shù)通過調(diào)用各子程序?qū)崿F(xiàn)系統(tǒng)功能。軟件主程序設(shè)計(jì)流程如圖8所示。
在整個(gè)固件設(shè)計(jì)中,數(shù)據(jù)處理模塊是程序的核心部分,它負(fù)責(zé)完成采集電壓值向溫度值的轉(zhuǎn)換,直接影響了系統(tǒng)的測(cè)試精度。為了提高溫度的測(cè)試精度和穩(wěn)定性,減少系統(tǒng)隨機(jī)事件引起的誤差,采取數(shù)字濾波的方法處理A/D轉(zhuǎn)換值。本設(shè)計(jì)中采取了滑動(dòng)平均的處理方法[7]:先讀取AD轉(zhuǎn)換的前5個(gè)值,分別保存在一個(gè)數(shù)組內(nèi),去掉其中最小值和最大值后取其它3個(gè)值的平均值,利用所得均值來計(jì)算要實(shí)際測(cè)量的溫度值。此后,每讀取一次AD值,數(shù)組更新一次。
圖8 系統(tǒng)軟件流程圖
為了減小設(shè)計(jì)難度和開發(fā)時(shí)間,USB驅(qū)動(dòng)程序采用了廣州致遠(yuǎn)電子有限公司開發(fā)的LPC23xx.inf驅(qū)動(dòng)文件。該公司還提供了與驅(qū)動(dòng)程序相對(duì)應(yīng) 的EasyUSB23xx.dll動(dòng) 態(tài) 庫, 可 供VC、VB、VF、Delphi、C++ Builder和 Power Builder等 調(diào)用。EasyUSB23xx.dll提供了讀寫USB的兩個(gè)函數(shù):ReadData23xx()和 WriteData23xx()[8]。
上位機(jī)軟件設(shè)計(jì)相對(duì)比較簡(jiǎn)單,其功能是實(shí)現(xiàn)對(duì)整個(gè)測(cè)試系統(tǒng)的控制和數(shù)據(jù)的接收、保存,并在計(jì)算機(jī)上繪圖顯示動(dòng)態(tài)溫度曲線。本設(shè)計(jì)采用了C++Builder 6調(diào)用EasyUSB23xx.dll的方法實(shí)現(xiàn)對(duì)USB設(shè)備的讀寫操作,繪圖顯示采用了TChart控件完成[9]。
為標(biāo)定系統(tǒng)的測(cè)試精度和誤差,在輸入端采取固定電阻代替Pt100的方法對(duì)系統(tǒng)進(jìn)行測(cè)試。經(jīng)過多次實(shí)現(xiàn)和測(cè)量,系統(tǒng)模擬前端的放大電路線性度良好,增益值為10.57。AD7718的內(nèi)部參考電壓值為2.5V,限定了系統(tǒng)的溫度測(cè)試范圍為-200℃~400℃。系統(tǒng)的測(cè)試分辨率為0.01℃,測(cè)試精度達(dá)到 ℃,能夠滿足預(yù)期的設(shè)計(jì)要求和一般工業(yè)測(cè)量的需要。圖9為本系統(tǒng)在波峰焊接機(jī)工作過程中所測(cè)試的6路溫度曲線,很好的反映了微電子焊接過程中的溫度曲線,對(duì)調(diào)整焊接溫度提高焊接質(zhì)量有一定的參考價(jià)值。
圖9 波峰焊接機(jī)溫度曲線
本文詳細(xì)介紹了多通道、高精度溫度測(cè)試系統(tǒng)的硬件設(shè)計(jì),并給出了軟件設(shè)計(jì)的核心思路。利用USB總線建立下位機(jī)與計(jì)算機(jī)的通信簡(jiǎn)單方便,也是未來計(jì)算機(jī)與外設(shè)連接的發(fā)展趨勢(shì)之一。SD卡的使用不僅大大擴(kuò)展了數(shù)據(jù)的存儲(chǔ)容量,而且給使用人員提供了更大的選擇空間。在一些不適合現(xiàn)場(chǎng)作業(yè)或?qū)?shí)時(shí)采集沒有要求的情況下,可以將大量數(shù)據(jù)保存在SD卡,然后再轉(zhuǎn)移到PC進(jìn)行數(shù)據(jù)的分析和處理。本系統(tǒng)已經(jīng)很好的應(yīng)用于工業(yè)測(cè)試中,使用方便,效果良好。
[1] 何希才,任力穎,楊靜.實(shí)用傳感器接口電路[M].北京:中國電力出版社,2007:16-19.
[2] 黎飛鴻,劉錦高.RTD Pt100的一種單電源信號(hào)調(diào)理電路[J].儀器儀表用戶,2007,14(1):70-72.
[3] 許新利,劉峰,張東輝.基于AD7718的高精度微弱信號(hào)測(cè)試系統(tǒng)[J].應(yīng)用科技,2006,11(33):33-36.
[4] 周立功.深入淺出ARM7-LPC2378(下冊(cè))[M].廣州:廣州致遠(yuǎn)電子有限公司,2008:216-222.
[5] 高學(xué)軍 ,王 君.基于ARM7的SD卡控制器的設(shè)計(jì)[J].儀表技術(shù),2009(2):16-19.
[6] 盧佳廷. 基于ARM7-TDMI的多路溫度信號(hào)采集系統(tǒng)設(shè)計(jì)[J]. 電腦知識(shí)與技術(shù),2007,4(21):739-748.
[7] 柯兆盛.無線傳輸高精度測(cè)溫系統(tǒng)[D].吉林:吉林大學(xué),2004:13-14 .
[8] 周立功. ARM嵌入式系統(tǒng)應(yīng)用筆記-基于LPC2300(下冊(cè))[M].廣州:廣州致遠(yuǎn)電子有限公司,2008:58-59.
[9] 吳逸賢,吳目誠.精彩C++ Builder 6程序設(shè)計(jì)[M].北京:科學(xué)出版社,2003.