快轉到主要內容

解鎖高速潛力:Advantech 實測 Jetson Orin Nano PCIe Endpoint 模式,讓嵌入式系統與 PC 閃電互連!

· loading
作者
Advantech ESS
目錄

本文章內容係以參考技術文件為基礎,經由人工智慧(AI)技術進行改寫及重整,旨在提供讀者更清晰易懂之內容呈現。如有任何技術細節上的疑義或需進一步確認,建議讀者參考原始技術文件或與相關技術人員聯繫。

嘿!各位對邊緣運算、AI 技術充滿好奇的朋友們,以及我們最給力的 AE 和銷售夥伴們!

想像一下,您手邊有一台功能強大的嵌入式系統,比如 NVIDIA Jetson Orin Nano,它正在處理複雜的 AI 推論或高速資料採集。現在,您需要將這些寶貴的資料或運算結果,以最快、最有效率的方式傳送到另一台主控電腦(可能是您的工業 PC 或標準工作站)進行後續處理或分析。您會怎麼做?傳統上,我們可能會想到乙太網路、USB 或其他介面。但如果需要的是「閃電般」的速度和極低的延遲呢?

這時候,PCIe (Peripheral Component Interconnect Express) 這個電腦內部的「高速公路」就派上用場了!通常,PCIe 是用來連接顯示卡、SSD 或擴充卡的,主控端是您的 PC (Root Port),而這些裝置則是「端點」(Endpoint)。但如果我們能讓像 Orin Nano 這樣的嵌入式系統,也扮演這個「端點」的角色,直接連上主控 PC 的 PCIe 高速公路呢?這聽起來是不是很酷,而且充滿無限可能?

在 Advantech,我們的工程師們總是對各種新技術充滿探索精神!最近,我們就進行了一項有趣的實驗:測試 NVIDIA Jetson Orin Nano 在 PCIe Endpoint 模式下的表現,並嘗試讓一台標準的 X86 Windows PC 成功偵測到它,甚至將它辨識為一個網路裝置!

這項實驗的目標很明確:驗證 Orin Nano 作為 PCIe Endpoint 的可行性,並探索這種高速連接方式在實際應用中的潛力。對於需要嵌入式系統與主控端進行大量、低延遲資料交換的場景,這絕對是一條值得深入研究的「高速通道」!

實驗環境大公開!
#

這次實驗的主角非常簡單:

  1. PCIe 端點 (Endpoint): NVIDIA Jetson Orin Nano 開發套件 (想像成我們的「聰明小裝置」)
  2. PCIe 主控端 (Host): 一台搭載 X86 處理器的 Windows 電腦 (想像成我們的「指揮中心」)

我們的任務就是讓 Orin Nano 透過 PCIe 線纜連接到 Windows PC 後,能被 PC 成功「看見」並「溝通」。

實驗過程:工程師的魔法步驟!
#

要讓 Orin Nano 從一個獨立運作的嵌入式系統,搖身一變成為 PC 的 PCIe 端點,需要一些特別的設定。這就像是為它準備一張特殊的「高速公路通行證」。我們的工程師們按照 NVIDIA 提供的指引,進行了以下關鍵步驟:

首先,是準備 Orin Nano 的系統軟體

  1. 修改系統設定檔: 編輯 jetson-orin-nano-devkit.conf 這個檔案,加入一行特定的設定來覆寫 ODMDATA。這一步是告訴系統如何配置硬體的 PCIe 通道。
    ODMDATA="gbe-uphy-config-8,hsstp-lane-map-3,hsio-uphy-config-41";
    
  2. 應用補丁並建構 BSP: 根據 NVIDIA 提供的文件,應用必要的軟體補丁,並重新編譯 BSP (Board Support Package)。這確保系統軟體能支援 PCIe Endpoint 模式。 https://docs.nvidia.com/jetson/archives/r35.5.0/DeveloperGuide/SD/Communications/PcieEndpointMode.html#bringing-up-an-ethernet-interface-over-pcie
  3. 重新燒錄裝置: 使用特定的指令將修改後的系統軟體燒錄到 Orin Nano 中。
    $ sudo ./tools/kernel_flash/l4t_initrd_flash.sh  --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit internal
    
    這些步驟確保 Orin Nano 在硬體層面已經準備好進入 PCIe Endpoint 模式。

