八股链接

串口

通信协议 串口 RS232 RS485

总体概念

串口是一个广义的概念,是一种通信方式:数据逐位、按顺序,在一根线上传输() RS232、RS485是电气标准,规定了串口通信的信号电压、引脚、抗干扰等物理层参数标准,一般用于设备间的连接,比如板子连电脑,多传感器组网 UART、USART是单片机实现串口通信的外设,带S的支持同步通信,需要额外的时钟线。这两个输出的是TTL电平

关键参数5V TTL(最常用)3.3V TTL(兼容低功耗场景)
供电电压5V±0.25V3.3V±0.3V
高电平(“1”)最小 2V,典型 5V最小 2V,典型 3.3V
低电平(“0”)最大 0.8V,典型 0V最大 0.8V,典型 0V
驱动能力较弱(输出电流约 20mA)较弱(输出电流约 10~15mA)
核心特点成本低、兼容性强,但功耗较高功耗低,适配 3.3V 低功耗芯片(如 STM32L 系列)
典型应用5V 单片机 I/O 口、老式逻辑芯片(如 74HC 系列)、TTL 串口通信3.3V MCU 与外设通信(如 GPS 模块、蓝牙模块 HC-05 的 3.3V 版本)
芯片输出的TTL电平的串口信号,无法直接远距离传输,就要用到RS232、RS485来进行远距离传输
对比维度RS232 标准RS485 标准
信号电压负逻辑:+3~+15V 代表 “0”,-3~-15V 代表 “1”(实际常用 ±12V)差分信号:A-B>200mV 代表 “1”,A-B200mV 代表 “0”(无固定电平,靠压差)
通信距离最大 15 米(波特率≤9600bps 时)最大 1200 米(波特率≤9600bps 时)
通信速率最高 200kbps最高 10Mbps(短距离时)
拓扑结构点对点(1 对 1)总线型(1 对多,最多 32 个节点)
抗干扰能力中等(正负电压抗干扰)强(差分信号抗共模干扰,适合工业环境)
典型应用电脑 DB9 串口、老式 Modem、设备调试工业总线(如 PLC、传感器组网、楼宇控制)
电平转换需 “TTL 转 RS232” 模块(如 MAX232 芯片)需 “TTL 转 RS485” 模块(如 MAX485 芯片)

接口设计

常见RS232电平转换电路 在工业上,通过RS232连接的设备需要共地,如果不共地可能会产生环流,烧坏设备。所以一般会在USART设备和RS232收发器(MAX3232)之间加入电气隔离模块,比如光耦隔离、数字隔离芯片,或者直接采用隔离+RS232集成芯片

USART协议

分为同步和异步,但我们平时最常用的就是UART异步模式。全双工 是3.3VTTL电平

  • 帧格式:起始位 + 数据位 + 校验位 + 停止位
    • 需要通讯双方规定一致
    • 最常用的:8数据、无校验、1停止
  • 波特率:每秒传输的码元个数,USART中一个码元只包含一个bit

IIC

Phiilps飞利浦开发的,串行,同步,半双工

硬件物理层

  • 一主多从,SDA传数据,SCL传时钟信号,
  • 主机Master:唯一控制总线的设备,负责生成SCL时钟发起、终止通信选择从设备
    • SCL频率决定了通信的速率
    • 可以多主机,但是很不常见
  • 从机Slave:需要预先分配一个7or10位的地址,被主机访问时才可通信
  • 总线容量:理论支持 127 个 7 位地址从设备,或 1024 个 10 位地址从设备(实际连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制);
  • 上拉电阻:SDA和SCL必须外接上拉电阻,默认高电平

是一种半双工通信,同一时间,只能传输一个方向的数据。各设备的引脚只能用开漏输出,配合上拉电阻,实现线与特性(多条输出信号线并联连接到同一条总线上,只有当所有设备的输出都为 “高电平” 时,总线最终电平才是高电平;只要有任意一个设备输出 “低电平”,总线电平就会被拉低为低电平)

  • 速率标准模式传输速率为 100kbit/s (100kHz),快速模式为 400kbit/s(400kHz),高速模式下可达3.4Mbit/s(3.4MHz),但目前大多 I2C 设备尚不支持高速模式

软件协议层

通过特定时序信号定义通信阶段,通过固定帧结构传输数据

  • 通信起始信号:SCL高电平,SDA由高到低跳变。表示主机要开始通信
  • 通信停止信号:SCL高电平,SDA由低到高跳变
    • SCL高电平表示数据有效,SCL低电平表示数据状态改变
  • 应答信号:每传输 1 字节(8 位)数据后,接收方必须发送 1 位应答信号,确认 “数据已接收”
    • 8位数据传输完成后,SCL低,发送方释放SDA总线,由接收方控制SDA总线
    • 下一个SCL高期间,若SDA低表示应答,若SDA高表示非应答

读写流程(完整帧结构)

阴影表示主到从,白色表示从到主

  • 主机写从机:写是0

S(起始) → 从设备地址(7位) + 写位(1位,0) → ACK(从设备应答) → 数据1(8位)→ ACK(从设备应答) → 数据2(8位)→ ACK(从设备应答) → … → P(终止)

  • 主机读从机:读是1

