您的位置:首頁 >汽車 >

利用英偉達系列芯片設計的高階自動駕駛的系統(tǒng)啟動時序 環(huán)球新動態(tài)

2023-05-21 05:47:55    來源:搜狐汽車

作者 |Jessie


(資料圖片僅供參考)

出品 | 焉知

知圈 |進“底盤社群”請加微yanzhi-6,備注 底盤

往期回顧

英偉達系列芯片如何應用于智能汽車開發(fā)看這兩篇文章就夠了(一)

英偉達系列芯片如何應用于智能汽車開發(fā)看這兩篇文章就夠了(二)

英偉達系列芯片如何用于自動駕駛研發(fā)之(一):架構(gòu)及安全設計

英偉達系列芯片如何用于自動駕駛開發(fā)之(二):硬件電源設計

從底層軟件開發(fā)角度解析NVIDIA的典型架構(gòu)開發(fā)框架(系列三)

詳解英偉達芯片在自動駕駛的軟件移植設計開發(fā)

利用英偉達系列芯片NvStream設計的數(shù)據(jù)流驅(qū)動及時間同步模式

本文所闡述的整個狀態(tài)定義還處于頂層狀態(tài),也不能表征 Orin 系列內(nèi)部的所有狀態(tài)細節(jié)和事件。Orin系列芯片啟動 ROM 執(zhí)行并最終通過控制到系統(tǒng)依賴的軟件。整個 Orin 啟動分為加載驅(qū)動、加載存儲、啟動操作系統(tǒng)、調(diào)用應用核模塊幾個大方向。

如下圖所示,各時序圖所表示的整個 SOC 芯片啟動時序。

通常,Orin 系列芯片所能實現(xiàn)的高階駕駛輔助系統(tǒng)架構(gòu)通常需要引入單獨的 MCU 芯片對其規(guī)劃的執(zhí)行指令做執(zhí)行仲裁,其他系統(tǒng)電源軌由SMCU進行監(jiān)控。這樣不僅可以提升相應的安全等級,也是作為低電壓控制的關鍵策略。在Orin功能安全島中可以運行OEM跟功能安全相關的算法,如車控算法、比對算法、傳感器后融合算法等。通過運行Safety框架,對Orin芯片對Orin系列芯片和Drive OS軟件進行監(jiān)控。

Orin系列芯片支持各種電源狀態(tài)包含Active(SC0)、Deep Sleep(SC7)、OFF SC7 電源狀態(tài),同時也被稱為掛起到存儲狀態(tài),這種設置是在用于從深度睡眠(SC7)狀態(tài)到激活(Active)的快速重啟中,SC7 在這種狀態(tài)下一直處于低電量消耗的睡眠狀態(tài)。不僅 SC7 進入和退出需要專門的電源供給時序,同時也需要操作系統(tǒng)(這里指英偉達專門的操作系統(tǒng) Drive OS)支持從掛起狀態(tài)中重啟。這個過程涉及兩個子過程“Suspend-to-Memory” (即懸置到存儲態(tài)),再從“Memory-to-Resume”(從存儲態(tài)到重啟)。這里的存儲(memory) 單元實際就是系統(tǒng)的動態(tài)隨機存取內(nèi)存(DRAM)。

英偉達系列芯片的功耗模式主要有四種電源狀態(tài),且這四種狀態(tài)之間可以進行有效的狀態(tài)跳轉(zhuǎn)。

如下表表示了典型的電源轉(zhuǎn)換表。

電源狀態(tài)

Orin PMIC狀態(tài)

MCU PMIC狀態(tài)

使用場景

OFF

OFF SC7

OFF

系統(tǒng)關閉(KL30 未連接上)

Deep_Sleep

Deep Sleep(SC7)

Standby

深睡眠狀態(tài),可通過 PHY 線、SC7 故障或者整車電源喚醒

Light_Sleep

Deep Sleep(SC7)

ON

待機狀態(tài),可通過 PHY 或整車 電源(GPIO)喚醒

Active

Active(SC0)

ON

整個系統(tǒng)被開啟且具備完整 的功能(電源連接至 KL30)

FailSafe

FailSafe

FailSafe

MCU PMIC/Orin PMIC的失效模式狀態(tài)表示 當嚴重錯誤被檢測到

當然,如上的系統(tǒng)狀態(tài)是通過SYS_VIN_LV VRS_10/12 VDD和SYS_VIN_HV VRS_11/VDD進行同步監(jiān)測的。

對于 Deep_Sleep和Light_Sleep兩種狀態(tài),可以通過特定設置來決定 PHY 的電源狀態(tài),他們可以選擇將自己的待機模式放在上面,也可以將完整的電源關閉。Tier1 或主機廠需求也可以決策如何通 過 PHY 線來進行喚醒。例如,如果整車線束的 GPIO 口可以用來作為喚醒源,則所有 PHY 可 以在Deep_Sleep和Light_Sleep狀態(tài)下完全關閉。