接著,是啟動 Orin Nano 並配置 PCIe Endpoint 功能

  1. 啟動 Orin Nano: 將經過特殊燒錄的 Orin Nano 開機。
  2. 進入系統並執行指令: 登入 Orin Nano 的系統,執行以下指令來啟用並配置 PCIe Endpoint 模式,特別是將其模擬為一個網路介面 (tvnet)。
    $ cd /sys/kernel/config/pci_ep/
    $ mkdir functions/pci_epf_tvnet/func1
    $ echo 16 > functions/pci_epf_tvnet/func1/msi_interrupts
    $ ln -s functions/pci_epf_tvnet/func1 controllers/14160000.pcie_ep/
    $ echo 1 > controllers/14160000.pcie_ep/start
    
    這些指令告訴 Orin Nano 的作業系統:嘿,我現在要扮演 PCIe Endpoint 的角色,而且我要模擬成一個網路裝置,請準備好!

最後,是驗證成果:在 Windows PC 上偵測 Orin Nano

  1. 啟動 Windows 主控端: 開啟我們的 X86 Windows 電腦。
  2. 檢查裝置管理員: 打開 Windows 的「裝置管理員」。

最令人興奮的時刻來了!如果一切順利,您會在「網路介面卡」或「其他裝置」類別下,看到一個新的「網路控制器」赫然出現!

image_1745209278915.png

這代表什麼? 這表示我們的 Windows PC 成功地透過 PCIe 連接線,偵測到了扮演 Endpoint 角色的 Orin Nano,並且將它辨識為一個可用的網路裝置!雖然這只是一個基礎的偵測,但它成功驗證了 Orin Nano 在 Advantech 平台上實現 PCIe Endpoint 功能的可行性!

實驗成果與應用展望
#

這次實驗的成功,證明了我們有能力在 Advantech 的 Jetson Orin Nano 相關產品上,實現並驗證 PCIe Endpoint 這樣的進階連接模式。這項技術的突破,為許多需要高速、低延遲通訊的應用場景打開了大門:

  • 工業自動化: 機器視覺系統可以透過 PCIe 將高解析度影像或處理結果快速傳送給主控 PC 進行分析或決策,實現更即時的控制。
  • 醫療影像: 醫療設備中的嵌入式系統可以將大量的影像資料(如超音波、X光)高速傳輸到工作站進行診斷。
  • AI 邊緣運算: 將部分運算任務卸載到 Orin Nano 執行,然後透過 PCIe 將結果快速回傳給主系統,提升整體系統效能。
  • 資料採集與處理: 高速感測器採集的資料可以直接透過 PCIe 傳輸到主系統進行儲存或分析,避免傳統介面的瓶頸。

相較於傳統的乙太網路,PCIe Endpoint 模式理論上可以提供更高的頻寬和更低的通訊延遲,尤其適合對即時性要求極高的應用。這也展現了 Advantech 在嵌入式系統連接技術上的持續投入與創新能力。

結論與未來展望
#

這次成功的 PCIe Endpoint 模式偵測實驗,是 Advantech 在探索嵌入式系統高速連接技術上的一個重要里程碑。它不僅驗證了 Orin Nano 在我們平台上的技術可行性,更為未來的產品開發和客戶解決方案提供了新的可能性。

我們將持續深入研究 PCIe Endpoint 技術,探索更複雜的應用場景,例如實現真正的網路通訊(ping、TCP/IP)、更高頻寬的資料傳輸,甚至是將 Orin Nano 作為一個協同處理器,讓主控 PC 可以直接透過 PCIe 存取其記憶體或硬體資源。

在 Advantech,我們不只提供硬體平台,更致力於探索和驗證前沿技術,幫助我們的客戶在快速發展的邊緣運算和 AI 領域取得成功。敬請期待我們未來更多關於高速連接和嵌入式創新的分享!

如果您對這項技術感興趣,或是您的應用需要高速、低延遲的嵌入式系統連接方案,歡迎隨時與我們的 AE 或銷售團隊聯繫,我們很樂意與您深入探討!

相關文章

讓AI更貼近你!研華如何在邊緣裝置上玩轉小型語言模型 (sLLM)
· loading
遠端更新好輕鬆?來看看我們如何用ADB玩轉OTA!
· loading
解鎖硬體新技能:Advantech 如何讓你的設備閃電更新?
· loading