S(起始) → 从设备地址(7位) + 读位(1位,1) → ACK(从设备应答) → 数据1(8位) → ACK(主设备应答) → 数据2(8位) → ACK(主设备应答) → … → 最后1字节数据 → NACK(主设备不应答) → P(终止)

  • 复合读写

其他注意事项

  • 设备地址问题:地址通常7位用的多
    • 固定地址:芯片出厂,一般都有一个固化在内部的地址,这个地址是固定的,或者可以通过某个引脚的电平来选择。
    • 可编程地址:可通过几个引脚来配置
    • 广播地址:0x00(7位),主机向0x00发送,所有从机都能收到
  • 多主机仲裁:用的很少
    • 多个主设备同时在 SDA 线上传输数据,在 SCL 高电平时检测 SDA 电平 :检测到 SDA 是 “低电平”,主动放弃总线控制权
  • 开漏输出
    • 开漏输出只能输出高阻态或低电平。而总线默认状态是被拉高的,当输出高阻态时,也会被总线拉高。只有输出低电平,总线才会拉低,此时其他设备如果也要拉低,或输出高阻态,对总线没有影响。
    • 若推挽输出,总线默认被拉高,设备A正在输出低电平,此时突然设备B输出了高电平,那么就会导致VCC通过B的拉高电路,直接流向A的拉低电路,形成大电流回路,可能烧坏器件
  • 扩展IO:可以利用IIC扩展多个IO,比如PCA9536芯片

SPI

Motorola 摩托罗拉公司,串行,同步,全双工,几十MHZ

硬件物理层

  • 一主多从:仅CS脚独立,从设备的SCK、MOSI、MISO分别并联到主设备的对应引脚
    • 理论从机无上限,实际受到主机引脚数量限制
  • 同步通信:主设备生成SCLK时钟,严格按照时钟边沿采样
  • 全双工:MOSI主发从,MISO从发主,两条线在同时通信,区别于IIC半双工
    • 每一个 SCLK 周期内,主设备通过 MOSI 发 1bit,同时通过 MISO 收 1bit(即使主设备只需 “发” 或 “收”,也会在对应通道传输无效数据,这是 SPI 的固有特性)
  • 主从控制:通信的发起、时钟生成、从设备选择,全由主机控制。从设备只在CS引脚被选中时响应
    • 从机的CS引脚大部分拉低响应,少部分拉高响应
  • 速率:根据不同的应用场景不同,20M、40M、100M,GPIO扩展可以5MHz,norFlash可以133MHz
    • FLASH:W25Q16JV

软件协议层

  • 时钟极性:SCLK空闲时刻的电平高低状态 Clock Polarity
    • CPOL:0 未传输数据时,SCLK为低
    • CPOL:1 未传输数据时,SCLK为高
  • 时钟相位:数据采样的时钟边沿 Clock Phase
    • CPHA:0 主从设备在SCLK的第一个边沿采样数据(CPOL=0 时为上升沿,CPOL=1 时为下降沿)
    • CPHA:1 主从设备在SCLK的第二个边沿采样数据(CPOL=0 时为下降沿,CPOL=1 时为上升沿)
  • CPOL和CPHA一共可以组合4种SPI模式,要确保主从机是一致的SPI模式
SPI 模式CPOL(空闲电平)CPHA(采样边沿)数据采样时刻典型应用
00(低)0(第一个边沿)SCLK 从低→高的上升沿SD 卡、多数 SPI Flash
10(低)1(第二个边沿)SCLK 从高→低的下降沿少数传感器(如 ADXL345)
21(高)0(第一个边沿)SCLK 从高→低的下降沿工业设备(如 PLC 模块)
31(高)1(第二个边沿)SCLK 从低→高的上升沿高速 ADC(如 ADS8320)

其他注意事项

  • Dual/Quad SPI:只是把单向的MOSI和MISO,换成了双向的IO,变成了单向半双工模式,这样加快了传输速率

固件升级

软件

bootloader

Bootloader 是一段运行在硬件上电后、用户应用程序启动前的一段程序。负责在系统加电后初始化硬件设备、建立内存空间的映射图,并将系统的控制权传递给主应用程序。 SRAM:掉电易失 ROM(Flash):掉电不易失

  • 固化bootloader:芯片出厂时,芯片厂商在特定的ROM Flash区,已经写好的程序。不可修改,安全性高,但是功能单一,一般就是支持ISP升级
  • 用户bootloader:用户自己编写的,或者开源项目Uboot。存储在特定flash分区,可修改,比如支持IAP、OTA、双区备份 程序上电后先进入bootloader进行一些判断,若没事做,就进入后面的应用程序

ISP In-System Programming(在线系统编程)

  • 升级流程:设备进入ISP模式(引脚电平变化,比如boot0的状态),从芯片原厂的bootloader启动,主设备通过专用接口,直接向flash写入新的程序
    • 常用接口:JTAG/SWD/UART/SPI
  • 必须通过引脚触发 ISP 模式(如拨码开关、按键),且需连接专用线缆(如 JTAG 线、串口线)

IAP In-Application Programming(在应用编程)

  • 升级流程:系统正常运行代码,当收到升级指令(如串口发送升级指令or检测到SD卡中有新固件),则系统调用IAP的bootloader,校验新的固件,然后写入到flash的备份分区,重启,bootloader加载新的固件运行 有空可以看一下这个,用的时H723zgt6。我们的APP大概420KB,直接预留500KB就行,2048KB = 2MB,空间很富裕 H7芯片IAP升级,读串口固件包

