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