劉松斌 王海星
(東北石油大學電氣信息工程學院,黑龍江 大慶 163318)
數據采集是連接計算機與物理世界的紐帶,也是信號處理和分析的重要環節,高速且準確的數據采集能實時地還原原始信號和信息,為接下來的數據分析處理和控制打下堅實的基礎。傳統的數據采集系統外圍電路龐大,接口設計復雜,與工業設備逐漸小型化的趨勢背道而馳。又因為早期的數據采集設備多是基于可編程邏輯器件(CPLD)的,造成編程復雜通用性差。隨著科學技術的發展,美國國家儀器公司(NI)推出Compact-RIO和Single-Board RIO(可重新配置 I/O)系列板卡,以其特有的FPGA結合Real-time(實時處理器)的架構在數據采集及工業控制等領域得到了廣泛的應用。由于使用FPGA進行數據采集控制,其納秒級的運行速度可以大幅提高數據采集的速度和精度。并且RIO系列板卡無縫兼容LabVIEW,發揮了LabVIEW編程簡單、開發周期短的特點,采集到的數據可以從FPGA高速傳輸到實時處理器中,可以利用LabVIEW[1]內置的眾多數據處理函數對數據進行處理從而得到所需的信息。
筆者就利用NI最新推出的Single-Board RIO板卡NI 9606作為嵌入式開發平臺設計并實現一種數據采集與顯示系統。考慮到一些數據采集設備需要就地顯示采集數據等信息,又因為NI配套的液晶顯示設備價格昂貴,用LabVIEW獨立開發第三方液晶的驅動程序工作量巨大,因此提出了一種間接驅動液晶的方案,即利用NI 9606自帶的RS232串口,將數據發送到驅動液晶的單片機中予以顯示,這樣可以大幅減少成本和開發周期。
系統硬件由兩部分組成,一是以Single-Board RIO為核心的數據采集部分,二是由單片機和液晶組成的顯示部分,RS232串口通信作為二者連接的橋梁。根據工程現場實際需求,需要顯示電機的運行情況,即電壓及電流等信息,將電機的電壓和電流作為信號采集的信號源。從而組成基于Single-Board RIO的數據采集與顯示系統,系統硬件組成框圖如圖1所示。

圖1 數據采集與顯示系統硬件組成框圖
NI Single-Board RIO平臺[2]結合了可部署的嵌入式設備,在單一板卡上集成了實時處理器、可重復配置現場可編程門陣列(FPGA)、模擬和數字I/O。可以通過NI C系列模塊(本系統選擇NI 9683)擴展內置模擬和數字I/O。利用電壓互感器、電流互感器將三相交流電轉換為NI 9606允許輸入范圍的電壓和電流信號。針對不同的信號源NI 9606提供3種接線方式,分別是參考單端模式、非參考單端模式和差分模式。結合要采集的信號和對信號精度的要求選擇差分模式,因為差分模式可以使放大器有效地抑制共模電壓以及任何與信號混雜在一起的共模形式的噪聲,有效地提高測量質量。
為了減少成本,選擇利用單片機間接驅動液晶的方案。由于對顯示速度要求不高,所以單片機選擇STC89C52,組成單片機最小系統。利用電平轉換芯片MAX232將RS232電平轉換為TTL電平。液晶選擇川航科技CH240128字符液晶,液晶引腳定義見表1,顯示系統電路原理如圖2所示。

表1 液晶引腳定義

圖2 顯示部分電路原理
系統軟件設計按照程序運行的位置分為3部分,一是運行在NI 9606內部FPGA部分的采集程序,二是運行在NI 9606內部實時處理器的數據處理和串口發送程序。這兩部分都是利用LabVIEW語言編寫。第三部分是運行在單片機中的串口接收和顯示程序,此部分程序由C51語言編寫。
NI 9606無縫兼容LabVIEW,可以利用LabVIEW圖形化編程環境對內部的FPGA和實時處理器進行編程。并且LabVIEW內部集成了許多函數,可以實現復雜的計算和信號處理,從而提高開發效率。程序框圖如圖3所示。
首先編寫FPGA VI,從FPGA I/O節點讀取數據,利用順序程序第一幀的延時來定義采樣率,檢查錯誤狀態保證數據的完整性。FPGA程序如圖4所示。

圖3 LabVIEW程序框圖

圖4 FPGA程序
實時處理器部分程序主要實現數據的處理和串口發送,首先讀I/O節點取出數據[3],再利用LabVIEW自帶的函數求出電壓、電流有效值和功率因數。利用LabVIEW VISA[4]串口節點設置波特率等,將數據加標志位后發送到串口[5],程序如圖5所示。

圖5 實時處理器程序
通過單片機的控制引腳按照一定的時序輸送高低電平,通過I/O引腳輸送相應的數據和指令驅動液晶。設置與VISA[6]相同的串口通信參數,如波特率及奇偶校驗等。利用標志位將電壓、電流、功率因數3組數據分別顯示在液晶的不同位置。單片機[7]程序流程如圖6所示。

圖6 單片機程序流程
結合硬件設計和軟件編程,實現基于Single-Board RIO的數據采集與顯示系統,將電機的電壓和電流作為信號采集的信號源。信號通過電壓互感器、電流互感器后連接到NI 9606,數據經運算處理后發送到顯示部分,在液晶上予以顯示。
設計并實現了基于Single-Board RIO的數據采集與顯示系統,系統具有開發周期短、結構簡單及穩定性高等優勢,可勝任高速、高精度的數據采集任務。筆者創新性地提出了間接驅動液晶的方案,大幅度減少了系統成本,對實際工程實現具有一定的現實意義,也為NI系列產品的驅動提供了一種全新的解決方案。
[1] 陳樹學,劉萱.LabVIEW寶典[M].北京:電子工業出版社,2011:35~80.
[2] 徐超.LabVIEW在實時測控系統中的應用研究[D].重慶:重慶大學,2005.
[3] 楊忠仁,饒程,鄒建,等.基于LabVIEW數據采集系統[J].重慶大學學報(自然科學版),2004,27(2):32~35.
[4] 向科峰.基于LabVIEW的數據采集系統設計與實現[J].機械管理開發,2011,(4):191~192.
[5] 阮奇楨. 我和LabVIEW[M].北京:北京航空航天大學出版社,2009:56~98.
[6] 高璽亮.基于LabVIEW的電能質量分析系統的研究[D].哈爾濱:哈爾濱理工大學,2012.
[7] 張毅剛,彭喜元,姜守達,等.新編MCS51單片機應用設計[M].哈爾濱:哈爾濱工業大學出版社,2012:56~78.