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