OTA over the air

IAP的升级的无线版本,把IAP的串口、SD卡这种物理通道,换成蓝牙、WIFI这种无线通道

  • 升级流程:通过无线模块下载新固件,校验完成后,调用OTA bootloader,将新程序写入flash备份区,重启,bootloader运行新程序

三极管、MOS管

发正集反是放大 两正是饱和 两反是截止

🔴选型

性能要求、稳定性、成本、采购 主控STM32H723ZGT6:144引脚。3路CAN控制器,6个SPI,4个I2C,USB2.0,FMC,SDIO(SDMMC)。550M主频。1M的片内FLASH,564M的片内SRAM。-40到85度工作区间。一个以太网接口。SDMMC接口管理SD卡,FMC支持外部SRAM扩展。使用很广泛的一款芯片,采购方便 W9825G6KH:256Mbit = 32MByte,很经典的一块SDRAM,方便代码移植,加快开发流程 MP4462:宽电压输入范围3.8到36V。过流过压保护。降压幅度大,能量损耗比LDO小很多 TLE9278BQX:统一管理前三路CANFD MCP2515

🔴电子电气架构

各ECU的布置、连接、协作通信

  • 分布式:每个ECU控制一个功能,通过总线连接。每个ECU算力独立,信息闭塞,OTA升级要每个节点都处理。当车的功能越来越多,ECU节点数量也是剧增,线束的布置与成本激增
  • 域控式:功能相近的ECU合并成一个DCU,各个DCU通过网关连起来通信。一般分为:动力域、车身域、座舱域、底盘域、智驾域
    • 动力域:发动机、电机、BMS、
    • 车身域:门窗、灯光、空调、PEPS
    • 座舱域:仪表、中控、空调、娱乐系统、语音识别
    • 底盘域:制动系统、胎压监测、转向
    • 环形摄像头、激光雷达等
  • 中央域控式:分车头域、车尾域、左车身、右车身,他们只负责指令下发。这些域都有中控芯片控制,负责逻辑的判断

🔴CAN收发器、CAN控制器、SBC

两个速率都是1M

  • 控制器:MCP2518FD,美国微芯,31可配置发送接收FIFO,CANFD兼容,FIFO多。和MCU通过SPI通信
  • 收发器:TJA1043,带休眠功能,恩智浦。进行信号的转换,差分-数字。STB引脚高电平待机模式 项目一条报文32~48Byte,200us发一条
  • SBC TLE9278BQX:英飞凌,4个CANFD收发器,

🔴CAN、CANFD、CAN协议

CAN最高速率就1Mbps。数据段最高5字节 CANFD仲裁段最高1Mbps,数据段最高8Mbps。兼容CAN,数据段最高64字节

  • 多主从架构、差分电平
  • 先到先得、非破坏性总线仲裁,报文ID越小,优先级越高
  • 数据帧、遥控真、错误帧、过载帧、帧间隔
  • 帧格式:帧起始 | 帧ID、RTR(区分数据帧遥控帧)| IDE(帧ID扩展位)、r0、DLC | data | CRC、界定符 | ACK、界定符 | 帧结束
  •                                      仲裁段                                                                            数据段
    
  • 位填充原则:发送5个相同电平后,补一个相反的电平
  • 1bit分为4个段,每段包含n多个Tq。这个Tq是在硬件上改分频系数得到的最小时间
  • 波特率:1/1bit时长
  • 采样点:前三个段时长/总时长
  • CANFD新增的位: CAN FD新增了FDF、BRS、ESI位: FDF 位(Flexible Data Rate Format):原 CAN 数据帧中的保留位r。表示 CAN 报文还是 CAN-FD 报文,FDF 位常为隐性(1),表示 CAN FD 报文; BRS 位(Bit Rate Switch):表示位速率转换,当 BRS 为显性位(0)时数据段的位速率与仲裁段的位速率一致(恒定速率),当 BRS 为隐性位(1)时速率可变(即 BSR 到 CRC 使用转换速率传输); ESI位(Error State Indicator):发送节点错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。

以太网PHY芯片

差分100ohm LAN8720A,电流型PHY,影响TX、RX连到变压器时,变压器中心抽头的接法 电压驱动型的 PHY,变压器的中心抽头接电容到地电流驱动型的 PHY,变压器的中心抽头接电源,电源大小即为 PHY 芯片的 UTP 端口电压; RMII接口接到MCU的ETH,另一边接变压器到WIFI模块

引脚复用模块

USB用的引脚太多了,与其他功能的引脚有复用,就选用了 多路复用器

USB

USB2.0模块,USB3300 能跑50M/s

SD卡速率

128G 闪迪TF卡 QUAR系列,读取140MB/s,写入30MB/s。项目一条报文32~48Byte,0.2s发一条,1s5条,8通道,1s1.8KB,远远小于写入速率峰值

外挂的EEPROM

AT24C02,IIC,存配置信息,2Kbit = 256Byte

SPI一般跟FLASH通信

SDRAM用的多大?

