概觀
此篇技術文件,將敘述使用免費 C 系列模組範本,並搭配 Electronics Workbench Ultiboard PCB 配置工具,以設計客制化 CompactRIO 模組的必要程序。此客制化的 Freescale MMA7260Q Low-g 感測器模組,則透過 CompactRIO 提供晶片評估與快速原型製作的功能。
目錄
客制化模組開發 – 程序概論與應用開發
CompactRIO Module Development Kit (MDK) 將提供必要的通訊協定與實體規格手冊,以設計客制化的 CompactRIO 模組。並需要類比與數位的基礎知識,搭配電路設計的相關經驗。最好亦具備 LabVIEW Real-Time 與 LabVIEW FPGA 的相關經驗。下表為應用所需的硬體與軟體需求:
|
以MMA7260Q 客制化cRIO 模組的需求 |
使用MMA7260Q 模組進行cRIO 原型製作的需求 |
|
模組開發資源 |
應用開發軟體 |
另請參閱:
ELECTRONICS WORKBENCH 設計套餐免費軟體版本 - 軟體下載
了解更多 Electronics Workbench 的 EDA 工具
使用 Electronics Workbench 進行 Freescale MMA7260Q 模組的簡圖擷取與 PCB 配置
Freescale MMA7260Q 客制化 CompactRIO 模組,具有 2 個主要的設計需求。第一,使用者必須能夠透過模組,以軟體控制 Freescale MMA7260Q 感測器 (可選擇的 G-range、休眠模式等)。第二,模組可從 Freescale MMA7260Q 感測器輸出合適的數值,讓其他 I/O (NI cRIO-9215 類比輸入模組) 以 16 位元的精確度讀取感測器數值。
從 Freescale MMA7260Q 的資料表來看,則可找到下列的訊號連結功能需求:
1) 輸入 – g-Select1、g-Select2,與休眠模式
2) 輸出 – Xout、Yout,與Zout
3) 電源與接地 – Vss 與 Vdd

圖1. MMA7260Q 連結圖
來源:「±1.5g - 6g 的 3</> 軸式 Low-g 微機電加速規」Freescale 半導體技術資料MMA7260Q. Rev 0, 04/2005.
Freescale MMA7260Q 輸入通道均為完全的 TTL 邏輯,並透過 CompactRIO 機箱背板旁的 Xilinx Virtex-II FPGA 輸出進行控制。FPGA 本身可透過 LabVIEW FPGA Module 進行程式設計,並可進行較硬體敘述語言 (HDL) 更高階的抽象圖形化程式設計;硬體敘述語言一般均用於 FPGA 的程式設計。
Freescale MMA7260Q 的輸出,將連接至客制模組的 BNC 接頭。選擇使用 BNC 替代如 25-pin Combicon 的接頭,可提供 Freescale MMA7260Q 與 cRIO-9215 類比輸入模組之間的最佳連結功能。
Freescale MMA7260Q 最後的連結功能需求,即為電源與接地接腳。由於接地接腳為直接連結功能,並緊接 CompactRIO 背板的接地,因此 MMA7260Q 的電源需求,將因應 CompactRIO 背板的電源而有所不同。CompactRIO 背板的電源規格,將於 CompactRIO MDK 中進行詳細探討。在此案例中,則必須整合電源供應電路,從 5 V 的供電電壓調降為 MMA7260Q 所需的 3.3 V。此作業則必須搭配使用低壓降穩壓器 (LDO regulator)。此穩壓器是客制模組電路設計中所使用的唯一附加晶片,即位於必須的表面黏著型 (SMT) 電容與電阻旁邊。當談到電源方面,在設計客制 CompactRIO 模組時的重要考量要點之一,即為隔離電路。依此模組的案例來說,由於不需從外界接收訊號,因此非隔離式的電路即可符合需求。然而在許多情況下,則需要使用隔離式電路,以於 FPGA 與 I/O 電路之間構成電子與物理的阻絕器 (Barrier)。
此模組中並未建置,但是卻值得一提的設計選項,即為 ID EEPROM (將於 CompactRIO MDK 中詳細討論)。在設計客制 CompactRIO 模組的大部分案例中,最好都能設計 1 組 ID EEPROM,以讓 Measurement & Automation Explorer (MAX) 設定公用程式與 LabVIEW 可自動識別模組。然而,當以非大量生產的客制模組進行系統的原形製作時,卻可輕鬆略過 EEPROM 的程式設計步驟,亦即為此案例所採用的方式。
若需要另 1 組使用 2 個設計功能的客制 CompactRIO 模組設計範例 (隔離電路與適用於識別的程式化 EEPROM),則請參閱 ni.com 的線上教學:使用 ExpressPCB 開發 CompactRIO 模組。
到現在已經個別分析了電路元件,下一步則是要以 Multisim 設計電路簡圖 (Schematic)。下列程式圖顯示了 I/O 電路。並可依相關情況,於此設計階段即進行電路的模擬作業。
圖2. MMA7260Q 電路的Multisim 電路簡圖
在完成此簡圖之後,即可從 Multisim 將之匯入至 UltiboardM,以進行設計程序的配置階段。開發客制 CompactRIO 模組時,使用電子工作台設計套餐 (lectronics Workbench Design Suite) 的優點之一,即為 Ultiboard 本身就可提供建立客制 CompactRIO 模組的範本,並進而量測 PCB 的面積與不必要的通孔 (Through-hole)。使用者亦可存取內建於 Ultiboard 的 CompactRIO 模組範本;請選擇「Place>>From Database」,並選擇資料庫樹狀圖中的「Board Outlines」。
下圖則顯示 Ultiboard 中的 4 種 CompactRIO 範本:
1. 10 Pin Screwterm
2. 25 Pin D-Sub
3. Bare Template
4. BNC Template
圖3. 於Ultiboard 中選擇內建的CompactRIO 模組範本。
在選擇機板範本之後,則繼續放置相關元件。若已經在 Multisim 中指定合適的元件尺寸,則匯出電路簡圖至 Ultiboard 時,將可省下放置元件的時間。Ultiboard 包含許多如自動路由 (Autorouting) 的 PCB 配置進階工具。當選擇手動路由訊號時,此項進階工具卻又具備簡單易用的特性。在執行路由之前,必須先使用 Ultiboard 的元件精靈 (Component Wizard) 以輸入 Freescale MMA7260Q 的文字註解佔用空間 (Footprint)。由於 Freescale MMA7260Q 感測器屬於近期發表的產品,而且 Ultiboard 的零件資料庫 (Parts Library) 尚未收錄此產品的相關註解,所以此步驟極為重要。
下方圖 4 即為使用元件精靈所定義的晶片焊接點註解文字:

