關學忠 李倩文
(東北石油大學電氣信息工程學院)
基于STM32的數據采集與網絡發布系統
關學忠 李倩文
(東北石油大學電氣信息工程學院)
在工業現場中常需要對某一個量(如溫度、壓力及流量等信號)進行采集和控制,有的還需要對數據進行遠程傳輸、在控制室中對參數的變化趨勢進行直觀展示,這就需要一種數據采集與遠程網絡發布系統。本設計從實際應用出發,以STM32為核心控制器實現雙路數據采集,利用NRF無線通信模塊進行無線數據傳輸,并采用LabVIEW軟件實現上位機數據的顯示和網絡發布,達到數據共享的目的。詳細闡述了數據采集和無線通信的原理,利用Altium Designer實現PCB設計,搭建實驗平臺完成設計內容。實驗表明:該系統數據采集精確可靠、數據通信快速穩定,并且在局域網內實現了數據的網絡發布。
數據采集 網絡發布 無線通信 STM32 LabVIEW
數據采集技術廣泛應用于工業生產的各個領域,對于工業現場的檢測和控制至關重要[1],它是計算機與外部物理世界連接的橋梁。近年來,數據采集及其應用受到人們越來越廣泛的關注,數據采集系統也有了較快的發展。傳統的數據采集是通過數據采集板卡(常用的有A/D卡及422、485等總線板卡)來實現的,有些數據是就地顯示的,工人需要按時記錄數據[2],以報表的形式進行存儲;有的是通過數據傳輸線以串行的形式進行傳輸,其缺點是布線困難且成本高。因此,設計一種具有自動采集并將數據通過無線傳輸的方式發送到PC端的系統很有實用價值。通過上位機實時觀察數據的動態曲線,可節省人力成本、提高數據的可靠性。由于無線數據通信的距離是有限的,不能實現超遠距離的傳輸,因此使用網絡發布技術,可將實時采集的數據通過網絡發布到服務器,這樣只需登錄網頁就可以觀察數據的變化,達到數據共享和遠程監控的目的。在數據采集的方案選擇中,采集精度、功耗、成本和設計難度是重要的因素。本設計選擇ARM內核的STM32芯片作為核心控制器,實現數據的采集,利用NRF無線數據模塊實現數據的無線發送。上位機使用LabVIEW軟件實現數據的波形圖顯示與網絡發布。
基于STM32的數據采集與網絡發布系統由4部分組成:信號調理電路,負責將傳感器輸出的信號調理成ADC允許的范圍內;STM32最小系統,負責數據采集和控制;無線通信模塊,負責數據的無線發送和接收;DELL計算機作為上位機,負責數據的波形顯示和網絡發布。系統的硬件結構框圖如圖1所示。
STM32是基于Cortex-M3內核的32位ARM處理器,具有價格便宜、功耗低及性能優越等優點[3]。選擇STM32的一個更主要的原因是其內部集成了12位的逐次逼近式模數轉換器,最快轉換時間為1μs,可簡化系統設計。STM32最小系統由電源電路、時鐘電路、復位電路和程序下載電路組成。傳感器或變送器輸出的信號一般為0.0~5.0V的電壓信號,而STM32的ADC能接收的范圍為0.0~3.3V,并且在實際的工程設計上需要考慮到余量,因此輸入的最大值設置在3.3V的80%(約2.5V)。筆者設計的信號調理電路如圖2所示,利用電阻分壓把0.0~5.0V的電壓信號調理到0.0~2.5V,并且利用運算放大器組成電壓跟隨電路,實現傳感器信號和STM32的隔離。

