0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UCSI框架是由哪些部分組成的?UCSI實(shí)現(xiàn)必須經(jīng)過(guò)HLK測(cè)試嗎?

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

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

它定義了OS(特指Windows系統(tǒng))針對(duì) PC 上 Type-C 口的管理規(guī)范,主要是寄存器和數(shù)據(jù)包結(jié)構(gòu),以及通訊規(guī)則的描述。

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

01

UCSI 框架

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

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

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

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

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

圖片

實(shí)際上,UCSI 的實(shí)現(xiàn)涉及了 OS、BIOS、EC 和 PD 四部分。

OS 端作為 OPM,已經(jīng)由 Microsoft 實(shí)現(xiàn)了標(biāo)準(zhǔn)的 UCSI Driver。所以也可以認(rèn)為 OPM 指的就是 UCSI Driver。

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

EC 端主要的功能就是處理 OPM 發(fā)送的命令,轉(zhuǎn)給 PD Controller。

圖片

02

UCSI 規(guī)范

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

圖片

UCSI 管理 Type-C 接口就需要交換數(shù)據(jù),因此定義了一個(gè)32字節(jié)的數(shù)據(jù)包。

圖片

UCSI Data Struct,包含 48個(gè)Byte

  1. BIOS 首先向 OS 聲明一個(gè)虛擬的Device,即 UCSI device。
  2. OS 會(huì)根據(jù)存在的 Device 加載對(duì)應(yīng)的Driver,即 UCSI driver。
  3. BIOS 需要實(shí)現(xiàn)一些 Method 和 Notify Function。

A. UCSI Driver 會(huì)調(diào)用 BIOS Method 訪問(wèn) UCSI Data Struct。

B. 一般 Notebook PD COntroller 通過(guò) I2C 接在 EC 上,EC 會(huì)承擔(dān) PPM 的角色,完成 USB-C Port 的狀態(tài)監(jiān)控,同時(shí)維護(hù) UCSI Data Struct 中 PPM->OPM 的數(shù)據(jù)。

總的來(lái)說(shuō),UCSI Data Struct 是 UCSI Driver 和 PD Controller 用來(lái)交換數(shù)據(jù)的。EC 和 PCH 通過(guò) I2C、LPC、eSPI 等接口連接,因此 Data Package 也通過(guò)這些接口來(lái)回傳遞。

針對(duì) CCI 和 Control 的數(shù)據(jù)結(jié)構(gòu)如下

圖片

CCI 是 PPM 或 OPM 用以通知對(duì)方 Command 的執(zhí)行狀態(tài)。

注意:OPM 的不同命令是需要 PPM 根據(jù)實(shí)際狀態(tài)及時(shí)返回對(duì)應(yīng) bit。如果 OPM 沒(méi)有及時(shí)拿到正確的數(shù)據(jù),可能會(huì)導(dǎo)致 hang機(jī),UCSI driver reset 等異常。

圖片

Control 就是 OPM 向 PPM 發(fā)送的 command 以及必要參數(shù)。

02

BIOS 端

BIOS 不需要針對(duì) UCSI 做過(guò)多處理。僅聲明 UCSI Device,然后提供訪問(wèn)

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

圖片

圖片

圖片

需要注意的是,這個(gè)數(shù)據(jù)交換區(qū)域,可以用 IO 也可以用 ShareMemory。由于 OPM 對(duì)

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

BIOS 和 EC 還得商量一個(gè)數(shù)據(jù)通知的機(jī)制。一般方法如下:

  1. OPM 調(diào)用 BIOS 接口向 EC 寫入數(shù)據(jù)后,BIOS 需要額外再向EC寫一個(gè)值通知 EC 有數(shù)據(jù)來(lái)了。EC 需要輪詢這個(gè)值,以判斷是否有數(shù)據(jù)過(guò)來(lái)。
  2. PD Controller 端有事件更新后,EC 獲取到需要發(fā) Q_Event 以通知

BIOS 有事件發(fā)生了,以便通知到 OPM。

03

EC 端

EC 需要實(shí)現(xiàn)的就是,輪詢指定位置的值,以判斷 OPM 是否有命令寫入。一旦發(fā)現(xiàn)有命令寫入,EC 必須按不同 PD Controller 的規(guī)范通過(guò) I2C 把

OPM 的命令傳遞給 PD Controller。

當(dāng) Type-C 接口有動(dòng)作時(shí),PD Controller 會(huì)通知 EC。EC 需要發(fā) SCI 事件

以通知 OPM。

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

圖片

圖片

04

PD 端

針對(duì) PD Controller 端,需要接收 EC 轉(zhuǎn)發(fā)過(guò)來(lái)的 UCSI 命令,然后按規(guī)范處理命令。如果有需要回復(fù)的數(shù)據(jù),必須按照規(guī)范準(zhǔn)備好數(shù)據(jù)被 EC 回讀。

