徐國(guó)成



摘要:本文提出了基于 STM32 單片機(jī)的數(shù)據(jù)采集控制系統(tǒng)的設(shè)計(jì),從硬件與軟件系統(tǒng)方面來(lái)實(shí)現(xiàn)對(duì)工業(yè)現(xiàn)場(chǎng)所需數(shù)據(jù)的實(shí)時(shí)采集和監(jiān)測(cè),保障了生產(chǎn)過(guò)程的平穩(wěn)運(yùn)行,對(duì)于企業(yè)管控一體化建設(shè)具有重要的意義。
關(guān)鍵詞:STM32;單片機(jī);數(shù)據(jù)采集
引言
數(shù)據(jù)采集是對(duì)所需數(shù)據(jù)獲取的一個(gè)過(guò)程,一般是經(jīng)過(guò)傳感器等將設(shè)備的信號(hào)傳輸至主控器進(jìn)行處理與分析。數(shù)據(jù)采集系統(tǒng)則是結(jié)合計(jì)算機(jī)等測(cè)試平臺(tái)搭建軟硬件產(chǎn)品組成的系統(tǒng)[1]。近年來(lái),在科學(xué)研究、工業(yè)現(xiàn)場(chǎng)等領(lǐng)域數(shù)據(jù)采集技術(shù)尤為突出。該技術(shù)已經(jīng)應(yīng)用在航空航天、衛(wèi)星雷達(dá)、遙感監(jiān)控、通信技術(shù)、工業(yè)生產(chǎn)等領(lǐng)域。數(shù)據(jù)采集系統(tǒng)中數(shù)據(jù)的采集、存儲(chǔ)與處理三者密不可分,隨著科學(xué)技術(shù)日新月異的發(fā)展變化,數(shù)據(jù)采集技術(shù)也日趨完善,得到不斷的更新和發(fā)展。
1.系統(tǒng)總體設(shè)計(jì)
單片機(jī)作為主控芯片,實(shí)現(xiàn)對(duì)采集過(guò)程和輸出的控制,單片機(jī)處理后的數(shù)據(jù)通過(guò)串行通訊方式傳輸?shù)揭蕴W(wǎng)接口,通過(guò)交換機(jī)將電路板和計(jì)算機(jī)進(jìn)行連接,然后把數(shù)據(jù)傳輸給上位機(jī),實(shí)現(xiàn)遠(yuǎn)程I/O數(shù)據(jù)采集與實(shí)時(shí)顯示。
2.系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)要實(shí)現(xiàn)對(duì)工業(yè)現(xiàn)場(chǎng)中的 16 路數(shù)字量和 8 路模擬量的數(shù)據(jù)采集和實(shí)時(shí)顯示,通過(guò)方案的論證,選擇單片機(jī)來(lái)完成系統(tǒng)設(shè)計(jì)。設(shè)計(jì) DI、DO、AI、AO 四塊電路板[2]。每塊電路都使用 STM32F103RB 芯片作為主控器,選擇CH9121網(wǎng)絡(luò)串口透?jìng)髂K和 RJ45水晶頭網(wǎng)口進(jìn)行連接,通過(guò)網(wǎng)線連接至同一路由器,然后和計(jì)算機(jī)相連,在上位機(jī)軟件上進(jìn)行數(shù)據(jù)的實(shí)時(shí)采集與顯示。其中,四塊電路板只有數(shù)據(jù)采集部分不一樣,電源電路、主控模塊、網(wǎng)絡(luò)通信模塊等公共部分將以單塊電路板的外圍電路進(jìn)行描述,然后分別描述不同的部分。
通過(guò)STM32F03RB芯片來(lái)完成整個(gè)數(shù)據(jù)采集過(guò)程的主控作用。數(shù)字信號(hào)采集時(shí),16路數(shù)字信號(hào)驅(qū)動(dòng)繼電器后與主控器的 16 個(gè)I/O口相連,通過(guò)軟件編程讀取相應(yīng)I/O口的狀態(tài)值獲得 16 路數(shù)據(jù);模擬數(shù)據(jù)采集時(shí),輸入的8路模擬信號(hào)經(jīng)過(guò)集成芯片進(jìn)行處理后,然后連接至主控器的I/O,其整個(gè)過(guò)程需要STM32F103RB芯片提供集成轉(zhuǎn)換芯片所需的時(shí)鐘。STM32F103RB 不僅控制數(shù)據(jù)采集與處理過(guò)程,同時(shí)還將處理后的數(shù)據(jù)通過(guò)網(wǎng)線上傳至計(jì)算機(jī),實(shí)現(xiàn)對(duì)工業(yè)現(xiàn)場(chǎng)機(jī)器運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)測(cè)。
本系統(tǒng)對(duì)8路模擬信號(hào)進(jìn)行采集,其中包括3路PT100,3路K型熱電偶和2路4~20mA
電流信號(hào),模擬量要經(jīng)過(guò)調(diào)理電路才能被主控芯片的I/O口采集。其中PT100熱電阻連接的集成芯是 MAX31865,K型熱電偶連接的是MAX6675,這兩塊芯片內(nèi)部都集成了SPI通信總線進(jìn)行數(shù)據(jù)傳輸。
3.系統(tǒng)軟件設(shè)計(jì)
整機(jī)軟件設(shè)計(jì)包括單片機(jī)主程序、數(shù)據(jù)采集與處理程序、串口通信程序、上位機(jī)通信程序和報(bào)警程序。其中,單片機(jī)主程序包含時(shí)鐘的初始化、相關(guān)I/O口的初始化、USART串口和 SPI 總線的配置。數(shù)據(jù)采集與處理分為數(shù)字量控制采樣和模擬量控制采樣。串口通信程序是對(duì)使用到的串口進(jìn)行參數(shù)設(shè)置,并編寫簡(jiǎn)單的通信協(xié)議實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。集成采集芯片通信程序是通過(guò)SPI總線進(jìn)行數(shù)據(jù)通信以及對(duì)采集到的溫度進(jìn)行線性的模數(shù)轉(zhuǎn)換。上位機(jī)通信程序是通過(guò)對(duì)CH9121芯片寫入命令或者通過(guò)上位機(jī)進(jìn)行參數(shù)配置,將兩者配置在同一局域網(wǎng),通過(guò)TCP/IP協(xié)議來(lái)進(jìn)行數(shù)據(jù)傳輸。
本系統(tǒng)要完成對(duì)工業(yè)現(xiàn)場(chǎng)中16通道數(shù)字量和8通道模擬量的采樣與處理,在工作之前,首先要完成通道參數(shù)的配置工作,具體包括通道輸入信號(hào)類型、報(bào)警門限參數(shù)等。整個(gè)工程的程序一般包含數(shù)據(jù)采樣處理和數(shù)據(jù)通信[3]。程序的主體為數(shù)據(jù)采集與顯示、報(bào)警處理部分。經(jīng)過(guò)配置后的模塊工作流程主要為:(1)將程序燒錄進(jìn)電路板上電后,程序在Flash中運(yùn)行,部分程序復(fù)制到 RAM 中運(yùn)行;(2)程序從Flash中讀取配置通道參數(shù),分別對(duì)16路開(kāi)關(guān)量和 8 路模擬量進(jìn)行循環(huán)采樣,若沒(méi)有配置信息,就等待接受配置信息;(3)進(jìn)行數(shù)據(jù)采集時(shí),采樣頻率是 5Hz,即1秒鐘采集 5 次;(4)完成模擬量、開(kāi)關(guān)量等多種傳感器的數(shù)據(jù)采集任務(wù),若出現(xiàn)故障,則系統(tǒng)給出指示燈報(bào)警信號(hào);數(shù)據(jù)通信部分是在中斷函數(shù)中完成,其主要工作包括:(1)接收分析主機(jī)命令類型;(2)將采樣數(shù)據(jù)上傳至計(jì)算機(jī)進(jìn)行顯示;(3)配置通道參數(shù)。
單片機(jī)芯片初始化模塊主要實(shí)現(xiàn)的功能是將運(yùn)行時(shí)的芯片各功能模塊進(jìn)行初始化,主遠(yuǎn)程I/O數(shù)據(jù)采集控制系統(tǒng)設(shè)計(jì)要是通過(guò)配置各個(gè)模塊控制寄存器來(lái)實(shí)現(xiàn)。單片機(jī)上電后看門狗處于使能狀態(tài),如果不周期性地進(jìn)行查看操作就會(huì)出現(xiàn)復(fù)位。因此,對(duì)看門的操作最簡(jiǎn)單的辦法就是禁止看門狗。雖然看門狗是比較有效的一個(gè)措施,但是這種方法不可取。所以,當(dāng)調(diào)試完畢再添加看門狗電路,從而確保系統(tǒng)穩(wěn)定運(yùn)行。主程序流程圖如圖2所示。
8路模擬熱通道采集的信號(hào)為電壓信號(hào),需要轉(zhuǎn)化為相應(yīng)的物理量進(jìn)行傳輸和顯示,這是將物理量轉(zhuǎn)化為電壓信號(hào)的逆過(guò)程。本設(shè)計(jì)采集到的物理量主要是溫度、電流。通過(guò)數(shù)字轉(zhuǎn)換芯片直接轉(zhuǎn)換成電壓信號(hào)接至主控芯片I/O口,在顯示時(shí)還要通過(guò)對(duì)比采集到的電阻和電壓轉(zhuǎn)換為最原始的溫度和電流。圖3為各通道數(shù)據(jù)采集轉(zhuǎn)換流程圖。
4.系統(tǒng)測(cè)試
對(duì)于本系統(tǒng),在經(jīng)過(guò)硬件電路分析,軟件程序介紹后,還要完成聯(lián)合調(diào)試。通過(guò)系統(tǒng)
調(diào)試才能最終實(shí)現(xiàn)系統(tǒng)的功能。軟硬件分模塊調(diào)試,可以做到硬件電路和軟件程序相結(jié)合,
變?yōu)榭烧J褂玫囊惶紫到y(tǒng)。硬件調(diào)試首先將電路板焊接完成,檢查元器件的焊接情況,
某些有極性的元器件放置是否正確,是否存在短路、虛焊的情況,然后分模塊進(jìn)行硬件功
能測(cè)試。經(jīng)過(guò)檢查無(wú)誤后開(kāi)始聯(lián)機(jī)調(diào)試。聯(lián)機(jī)調(diào)試是全面測(cè)試數(shù)據(jù)存儲(chǔ)、主控器設(shè)備、串
口和網(wǎng)口通信等是否正常。將測(cè)試程序下載進(jìn)調(diào)試好的電路,在硬件平臺(tái)上開(kāi)始軟件程序測(cè)試。測(cè)試程序主要是將程序下載到硬件電路板上來(lái)驗(yàn)證功能是否實(shí)現(xiàn),主要包括串口通信、采集程序和網(wǎng)口通信的測(cè)試。
對(duì)各個(gè)模塊的芯片進(jìn)行了上電測(cè)試,確保電源供電模塊正常,能夠使系統(tǒng)上電后正常運(yùn)行。然后分別對(duì)數(shù)據(jù)采集、串口通信和網(wǎng)口通信進(jìn)行測(cè)試。采集模塊是對(duì)輸入的16 路電壓信號(hào)進(jìn)行采集,通過(guò)檢測(cè)對(duì)應(yīng)I/O口的狀態(tài)和串口進(jìn)行傳輸?shù)臄?shù)據(jù),從而證明開(kāi)關(guān)量的采集一切正常;串口通信模塊需要用程序編寫串口通信協(xié)議,然后通過(guò)串口測(cè)試板來(lái)顯示收發(fā)數(shù)據(jù)是否正常;網(wǎng)口通信測(cè)試是將電路板和計(jì)算機(jī)通過(guò)路由器進(jìn)行連接,然后通過(guò)上位機(jī)進(jìn)行配置,將他們接入到同一局域網(wǎng)進(jìn)行數(shù)據(jù)的收發(fā)。CH9121芯片內(nèi)嵌入了TCP/IP,以完成數(shù)據(jù)在網(wǎng)口和串口通信中的交互。測(cè)試結(jié)果表明網(wǎng)絡(luò)串口透?jìng)饕磺姓#梢詫⒋跀?shù)據(jù)正確地上傳至計(jì)算機(jī)。
參考文獻(xiàn)
[1] 王琳,商周,王學(xué)偉. 數(shù)據(jù)采集系統(tǒng)的發(fā)展與應(yīng)用[J]. 電測(cè)與儀表,2004:4-8.
[2] 張曉萍. 單片機(jī)數(shù)據(jù)采集系統(tǒng)通信接口設(shè)計(jì)[J]. 數(shù)字通信世界,2017:5-8.
[3] 賀偉,李輝. 基于單片機(jī)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 飲食科學(xué),2017:20-22.
[4]李鵬. MSP430 單片機(jī)在多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中的應(yīng)用[J]. ?無(wú)線互聯(lián)科技,2016:
[5] 王鵬. 基于 Modbus 協(xié)議的數(shù)據(jù)采集系統(tǒng)的研究[D]. ?合肥工業(yè)大學(xué)碩士論文,2019.