圖4. MMA7260Q 的焊接點註解文字
來源:「±1.5g - 6g 的 3</> 軸式 Low-g 微機電加速規」Freescale 半導體技術資料MMA7260Q.Rev 0, 04/2005.
這些面積搭配使用元件精靈,即可建立此元件並新增至 Ultiboard 的零件資料庫。
圖5. Ultiboard 中的元件精靈相關步驟
在完成 Component Wizard 的 7</> 個步驟之後,零件將顯示於註解文字的編輯模式中。依此範例來看,元件精靈將正確顯示晶片焊接板 (Solder pad) 的所有輸出/入,但是在註解文字中央的大型焊接板,將必須以註解文字編輯模式進行手動新增。透過大型的焊接板 (導熱片),則 MMA7260Q 可於 PCB 上達到理想的散熱狀態。
圖6. Ultiboard 中的文字註解編輯模式
同樣的,低壓降穩壓器亦必須透過元件精靈輸入至零件程式庫,或從範例零件中進行選擇。一旦完成此步驟,即可透過虛擬機板 (Board fabrication) 輸出所需的機板。
下圖則顯示雙層式 (2-layered) PCB,上層為元件,下層則為以紅色顯示的大型接地面 (Ground plane)。
圖7. Ultiboard 中的機板配置
在完成機板之後,即可匯出 Gerber files 並以電子方式傳送至處理虛擬 PCB 的公司,以建立實際的 PCB。一旦 PCB 建置完成,即可將元件焊接至機板與 CompactRIO 接頭,並安裝至所需的位置。
下圖 8 顯示完成後的 Freescale MMA7260Q 模組。

