第四章 FPGA 發展系統 發展系統 發展系統 發展系統
4.4 CompactRIO 開發系統 開發系統 開發系統 開發系統[52]
4.4.1 簡介 簡介 簡介 簡介
NI CompactRIO 是一款堅固的小型工業用控制及擷取系統,以可重設組態 I/O (RIO) FPGA 技術驅動,具有極高的效能及可彈性的自訂功能。其結合一顆低 耗電量即時處理器及可重設組態高效能 RIO FPGA 晶片組,以用於穩定的獨立嵌 入式或分散式應用,並具備內建訊號處理、可熱插拔的工業 I/O 模組,可以直接 連接至感測器及致動器,亦可以開放存取低階硬體資源。可重設組態 I/O (RIO) 核心具備內建之資料傳輸機制,可以將資料傳送給內嵌之處理器,進行即時分 析、後處理、資料記錄,或是與網路上的主機電腦通訊。此嵌入式系統使用 LabVIEW 圖形化程式設計工具進行開發,迅速建立起足與專用設計硬體迴路之 效能及最佳化相匹敵的嵌入式控制或擷取系統,以達到快速開發的目的。
CompactRIO 平台包括具備工業用浮點處理器的 cRIO-9004 即時控制器;三百萬 閘(gate)的 FPGA、具備 8 插槽可重設組態機箱;還有多種 I/O 類型。CompactRIO 嵌入式系統使用 LabVIEW、LabVIEW 即時模組(Real-Time Module)及 LabVIEW FPGA 模組進行開發。
4.4.2 架構及模組 架構及模組 架構及模組 架構及模組
CompactRIO 提供硬體直接存取功能,可以使用 LabVIEW FPGA 基本 I/O 函 數存取各 I/O 模組的輸入/輸出電路,每個 I/O 模組包括內建連接能力、訊號處 理、轉換電路(ADC 或 DAC)。
1. I/O 模組
每個 CompactRIO I/O 模組皆包括內建的訊號處理及螺絲端點、BNC,或 D-Sub 接頭。透過將接頭連接盒整合至模組中的作法,有多種 I/O 類型可以選擇,
包括±60 V 同步取樣類比輸入的 9221 模組、0 至 20mA 類比輸出的 9265 模組、
具備供編碼器使用之 5 V 調節電源輸出的差動式/TTL 數位輸入的 9403 模組,
其外觀圖分別如圖 4-5 所示。由於模組中包括內建的訊號處理,供擴充電壓範圍 或工業訊號類型使用,因此通常可以直接將模組連接至感測器/致動器。
(a) (b) (c) 圖 4-5 CompactRIO 之 I/O 模組(a)9221 (b)9265 (c)9403
2. 即時處理器
CompactRIO 嵌入式系統採用工業級 200 MHz Pentium 級處理器,穩定地執 行 LabVIEW Real-Time 應用程式,如圖 4-6 所示。使用數千種內建的 LabVIEW 函數建立多功能嵌入式系統,可應用於即時控制、分析、資料記錄及通訊。控制 器亦具備一個 10/100 Mb/s 乙太網路連接埠,可以透過網路(包括電子郵件)及 內建網頁(HTTP)和檔案(FTP)伺服器進行程式化通訊。使用遠端面板網路伺服 器,可以自動發佈嵌入式應用程式的人機界面圖形化使用者界面,進行多用戶端 的遠端監看或控制。即時處理器亦具備兩個 11 至 30 VDC 的電源輸入、一個使 用者切換開關、LED 狀態指示器、以及其它高穩定度的功能。
圖 4-6 CompactRIO 嵌入式系統 200 MHz Pentium 級處理器外觀圖
3. 可重設組態機箱
可重設組態機箱是 NI CompactRIO 嵌入式系統的中心,具備 RIO FPGA 核 心。這個使用者定義的 RIO FPGA 是一款客製硬體結構,可容納控制邏輯、輸入
/輸出、計時、觸發,以及同步化設計。RIO FPGA 晶片以星狀拓樸連接至 I/O 模組,可以直接存取各模組,以便在計時、觸發及同步化時獲得精確的控制及無 限的彈性,其外觀圖如圖 4-7 所示。
圖 4-7 可重設組態機箱外觀圖
透過 NI RIO 技術,可以使用可重設組態 FPGA 晶片及 LabVIEW 圖形化開 發工具,定義所需的客製量測硬體電路,其示意圖如圖 4-8。利用可重設組態 FPGA 技術的優勢,將輸入/輸出、通訊或控制應用程式中經過高度最佳化的電 子迴路自動進行同步化。
圖 4-8 客製硬體電路載入 FPGA 示意圖
4. 現場可程式規劃閘陣列(Field-Programmable Gate Arrays, FPGAs)
FPGA 設備之控制及擷取系統廠商的廣泛使用,因其效能、可重設組態的能 力、小巧的體積,以及低廉的工程開發成本。使用 FPGA 的設備向來是由廠商加 以定義,而非由使用者定義,原因在於電子設計工具的複雜度。故運用可由使用 者設計程式的 FPGA,建立高度最佳化之可重設組態控制及擷取系統,不需要了
解專業的硬體設計程式語言,例如:VHDL。
FPGA 為一個平行處理的可重設組態運算引擎,它在晶片上的矽電路中執行 LabVIEW 應用程式並設計客製的控制或擷取電路,計時/觸發解析度可達 25 ns。而內建函數,可以處理類比封閉迴路 PID 控制、第五階 FIR 濾波器、1D 搜 尋表(look-up tables)、線性插補、過零偵測,以及直接數位合成正弦波。
5. LabVIEW FPGA 模組
(4) 使用 while 迴圈、順序(sequence)、條件(case)、for 迴圈及其它執行控制結 構進行平行處理。
(5) FPGA FIFO 資料緩衝及記憶體讀取/寫入。
(6) 迴圈計時器/計數器,40 MHz FPGA 時間基準(25 ns tick, µs, 或 ms 解 析度)。
(7) 布 林 邏 輯 , 比 較 , 數 字 運 算 , 飽 和 演 算 法 函 數 (saturation arithmetic function),以及逐位資料操作(bitwise data manipulation)函數。
(8) HDL 界面節點,用於整合非 LabVIEW IP 核心。
(2) 精密時間迴圈(Time-critical loop),用於浮點控制、訊號處理、分析及逐點
決策。
(3) 普通優先迴圈,用於嵌入式資料記錄、遠端面板網頁界面,以及乙太網路 /序列埠通訊。
(4) 連接網路的主機 PC,提供遠端圖形化使用界面、歷史資料記錄,以及後 處理(postprocessing)。
圖 4-9 可重設組態之控制及擷取系統四大要件流程
4.5 本章 本章 本章 本章小 小 小 小結 結 結 結
在使用 NI CompactRIO 需先了解其軟、硬體架構,再了解其相關函數、模組 設定之運用,進而可開發順利。市面上有許多 FPGA 開發系統,選擇此種開發系 統,是為了提高更快速的開發且攜帶方便,相對的也有受到限制,如:成本過高、
時序問題等,由於此開發系統之 FPGA 無法運用浮點運算,以致有些相關演算法 無法放入 FPGA,由 FPGA 端所擷取訊號之值會先存至暫存器,再由 Host 端設 定所要抓取之資料數,從暫存器抓取進行訊號處理及頻率計算,此流程必然會消 耗一些時間,在軟體進行演算法最小之時間單位為 ms,不及硬體端的執行時間 (us 或 ns)。
本報告取樣頻率為 1.92kSamples/sec,一週波取樣 32 點,輸入訊號通道有六 個,因 FPGA 端程式的 I/O 後面有加入 join number 的方塊,將兩個訊號合成為 一個訊號存入 FPGA 之暫存器,所以 Host 端讀取 FPGA 擷取存至暫存器之資料 數應為 96 筆,但受到 Host 端軟體執行速度且為避免暫存器被存滿,故需設為 192 筆,才能防止暫存器被存滿並能同時處理、分析完硬體端所擷取之訊號。