0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

eSPI协议抓包分析

CHANBAEK 来源:吃面小哥 作者:吃面小哥 2023-11-18 15:29 次阅读

eSPI 协议在物理层是遵循 SPI 通讯规范的,但是协议层有差异,因此不能使用 SPI 协议去解析(没有 eSPI 协议分析仪的情况下,可以使用 SPI 协议分析仪去做单独 Byte 的初步解析,接下来就人肉解析 eSPI)。

一般逻辑分析仪只能解析 I2C、SPI 等通用协议。要分析 eSPI 协议必须使用可以解析 eSPI 协议的逻辑分析仪 Acute TravelLogic

目前市场上常用的 eSPI 分析仪如下图,型号是 TL4234B。

图片

下载逻辑分析仪软件

打开官网链接,下载配套软件并且安装,如下图。

图片

软件设置

打开软件后,如下图,选择逻辑分析仪。

图片

抓取 eSPI 波形,可以采用快速通道配置。点击快速设置,选择 eSPI 协议。

图片

点击下图,配置按钮,可以配置 eSPI Bus 采集的参数

图片

图片

通道设置

通道配置中,channel 默认从 0 开始,一共占用 7 个 channel。依次为 CS#、SCK、IO-0、IO-1、IO-2、IO-3、Alert、Reset。

事实上,使用 signal IO Mode 时,Alert 是复用在 IO-1上,因此没有实际的 Alert pin。

CS 工作模式选择 Active Low,即低电平选择。

Response 采样点选择 Clock Rising,即上升沿采样。

IO Mode 默认 signal mode 即可。

解码显示设置

解码显示设置中,选择需要显示的内容即可。

硬件连线

笔记本设计中,采用的是 Signal Master - Signal Slave 模式,Master 是 PCH,Slave 是 EC。

如下图,IO 有 4个,分别是 IO-0,IO-1,IO-2,IO-3。实际应用中通讯模式选择 Signal Mode居多。

如果通讯模式是 Signal Mode,逻辑分析仪可以不抓取 IO-2,IO-3 信号

按上述软件配置,逻辑分析仪的 CH[0--7] 分别接硬件的 CS#、CLK、I/O 0、I/O 1、I/O 2、I/O 3、Alert、Reset#。

同时记得连接一个地线。

图片

抓取 eSPI 波形

点击采集,即可开启捕获波形。捕获完成后,软件自动解析,黑色区域显示具体波形,底下框中显示每一笔数据包的详情。

图片

持续抓取 eSPI 波形

图片

eSPI 数据包

笔记本的 eSPI 的应用中,是 Signal Master - Signal Slave,即一主一从。

PCH 作为 eSPI Master,当 EC 把 RSMRSET 拉高后,PCH 拉高 eSPI Reset,开始做 eSPI 的初始化。

主要内容有通讯速率、通讯模式、通讯通道等信息配置。

图片

eSPI 初始化数据包

PCH 端的 eSPI Master 对 EC 端的 eSPI Slave 初始化,其实就是根据实际需求,改写 eSPI Slave Register。

使用到的指令是 GET_CONFIGURATION 和 SET_CONFIGURATION。

所以基本逻辑就是 eSPI Master 读取 eSPI Slave 寄存器,改写寄存器,回读确认。寄存器操作最小单位是 4Byte。

eSPI Slave 端需要配置的寄存器只有如下 5个,即 Offset 08、10、20、30、40。

图片

Offset 08h: General Capabilities and Configurations

通用功能描述和配置寄存器。包括通讯速率、模式、校验使能,通道支持。

读取 offset 08h 寄存器

图片

改写 offset 08h 寄存器

eSPI Master 选择 Quad I/O mode,66MHz 通讯。下图可以明显看到改写 08 寄存器后,CLK 变快,I/O[2-3] 参与通讯。

图片

Offset 10h: Channel 0 Capabilities and Configurations

通道 0 功能描述和配置寄存器。 Peripheral Channel

写 offset 10h 寄存器,使能 Peripheral Channel。

图片

Offset 20h: Channel 1 Capabilities and Configurations

通道 1 功能描述和配置寄存器。 Virtual Wire Channel

读取 offset 20h 寄存器

图片

写 offset 20h 寄存器,使能 Virtual Channel。

图片

Offset 30h: Channel 2 Capabilities and Configurations

通道 2 功能描述和配置寄存器。 OOB Message Channel

读取 offset 30h 寄存器

图片

写 offset 30h 寄存器,使能 OOB Message Channel。

图片

Offset 40h: Channel 3 Capabilities and Configurations

通道 3 功能描述和配置寄存器。 Flash Access Channel

写 offset 40h 寄存器,使能 Flash Access Channel。

图片

PCH SLP Signal 数据包

PCH 端的 eSPI Master 使用 PUT_VWIRE 指令把 SLP 信号传递给 EC。

Index = 0x02,代表 System Event 2。

Data = 0x76,代表 SLP_S5、SLP_S4、SLP_S3 信号有效,其中 SLP_S5、SLP_S4 为 High,SLP_S3 为 Low。

图片

EC 端的 eSPI Slave 有 Virtual Wire 信号发送时,会先在 I/O[1] 上产生一个 Alert#,然后 Host 使用 GET_VWIRE 获取 Virtual Wire 状态。

图片

KBC 数据包

按下 “A” 键后松开。有按键触发后,KBC 端需要主动发送 IRQ 并且发送 Key Code(Make and Release)。

EC 端的 KBC 有数据需要发送给 Host,需要用 Virtual Wire 发送一个 SERIRQ。

图片

Host 读取 Virtual Wire,返回值是 Index=0x00,Data=0x81。