圖8. 完成的cRIO 模組
在 LabVIEW FPGA 中建立 Freescale MMA7260Q 客制模組驅動程式
在開發了硬體之後,則必須接著開發客制模組的驅動 VI。驅動 VI 將使用於 LabVIEW FPGA Module VI 的程式圖 (Block diagram) 中,以定義 CompactRIO 模組的功能。
首先,使用者必須設定硬體,使之受系統辨別為通用的 CompactRIO 模組。同時必須安裝 CompactRIO MDK,才能夠使機器判定為通用的 CompactRIO (請參閱 MDK 以取得更多資訊)。針對客制 I/O 模組設定 CompactRIO 系統,請接著完成下列步驟:
1. 啟動 LabVIEW 並選擇 FPGA 裝置作為執行 (Execution) 系統。接著出現「Embedded Project Manager」視窗。
2. 選擇 File » New 並建立 LabVIEW Embedded Project (LEP) 檔案。
3. 在「Embedded Project Manager」視窗中選擇 Hardware » Configure Target for CompactRIO。接著出現「Configure Target for CompactRIO」對話框。
圖9.「Configure Target for CompactRIO」對話框
4. 選擇要設定驅動 VI 的插槽。
5. 從「Module Type」下拉式功能表選擇「cRIO-generic」。
6. 在「Module Name」文字框中輸入模組名稱。請輸入可代表模組種類的名稱與說明。舉例來說,此模組命名為「/Slot2/MMA7260Q」。
7. 按下「OK</>」。
一旦設定硬體完畢,即可撰寫所需的驅動 VI。此模組的範例驅動 VI 十分簡單易懂。此 VI 將根據「g-Select1」與「g-Select2」的使用者設定值,執行數位輸出。亦可根據末端使用者應用與所需的 g 層級,進一步修改 MMA7260Q 模組。
圖10. 控制MMA7260Q g-Select 層級的驅動程式碼
LabVIEW FPGA 與 LabVIEW Real-Time 中的應用開發 (緩衝式資料擷取架構)
在開發客制模組之後,即可將之建置於完整的應用中。此應用有 2 個主要目的:
1. 讓使用者可透過網路瀏覽器,於進行 MMA7260Q 模組的遠端設定作業。
2. 透過 LabVIEW Express VI,迅速且輕鬆分析以 MMA7260Q 模組所擷取的數值。
了解這些目的之後,將可於 3 個系統中執行 LabVIEW 程式碼 – CompactRIO 的 PFGA (LabVIEW FPGA)、CompactRIO 的即時控制器 (LabVIEW Real-Time),與執行 Windows 的主機電腦。此項應用所使用的架構,均以下列 ni.com 的線上教學為基礎:以 CompactRIO 開發高速的連續緩衝資料擷取應用。 O以此範例架構而言,僅需新增極少數次要的 FPGA 與 Real-Time 程式碼。

圖11. MMA7260Q 模組的應用架構(FPGA、Real-Time,與Windows Host)
可使用 LabVIEW FPGA Module,先行撰寫最低階的 FPGA 程式碼。

圖12. 可重設的FPGA 應用程式簡圖
在程式簡圖左上方的「Empty FIFO」迴路,可於擷取資料之前清空 FIFO。在「Acquisition and Buffering」迴路中,則透過 cRIO-9215 進行 4</> 個類比輸入通道的同步取樣作業。並以 16 位元解析度回讀 (Read back) MMA7260Q 模組的電壓數值。包含 1 µs 解析度的迴路計時器 (Loop Timer) 函式,將決定類比輸入模組的取樣率。若無任何資料關連性或程式設計架構,以定義函式的時脈關係,則 LabVIEW FPGA 編譯器將同步啟動函式,並平行執行之。在迴路計時器 (Loop Timer) 與類比輸入 (Analog Input) 函式四周所放置的序列架構,將確保在迴路計時器延遲之後進行類比輸入作業,以維持第一波數次反覆運算 (Iteration) 的正確時脈 (而非以同步執行函式進行之)。
「Communication to Host」迴路將透過 Real-Time 應用執行交握,以確保在清空 FIFO 並擷取新資料之前,系統已讀取過所有的緩衝資料。
針對程式碼的驅動程式部分,則將新增至「Read g-Range and Alarms」迴路中的程式簡圖,以讓使用者選擇所需的 g-levels。其他 FPGA 程式碼則新增至數位輸出模組的「AC and DC Limits」,以針對感測器模組遭遇的異常振動與錯誤方向發出警示。
到目前為止已經撰寫了 FPGA 程式碼,並已建立應用的 Real-Time 部分。在 CompactRIO 即時控制器中執行的程式碼,將呼叫「Open VI Reference.vi」,以下載編譯過的 FPGA 程式碼至 CompactRIO 機箱。
在程式簡圖左上方的「While」迴路,將於啟動應用時進行 cRIO-9215 的校準作業。接著為高優先性的「Timed Loop」使用「Read/Write」控制,以進行 MMA7260Q 的 g-level 設定。而 1 組內部的「For」 迴路將包含其他的「Read/Write」控制,以溝通 FPGA 並讀取緩衝資料 (來自於 MMA7260Q 的感測器數值)。最後,具有一般優先性的「While」迴路將透過 Real-Time FIFO,以接受「Timed Loop」的資料,並於稍後以 TCP/IP 送出資料;因此 Windows 主機可執行資料的高階分析。請注意:亦可於 Real-Time 系統中執行分析,並反之透過 TCP/IP 傳送資料至 Windows 主機。然而,若要達到最低的程式設計負載程度,亦可使用 Windows 主機執行 Express Vi 的資料分析作業。
圖13. LabVIEW Real-Time 應用程式簡圖
以網路瀏覽程式設定 Real-Time 應用
LabVIEW Web Server 可搭配使用 NI 的 Real-Time 系統 (</>即為 CompactRIO 控制器)</>,因此可將其他機器輕鬆連接至網路瀏覽器,並設定 Real-Time 應用。
以 LabVIEW 選擇所需的 CompactRIO 控制器,並可點選 Tools»RT Target:x.x.x.x Options… 以修改設定選項。使用者可以進行不同的網路設定,如存取不同主機的清單、檢視不同 VI 的許可狀態,與開機執行檔 (Start-up executable) 的路徑位置。
在「Web Server:Configuration」下拉式功能表中,可勾選「Enable Web Server」選項以啟動網路瀏覽器。其他的選項可保持其預設值不動。
在「Web Server:Browser Access」下拉式功能表中,只要選擇「Allow Viewing and Controlling」,並於文字欄中輸入星號,即可控制存取 Real-Time 系統的所有電腦。
在「Web Server:Visible VIs」下拉式功能表中,只要於文字欄位中輸入星號,即可檢視所有的 VI。