當(dāng)然,不排除某些 PD Controller 并沒(méi)有實(shí)現(xiàn) UCSI 命令。此時(shí)就需要 EC 自行控制 PD Controller 以完成 UCSI 命令。針對(duì)某些命令,EC 還得根據(jù)需要讀取 PD Controller 一些數(shù)據(jù),組合成 UCSI Driver 需要讀取的數(shù)據(jù)包。

顯然這對(duì) EC 并不友好,大量瑣碎的數(shù)據(jù)在拼接時(shí)也會(huì)耗時(shí),極易導(dǎo)致 UCSI Driver 未能按時(shí)獲取必要數(shù)據(jù),從而引起 UCSI Driver 異?;蛘呦到y(tǒng)異常。

04

HLK 測(cè)試

UCSI 僅僅是 OS 的一個(gè)附件功能,是否實(shí)現(xiàn)都不影響 Type-C 接口的任何功能。但是 UCSI 在系統(tǒng)下是一個(gè)虛擬設(shè)備,只要實(shí)現(xiàn)必須經(jīng)過(guò) HLK 測(cè)試。

UCSI HLK Test 有 55項(xiàng)測(cè)試,其中 50項(xiàng)測(cè)試需要替換 Test Driver。

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

Test Driver 替換步驟如下

圖片

圖片

如下 5 項(xiàng)測(cè)試,需要切換為 OS 自帶的 UCSI Driver。

圖片

打開(kāi)設(shè)備管理器,選擇 Uninstall Device,勾選刪除設(shè)備軟件。然后重啟即可恢復(fù)至 OS 自帶 Driver。

然后按如下修改注冊(cè)表:

圖片

修改注冊(cè)表后,重啟或者 Disable/Enable UCM-UCSI ACPI Device。然后即可開(kāi)始測(cè)試上述 5項(xiàng)。

HLK 測(cè)試中,經(jīng)常會(huì)有測(cè)試失敗的項(xiàng)。大多情況都是 OPM 沒(méi)有及時(shí)讀取到正確的數(shù)據(jù)。一般 EC 端記錄返回的數(shù)據(jù),加以分析即可。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120373
  • OPM
    OPM
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    7436
  • BIOS語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    5036
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

    12386
  • Type-C接口
    +關(guān)注

    關(guān)注

    1

    文章

    145

    瀏覽量

    20725
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F10xx時(shí)鐘系統(tǒng)框架哪些部分組成

    STM32F10xx時(shí)鐘系統(tǒng)框架哪些部分組成的?STM32有幾個(gè)時(shí)鐘源?STM32 RCC相關(guān)配置寄存器有哪些?
    發(fā)表于 09-26 06:23

    LTspice模型是哪些部分組成

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

    STM32的UART框架哪些部分組成

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

    STM32F1時(shí)鐘系統(tǒng)的框架哪些部分組成

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

    STM32的硬件系統(tǒng)是哪些部分組成

    STM32的硬件系統(tǒng)是哪些部分組成的?STM32的時(shí)鐘系統(tǒng)是哪些部分組成的?
    發(fā)表于 11-23 07:17

    MiniFly遙控器系統(tǒng)框架哪些部分組成

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

    MiniFly微型四軸遙控器系統(tǒng)框架哪些部分組成

    遙控器的任務(wù)主要功能都有哪些呢?遙控器系統(tǒng)框架哪些部分組成的?
    發(fā)表于 12-17 07:39

    openBLT系統(tǒng)結(jié)構(gòu)及框架哪幾部分組成的?

    openBLT系統(tǒng)結(jié)構(gòu)及框架哪幾部分組成的?
    發(fā)表于 02-11 07:36

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

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

    RTC芯片的驅(qū)動(dòng)框架哪些部分組成

    如何對(duì)RTC芯片進(jìn)行調(diào)試呢?RTC芯片的驅(qū)動(dòng)框架哪些部分組成的?
    發(fā)表于 03-04 07:35

    RK3399 Camera的驅(qū)動(dòng)框架哪些部分組成

    MIPI有何作用?Camera的驅(qū)動(dòng)框架哪些部分組成的?
    發(fā)表于 03-08 07:06

    RK3288系統(tǒng)的Video編解碼框架哪些部分組成

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

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

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

    PLC哪幾部分組成

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

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

    都說(shuō)示波器是電子工程師的眼睛,那你知道示波器哪幾部分組成的嗎?今天安泰測(cè)試就簡(jiǎn)單給大家介紹一下。
    的頭像 發(fā)表于 09-23 15:37 ?1.9w次閱讀
    你知道示波器<b class='flag-5'>由</b>哪幾<b class='flag-5'>部分組成</b>的嗎