Index = 0x00,代表 Interrupt Event 0。

Data = 0x81,BIT-7 为 1 代表 Interrupt Level High。BIT[0-6] 为 1 代表 IRQ-1。

图片

Host 端发收到 IRQ-1,读取 I/O 64 判断 OBF 是否为 1,即 KBC 端是否已经准备好数据。然后读取 I/O 60 获取数据(1E,即 “A” 键 Scan Code Set-1)。

图片

Host 读取完“Key Code”,紧接着读取 Virtual Wire 状态,发现 IRQ-1 变为 Low。因此 KBC 的 IRQ-1 是高电平触发。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1702

    浏览量

    91422
  • 波形
    +关注

    关注

    3

    文章

    379

    浏览量

    31521
  • 逻辑分析仪
    +关注

    关注

    3

    文章

    214

    浏览量

    23154
  • SPI协议
    +关注

    关注

    0

    文章

    18

    浏览量

    8359
收藏 人收藏

    评论

    相关推荐

    USB软件分析工具之一:Bus Hound逍遥派北冥神功

    本文介绍Bus Hound在USB分析上的应用。
    的头像 发表于 04-27 09:56 2.3w次阅读
    USB软件<b class='flag-5'>抓</b><b class='flag-5'>包</b><b class='flag-5'>分析</b>工具之一:Bus Hound逍遥派北冥神功

    常见eSPI通讯数据分析

    eSPI 通讯一般来说无需特别关注,因为通讯都是 PCH(eSPI_Master)和 EC(eSPI_Slave)硬件完成的,软件不参与。
    的头像 发表于 11-18 15:35 2502次阅读
    常见<b class='flag-5'>eSPI</b>通讯数据<b class='flag-5'>包</b>的<b class='flag-5'>分析</b>

    加密后分析的问题?

    请问一下,我的zigbee设备全部都开启了加密, 使用软件的时候,数据都是加密的,我应该怎么解密分析这些数据呢,谢谢了
    发表于 06-01 14:22

    空口方式和wireshank分析工具使用介绍

    主要介绍下最近使用中感觉很万能的空口方式和wireshank分析工具使用;目的:抓取各种设备网络通信过程中数据,定位并分析软硬件设计中
    发表于 01-18 09:11

    请问BLE-Dongle是否支持协议分析?请问怎么进行协议分析

    如题,请问贵司的BLE-Dongle是否支持协议分析?请问怎么进行
    发表于 09-07 07:12

    使用wireshark分析TCP及UDP的资料详细说明

    本文档的主要内容详细介绍的是使用wireshark分析TCP及UDP的资料详细说明。
    发表于 05-09 17:36 27次下载
    使用wireshark<b class='flag-5'>抓</b><b class='flag-5'>包</b><b class='flag-5'>分析</b>TCP及UDP的资料详细说明

    Wireshark数据网络协议分析

    。使用它,可以以各种方式抓取用户所需要的网络数据。但是用户往往无法从数据中直接获取所需要的数据。这是由于所有的信息在传输过程中,都会被按照各种网络协议进行封装。用户想要从海量的数据
    发表于 10-12 08:00 1次下载
    Wireshark数据<b class='flag-5'>抓</b><b class='flag-5'>包</b>网络<b class='flag-5'>协议</b>的<b class='flag-5'>分析</b>

    最新PCIe Gen 5 switch芯片已内置SerialTek PCIe分析功能

    环节可能遇到的各种疑难问题,工程师只需要免费下载SerialTek PCIe协议分析仪软件BusXpert即可直接配置PCIe Gen 5 switch进行
    的头像 发表于 04-13 15:30 5582次阅读
    最新PCIe Gen 5 switch芯片已内置SerialTek PCIe<b class='flag-5'>抓</b><b class='flag-5'>包</b><b class='flag-5'>分析</b>功能

    Wireshark从入门到精通之网络协议分析必备

    Wireshark从入门到精通之网络协议分析必备
    发表于 01-18 13:53 9次下载

    802.11软件对比之Microsoft Network Monitor

    从事WiFi嵌入式软件开发的同学,802.11协议分析是一个需要熟练掌握的一个技能,需要通过分析WiFi底层802.11
    发表于 01-25 20:10 3次下载
    802.11<b class='flag-5'>抓</b><b class='flag-5'>包</b>软件对比之Microsoft Network Monitor

    SRT协议的工作流程、数据结构及Wireshark分析

    摘 要:本文从SRT协议的工作流程谈起,着重介绍和解析了SRT协议的数据结构,并举例说明如何利用Wireshark软件进行链路故障
    的头像 发表于 05-17 10:08 3459次阅读

    【RT-Thread学习笔记】好用高性价比的BLE蓝牙

    作为基于蓝牙协议的开发者,少不了各种需要分析蓝牙报文的应用场景;而专业的蓝牙器非常昂贵,
    的头像 发表于 07-30 11:45 2722次阅读
    【RT-Thread学习笔记】好用高性价比的BLE蓝牙<b class='flag-5'>抓</b><b class='flag-5'>包</b>器

    如何抓取app数据 网络原理及实现

    要实现对App的网络数据,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是
    发表于 08-11 09:30 3152次阅读
    如何抓取app数据<b class='flag-5'>包</b> 网络<b class='flag-5'>抓</b><b class='flag-5'>包</b>原理及实现

    如何利用eNSP进行实验?

    使用Wireshark工具进行ping,并分析报文
    的头像 发表于 09-12 09:32 4178次阅读
    如何利用eNSP进行<b class='flag-5'>抓</b><b class='flag-5'>包</b>实验?

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的头像 发表于 10-28 14:48 203次阅读