嵌入式面试题:了解软件SPI和软件I2C吗?说一说。

面试回答软件SPI和软件I2C,需聚焦 定义本质+实现核心+优劣势+适用场景,结构清晰且贴合嵌入式开发实际,以下是简洁精准的标准答案:

一、核心定义(先讲清"是什么")

• 软件SPI:不依赖硬件SPI外设,用4个通用GPIO(SCK、MOSI、MISO、CS),通过软件控制引脚电平和延时,模拟SPI同步通信时序的通信方式。

• 软件I2C:不依赖硬件I2C外设,用2个通用GPIO(SCL、SDA,需外接上拉电阻),通过软件精准控制起始/停止信号、数据位、应答位时序,实现I2C通信的方式。

二、实现关键(再讲"怎么实现",面试重点)

  1. 软件SPI:

◦ 核心是"同步时序":通过delay_us()控制SCK时钟周期,MOSI与SCK同步输出数据,MISO在SCK特定边沿采样数据,CS引脚控制从机选通。

◦ 逻辑简单:无需配置复杂外设寄存器,仅需引脚电平翻转和延时函数即可实现。

  1. 软件I2C:

◦ 核心是"严格时序":必须精准实现"起始信号(SCL高时SDA拉低)、数据位(SCL高时SDA稳定)、应答位(从机拉低SDA)、停止信号(SCL高时SDA拉高)"。

◦ 引脚双向:SDA需切换输入/输出模式,用于主机发数据和从机应答。

三、优劣势对比(用表格更直观,面试加分)

特性 软件SPI 软件I2C

引脚需求 4个GPIO(SCK/MOSI/MISO/CS) 2个GPIO(SCL/SDA)+上拉电阻

实现难度 低(时序简单,无需应答) 高(时序严格,需处理应答)

CPU占用 中等(延时期间占用CPU) 高(精准时序需频繁延时)

通信速率 中等(受CPU主频和延时限制) 低(时序约束多,速率更慢)

灵活性 高(可自定义SCK频率和时序) 中等(需遵循I2C标准时序)

四、适用场景(最后讲"什么时候用")

• 软件SPI:硬件SPI外设被占用、需连接少量低速率SPI设备(如传感器、OLED)、自定义时序适配特殊从机。

• 软件I2C:硬件I2C外设不足、需连接多个I2C设备(省引脚)、对速率无要求(如配置寄存器、读取少量数据)。

面试总结模板(直接套用,不啰嗦)

"软件SPI和软件I2C都是用通用GPIO模拟硬件协议的通信方式:软件SPI用4个GPIO,时序简单、CPU占用中等,适合硬件SPI不够或低速率场景;软件I2C用2个GPIO+上拉电阻,时序严格、速率慢,适合省引脚或硬件I2C不足的场景。两者核心优势是引脚灵活、无需依赖硬件外设,缺点是占用CPU资源、速率低于硬件协议。"

相关推荐
晊晌_h37 分钟前
嵌入式硬件——51单片机
单片机·mcu·51单片机·位运算·硬件基础
Rocktech_ruixun6 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
天空'之城8 小时前
单片机基础核心知识点汇总(三十四)
单片机·嵌入式硬件
Horn Still Sounds9 小时前
51单片机入门:硬件基础、位运算、数码管动态显示完整梳理
嵌入式硬件·mongodb·51单片机
三佛科技-1873661339710 小时前
24W-48W隔离双绕组非标自供电芯片LP3718CD(电路原理图)
单片机·嵌入式硬件
糖糖单片机设计12 小时前
基于 STM32 的小型鸟类宠物繁殖系统
stm32·嵌入式硬件·宠物
电子元器件选型哥13 小时前
一文讲清LLC谐振电路工作原理
单片机·嵌入式硬件·硬件工程师·电子元器件·器件选型
HUI-47414 小时前
EG1162|SOP‑16 高压同步整流降压控制器,最高 600V 输入,大电流 5V 输出优选
嵌入式硬件·硬件工程
POMAGTOR14 小时前
【5G 通讯 POGOPIN 弹簧顶针连接器解决方案】
网络·嵌入式硬件·5g
ZLG_zhiyuan14 小时前
测试方案 | 从“000”到“111”,高效完成100BASE-TX以太网眼图测试
单片机·嵌入式硬件