圖2 信號調理電路
為了實現數據的無線傳輸,選擇NRF24L01無線射頻收發模塊。NRF24L01 是工作在 2.4~2.5GHz 世界通用 ISM 頻段的單片無線收發器芯片,集無線收發于一體,可用于短距離無線數據的傳輸。該芯片內部集成了2.4GHz無線收發內核[4],具有體積小、功耗較低和外圍電路簡單的優點。使用SPI接口與微控制器連接進行芯片的配置和數據的傳輸。無線模塊的電路如圖3所示,將模塊的數據口與STM32的SPI1接口相連實現通信。無線數據傳輸需要一個發送模塊和一個接收模塊,接收模塊與PC機的USB接口相連,所以接收模塊需要加入USB轉串口模塊,實現電平的轉換。

圖3 無線模塊的電路
系統的軟件程序設計分為兩部分:運行在STM32中的C語言程序和運行在PC 端的LabVIEW程序。STM32程序負責控制ADC實現雙路數據采集,并與無線模塊通信將數據發送出去,在上位機中編寫LabVIEW程序將數據從串口中讀出,并顯示在波形圖上,利用Web服務器把程序發布到網絡。LabVIEW又稱為G語言,是一種基于數據流的圖形化編程環境[5]。近年來在檢測和控制領域得到了快速的發展。因其程序是圖形化的框圖形式,與傳統的代碼有很大的不同,在人機交互等方面具有天然的優勢。選擇LabVIEW的另一個原因,就是它內嵌了Web網絡發布模塊,使網絡發布的程序設計變得簡單化[6]。
2.1 STM32程序設計
STM32的程序使用C語言編程,在MDK5編程環境下實現編譯。為了提高采集程序的運行效率、節省控制器資源,使用直接內存存取(Direct Memory Access,DMA)的方式實現轉換數據的讀取,DMA是一種高速的數據傳輸操作,允許在外部設備和存儲器之間利用系統總線直接讀寫數據,既不通過微處理器也不需要微處理器的干預[7]。STM32中集成了DMA模塊,這是一般的單片機不具有的,充分發揮了STM32的優勢。配置ADC的相關寄存器,使其運行在多通道掃描模式,傳感器信號經過信號調理電路后進入STM32的ADC中被轉換成數字量,接著數字量會被存入數據寄存器,在DMA使能的情況下,STM32的存儲器可以讀取轉換后的數據[8]。
經過采集和轉換后的數據通過SPI送給NRF無線模塊,NRF24L01 芯片通過設置配置寄存器中PWR_UP 位、PRIM_RX 位和CE 引腳的電平來控制其工作模式,NRF24L01模式配置見表1。

表1 NRF24L01模式配置
本設計使用了前3 種工作模式,發送部分或接收部分檢測到各自數據緩沖區中存在數據時,從待機模式轉換至發送或接收模式,數據處理完成后將狀態寄存器TX_DS 或RX_DR 位置高,IRQ引腳產生中斷,此時由發送或接收模式進入待機模式,等待數據進入數據緩沖區,IRQ中斷后要通過STM32寫狀態寄存器來復位。配置STM32的SPI為兩線全雙工、主模式、8位數據傳輸、數據捕獲第1個邊沿。STM32程序流程框圖如圖4所示。

圖4 STM32程序流程
2.2 LabVIEW程序設計
無線接收模塊接收到數據后是以串口的形式傳送給上位機的。LabVIEW串口通信程序主要是通過NI-VISA節點來完成的[9],NI-VISA是一個字節級的通信接口驅動,字節級包括RS232、RS485及GPIB等。LabVIEW提供的串口函數主要包括串口初始化、串口寫、串口讀、Bytes of port及串口關閉等。串口初始化主要負責設置串口號、波特率及奇偶校驗等參數,最關鍵的是Bytes of port這個屬性節點,它讀取當前串口緩沖區的字節數,然后將它的輸出連接到VISA READ的“讀取字節數”這個輸入端上,這樣當前緩沖區中有多少個字節就會讀回多少個,不會有任何等待,保證了數據讀取的連續性。將兩路數據通過標志位分開后組成一個數組,顯示在波形圖表控件上。LabVIEW程序如圖5所示。
使用LabVIEW進行網絡發布有兩種方式:一是使用內置的函數發布VI圖片,二是通過內嵌的Web發布工具發布VI前面板圖。筆者選擇第2種方法,它可以發布正在運行的程序前面板圖,讓各地的工程師們能在自己的辦公室看到服務器上的程序運行情況[10]。Web發布工具把程序調入內存中,發布到服務器中,這時在局域網內的其他電腦可以輸入對應的網址實現對程序的觀察和控制。網絡發布示意圖如圖6所示。具體配置步驟為:工具→Web發布工具→啟動服務器→選擇發布的VI→啟動IMQ支持→復制鏈接后保存至磁盤。

