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