學術專區 關於NI NI活動訊息 NI Developer Zone 技術支援服務 使用者解決方案 產品與服務 連絡NI MyNI

檔案類型: 線上教學
接受 NI 支援: 是
發表日期: Jun 16, 2008


意見反應




相關目錄

相關連結 - Developer Zone

相關連結 - Products and Services

使用精確週期的 ARM 微控制器模擬器

0 評分 | 0.00 之 5
閱讀語言 | 列印 | PDF

使用精確週期的 ARM 微控制器模擬器

適用於 ARM 微控制器的 LabVIEW 嵌入式 (Embedded) 模組,同時支援 RealView µVision ARM 模擬器,可精確進行週期時脈與邏輯的模擬作業。此外,模擬器並支援多種單晶片 (On-chip) 週邊裝置,可進行控制的激發與響應,適用於應用的除錯與測試作業。透過此功能,即可於完成硬體設計之前,開發並測試應用的重要部分。

此篇線上教學將討論可利用該功能的多種方法,協助工程師更快開發更高品質的程式碼,並可透過 NI Multisim SPICE 模擬環境,共同模擬周圍的類比電路。

 

於模擬器中執行應用

  1. 若要於 LabVIEW 模擬器中執行應用,必須先建立 LabVIEW 專案 (Project)。
    • 從下拉式功能表選擇「ARM Project」,並按下「Go」以開始 ARM 專案精靈。

 
[+] 放大圖

         

  • 點選「Next」建立新的 VI。
  • 選擇所想要模擬的處理器。在此線上教學中,我們將模擬 MCB2300 體驗機板。按下「Next」。


[+] 放大圖

 

          

  • 選擇「Run on Simulator」的選項並按下「Finish」。LabVIEW 將產生專案檔暗語 2 組 VI。使用者可立刻儲存這些檔案。


[+] 放大圖

 

  1. 現在則建立了應用。我們在此案例中開發簡單的 VI,使之可讀取類比輸入並檢查是否超過臨界值。若超過其臨界值,LED0 將亮起。
    • 在 LabVIEW 專案中的 MCB2300 系統按下右鍵,並點選「New>>Elemental I/O」以將 I/O 節點新增至專案的樹狀圖。

 

          

  • 將「Analog Input >> AIO」與「Digital Output >> LED0 」新增至專案。
  • 再選擇「Window>>Show Block Diagram」,以切換至開放式 VI 的程式圖。
  • 將專案的 Elemental I/O 節點拖曳至程式圖。
  • 則可完成下方所示的程式圖與人機介面。請注意:由於系統將使用 10 位元 A/D 值的整數表示自 A/D 回傳的數值,因此數值 512 將約略等於 1.66 V。

 

  1. 按下「Run」箭頭以產生並編譯 C 程式碼,並於模擬器中執行該應用。處理器的狀態視窗將顯示模擬器的狀態。

 

手動更改類比輸入值

現在已開始執行應用,且可將類比值輸入至模擬的 ADC,以測試程式碼的邏輯。此動作可手動或自動進行。若要手動更改數值,可直接進入 uVision IDE。

  1. 在專案樹狀圖的 MCB2300 系統點選右鍵,並選擇「Show Keil uVision」 即可開啟 µVision。

 

  1. 在「Keil uVision IDE」中,選擇「Peripherals>>A/D Converter>>A/D Converter 0」,以開啟週邊裝置的模擬器介面。
  2. 在「Analog Inputs」框中,可更改 AD00 的數值為 2.0。此步驟可更改 LabVIEW 軟體中,由模擬 ADC 所回傳的數值。該數值是以伏特為單位,且 10 位元的 A/D 具有 0 ~ 3.3V 的有效輸入範圍;因此 2V 將可轉換為 620 的整數數值。下列公式可計算出對應的值。

  1. LabVIEW 指示器可檢視此輸出值。此外,可點選「Peripherals>>GPIO Fast Interface>>Port 2」以檢視數位埠的數值。而該 LED 則連接至 Port 2 line 0。

 

自動化激發與響應

另可使用獨立 VI 於模擬的週邊裝置傳送/接收資料,以取代上述的手動方式。適用於 ARM 微控制器的 LabVIEW Embedded Module 即安裝了額外的控制面板,可針對模擬的嵌入式系統,輕鬆開發複雜且自動化的激發響應測試作業。

  1. 首先開啟由精靈所產生的 Simulated IO VI。可至 LabVIEW 專案中的「My Computer」找到該 VI。
  2. 當開啟程式區時,即可看到已有範本程式碼用於溝通模擬器。


[+] 放大圖

 

          

  • 該程式碼將設定模擬作業的時距 (Time step)、連接執行中的模擬器,並可停止模擬器以便 LabVIEW 可傳送資料。
  • 在序列架構的中間部分,可新增程式碼以執行激發響應。
  • 在更新資料過後,即可再次啟動模擬器。一旦完成模擬作業,則將中斷該連結。
  1. 在此線上教學中,我們將傳送輸入序列,直至已儲存於 LVM (LabVIEW measurement file) 中的模擬器。