256M bit = 32MB , 不是IIC也不是SPI

电源电路

全是降压

  • DCDC选型 电压输入范围,输出电压,最大输出电流,电源纹波(开关频率高,纹波小)
  • MPS官网:开关变换器和控制器
    • 转换器:内部整合了两个mos管,简单成本低
    • 控制器:内部没有mos管,要自己外围加
  • 电容电感选型:
    • 电感:感值越大,输出纹波越小,具体手册有计算公式。流过电感的电流不能超过电感的饱和电流(固有参数),这个电流值也有公式。
    • 电容:输入电容越大越好,有公式。建议使用陶瓷电容。输出电容越大,纹波越小,有公式,但是也不能太大,会触发过流保护,有公式
  • 芯片开关频率:频率高,输出纹波小,可选更小的电容电感。但太高会有EMI问题
  • 同步还是异步:大多数是异步(就一个mos管)。同步是2个mos管(把二极管换成mos)
  • MP4462:12-3.3,DCDC,淘宝能买到。4Mhz
  • TLE4275D:12-5,LDO
  • MP20051:5-3.3,LDO
  • AMS1117:3.3-2.4,LDO

DCDC的拓扑结构

记住BUCK,boost就把mos管、二极管、电感这三个器件逆时针转90度即可。buck-boost就把二极管电感换一下位置 |500

特征阻抗

传输线对交变电流(或电磁波)的 “阻碍特性” usb:差分90ohm 以太网、hdmi:差分100ohm 阻抗因素:线宽(越宽越小)、间距(越薄越小)、介质电常数(越大越小)、同批厚度(越厚越小)、阻焊厚度(一定范围内越厚越低)、 差分阻抗间距越大阻抗越大

EMC

包括EMI 电磁干扰别人,EMS 电磁抗扰度 EMI:高速信号走直线尽量短,控制在信号波长的1/20内;差分对等长等距平行,间距大于3被线宽,去耦电容、共模电感、磁珠 EMS:esd、tvs、电气隔离

CAN波特率

DCDC、LDO区别

LDO:PMOS 始终处于 “不完全导通、也不完全关断” 的线性区,导通电阻可连续调节,而非 “0 或最大值” 的二进制状态,相当于一个滑动变阻器。能量损耗大,效率低。但是输出纹波小,几mv到几十mv DCDC:MOS管处于完全导通或完全截止的两个极端状态,能量损耗小,效率高。但是输出纹波大

🔴FreeRTOS

  • 任务状态:就绪、运行、阻塞、挂起(只能通过两个函数进入和退出)、删除
  • 任务切换:delay、读队列、take信号量

vivo技术

自我介绍的呃啊然后还是太多了

  • 电赛、其他项目经历
  • 对比下你那个同学,你有什么优劣势

烽火通信PCB

主要分两个岗位,一个是做高速信号、SI/PI仿真的。另一个做纯pcb layout的 面试主要针对项目提问,项目中涉及的相关知识都可能问到。

  • 自我介绍
    • 自我介绍的时候其实面试官在看简历,可以适当的拉长自我介绍时间,让他有充足的时间去看简历
  • 问了家庭情况
  • 为什么想来武汉工作
  • 为什么用CAN总线,问的应该是CAN总线的优势吧
    • 多主从架构:所有节点均可主动发数据,无固定 “主机”,当多个节点同时发数据时,通过 “非破坏性仲裁” 机制避免冲突,且能保障优先级高的数据优先传输:
    • 高抗干扰性:采用差分信号传输,抵抗工模干扰能力强,稳定
    • 完善的错误检测和处理机制:CRC 校验、位填充、ACK 确认
    • 帧格式冗余设计,方便扩展
  • SDRAM和以太网的PCB走线有何区别
    • SDRAM:地址线、16位数据线、bank线、时钟/使能线,32MB,166MHZ
      • 靠近MCU,阻抗50欧姆
      • 多组并行信号,防止串扰:3W原则:时钟、差分、复位、音视频
      • 差分100ohm
      • 禁止跨分割平面:差分对需全程在同一信号层布线,且不跨越电源 / 地分割,避免信号回流路径断裂,产生共模噪声。 时钟、复位、百兆以上、敏感信号线
    • 最大难点是外部 SDRAM、以太网 PHY 与 CAN 控制器收发器的信号干扰和时序匹配问题。
    • 将 SDRAM 紧邻主控芯片(STM32H743),缩短地址线、数据线长度,减少传输延迟;
    • 以太网 PHY(LAN8720)单独划分布局区域,远离 CAN 收发器,避免高速以太网信号(100Mbps)干扰 CAN 总线(最高 1Mbps)。
  • 核心器件选型主要考虑的什么
    • STM32H723ZGT6 作为主控芯片,自带 2 路 CAN FD 控制器,且具备强大的运算性能(Cortex-M7 内核,主频 550MHz)
    • CAN 收发器选用 TJA1043T,该器件专为车载环境设计,有休眠功能
  • 项目是独立完成的还是合作完成的:独立
  • 你在项目中的角色:简历中注明一下
  • 论文情况
  • 对PCB岗位的认识
    • 这里问对面PCB的工作内容去了,没问我了
  • 反问
    • 公司用的软件、技术岗位的晋升路线(1-7级,4级大概30-35岁,他是5级,看着四十岁左右)、培训情况,部门的培训2个月(试用期),结束后要独立画板子并答辩(转正),转正后有导师带半年,画正式板子大概要1年