圖5 LabVIEW程序

圖6 網絡發布示意圖
結合以上對硬件設計和軟件設計的描述,完成基于STM32的數據采集與網絡發布系統的設計,利用兩個電位器模擬傳感器發出的電壓信號。
運行上位機程序,接收下位機發送來的數據,顯示在波形圖表控件上,上位機界面如圖7所示,可以清晰地看出兩路信號的變化情況,調節電位器可以觀察到上位機數據迅速反應。

圖7 上位機界面
通過Web發布工具將上位機程序發布到服務器,并用IE瀏覽器打開后的效果如圖8所示,可以看出上位機界面顯示在了瀏覽器的界面上。網絡發布的一個優勢是電腦不用安裝LabVIEW軟件也可以觀察和控制LabVIEW程序。

圖8 網絡發布示意圖
筆者完成了基于STM32的數據采集與網絡發布系統的設計,可采集兩路電壓信號,利用圖形化編程軟件實現上位機編程,界面美觀友好,并可實現程序的網絡發布。實驗表明該系統工作穩定可靠,可廣泛應用于工業現場。
[1] 羅俊.無線傳感器網絡性能建模與優化設計[D].上海:上海交通大學,2010.
[2] 程明明.智能家居無線傳感器網絡設計與實現[D].大連:大連理工大學,2011.
[3] 周立功.ARM嵌入式系統基礎教程[M].北京:北京航空航天大學出版社,2005.
[4] 張逢雪,王香婷,王通生,等.基于STM32單片機的無線智能家居控制系統[J].自動化技術與應用,2011,(8):98~101.
[5] 陳樹學. LabVIEW寶典[M].上海:電子工業出版社,2011:34~78.
[6] 阮奇楨.我和LabVIEW[M].北京:北京航空航天大學出版社,2009:56~98.
[7] 劉松斌,王海星,馬雙,等.基于LabVIEW的單片機與PC機串口通信顯示系統設計[J].化工自動化及儀表,2015,42(7):806~808.
[8] 蔡型,張思全.短距離無線通信技術綜述[J].現代電子技術,2004,(3):65~67,76.
[9] 羅林.基于參數估計的多傳感器數據融合研究與應用[D].長沙:湖南大學,2005.
[10] 左經文,陳沅濤,吳佳英,等.無線傳感器網絡中助理簇頭機制的應用[J].計算機工程,2011,(20):60~62.
DataAcquisitionandNetworkPublishingSystemBasedonSTM32
GUAN Xue-zhong, LI Qian-wen
(CollegeofElectricalEngineeringandInformation,NortheastPetroleumUniversity)
A data acquisition and remote network publishing system was designed for the signals like temperature, pressure, flow and their transmission and visualized display.In which, it has STM32 employed as core controller, the NRF wireless communication module adopted for wireless data transmission and the LabVIEW software based to display the data and realize network publishing; in addition, the principles of data acquisition and wireless communication were elaborated and making use of Altium Designer for PCB drawing was implemented, including the establishment of test platform to complete the design. The test results shows an accurate and reliable data acquisition, fast and stable data communication and the data publishing within local area network (LAN).
data acquisition,network publishing,wireless communication,STM32,LabVIEW
TH865
A
1000-3932(2017)02-0187-04
2016-07-05,
2016-12-05)
關學忠(1962-),教授,從事神經網絡控制和故障診斷技術的研究,gxzdqpi@163.com。