[+] 放大圖

 

          

  • 針對 While Loop 按下滑鼠幼繭,並以 For Loop 取代之。
  • 點選「Express>>File」以放置所讀取的 LabVIEW Measurements File VI,並將之設定進行 LVM 檔案的讀取作業。若要進一步了解 LabVIEW LVM 檔案,請參閱分析並儲存訊號  l 線上教學。
  • 點選「ARM>>ARM Simulation Signal Generation」並使用其中的 VI,即可 1 次寫入並讀取單點的模擬資料。
  • 系統將蒐集該筆資料,並顯示於波形圖表中。
  1. 在執行模擬之後,即可比較其實際結果與預設動作。我們可以在此截圖中發現,只要輸入提升至超過 1.66V,Boolean 輸出亦跟著升高。


[+] 放大圖

 

檢驗完整的設計

嵌入式 ARM 微控制器,為較大型設計的元件之一。該完整設計包含可外接於嵌入式裝置的類比與數位元件。舉例來說,若要將訊號輸入至微控制器,往往必須先進行濾波或放大的訊號處理過程,方可使之成為適合的激發源。這些類型的外接裝置,將影響嵌入式裝置的動作;因此由 ARM 微處理器所自行進行的模擬,將可能無法完整了解系統的動作特性。

在整合了適用於 ARM 微控制器的 LabVIEW 嵌入式 (Embedded) 模組模擬環境之後,即可搭配使用 NI Multisim 的類比與數位模擬功能。只要整合此 1 組設計階段的模擬功能,可更完整分析外接訊號處理功能所造成的影響。此跨多重環境的模擬作業即稱為協同模擬 (Co-simulation),並可減少常見錯誤;在實際建置之前,針對應用程式碼進行更精確的除錯與測試作業。

Multisim 為簡單易用、直覺式,且功能強大的混合模式 (Mixed-mode) 模擬環境,適用於電路設計作業。只要搭配使用 LabVIEW 測試環境,工程師即可擁有 PCB 設計與檢驗的專屬整合式平台。在 Multisim 電路設計環境與 LabVIEW 中的所有模擬量測作業,均可儲存為 LabVIEW Measurement (LVM) 檔案格式。在這些 NI 產品之間的共用通訊語言即為 LVM;因此使用者可輕鬆將模擬模組的輸出結果傳送至其他模組。

 

以 LabVIEW 與 Multisim 模擬完整的設計

接著可繼續前述的 LabVIEW 範例,以完整檢驗應用的動作。

將訊號介接至 ARM 微控制器的常見設計需求,即為訊號處理功能。舉例來說,在電壓成為 ARM 處理器的激發源之前,亦必須使用分壓器(Voltage divider) 進行步降 (Step down) 作業。

  1. 若要將類比訊號介接至微控制器,則必須先於 Multisim 中設計 1 組電路。
    • 啟動 NI Multisim (開始 > 所有程式 > National Instruments > Circuit Design Suite 10.0 > Multisim)
    • 設計如下圖所示的電路 (亦可開啟名為「simple_voltage_divider.ms10」的附加電路檔案)

          

  • 連按 2 次函式產生器 (XFG1),將「Frequency」設定為 10 kHz;而「Amplitude」設定為 5 Vp
  • 點選模擬按鈕 (為下方圖片的紅色框處)。

          

  • 連按 2 次示波器 (XSC2) 並觀看分壓器的模擬輸出。
  • 點選示波器中的「Save」按鈕 (如下圖所示)。
  • 將「Save as Type」下拉式對話框變更為「Text-Based Measurement file (*.lvm)」,並將檔案儲存為「multisim_output.LVM」。
  • 點選「Data resampling settings」對話框中的「OK」。

  1. 現在可將所模擬的「MultisimOutput.lvm」響應帶入 LabVIEW 模擬環境,以介接至 ARM 微控制器。
    • 在模擬之前,必須對先前的 LabVIEW VI 進行下列更改。
    • 新的 VI 運算式,可將 ARM 微控制器的輸出儲存為 LVM 檔案。
    • 連按 2 次「Read from Measurement File」Express VI。
    • 在「File-Name」對話框中,找到先前所儲存的「MultisimOutput.lvm」檔案。
    • 按下「Run」按鈕,以編譯並執行程式碼。


[+] 放大圖

在執行模擬之後,即可比較其實際結果與預設動作。在此截圖中可以發現,只要輸入提升至超過 1.66V,Boolean 輸出亦跟著升高。

使用此整合式平台,亦可彈性檢驗「Complete embedded design」。

可於 Multisim 環境中再次使用已儲存的 VI 模擬資料 (儲存檔名為 LabVIEWOutput.lvm)。該筆模擬資料除了可儲存之外,亦可或做為 Multisim 中的激發。此類比電路與嵌入式處理器之間的反覆遞迴 (Iterative looping),可輕鬆進行模擬資料的反饋作業,以提升系統的整體分析功能。

下載

multisim_output.lvm

simple_voltage_divider.ms10

0 評分 | 0.00 之 5
閱讀語言 | 列印 | PDF

合法
此教學由美商國家儀器 (以下簡稱 NI) 開發。此教學受 NI 技術支援,但未經完整測試及檢驗。NI 不保證品質,亦不為其更新版本、相關產品及驅動程式等後續支援負責。此教學不具任何形式保證,且不受任何特定用途規範。(http://ni.com/legal/termsofuse/unitedstates/us/)