收到PCB二面

烽火通信硬件设计

纯原理图设计

  • 自我介绍

  • 简历上没写主修课程,问了数模电学没学,问了点基础问题

    • 三极管和MOS管的区别
    • 数电中时序信号,保持时间和建立时间什么意思
  • IIC协议、电路设计中的注意事项

  • 数字电路中有哪些状态

    • 没理解是什么意思,后来面试官说除了高低电平还有什么,我回高阻态
  • IIC测量过工作时钟吗?CLK线的工作频率

    • 先回答了IIC的三个速度,100kbit/s 400kbit/s 几Mbit/s,对应100KHz 400KHz 几MHz
  • 电源芯片的外围电路

    • 做原理图设计的时候有什么注意的
    • 我提到了电感的饱和电流值,追问了电感还有什么电流值:温升电流
    • 电容电感越大,纹波越小,但是不能超过一定范围。
  • 四层PCB叠层设计

  • 高速信号搞过吗

    • 没有
  • 高速信号的阻抗控制有哪些要求

  • 以太网差分阻抗,在板子上受哪些影响

    • 板子基材介电常数、介质厚度、线宽、线距、铜皮厚度、参考平面完整性
  • SDRAM的设计通常是比较高速的。懂不懂信号的平面分割,信号跨分割平面

    • 差分线的参考平面是由什么决定的
  • 调过电路吗,遇到过什么困难吗

    • DCDC芯片买到假货
    • 也可以说一下那个
  • DCDC的输出电压的大小,如何调节?

    • 输出电压通过电阻,分压到反馈电压引脚,确保反馈电压等于芯片内部固定的 0.8V 基准电压
    • 电感:peak-to-peak ripple current即DL 约为 maximum switch current即DCDC输出电流 的30%(不同型号这里可能有区别)。
      • 电感的饱和电流,要大于电感的峰值电流(有计算公式)
    • 输出整流二极管:肖特基二极管
    • 输入电容:电容越大,输入电压纹波越小。低ESR,陶瓷电容最好
    • 输出电容:电容越大,输出电压纹波越小。低ESR,陶瓷电容最好
  • 做过SI?

  • WIFI模块

  • 项目中的角色,是不是老师带的

  • 器件核心选型

    • 外部SRAM大小:32M
      • SDRAM有个数据线和地址线,你对这些有了解吗
    • 以太网PHY选型
      • RJ45网口几根线:4对8条,百兆只用4根线
      • PHY时钟频率:
  • 测过晶振起振的吗

    • 晶振的一些指标知道吗。就知道频偏这个参数
  • 为什么想来武汉烽火、了解烽火吗

  • 反问:跟PCB一样

芯海嵌软

