數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:設(shè)計(jì)一種基于STM32和CPLD的數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)的采集、傳輸、顯示和存儲(chǔ)。數(shù)據(jù)采集過(guò)程由CPLD控制,采用Verilog HDL語(yǔ)言設(shè)計(jì)輸入通道選通和A/D采集控制程序,進(jìn)行數(shù)據(jù)的濾波、放大、轉(zhuǎn)換,實(shí)現(xiàn)多通道數(shù)據(jù)的采集;在STM32中實(shí)現(xiàn)數(shù)據(jù)處理、傳輸,并在PC機(jī)中開發(fā)上層數(shù)據(jù)管理軟件,實(shí)現(xiàn)數(shù)據(jù)的顯示、存儲(chǔ)。系統(tǒng)可實(shí)現(xiàn)多通道數(shù)據(jù)采集實(shí)時(shí)顯示的要求,電路設(shè)計(jì)方法簡(jiǎn)單、可靠性高,能滿足實(shí)際應(yīng)用的要求。
關(guān)鍵詞:STM32;CPLD;實(shí)時(shí)數(shù)據(jù);數(shù)據(jù)管理
0 引言
隨著自動(dòng)控制和計(jì)算機(jī)技術(shù)的成熟和發(fā)展,以及它們和傳統(tǒng)工業(yè)的結(jié)合,加工設(shè)備的自動(dòng)化程度有了大幅度的提高,各種控制設(shè)備與控制技術(shù)得到了廣泛應(yīng)用,大大提高了加工制造的效率,當(dāng)然這種高效的生產(chǎn)對(duì)檢測(cè)量的精確性和實(shí)時(shí)性也提出了更高的要求,而依靠傳統(tǒng)的數(shù)據(jù)采集方法(即由操作工人憑借簡(jiǎn)易測(cè)量工具進(jìn)行測(cè)量)已無(wú)法滿足這種要求。
目前,生產(chǎn)設(shè)備的參數(shù)采集手段主要有便攜式檢測(cè)儀和在線檢測(cè)系統(tǒng),采用便攜式儀器需要花費(fèi)大量的人力和時(shí)間,采集到的數(shù)據(jù)不能實(shí)時(shí)反映設(shè)備加工的狀態(tài),具有一定局限性;一般的在線檢測(cè)系統(tǒng),檢測(cè)數(shù)據(jù)相對(duì)單一,不能滿足多成分分析的需要;對(duì)于一些大型的在線檢測(cè)系統(tǒng),雖然能滿足實(shí)時(shí)檢測(cè)和精度要求,但系統(tǒng)體積龐大、投資多、難以推廣使用,并且國(guó)內(nèi)很多在線檢測(cè)系統(tǒng),對(duì)檢測(cè)到的數(shù)據(jù)缺乏綜合利用和管理,不能很好地為工藝和裝置的優(yōu)化節(jié)能及節(jié)能減耗改造服務(wù)。因此開發(fā)出具有實(shí)時(shí)數(shù)據(jù)采集、存儲(chǔ)、傳輸?shù)裙δ艿脑诰€數(shù)據(jù)采集系統(tǒng)是十分必要的。
1 系統(tǒng)的整體方案與工作原理
數(shù)據(jù)采集系統(tǒng)是基于CPLD和STM32的弱信號(hào)采集電路,可用于各種弱信號(hào)檢測(cè)的應(yīng)用研究中,整個(gè)系統(tǒng)由信號(hào)濾波、信號(hào)放大、數(shù)據(jù)采樣處理和主計(jì)算機(jī)傳輸接口等組成。信號(hào)濾波防止信號(hào)產(chǎn)生“混疊現(xiàn)象”;信號(hào)放大對(duì)輸入信號(hào)進(jìn)行調(diào)理,使信號(hào)在A/D轉(zhuǎn)換能夠轉(zhuǎn)換的電壓范圍內(nèi),以滿足采樣的要求;數(shù)據(jù)采樣處理完成模擬信號(hào)的采樣保持和數(shù)字化;與主計(jì)算機(jī)的數(shù)據(jù)接口,將數(shù)據(jù)上傳給計(jì)算機(jī),滿足信號(hào)檢測(cè)的實(shí)時(shí)性,進(jìn)行數(shù)據(jù)的存儲(chǔ)、顯示等。數(shù)據(jù)采集電路板硬件功能模塊構(gòu)成如圖1所示。
2 系統(tǒng)硬件結(jié)構(gòu)
整個(gè)系統(tǒng)由信號(hào)預(yù)處理、信號(hào)采集和數(shù)據(jù)傳輸三大模塊組成,其中信號(hào)預(yù)處理進(jìn)行信號(hào)濾波、信號(hào)放大,預(yù)處理模塊由MC1558,MC1556等組成;信號(hào)采集進(jìn)行信號(hào)選通、A/D轉(zhuǎn)換;信號(hào)采集模塊由AD508、A/D轉(zhuǎn)換芯片、CPLD組成;數(shù)據(jù)傳輸進(jìn)行數(shù)據(jù)的軟件濾波、通過(guò)通信口與上位機(jī)進(jìn)行通信,數(shù)據(jù)傳輸由STM32芯片、信號(hào)輸出接口模塊組成。
2.1 信號(hào)預(yù)處理電路
由于待采集電壓信號(hào)輸入動(dòng)態(tài)范圍較寬,且極性各異,采用輸入電壓范圍可調(diào)的信號(hào)預(yù)處理電路。信號(hào)預(yù)處理電路如圖2所示,信號(hào)放大倍數(shù)為R1×R2/(100×100)。
2.2 信號(hào)采集模塊
CPLD是在PAL、GAL等邏輯器件的基礎(chǔ)上發(fā)展起來(lái)的,同以往的GAL、PAL等相比,CPLD的規(guī)模比較大,適合于時(shí)序、組合等邏輯電路的應(yīng)用場(chǎng)合。采用Altera公司的EPM7128SQI100作為數(shù)據(jù)采集的控制芯片,負(fù)責(zé)信號(hào)采樣、A/D轉(zhuǎn)換、數(shù)據(jù)輸入控制等。EPM7128SQI100具有128個(gè)宏單元,84個(gè)用戶I/O管腳,工作電壓為5.0 V,具有2 500個(gè)可用門和ISP,管腳間延遲為6.0 ns,計(jì)數(shù)器速度可高達(dá)125 MHz,可以很好地滿足系統(tǒng)的需要。信號(hào)采集電路如圖3所示。
ADG508是一款8通道CMOS模擬多路選擇器,具有高速轉(zhuǎn)換速度和低內(nèi)阻特性,通道切換具有防短路功能。在CPLD控制下,它可對(duì)采集信號(hào)進(jìn)行有序通道切換。A/D轉(zhuǎn)換芯片選用AD977,AD977是ADI(Analog Devices)公司推出的一款高速16位A/D轉(zhuǎn)換器,輸入電壓范圍為-10~+10 V,單極5 V電壓供電,采樣頻率可達(dá)100kHz。數(shù)據(jù)采樣系統(tǒng)最大采樣速率可達(dá)50kHz,信號(hào)分辨率可達(dá)0.3mV。通過(guò)采用多路轉(zhuǎn)換開關(guān)ADG508與16位A/D配合使用,降低了成本。
2.3 數(shù)據(jù)傳輸模塊
STM32是數(shù)據(jù)通信芯片,主要負(fù)責(zé)數(shù)據(jù)處理、傳輸控制、參數(shù)設(shè)置等。采用STM32F103xB系列ARM芯片,該系列芯片是意法半導(dǎo)體基于Con tex-M3內(nèi)核的32位微處理器,可以滿足高性能、低功耗和低成本特性的嵌入式應(yīng)用。芯片具備72 MHz時(shí)鐘頻率,擁有豐富的外設(shè)裝置,包括128 KB嵌入式閃存、20 KB的SRAM、兩個(gè)ADC接口、三個(gè)UART、支持USB、CAN和七個(gè)DMA通道等豐富的外圍模塊,以其高速的指令執(zhí)行速度、方便的JTAG調(diào)試方式和低功耗等特性為數(shù)據(jù)采集與處理的設(shè)計(jì)提供了一個(gè)較為完善的平臺(tái)。數(shù)據(jù)傳輸電路如圖4所示。
STM32F103VBT6的所有I/O端口兼容CMOS和TTL,在5V引腳上的輸入電壓最小值為-0.3 V,最大值為5.5 V,低電平電壓范圍為-0.5~0.8V,高電平電壓范圍為2.0~5.0V,經(jīng)EPM7128輸出的數(shù)據(jù)直接與STM32F103VBT6連接,簡(jiǎn)化了電路。
3 軟件設(shè)計(jì)
根據(jù)設(shè)計(jì)任務(wù)的要求,系統(tǒng)軟件主要完成數(shù)據(jù)的采集、濾波處理、串口與PC機(jī)的通信,數(shù)據(jù)采集軟件由信號(hào)采集與通信模塊軟件、上位機(jī)監(jiān)控軟件兩部分組成。
3.1 信號(hào)采集與通信模塊軟件設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)的固件驅(qū)動(dòng)程序(又稱單片機(jī)程序)是固化到CPU模塊內(nèi)的軟件,采用模塊化設(shè)計(jì),主要模塊包括:信號(hào)采集控制模塊和數(shù)據(jù)傳輸模塊兩大部分。信號(hào)采集控制模塊軟件固化到CPLD中,數(shù)據(jù)通信模塊軟件固化到STM32中。
信號(hào)采集控制模塊軟件利用Altera公司的Quartus開發(fā)軟件實(shí)現(xiàn),采用Verilog HDL語(yǔ)言設(shè)計(jì),主要功能包括輸入通道選通、數(shù)據(jù)采樣控制。通過(guò)CPLD芯片分別控制ADG508和AD977,進(jìn)行模擬量輸入通道的選擇和啟動(dòng)A/D轉(zhuǎn)換。數(shù)據(jù)的采集算法過(guò)程中,根據(jù)香農(nóng)定理,采樣頻率大于被采集信號(hào)的2倍頻率。信號(hào)采集模塊軟件流程圖如圖5所示。
數(shù)據(jù)傳輸模塊軟件在Real View MDK環(huán)境下編寫,主要功能包括數(shù)據(jù)接收、數(shù)據(jù)處理、串口通信。STM32通過(guò)握手信號(hào)啟動(dòng)CPLD的數(shù)據(jù)采集程序,在啟動(dòng)A/D轉(zhuǎn)換器轉(zhuǎn)換下一路信號(hào)。軟件設(shè)計(jì)上,采用極值滑動(dòng)平均濾波抑制疊加在模擬輸入信號(hào)上的噪聲;應(yīng)用軟件攔截技術(shù)、軟件看門狗技術(shù)、故障處理自恢復(fù)技術(shù)等措施使受干擾而“跑飛”的程序回到正常的軌道上;采用I/O自檢等程序預(yù)先發(fā)現(xiàn)故障并定位故障所在,提高系統(tǒng)的可靠性。數(shù)據(jù)通信模塊軟件流程圖如圖6所示。
3.2上位機(jī)監(jiān)控軟件設(shè)計(jì)
用戶應(yīng)用服務(wù)程序直接面向用戶,是控制數(shù)據(jù)采集軟件的最上層,不僅提供與用戶交互的界面,還能通過(guò)發(fā)送各種控制命令來(lái)控制采集模塊的丁作。利用微軟公司開發(fā)的軟件開發(fā)平臺(tái)VC++6.0沒計(jì)上層界面,進(jìn)行數(shù)據(jù)的實(shí)時(shí)顯示、存儲(chǔ)。采用串口傳輸協(xié)議,將底層采集到的數(shù)據(jù)傳輸?shù)缴衔籔C機(jī),并在VC++6.0設(shè)計(jì)的上層界面中實(shí)時(shí)顯示。
制定通信協(xié)議:通信雙方的波特率設(shè)定為9 600 b/s;幀格式:一個(gè)起始位,八個(gè)數(shù)據(jù)位,一個(gè)可編程的第九位,一個(gè)停止位;工作方式:PC機(jī)采用查詢方式,STM32采用中斷方式;功能標(biāo)志:發(fā)送請(qǐng)求標(biāo)志#0F1H,接收請(qǐng)求標(biāo)志#0FFH;校驗(yàn):通信雙方采用求和校驗(yàn)的方式,即發(fā)送一串字符,雙方計(jì)算累加和,與PC機(jī)比較,有錯(cuò)即重發(fā)。
4 結(jié)論
數(shù)據(jù)采集系統(tǒng)采用CPLD選取輸入通道、控制A/D轉(zhuǎn)換,實(shí)現(xiàn)數(shù)據(jù)采樣;利用STM32具有的豐富外設(shè)接口進(jìn)行數(shù)據(jù)處理、數(shù)據(jù)通信,提高了系統(tǒng)設(shè)計(jì)的靈活性,使系統(tǒng)易于升級(jí)和擴(kuò)展。本系統(tǒng)開發(fā)周期短、運(yùn)行穩(wěn)定、性能可靠、使用方便。配合上位機(jī)采集界面,方便進(jìn)行操作使用以及各種采樣數(shù)據(jù)的存儲(chǔ),在多種模擬量輸入的數(shù)據(jù)采集和控制系統(tǒng)的應(yīng)用中前景十分廣闊,將數(shù)據(jù)采集系統(tǒng)應(yīng)用到工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的采集中將是本研究下一步將要進(jìn)行的工作。