圖14. 設定網路瀏覽器的相關選項
接著只要點選 Tools»Web Publishing Tool…,即可設定 Web Publishing Tool。
圖15. 設定Web Publishing Tool
只要輸入文件標題、表頭,與註解,即可設定並客制網頁的檢視方式。使用這些欄位以說明網頁所顯示的資訊類型,如「CompactRIO Freescale MMA7260Q Sensor Demo (RT)」。
開啟 1 個 Internet Explorer 視窗,並輸入 CompactRIO 系統的 IP 位址「ftp://x.x.x.x」(</>如 ftp://10.0.59.139)</>。則可於 Real-Time 系統中開啟 FTP Session,並上傳 .html 檔案至內建的 Web server。
現在可以開啟網路瀏覽器視窗,並輸入位址「http://x.x.x.x/CompactRIO Sensor Demo (RT).htm」。
網頁亦可載入至下方所示的網頁瀏覽器。

圖16. 從網路瀏覽器設定Real-Time 應用
於 VI</> 按下滑鼠右鍵,並選擇 Request Control of VI。則可完全控制 VI,就如同以 LabVIEW 搭配使用該 VI。
由於該網頁是在Real-Time 系統中執行,因此亦可顯示VI 的人機介面。在關閉LabVIEW 之後將可持續執行VI,而人機介面亦可繼續顯示該網頁。
透過 LabVIEW Express VI 分析 MMA7260Q 模組的即時資料
使用 Freescale MMA7260Q 模組開發 CompactRIO 應用的最後一步,即為在即時資料穿過乙太網路,從 Real-Time 系統傳送至 Windows 系統之後,進行資料分析作業。
內建的 TCP/IP 接收器函式,將根據 Real-Time 系統 IP</> 位址所指定的位置,從遠端伺服器抓取所需的資料。TCP/IP 接收器函式的輸出通道,可直接連至進行資料分析的 LabVIEW Express VI。


圖17. Windows 主機應用程式的程式簡圖與人機介面
人機介面的左邊,將顯示原始感測器數值的圖形指示器 (Graph indicator),而右邊將顯示光譜與衰減的量測作業。
此應用已經完成在開發之初所設定的 2個目的:
1. 讓使用者可透過網路瀏覽器,於進行 MMA7260Q 模組的遠端設定作業。
2. 使用 LabVIEW Express VI,以迅速並輕鬆分析 MMA7260Q 模組所擷取的感測器數值。
若需要更多 CompactRIO 的客制模組開發相關資訊,請參閱:ni.com/compactrio。
另請參閱:
了解簡圖擷取模擬 PCB 配置自動路由,與 CAM 準備作業的 EWB 工具
合法
此教學由美商國家儀器 (以下簡稱 NI) 開發。此教學受 NI 技術支援,但未經完整測試及檢驗。NI 不保證品質,亦不為其更新版本、相關產品及驅動程式等後續支援負責。此教學不具任何形式保證,且不受任何特定用途規範。(http://ni.com/legal/termsofuse/unitedstates/us/)









