吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UCSI框架是由哪些部分組成的?UCSI實現必須經過HLK測試嗎?

冬至子 ? 來源:吃面小哥 ? 作者:吃面小哥 ? 2023-08-08 15:21 ? 次閱讀

UCSI 全稱 USB Type-C Connector System Software Interface。

它定義了OS(特指Windows系統)針對 PC 上 Type-C 口的管理規范,主要是寄存器和數據包結構,以及通訊規則的描述。

事實上,OS 作為 OPM 管理 Type-C 接口,主要是和 Type-C 接口管理芯片 PD 通訊完成的。

01

UCSI 框架

UCSI 設計的初衷就是方便 OS 端管理 Type-C 接口。那么從上至下,可以分為 OPM、PPM、LPM 三個層面。

OPM:OS Policy Manager,主要是 OS 發起一些管理。

PPM:Platform Policy Manager,主要是 BIOS、EC 在中間完成一些管理。

LPM:Local Policy Manager,主要是 PD Controller 完成一些管控策略。

那 UCSI 就是 OPM 和 PPM 之間的通訊、管理規范。

圖片

實際上,UCSI 的實現涉及了 OS、BIOS、EC 和 PD 四部分。

OS 端作為 OPM,已經由 Microsoft 實現了標準的 UCSI Driver。所以也可以認為 OPM 指的就是 UCSI Driver。

BIOS 端除了聲明 UCSI 設備外,就是向 OPM 提供一個和 EC 通訊的接口。

EC 端主要的功能就是處理 OPM 發送的命令,轉給 PD Controller。

圖片

02

UCSI 規范

UCSI 規范的核心就是定義了 19 條命令用以管理 Type-C 接口。

圖片

UCSI 管理 Type-C 接口就需要交換數據,因此定義了一個32字節的數據包。

圖片

UCSI Data Struct,包含 48個Byte

  1. BIOS 首先向 OS 聲明一個虛擬的Device,即 UCSI device。
  2. OS 會根據存在的 Device 加載對應的Driver,即 UCSI driver。
  3. BIOS 需要實現一些 Method 和 Notify Function。

A. UCSI Driver 會調用 BIOS Method 訪問 UCSI Data Struct。

B. 一般 Notebook PD COntroller 通過 I2C 接在 EC 上,EC 會承擔 PPM 的角色,完成 USB-C Port 的狀態監控,同時維護 UCSI Data Struct 中 PPM->OPM 的數據。

總的來說,UCSI Data Struct 是 UCSI Driver 和 PD Controller 用來交換數據的。EC 和 PCH 通過 I2C、LPC、eSPI 等接口連接,因此 Data Package 也通過這些接口來回傳遞。

針對 CCI 和 Control 的數據結構如下

圖片

CCI 是 PPM 或 OPM 用以通知對方 Command 的執行狀態。

注意:OPM 的不同命令是需要 PPM 根據實際狀態及時返回對應 bit。如果 OPM 沒有及時拿到正確的數據,可能會導致 hang機,UCSI driver reset 等異常。

圖片

Control 就是 OPM 向 PPM 發送的 command 以及必要參數

02

BIOS 端

BIOS 不需要針對 UCSI 做過多處理。僅聲明 UCSI Device,然后提供訪問

EC 的 Method 即可。BIOS 需要做的一共三步:

圖片

圖片

圖片

需要注意的是,這個數據交換區域,可以用 IO 也可以用 ShareMemory。由于 OPM 對

命令執行有時間要求,推薦使用 ShareMemory,這樣可以做到快速傳遞數據。另外,

BIOS 和 EC 還得商量一個數據通知的機制。一般方法如下:

  1. OPM 調用 BIOS 接口向 EC 寫入數據后,BIOS 需要額外再向EC寫一個值通知 EC 有數據來了。EC 需要輪詢這個值,以判斷是否有數據過來。
  2. PD Controller 端有事件更新后,EC 獲取到需要發 Q_Event 以通知

BIOS 有事件發生了,以便通知到 OPM。

03

EC 端

EC 需要實現的就是,輪詢指定位置的值,以判斷 OPM 是否有命令寫入。一旦發現有命令寫入,EC 必須按不同 PD Controller 的規范通過 I2C 把

OPM 的命令傳遞給 PD Controller。

當 Type-C 接口有動作時,PD Controller 會通知 EC。EC 需要發 SCI 事件

以通知 OPM。

UCSI 中,OPM 和 EC 之間的通訊流程如下圖。

圖片

圖片

04

PD 端

針對 PD Controller 端,需要接收 EC 轉發過來的 UCSI 命令,然后按規范處理命令。如果有需要回復的數據,必須按照規范準備好數據被 EC 回讀。

當然,不排除某些 PD Controller 并沒有實現 UCSI 命令。此時就需要 EC 自行控制 PD Controller 以完成 UCSI 命令。針對某些命令,EC 還得根據需要讀取 PD Controller 一些數據,組合成 UCSI Driver 需要讀取的數據包。

顯然這對 EC 并不友好,大量瑣碎的數據在拼接時也會耗時,極易導致 UCSI Driver 未能按時獲取必要數據,從而引起 UCSI Driver 異常或者系統異常。

04

HLK 測試

UCSI 僅僅是 OS 的一個附件功能,是否實現都不影響 Type-C 接口的任何功能。但是 UCSI 在系統下是一個虛擬設備,只要實現必須經過 HLK 測試。

UCSI HLK Test 有 55項測試,其中 50項測試需要替換 Test Driver。

一定要根據 Server 版本、DUT OS 版本選擇正確的 Test Driver 版本。

Test Driver 替換步驟如下

圖片

圖片