以上每個狀態(tài)之間還有中間狀態(tài),可以被區(qū)分為 a、b 兩種子狀態(tài),從 a 到 b 的兩種子狀態(tài)轉(zhuǎn)換會發(fā)生在 MCU 所連接的固件啟動沒有其他額外觸發(fā)事件的情況下,這些固件包括攝像頭的子系統(tǒng)和其他系統(tǒng)設備電源供給。當然,這些固件是可以通過 MCU 通過內(nèi)部啟動模塊進行單獨啟停控制。當 MCU PMIC 或Orin PMIC出現(xiàn)嚴重錯誤時,系統(tǒng)將進入 FailSafe狀態(tài),MCU 的整個電源狀態(tài)將被置位為故障狀態(tài)。

接下來將對Orin系列中的電源每個子模塊進行詳細說明。

1)AON(Always on Cluster)群集

可以提供所有可能的硬件特征用于支持低電壓傳感器管理和喚醒使用場景。這些集群指令包含一個 ARM Cortex-R5 的緊耦合內(nèi)存的處理器核,可以支持周邊件(如時鐘、中斷控制器),不同的 I/O 控制端,路由邏輯。AON 模塊中的 Cortex-R5 處理器也可以被當做傳感器處理引擎(SPE)。

AON Cortex-R5 可以實現(xiàn):

ARM V7-R ISA 完整指令集和數(shù)據(jù)緩存緊耦合存儲(TCM)接口用于局部 SRAM

向量中斷支持

64 位 AXI/32 位 AHB 初始化接口,可分別用于 DRAM 需求和 MMIO 需求

32 位 AHB 初始化接口可以用于 ARM 向量中斷控制器接入

AXI 目標接口用于 DMA 接入到局部 SRAM

2)SC7-深度睡眠

SC7 是用于在最低可能的電源輸入下來進行快速重啟。該狀態(tài)下所有 CPU 核被關閉,且大多數(shù)的 I/O 和內(nèi)部模塊都被關閉了,軟件執(zhí)行被掛起。系統(tǒng)狀態(tài)被保存在 DRAM 中,并且總是處于自更新模式。

芯片從淺睡眠轉(zhuǎn)移到深睡眠的狀態(tài)需要滿足如下條件:

凍結(jié)所有正在運行的應用

同步文件系統(tǒng)內(nèi)容到存儲設備

掛起各自的設備驅(qū)動,保存 DRAM 中的其他狀態(tài)

將 DRAM 放到自刷新模式中

當需要在 SC 之前運行時,斷電序列也與系統(tǒng)內(nèi)測試有關。

如下圖表示了整個系統(tǒng)進入和退出低功耗模式的電源啟動時序圖(其中,如下左圖表示 SC7 內(nèi)側(cè)進入時序)。

進入退出低功耗時序圖

對如上時序概括起來將,Orin-x 進入深度睡眠(SC7)實際是間斷性的關閉一些高功耗模塊。其中,包含如下完整的處理步驟:

首先,通過電源管理軟件模塊關閉最高功耗模塊:VDD_CPU、VDD_GPU 和 VDD_CV 電源軌, 從而為進入 SC7 深睡眠模式做準備;

其次,SC7 進入固件將 DRAM 置于自刷新過程中;

然后,SC7 進入前需要將固件配置時鐘節(jié)拍完成后才進入電源深度休眠狀態(tài)。在進入電源深度休眠前,軟件需要確保IO 狀態(tài)不會和任何其他平臺需求(比如拉高拉低需求,額外的元器件需求)相沖突,從而確保 IO 漏洞盡可能最小化;

Orin 芯片的使能端 SF_PWR_SOC_EN 被 PMC 固件和其中的電源軌會被逐步取消斷言;

平臺依賴 IO 電源軌和 PLL 電源軌將被選擇性的關閉;

兩個存儲控制端口 VDDIO_DDR_VDD2 和 VDD_DDR_VDDQ 電源軌將被關閉;

基于芯片正常電壓和特征參數(shù)而變化的邏輯軌 VDD_SOC 和功能安全控制電源軌 VDD_FSI 將 被關閉;

接下來是系統(tǒng)如何退出低功耗模式。

當系統(tǒng)斷電后,系統(tǒng)硬件會將電源和時鐘給到 Orin-x 芯片。注意可能有其他的系統(tǒng)層限制(比如 LPDDR5 存儲電源時序限制)出現(xiàn)。