被逮着虚空项目狠狠问了实际量产项目开发经验,

  • 项目具体做了哪些事情
  • 系统的硬件架构
  • 传感器之间的通信协议,你熟悉这些吗,讲一下IIC吧:IIC讲了一部分就不听了,估计觉得我真会
  • 整个项目的开展流程:应该从市场调研、软硬件需求方面来说吧
  • 我负责的这个模块是怎么验收通过的:我写完了给主管,主管去搞
  • 软件版本怎么管理的:Git没给权限,离线给主管去合并的
  • 量产的顺利么,不敢瞎掰了
  • 对ARM内核的了解如何:内核的一些原理、工作方式。问了中断怎么响应的,介绍下中断系统
    • 冯诺依曼:采用指令和数据统一编址,使用同条总线传输,CPU读取指令和数据的操作无法重叠:通用计算机
    • 哈弗结构:采用采用指令和数据独立编址,使用两条独立的总线传输,CPU读取指令和数据的操作可以重叠:嵌入式MCU
    • ARM流水线:其本质是 “将指令执行拆分为多阶段,通过时间重叠和空间并行提升吞吐量”
      • 在没有流水线的串行执行模式下,一条指令需完整经历取指(Fetch)→ 译码(Decode)→ 执行(Execute)→ 写回(Writeback) 等所有阶段后,下一条指令才能开始。在三级流水下线模式下,可以提升处理器利用率
    • STM32 中断系统由中断源嵌套向量中断控制器(NVIC)中断优先级管理共同构成
      • 中断源内核中断源:SysTick、PendSV、SVC等。外设中断源:GPIO、TIM等
      • NVIC:接收中断请求、判断优先级、暂停当前任务、调用 ISR、恢复任务
        • 中断响应时,自动从 “中断向量表” 中找到对应 ISR 的入口地址(向量表是存储所有中断服务程序地址的内存区域,复位后默认在 0x08000000 起始地址
        • 嵌套中断支持:就是判断中断是否被打断之类的
      • 中断流程
        • 中断请求:外设或内核满足中断条件时,会向 NVIC 发送中断请求信号(IRQ Request)
        • 中断有效性判断:NVIC判断全局中断使能和单个中断源使能
        • 优先级判断、任务暂停
        • 向量表查询、ISR调用
        • ISR执行、中断清除
        • 恢复上下文
  • 抢占优先级和子优先级:问了抢占优先级一样,子优先级低的在执行,来了高的那个任务,会怎么样
    • 抢占优先级高,可以打断优先级低的,自己优先运行
    • 子优先级,只决定了抢占优先级一样的几个中断同时到来,谁先运行。若一样,则按照中断向量表中的序号小的先运行
  • 内核响应某中断(比如串口),内核进行了哪些:直接不会
    • 外设产生中断请求信号IRQ
    • NVIC是内核的中断管理核心:先检查全局中断使能和中断源中断使能,再判断中断优先级与中断嵌套。若要进行当前中断,硬件会将 CPU 的关键寄存器值自动压入栈内存,再查询中断向量表找对应的中断服务ISR地址,跳转到ISR执行。执行ISR,清除中断falg,恢复上下文,判断有无挂起的中断
  • NVIC有哪些寄存器:”你主要是用程序在开发,对底层了解比较少“
    • 中断使能、除能,中断挂起、解开,中断优先级等
  • 用SPI和一个传感器通信,软件上的开发需要哪些程序的编写,你怎么写的这个驱动:从代码的角度,我要把SPI,要配置哪些东西,比如IO口怎么配之类的。作为嵌入式工程师,你还是要知道流程的,调试的时候你要会分析。
  • 比如现在写代码跟传感器通信总是不通,你怎么去调试分析这个问题,怎么去确定是主控没问题,而是对方传感器问题
    • 检查硬件连接,电源给对了没有,两边引脚接的对的没有,可以用万用表测
    • 排查主控,飞线,让USART/SPI回环,IIC连简单的设备。检查主控引脚配置,检查引脚是否冲突
    • 检查通信速率、两边协议上的规定,可以用示波器抓波形
    • 传感器手册详细的通信协议,发读取命令,示波器抓波形
    • 换个板子测一下传感器
  • FreeRTOS任务的状态,任务之间如何通信的
    • 就绪、运行、阻塞、挂起、删除
    • 队列queue、信号量、事件组
  • FreeRTOS内存管理,如何避免内存泄漏的
    • 给了几种内存管理方案:heap1.c…‘
  • static关键字的作用
    • 修饰局部变量: 普通局部变量存放在栈中,函数执行完就会销毁。而被 static​ 修饰的局部变量存储在数据段(已初始化)或 BSS 段(未初始化),在程序的整个运行期间都存在。且只会在第一次调用时进行初始化,之后再调用会保持上一次的值
    • 修饰全局变量:默认的全局变量可以在其他c文件中通过extern声明后使用。被static​修饰的全局变量无法被其他c文件访问,作用域限定在本c文件。被static​修饰的函数同理
  • Flash和RAM的区别 *
  • Flash和RAM存的东西都是什么
  • 我提到了ROdata和ZIdata,哪些东西放在RO,哪些在ZI
  • 嵌入式平台资源有限,计算能力空间都有限,有个算法跑的很慢,有什么简单方法去提升速度
    • 降低算法复杂度,减少循环、迭代次数,
    • 给了更具体的情景:发现这个算法很多时间都在执行一个很小很简单的函数,调用很频繁,主频很快,但是flash读取速度跟不上CPU
      • 将目标函数指定到 RAM 段,编译时会自动将函数代码从 Flash 复制到 RAM,运行时直接从 RAM 执行。访问flash慢,访问ram快
      • 内联inline展开
      • 若支持,则开启ICache
  • 反问
    • 走专家当系统工程师,对只是要求广,软硬件产品,芯片底层的东西,esd的东西都要懂。走技术管理当产品经理,定义产品在成本市场上优势。项目管理当项目经理纯管理路线
    • 培训相关,分配导师,先学习项目资料,再做一些模块,最后才跟到项目里

信号完整性:主要是信号的上升时间相关,大部分频率高的,信号上升时间短

VIVO 技术

晶振时钟电路

  • 四层layout,布局的思路:MCU的时钟信号如何考虑的、电源隔离、发热温漂、电源环流路径尽量少
    • 144脚,放中间,好出线
    • 无源晶振,晶振走线500mil以内靠近主控,负载电容靠近。没接电阻去限流和防止过冲。22pf的负载电容(走线也有一定的寄生电容)。没做包地处理因为多路SPI线太多。下层没有其他走线。没有电源在附近
    • 散热:DCDC、LDO、WIFI(信号)都放在边缘,打GND过孔
    • 电源:避免电源环绕板子走线,避免在地层或者电源层挖槽 有什么案例证明自己学习能力 兴趣爱好 后续的定位

个人的优点和缺点

优点: 适应能力强、学习能力强、

缺点: 独立解决问题的倾向、有时可能喜欢追求完美,拖迟任务进度

个人后续的发展方向规划

入职后的半年到一年内,熟悉团队核心业务模块、公司代码规范、开发流程与产品架构,通过基础开发任务深化理解,修正开发习惯。希望能独立负责一些模块的开发和维护工作,高质量地完成任务。 在熟练完成本职工作的基础上,我希望能结合公司的业务方向,选择一到两个关键的业务进行深度研究,力求成为团队里这个方向的专家,能够解决最棘手的性能、稳定性问题。 我希望未来能成长为一名专家或系统架构师,不仅能解决具体的技术难题,更能从系统层面去设计和优化,确保我们产品的长期竞争力和技术领先性。

🔴自我介绍

各位面试官,大家好!我是姜天成,24岁,我本科和硕士均就读于武汉理工大学,是一名中共党员。 在校期间我始终保持积极的学习状态,成绩位列专业前30%,多次获得学业奖学金。 研究生阶段,主要做了两个项目。第一个是多通道CAN总线报文记录仪,该项目是和上汽通用五菱公司合作的,主要用于汽车CAN总线数据的采集与记录,方便对方工程师进行新车上市前的测试工作。 我是这个项目的负责人,负责与甲方对接项目需求。在项目开发中,我主导方案设计,完成核心器件选型,使用AD设计系统原理图,进行PCB Layout,跟进制板与SMT流程,并进行样机的调试 在软件方面基于 FreeRTOS 实现多任务调度,负责8路CAN接收、时间戳匹配、报文的存储、报文过滤、CAN波特率配置等核心功能的程序编写;同时基于lwip协议栈开发远程诊断模块,实现UDS指令解析与CAN报文透明转发。 这个项目部分时间是在上汽通用五菱公司实习的,主要与对方工程师进行实车报文接收测试。 目前对方在对产品进行验收,验收通过后计划提供对方20套设备用于车载测试。 第二个项目是面向室内的空气质量检测仪,我主要是在公司已有的硬件平台上,进行软件的开发。主要做了各类传感器的数据处理,以及显示屏人机交互的逻辑代码的编写。 以上就是我的基本情况

else

笔试题

WH海尔嵌软

https://docs.qq.com/aio/DVFVhS3pnS1pYbHFH

芯海嵌软笔试

https://docs.qq.com/aio/DUXdsWFJRUFp6U0Rj?p=HKmltRa4x5NZq7Myx7CymE

高拓迅达嵌软笔试

https://docs.qq.com/aio/DUWxXb1pBZkxITW9t?no_promotion=1&p=Jz8x5hBWu4Xt9mkQBmKzon

师兄面试

KTC

  • 对硬件岗位的工作内容、还有所需要的工作能力的理解:
  • 从个人角度,个性、掌握的知识,哪些方面契合这个岗位:
  • 最小系统,最小系统各部分的作用:电源、时钟、复位
  • 系统的电源设计: CAN项目的电源主要分三个部分, 12V外部输入通过DCDC芯片和SBC芯片降压到3.3V给MCU和部分外设供电, 12V还通过LDO芯片降压到5V给CAN收发器供电 5VTYPEC供电通过LDO芯片转为3.3V给MCU和其他外设供电,
  • DCDC与LDO的区别
  • 电源纹波产生的原因,如何减小纹波: 电源自身、开关电源

  • 信号采集,从采样到模拟信号,到输入到单片机,会对信号做哪些处理? ADC

  • 专业学习之余,还爱干啥

  • 专业课对哪门课最感兴趣

  • 怎么看待加班

  • 英语水平

  • 有哪些想了解的 分到哪个部门、工作内容、培养体系、对于EMC(EMI、EMS)、转正有考核吗

NOVA

实习经历

因为我们老师和那边有项目上的合作 做项目上的事情,了解他们的工作情况工作流程,和他们工程师沟通。诊断测试科,做报文诊断。 他们这个科室的项目对外合作比较多。

实习部分有硬件部分吗?

无。但是有项目需求的沟通

总体方案、使用的常用的元器件、设计了哪些电路

项目背景:CAN报文记录的。车上市之前肯定会经过长期的各种测试,这个设备就是接在汽车OBD接口上,记录各个ECU节点发过来的报文并存储起来,以便于路试场的技术人员后期分析车辆各系统实时运行数据。

项目总体方案: 核心控制器 + CAN 收发模块 + SD卡 存储模块 + 电源管理 + 接口电路 主控:STM32H723ZG CAN收发

SDRAM用的多大? 256M bit = 32MB SD卡速率 128G 闪迪TF卡 QUAR系列,读取140MB/s,写入30MB/s USB USB3300-EZK-TR,USB2.0 以太网接口 LAN8720A通过RMII和MCU相连,另一端与WIFI桥接模块相连。 走的变压器 单板的电源如何设计的

PCB绘制,叠层设计

主控的主频、外挂晶振、晶振频偏

外挂的EEPROM AT24C02,2Kbit 256Byte,IIC,存配置信息 调试遇到的问题 职业规划 反问

产品设计开题

开题报告

1.研究内容、研究目标 研究目标:一段话,系统做完后能够达到的效果。现在写的像内容和过程。 研究内容:标题+一段话解释。现在写的很多都可以放到技术路线里。测试与验证太多了,放到技术路线就行。 关键问题:太多了,2个就行了。复杂网络环境下的这个可以去掉

技术路线:图太小看不清,技术路线需要解释。研究路线的篇幅应该增加。

研究目的和研究目标要统一 如何保证高精度时间戳,技术路线可以具体补充b

小论文返修

  1. 双核任务分配策略缺乏详细说明,没有明确解释为何将特定功能分配给每个核心,也没有提供对比分析以展示相对于具有同等处理能力的单核实现方案的性能优势。
  2. Huffman压缩算法实现看似标准,但未针对车CAN数据特性进行优化,同时论文未探讨领域特定压缩方案是否能在典型车辆传感器数据中实现更佳压缩比
  3. 以太网交互模块设计未考虑网络安全性,这对于汽车应用至关重要,因为远程诊断访问可能带来网络安全漏洞。
  4. FIFO缓冲管理系统缺乏溢位处理策略,也没有讨论在极端负载条件下或实际汽车环境中可能出现的网络拥塞情况下的行为。

SB瑞二米面试

铁铁吐槽一下手机厂的线下面试 面试官说是硬件主管。铁铁们聊到了DCDC电源芯片。 铁铁是在淘宝买的A型号的DCDC芯片,电路设计是12V转3.3V,但是实际输出4.2V。 检查了原理图电路和芯片手册推荐电路一致,电阻电容电感选型也重新计算了一遍没有问题。那铁铁觉的芯片有问题,就换了一家店继续买这个A型号的芯片,但是回来测量又是4.2V,就觉得这个型号可能淘宝假货多,就换了个B型号的芯片,重新打板后正常了。 面试官问:你怎么认为是这个芯片有问题?那应该是你们选型不对,这个芯片不是假的。 他说到这铁铁就有点奇怪了,按照芯片手册上的要求搭建的电路,各种参数也都按照手册来的,你芯片出的数据不对,怪铁铁选型有问题了? 铁铁解释:你只要按照芯片手册搭建好外围电路,选好外围器件参数,算好分压电阻的值,那他输出电压就该是你设定的电压。 他问:为什么? 这里铁铁真有点懵了 。他又问了这芯片有没有IIC控制,使能引脚,输入信号。又问你把使能信号拉高了他(mos管)怎么开关。 铁铁傻了,这个芯片的使能就是控制芯片是否输出电压,绝大部分的芯片使能引脚都是决定芯片是否工作、或者有无输出的,咋就成控制mos管开关的了。 铁铁解释了使能引脚的功能后,他又问铁铁是如何控制mos管开关的,到这铁铁人都傻了,铁铁是原理图设计,不是IC设计,买了厂家的芯片拿过来读手册用就可以了,芯片内部电路就能实现mos管自动开关功能了。铁铁学buck电路的时候,也没人讲怎么控制mos管开关的呀。 那只能支支吾吾的说他输出电压是怎么来的:输出电压是通过一个电阻分压电路从输出电压到FB引脚设置的。铁铁面试之前还专门看了这个DCDC芯片的手册,因为之前的面试有问过 但是他没听铁铁讲完,就他画了个buck电路,问铁铁看不看得懂,铁铁个人觉得语气稍微有点感觉铁铁是对这块一点不懂的,也可能是铁铁想多了 他问铁铁,铁铁那个芯片的开关在哪里。真不知道怎么回答了,芯片内部已经集成了 然后给铁铁讲,这电路是靠mos管不断开关,来给后面电容电感储能的,请问铁铁是怎么让mos管开关的。铁铁是真没仔细看过芯片内部实现,就没答上来。 然后问铁铁buck电路输出波形,就大概画了一下,上升一段下降一段,他又问什么时候上升,什么时候下降。这个铁铁确实也没认真学过,也答不上来(这里感觉已经不是在问为什么能判断芯片是有问题的了) 到这里他就给出结论:输出是4.2V的原因铁铁并没有去分析,芯片不一定是假的。

面试官:“你一定要给他配一个PWM波形的呀,不配的吗?” 这是真的不用配,虽然铁铁没那么精通,但是读芯片手册还是能看懂的,整个板子也是真的跑通了的,选个DCDC芯片去降压,真的不用给芯片PWM波形 铁铁回他不用配,他叹一口气,开始给铁铁讲buck电路,说是通过mos不断的开关,才能不停的给这个电容电感储能。 然后画了个框,说:这是一个buck在这里,请问一下这个东西(mos管)在哪里? 实际情况是集成在芯片内部的,铁铁选的芯片是convert,不是controller需要在外面自己添加mos管。铁铁就回答是芯片内部集成的。 面试官:那他的频率是多少(因该就是指芯片的开关频率这个参数),你去看过吗?(下面最让铁铁不理解的话出现了)他频率不影响输出吗? 你量过他的开关频率吗?肯定是哪里出了问题,才导致他的输出不正确。 然后给铁铁建议说,做技术的很多东西要从原理上去理解。 对于他的建议铁铁表示赞同,但是他说开关频率影响输出,吓得铁铁回来赶紧重新学了一下buck电路,影响buck输出电压最大的是mos开关的占空比,频率有一定影响,但也不能抽象到在正常输入输出范围内差到接近1V吧,铁铁选型的时候,最大输出电流都是大系统电流挺多的,不会出现接近满载工作的情况。

也可能是铁铁真的误闯天家了,手机厂用的是集成度更高,功能更丰富的电源芯片,对于普通的DCDC芯片使用的不多。铁铁第一次翻车的芯片是MP4432,后面换成了MP4462,工作稳稳的 面完了说是晚上会有结果,但是官网上的进度没有推进,一起去面软件的好兄弟的有推进,明天要去二面了。可惜这次线下的面试经历,感觉并没有刷到什么面经,还让攒了六七个测评笔试AI面的铁铁本就不富裕的时间雪上加霜 祝大家秋招顺利!