楊瑞帆,郭曉鵬,崔順
(西安石油大學(xué)機械工程學(xué)院 西安 710065)
數(shù)據(jù)采集是獲取信息的重要途徑。通常一個數(shù)據(jù)采集系統(tǒng)把現(xiàn)場傳感器采集到的模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號,并完成數(shù)據(jù)處理、傳輸、顯示、存儲等操作。傳統(tǒng)數(shù)據(jù)采集系統(tǒng)要使用大量的外圍芯片,這需要主處理器控制、鏈接好各模塊以保證各通道的暢通,不但需要較多的片選信號,而且模塊測試所占用的I/O端口資源也較多,這樣不但使系統(tǒng)設(shè)計體積較為龐大,而且開發(fā)成本高、設(shè)計效率也低。本文設(shè)計了一個基于C8051F330D單片機的多路數(shù)據(jù)采集系統(tǒng),C8051F330D單片機除了具有標(biāo)準(zhǔn)的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)功能部件,將其運用到數(shù)據(jù)采集系統(tǒng)去實現(xiàn)對多個物理量的分時采集,可以較好地解決傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的不足。
采集系統(tǒng)構(gòu)成如圖1所示。傳感器的作用是把電量或非電的物理量轉(zhuǎn)變成模擬電量(電壓、電流或頻率等)。傳感器輸出的信號較弱,本設(shè)計系統(tǒng)中選用C8051F330D單片機內(nèi)部自帶的傳感器,其分辨率約為2.34毫伏,需要將采集到的信號加以放大,這樣在保證測量精度的同時也滿足A/D轉(zhuǎn)換器的量程在0~2.4V。傳感器和電路中的器件常會產(chǎn)生噪聲,這種噪聲可以用濾波器來衰減掉,以提高模擬輸入信號的信噪比。多路模擬開關(guān)用于選擇采集哪路信號,相連的是模擬通道的轉(zhuǎn)換部分,它包括采樣/保持和A/D轉(zhuǎn)換電路。采樣/保持電路的作用是快速拾取模擬多路開關(guān)輸出的子樣脈沖,并保持幅值恒定,以提高A/D轉(zhuǎn)換器的轉(zhuǎn)換精度。采樣/保持器輸出的信號送至A/D模數(shù)轉(zhuǎn)換器轉(zhuǎn)換后,將測量數(shù)據(jù)送單片機進行分析處理,單片機執(zhí)行相應(yīng)控制操作,將測量結(jié)果存于存儲器中[1-3]。
圖1 采集系統(tǒng)構(gòu)成圖
如圖2所示,本系統(tǒng)以采集外部兩路信號溫度、壓力為例,選用C8051F330D單片機通用I/O中的P0.4、P0.5端口分別輸入兩路模擬信號并轉(zhuǎn)化為相應(yīng)的電壓值,P0.0作為電壓基準(zhǔn)端口。采集到的模擬數(shù)據(jù)經(jīng)單片機內(nèi)部A/D轉(zhuǎn)換和內(nèi)核處理后變?yōu)槎未a,送到段碼驅(qū)動器驅(qū)動LED實現(xiàn)顯示[4-6]。
需要注意的是:C8051F330D單片機模擬輸入端口的工作電壓都在3.3V左右;同時單片機的數(shù)據(jù)、時鐘兩輸出端口被配置為漏極開路方式,都需要上拉電阻到5V電源,以保證輸出的正常。譯碼器也需要接到5V電源上。
圖2 采集系統(tǒng)硬件原理框圖
根據(jù)硬件原理框圖設(shè)計出的采集系統(tǒng)電路主要由電源部分、控制部分、顯示部分、按鍵部分組成,各部分緊密連接,形成一套完善的測壓、測溫系統(tǒng)。
圖3 電源電路
C8051F330D的工作電壓范圍在2.7V~3.6V之間。作為供電裝置,LM1117可以將輸入的5V電壓轉(zhuǎn)化為3.3V電壓輸出,滿足C8051F330D的工作電壓要求。需要注意的是:電路的外接電源選5V,這樣在經(jīng)過LM1117轉(zhuǎn)換后的3.3V電壓適用于C8051F330D,同時5V電壓滿足顯示電路中的74LS164移位寄存器以及單片機輸出上拉的要求。
控制任務(wù)由C8051F330D[7-8]單片機完成,采用串行通信接口SPI通信,C8051F330使用Silicon Labs的專利CIP-51微控制器內(nèi)核,除了具有標(biāo)準(zhǔn)的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)功能部件,可以使用標(biāo)準(zhǔn)803x/805x的匯編器和編譯器進行軟件開發(fā)。設(shè)計中使用C8051F330D的內(nèi)部ADC模塊完成數(shù)據(jù)采集、量化、編碼,使用內(nèi)核模塊完成數(shù)字信息的處理。
顯示電路如圖4所示。它包括74LS164移位寄存器和LED數(shù)碼顯示管兩部分。74LS164移位寄存器接收從C8051F330D內(nèi)核轉(zhuǎn)換出的4字節(jié)段碼,當(dāng)單片機發(fā)出傳輸結(jié)束的信號后,4個移位寄存器將送出的4個字節(jié)串行數(shù)據(jù),轉(zhuǎn)化為8位并行數(shù)據(jù)分別送往各自連接的LED數(shù)碼管,采用靜態(tài)顯示的方式,驅(qū)動4位LED實現(xiàn)顯示。
圖4 顯示電路
按鍵電路如圖5所示。
圖5 按鍵電路
按下開關(guān)S1時單片機復(fù)位;按下開關(guān)S2時采集片內(nèi)溫度傳感器的值;按下S3時,采集單片機的P0.5端口到GND之間的電壓值;按下S4 時,采集與P0.4端口到GND之間的電壓值。編寫程序時,可以先進行復(fù)位,然后判斷哪路開關(guān)按下,在第一路開關(guān)沒按下時就跳到下一路開關(guān)處再進行判斷,這樣一直循環(huán)下去,直到判斷有開關(guān)按下后,便對這個開關(guān)對應(yīng)的一路開始模擬數(shù)據(jù)的采集。
針對C8051F330單片機的軟件開發(fā),用匯編語言開發(fā)實現(xiàn)。編譯工具選擇keil 編譯器。主程序流程框圖如圖6所示,主要分3大模塊:程序初始化、采集轉(zhuǎn)換和顯示。根據(jù)選用的器件及C8051F330D單片機配置先完成程序的初始化,其主要內(nèi)容是對數(shù)據(jù)采集中所涉及的寄存器的使能;第二大模塊是對模擬數(shù)據(jù)的采集、轉(zhuǎn)換、處理,當(dāng)判斷P1.1、P1.2、P1.3中的一個按下時,便進入這一過程;第三模塊是數(shù)據(jù)的顯示,由于兩路電壓顯示原理相似,所以可以調(diào)用同一顯示程序。調(diào)用顯示程序,又可以完成溫度的顯示。
圖6 數(shù)據(jù)采集系統(tǒng)程序流程圖
實驗中分別采集了兩端口的溫度、壓力兩物理量,由此轉(zhuǎn)化的模擬值(電壓)數(shù)據(jù)表1和表2所示。
表1 采集電路端口1的實驗結(jié)果
表2 采集電路端口2的實驗結(jié)果
由表1、表2可以看出,實驗所得相對誤差最小為0.27%,最大為-1.60%,準(zhǔn)確度較高。分析原因,一方面是由于C8051F330片內(nèi)ADC轉(zhuǎn)換精度高,另一方面是由于編程中用到浮點數(shù)運算程序,大大降低了計算上的誤差。
本文設(shè)計了一個基于C8051F330D單片機的多路數(shù)據(jù)采集系統(tǒng)。選用C8051F330D單片機是由于它具備集成度高、作穩(wěn)定可靠、成本低廉、通用性強等特點。該數(shù)據(jù)采集模塊采用多路參數(shù)采集方式,外接各種傳感器后可應(yīng)用于多種工況中的數(shù)據(jù)采集,如對油田油井壓力、溫度采集,對抽油機的運行、電機的運轉(zhuǎn)狀態(tài)監(jiān)測等等,可為故障診斷提供可靠、全面的參數(shù)依據(jù),從而保證各系統(tǒng)穩(wěn)定、可靠的運行。
[1]肖忠祥.數(shù)據(jù)采集原理[M].西安:西北工業(yè)大學(xué)出版社,2001:1-20.
[2]李海真,孫運強,許鴻鷹.高精度多路溫度采集模塊硬件電路設(shè)計[J].電子測試,2008 (12) :58-64.
[3]曹俊琴,馮家鵬.基于單片機的多通道溫度精確采集系統(tǒng)設(shè)計[J].機械工程與自動化, 2008 (2):17-18.
[4]潘琢金譯.C8051F330/1混合信號ISP FLASH微控制器[M].北京:新華龍電子有公司, 2003 :1-130.
[5]張迎新, 雷 文, 姚靜波.C8051F系列SOC單片機原理及應(yīng)用[M].北京:國防工業(yè)出版社, 2005 :80-200.
[6]莫力.Protel電路設(shè)計[M].北京:國防工業(yè)出版社,2005 :5-60.
[7]潘崢嶸, 郭凱, 張巖, 陳曉宇.基于C8051F單片機抽油機數(shù)據(jù)采集模塊的研究與實現(xiàn)[J].計算機工程與設(shè)計, 2009 ,30(20) :4596-4598.
[8]李華偉.基于C8051F 的氣象數(shù)據(jù)采集系統(tǒng)[J].兵工自動化,2009 ,28(7) :75-76.