如下 5 項測試,需要切換為 OS 自帶的 UCSI Driver。

圖片

打開設備管理器,選擇 Uninstall Device,勾選刪除設備軟件。然后重啟即可恢復至 OS 自帶 Driver。

然后按如下修改注冊表:

圖片

修改注冊表后,重啟或者 Disable/Enable UCM-UCSI ACPI Device。然后即可開始測試上述 5項。

HLK 測試中,經常會有測試失敗的項。大多情況都是 OPM 沒有及時讀取到正確的數據。一般 EC 端記錄返回的數據,加以分析即可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121198
  • OPM
    OPM
    +關注

    關注

    0

    文章

    4

    瀏覽量

    7450
  • BIOS語言
    +關注

    關注

    0

    文章

    4

    瀏覽量

    5064
  • DUT
    DUT
    +關注

    關注

    0

    文章

    189

    瀏覽量

    12491
  • Type-C接口
    +關注

    關注

    1

    文章

    146

    瀏覽量

    20864
收藏 人收藏

    評論

    相關推薦

    STM32F10xx時鐘系統框架哪些部分組成

    STM32F10xx時鐘系統框架哪些部分組成的?STM32有幾個時鐘源?STM32 RCC相關配置寄存器有哪些?
    發表于 09-26 06:23

    LTspice模型是哪些部分組成

    LTspice模型是哪些部分組成的?求解
    發表于 10-20 06:17

    STM32的UART框架哪些部分組成

    什么是通信協議?STM32的UART有哪些特征?STM32的UART框架哪些部分組成的?
    發表于 10-20 07:03

    STM32F1時鐘系統的框架哪些部分組成

    STM32F1時鐘系統的框架哪些部分組成的?時鐘控制(RCC)的相關寄存器有哪些呢?端口復用和重映射分別有何含義呢?
    發表于 11-22 07:27

    STM32的硬件系統是哪些部分組成

    STM32的硬件系統是哪些部分組成的?STM32的時鐘系統是哪些部分組成的?
    發表于 11-23 07:17

    MiniFly遙控器系統框架哪些部分組成

    MiniFly遙控器系統框架哪些部分組成的?NRF24L01是如何控制使用STM32的SPI1的?
    發表于 12-17 06:55

    MiniFly微型四軸遙控器系統框架哪些部分組成

    遙控器的任務主要功能都有哪些呢?遙控器系統框架哪些部分組成的?
    發表于 12-17 07:39

    openBLT系統結構及框架哪幾部分組成的?

    openBLT系統結構及框架哪幾部分組成的?
    發表于 02-11 07:36

    什么是MCU?MCU是哪些部分組成

    什么是MCU?MCU是哪些部分組成的?
    發表于 03-01 06:06

    RTC芯片的驅動框架哪些部分組成

    如何對RTC芯片進行調試呢?RTC芯片的驅動框架哪些部分組成的?
    發表于 03-04 07:35

    RK3399 Camera的驅動框架哪些部分組成

    MIPI有何作用?Camera的驅動框架哪些部分組成的?
    發表于 03-08 07:06

    RK3288系統的Video編解碼框架哪些部分組成

    RK3288系統的Video編解碼框架哪些部分組成的?RK3288系統的Video編解碼硬件能力有哪些?
    發表于 03-10 09:08

    RT-Thread 的 IO 設備模型框架哪些部分組成的呢

    RT-Thread 的 I/O 設備模型框架哪些部分組成的呢?接下來由小編給大家詳細介紹一下。1、RT-Thread 的 I/O 設備模型框架位于硬件和應用程序之間,共分成三層,從
    發表于 03-11 18:17

    PLC哪幾部分組成

    PLCCPU、電源、輸入電路、輸出電路、存儲器和通信接口電路幾大部分組成如圖所示.
    的頭像 發表于 03-23 07:36 ?5.7w次閱讀
    PLC<b class='flag-5'>由</b>哪幾<b class='flag-5'>部分組成</b>

    你知道示波器哪幾部分組成的嗎

    都說示波器是電子工程師的眼睛,那你知道示波器哪幾部分組成的嗎?今天安泰測試就簡單給大家介紹一下。
    的頭像 發表于 09-23 15:37 ?1.9w次閱讀
    你知道示波器<b class='flag-5'>由</b>哪幾<b class='flag-5'>部分組成</b>的嗎
    58娱乐城开户| 百家乐投注必胜法| 大发888娱乐城casinolm0| 澳门百家乐官网| 澳门百家乐博| 网络百家乐官网必胜投注方法 | 百家乐赌场群| 百家乐官网保单破解方法| 王子百家乐的玩法技巧和规则| 真人百家乐官网代理合作| 威尼斯人娱乐城客户端| 百家乐官网可以破解吗| 六合彩图纸| 百家乐桌出租| 澳门百家乐官网破解方法| 大发888娱乐能借钱| 免费百家乐规则| 百家乐官网心态研究| 百家乐是个什么样的游戏 | 百家乐路单打法| 博彩e天上人间| 百家乐娱乐平台会员注册| 极速百家乐官网真人视讯| 德州扑克2| 百家乐赌场论坛在线| 百家乐官网翻天粤语版qvod| 大发888开户即送58| 玩百家乐游戏经验| 百家乐官网和局投注法| 二八杠网站| 网上百家乐娱乐场| 百家乐官网游戏论坛| 威尼斯人娱乐平台网址| 做生意佩戴什么纳财| 网上玩百家乐官网技巧| 大发888娱乐场lm0| 广东百家乐扫描分析仪| 水晶百家乐官网筹码| 真钱德州扑克| 网上百家乐群的微博| 优博百家乐现金网|