Intel平台不可忽略的接口eSPI

e
PCH EC

eSPI就是SPI升级版?

根据这名字就感觉eSPI就是SPI的升级版,这样说没错。
但是如果你思想上认为只是提高了点速度之类,那你就小看了。

从双向通讯信号上讲,LPC/SPI/eSPI,大同小异、
参考书公开的Intel pdf文档Enhanced Serial Peripherial Interface Base Sepcification

当我们谈eSPI,其实主要是为了把LPC接口比下去的

eSPI vs. LPC side band信号数量减少

EC/Super I/O芯片和PCH的连接如果用LPC,那么side band信号会多不少,尤其是各种中断信号。因为引入了虚拟中断通讯。#SMI,#SCI,#RCIN这些以前是中断pin脚的,都可以省下来了

eSPI虚拟中断

既然是虚拟中断,就是没有多出来引脚的。无非就是用通讯协议+数据包串行通讯来模拟。yes你猜对了

ChomeBook也是笔记本,里面的EC代码是开源的

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在C语言中模拟eSPI主机,你可以使用串口通信库来进行通信。以下是一个简单的示例代码,演示了如何使用C语言编写一个基本的eSPI主机模拟器: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <termios.h> #include <fcntl.h> // 设置串口属性 int set_serial_port(const char *port, int baudrate) { int fd = open(port, O_RDWR | O_NOCTTY | O_NDELAY); if (fd == -1) { perror("无法打开串口"); return -1; } struct termios options; tcgetattr(fd, &options); // 设置波特率 speed_t speed; switch (baudrate) { case 9600: speed = B9600; break; case 115200: speed = B115200; break; default: speed = B9600; break; } cfsetispeed(&options, speed); cfsetospeed(&options, speed); // 设置数据位、停止位和校验位 options.c_cflag |= (CLOCAL | CREAD); options.c_cflag &= ~PARENB; options.c_cflag &= ~CSTOPB; options.c_cflag &= ~CSIZE; options.c_cflag |= CS8; // 应用设置 tcsetattr(fd, TCSANOW, &options); return fd; } // 发送数据 void send_data(int fd, const unsigned char *data, int len) { write(fd, data, len); } // 接收数据 void receive_data(int fd, unsigned char *buffer, int len) { read(fd, buffer, len); } int main() { const char *port = "/dev/ttyUSB0"; // 串口设备文件 int baudrate = 115200; // 波特率 int fd = set_serial_port(port, baudrate); if (fd == -1) { return -1; } unsigned char tx_data[] = {0x01, 0x02, 0x03}; // 发送的数据 unsigned char rx_data[3]; // 接收的数据 send_data(fd, tx_data, sizeof(tx_data)); receive_data(fd, rx_data, sizeof(rx_data)); printf("接收到的数据:"); for (int i = 0; i < sizeof(rx_data); i++) { printf("%02X ", rx_data[i]); } printf("\n"); close(fd); return 0; } ``` 请注意,这只是一个简单的示例,你可能需要根据实际情况进行适当的修改和扩展。此示例假设你已经连接了一个eSPI从设备到计算机的串口,并且串口设备文件为`/dev/ttyUSB0`。你还可以根据需要调整发送和接收的数据以及波特率等设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值