整體上退出低功耗模式SC7是有整車傳遞過來的指令輸入。首先,需要完成包含MCU PMIC電源管理程序后,由MCU控制觸發(fā)SC7退出指令,同時控制VRS10開始正常上電工作,隨即Orin芯片開始進行自檢后控制退出SC7并開啟時鐘源、授權軟件模塊、觸發(fā)快速驅(qū)動,最后進入下一個待命狀態(tài)。MCU端則開始與Orin之間啟動對應的心跳監(jiān)測。

3)系統(tǒng)內(nèi)檢(IST)

Orin系列芯片會提供一種機制來檢測由系統(tǒng)內(nèi)測(IST)所產(chǎn)生的永久的故障,IST 應該在 Orin-x 功能安全系統(tǒng)中使用期間被啟動。IST 需要以特定的規(guī)則來配置零部件的軟硬件。IST 可以配置來執(zhí)行一個在單 Orin-x 或者 Orin-x 外加一個 dGPU 的模式組成智駕系統(tǒng)。整個錯誤(Failsafe)處理機制如下:

①當系統(tǒng)無錯誤時,標準的電源時序會通過特定的 I/O 端或總線(CAN/Flexray/Ethernet PHYs) 喚醒整個系統(tǒng)。這也包含啟動所有 SC7 斷電域,然后是支持從內(nèi)存恢復的操作系統(tǒng) DRIVE OS,以結(jié)束正在運行的活動狀態(tài)。其中,啟動的快慢取決于內(nèi)存的自恢復能力。

②當 SC7 模塊失效或 Timeout 時會產(chǎn)生相應的失效時序,芯片內(nèi)部錯誤、溫度異常導致的宕機、低壓/過壓等都是這些失效模式之一。整體來說,如果芯片處于失效狀態(tài)時,實際是首先喚醒 MCU 后,通過內(nèi)部檢測機制確認是否進入 SC7 。已經(jīng) timeout 或故障時,需要控制 VRS-10 關閉所有的 SC7 電源軌,只留下喚醒 PHY 線處于低電壓供電狀態(tài)。MCU 最終會將PMIC 模塊至于待機狀態(tài)后將MCU 關閉。

此外,系統(tǒng)內(nèi)測程序 ITS 還需要檢測 Orin 是否長期維持在低功耗狀態(tài) SC7下,如果是,則系統(tǒng)將會退出該低功耗SC7模式。并且在下一個系統(tǒng)自檢過程中判斷是否有重新進入低功耗SC7模式的需求。

對于IST系統(tǒng)內(nèi)側(cè)應用而言,NVIDIA Orin 專門配置了相應的IST管理器來實現(xiàn)如下一些功能子項:

①提供一個用于設置IST配置的接口。

將用戶應用程序設置的配置與NVIDIA DRIVE Orin通信? 以太網(wǎng)上的軟件(IST客戶端)(用于鑰匙打開/關閉Orin IST)。

②提供一個用于讀取IST結(jié)果的接口。

提供接口,平臺電源管理器可以使用這些接口查詢是否必須執(zhí)行Keyon/KeyOff IST,并查詢IST是否已完成。

③在引導過程中,決定NVIDIA Orin應處于IST模式還是正常模式。

④通過GPIO斷言觸發(fā)IST,監(jiān)控NVIDIA Orin上IST的執(zhí)行,并通過超時檢測IST卡住的場景。

⑤提供一個中止IST執(zhí)行的接口。

⑥檢測并處理以下硬件錯誤情況。

在某些情況下,IST的執(zhí)行會受阻,且該阻塞會由基于GPT的硬件計時器檢測到,該計時器具有可配置的超時。與 DRIVE Orin的通信? SoC由具有可配置超時的軟件計時器進行監(jiān)控。這取決于MCU和Orin之間的活動以太網(wǎng)(VLAN200)連接??蛻魬贸绦驊褂肗vMCU_ISTManager提供的接口,在每個電源循環(huán)期間設置有效的IST配置。這是使用串行控制臺外殼命令完成的。

總結(jié)

本文從芯片內(nèi)部到芯片外部詳細分析了整個芯片工作的啟動時序流程、狀態(tài)跳轉(zhuǎn)、系統(tǒng)監(jiān)控能力等。相對于單SOC芯片啟動而言,基于SOC+MCU的自動駕駛系統(tǒng)架構(gòu)可更好的利用兩芯片各自的優(yōu)勢進行互補,同時其按照基礎的驅(qū)動原理也可以由SMCU很好的對整個電源管理和啟動時序進行管控和監(jiān)測??紤]Orin系列芯片在后續(xù)智駕系統(tǒng)的不斷深入應用,這些前期的設計分析過程必將成為后期系統(tǒng)架構(gòu)和硬件架構(gòu)設計中不可或缺的一環(huán)。后續(xù)文章我們將從純軟件設計的角度繼續(xù)講解如何對英偉達芯片設計的系統(tǒng)架構(gòu)進行有效的驅(qū)動。

關鍵詞:

相關閱讀