news 2026/9/18 6:05:31

车载电子E-mark认证抗扰度测试:从法规到功能判定的工程实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
车载电子E-mark认证抗扰度测试:从法规到功能判定的工程实践

1. 为什么抗扰度测试在E-mark认证中越来越难“混过去”

先讲个我实际遇到的场景。前两年给一家做车载灯具控制器的客户做预测试,产品功能不复杂,LIN总线控制尾灯,单一工作模式,按理说这种“傻白甜”设备在抗扰度测试里应该是最好过的一类。结果在辐射抗扰度测试跑到某个频段时,LED尾灯的PWM调光波形肉眼可见地抖了一下。示波器抓下来,确认是芯片复位导致输出重启。问题本身不难修——复位引脚对地加了个100nF电容,再优化一下layout就解决了,但这件事让我印象很深:越是看似简单的功能,在电磁干扰面前越可能暴露出反直觉的“软故障”。

汽车电子产品的抗扰度测试,说白了就是验证设备在被电磁环境“围攻”时还能不能老实干活。而E-mark认证里的抗扰度部分,又是所有EMC测试里最考验功能设计的一项——因为辐射抗扰度、传导抗扰度的限值往往不是“打坏为止”,而是“允许你受影响,但关键功能不能乱”。怎么判定“乱”还是“不乱”?这才是功能测试的核心,也是很多工程师第一次接触R10法规时最摸不着头脑的地方。

这篇文章主要想聊清楚三件事:E-mark认证框架下抗扰度测试到底测什么、怎么测;功能状态的判定逻辑是如何影响测试结果有效性的;以及我们在实际预测试和认证测试中总结出来的一套准备方法和踩坑经验。适合车载电子零部件的硬件工程师、EMC工程师、测试工程师,以及对功能安全测试感兴趣的整车和零部件质量人员参考。不管你是第一次接触R10,还是已经在测ISO 11452系列标准,这篇文章都想给你一些能直接放到工作台旁边用的东西。

2. E-mark认证到底管什么:R10法规的边界与适用场景

2.1 E-mark证书不是“欧洲强制认证”这么简单

很多人把E-mark理解成“欧洲的强制认证”,这个说法没有错,但不够准确。E-mark认证依据的是联合国欧洲经济委员会(UNECE)制定的法规,所有缔约成员国互相承认证书。也就是说,只要你的产品拿到任一成员国的E-mark证书,贴上了对应的E标志,就能在这些成员国市场合法销售。目前UNECE法规有100多项,涵盖灯光、制动、噪音、排放、电磁兼容等各个方向,而汽车电子零部件涉及的电磁兼容就是其中的R10法规。

R10法规的全称是《关于车辆电磁兼容性认证的统一规定》,它把车辆和电子电气零部件都纳入了管理范围。早期大家对R10的印象停留在“防广播干扰”“防对讲机干扰”这个层面,但随着车载电子设备越来越复杂、混动和纯电车型的功率电子越来越多,R10已经从最初的简单限值测试,发展成了一整套从整车到零部件、从发射到抗扰、从纯电气性能到功能安全的综合认证体系。

拿到E-mark证书只是第一步,更关键的是你必须在认证测试中证明你的产品在规定的电磁环境下不会产生不可接受的功能降级。这句话是整个抗扰度功能测试的纲领,后面的所有测试项目、限值等级、判据定义,全部围绕着“什么是不可接受的功能降级”展开。

2.2 R10.05及后续修订对人机交互和功能安全的影响

现在企业做E-mark认证,主流执行的是UNECE R10.05版本,再往后有R10.06、R10.07等修订。每一次修订,抗扰度测试的限值、频率范围、测试条件都会有一些调整,但总体上呈现出的趋势很明确:测试频率范围更宽、场强要求更高、对功能安全的评估更细

以辐射抗扰度为例,R10法规采用的是ISO 11452-2的测试方法,频率范围通常是30MHz到1GHz,场强要求取决于产品类别和安装位置,一般情况下零部件要求30V/m。到了R10.06之后,又把无线充电、V2X通信、毫米波雷达等新技术带来的电磁环境纳入了考虑,某些新频段甚至要测到6GHz以上。这意味着什么呢?意味着你的设备不仅要抗住传统的广播、对讲机、车载天线辐射,还要能抗住越来越复杂的车联网通信信号和电气化系统自己产生的干扰。

这里面有个容易被忽视的地方:R10法规对整车的抗扰度要求和对零部件的抗扰度要求是两套体系。整车做认证时,车辆本身作为一个大系统被整体评估;零部件做认证时,则是按照零部件标准单独测试,并且零部件证书可以作为整车认证的一部分来引用。如果你做的是二级供应商,给Tier 1供货的传感器模块或控制单元,你必须拿到符合R10要求的零部件认证,否则Tier 1没法在整车认证中直接引用你的数据。

2.3 抗扰度测试在R10整个认证包中的位置

R10法规的管理范围包括:宽带电磁辐射发射、窄带电磁辐射发射、传导发射、辐射抗扰度、传导抗扰度、瞬态传导抗扰度、静电放电抗扰度等。发射类测试管的是“你不能打扰别人”,抗扰度类测试管的是“别人不能打扰你”。在整车层面,整车是接收方,所以整车的抗扰度测试更侧重整车在外部电磁场下的表现;在零部件层面,零部件既要考虑来自车载天线、线束耦合、电源系统的干扰,还要考虑外部场对设备本身的辐射。

从实际认证节奏来看,发射测试如果不合格,通常通过加滤波、调整屏蔽结构就能解决,属于“硬问题”,好定位。但抗扰度测试不合格,往往牵涉到软件逻辑、功能状态、传感器信号处理这些“软问题”,有时候你甚至很难确认是硬件被干扰了,还是软件状态机被打乱了。这就解释了为什么我在开头说,抗扰度功能测试越来越难“混过去”——因为认证机构、整车厂和Tier 1现在都不再满足于“电气指标达到了”,他们要看到你的产品在干扰存在的全过程里,每一个关键功能都按照预期运行或降级。

3. 干扰源头与耦合路径:不懂机理,功能测试就是盲人摸象

3.1 电磁干扰三要素在车载环境中的具体映射

电磁兼容的所有问题都可以归结为三要素:干扰源、耦合路径、敏感设备。做抗扰度测试,本质上就是人为地制造标准规定的干扰源和耦合路径,去考验你的敏感设备。搞清楚这三者在车载环境里具体是什么,你才能在设计阶段就预判哪些模块容易出问题。

干扰源在车里到处都是。传统燃油车的点火系统是宽频噪声大户;各类感性负载(雨刮电机、车窗电机、电磁阀)在开关瞬间会产生很陡的电流变化;随着电气化程度提高,DC-DC变换器、电机驱动器的开关频率不断升高,它们产生的窄带干扰频率甚至能延伸到百兆赫兹级别。再加上车外环境——你对向车道的大货车开着大功率电台、你路过基站、你用手机在车里打电话,都算外部干扰源。

耦合路径分两类:传导耦合和辐射耦合。传导耦合是指干扰通过线束、电源线、地线直接进入设备;辐射耦合是指干扰以电磁波形式在空间传播,被线束或PCB走线接收。注意一个容易被新手忽略的点:辐射干扰往往最终以传导方式进入设备。一根线束在电磁场中相当于一根接收天线,它把空间中的电磁场转换成线上的感应电流,再沿着连接器、PCB走线进入芯片引脚。所以你在实验室看到测试人员把线束布置得整整齐齐,不单纯是为了好看——线束的长度、走向、离地高度都直接影响耦合效率和测试结果的重复性。

敏感设备就是你的DUT(被测设备)本身。芯片的复位引脚、晶振附近走线、模拟传感器采样电路、通信总线的物理层收发器,这些都是常见的敏感点。功能测试的难点在于,同一个干扰信号打到同一个芯片上,可能有时触发复位、有时不触发,取决于干扰出现瞬间芯片处于什么工作状态。这就让测试结果产生随机性,也正是我们需要建立系统性的功能监测矩阵的原因。

3.2 为什么模拟真实工况比单纯“打场强”更重要

做抗扰度测试时,标准规定了场强、频率步进和驻留时间,但很多工程师没意识到的是,DUT的工作状态和负载状态对测试结果的影响,有时候比场强本身还重要

我见过一个很典型的案例:某车身控制器在做BCI(大电流注入)测试时,把所有输出通道全部开启,结果有三路负载的PWM信号全部失真;但当只开启单通道时,轻松通过。原因很简单,多通道同时开启时,PCB上的地回流路径拥挤,地弹噪声叠加,再加上BCI注入的共模干扰,直接压垮了PWM驱动芯片的电源抑制能力。如果你在预测试时没有充分模拟满负载工况,在认证测试现场才暴露问题,那就完全处于被动局面了。

所以严格意义上,做抗扰度功能测试前,必须先建立一份“功能工况矩阵”,把DUT在实车环境里可能遇到的所有工作模式列出来:正常模式、待机模式、诊断模式、故障模式、满负载模式、通信繁忙模式。再针对每一种模式设计对应的负载模拟方案。这不仅能提高测试的覆盖率,还能提前暴露一些只有在特定工况组合下才会出现的敏感性问题。

4. 四大核心测试项目与执行细节

4.1 辐射抗扰度(ALSE法):30MHz到1GHz的暗室拉练

整车和零部件的辐射抗扰度测试,在标准层面分别对应ISO 11452-2(ALSE法,即吸波暗室法)和ISO 11452-9(手持发射机法)。做E-mark认证的零部件,最常使用的是ALSE法,测试布置如下:DUT放置在暗室内的接地平面上方,测试线束按照标准规定的长度(通常是1.5米或按实际安装情况)铺设,发射天线距离DUT 1米或按标准要求,通过功放输出规定场强的射频信号,用场强探头实时监测DUT参考点位置的场强。

这里有一个关键的测试细节:场强在暗室中并不是均匀分布的。标准的做法是先进行场强校准,在DUT及线束所在区域选定若干个校准点,调整功放的输出功率,使每个频率点上参考点的场强达到规定值(比如30V/m),并记录下每个频率点对应的功放功率数据。正式测试时,就按这个预先记录的功率表来输出。之前测试时功放散热不良导致输出功率漂移,实际场强达不到设定值,结果测试被判无效——这种问题虽然不是DUT本身的问题,但会浪费一整天的暗室时间。

在功能测试层面,辐射抗扰度需要重点关注设备在不同极化方向(水平和垂直)下的表现。按照标准要求,每个极化方向都要完整扫一遍频率,驻留时间通常不小于1秒。如果你的DUT在通信过程中对时序比较敏感(比如CAN报文周期要求严格),1秒的驻留时间足以触发多次通信错误,这时候判据的设定就非常关键:是允许通信错误出现但要求自动恢复,还是要求完全无错误?这取决于你在测试计划里怎么定义设备的性能判据,而判据定义本身又取决于设备功能是否涉及安全。

4.2 大电流注入(BCI)法:对付线束耦合干扰的主力

如果说辐射抗扰度测试是“远距离攻击”,那BCI法就是“贴身肉搏”。BCI测试的核心思想是用一个电流注入探头夹住线束,把射频干扰直接耦合到线束上,模拟实际车辆中线束受到干扰的效果。相比ALSE法,BCI的重复性更好、成本更低、定位问题也更快,所以工程上大量使用。

ISO 11452-4规定了BCI测试的三种方法:闭环法(用监测探头闭环控制注入电流)、功率法(用注入探头前向功率作为参考)、替代法(先用50欧姆负载校准注入功率,再对线速注入)。三种方法各有优劣,E-mark认证中通常按照法规引用的版本来确定具体采用哪种。我个人的经验是,不管用哪种方法,测试过程中必须持续监测注入电流或前向功率,防止因为线束阻抗变化导致实际注入量漂移。

BCI测试频率范围通常是1MHz到400MHz,有些新标准扩展到1GHz。1MHz到几十MHz频段主要考验电源线和低速信号的抗干扰能力,几十MHz以上则更容易干扰到高速通信总线。功能测试中最常见的BCI故障现象是CAN通信偶发错误,特别是当注入频率落在CAN收发器共模抑制比较弱的频段时。如果你在预测试中发现某个频段通信错误率明显上升,建议先检查CAN线在连接器处的滤波和终端电阻匹配,其次再排查收发器本身的共模抗扰能力。

4.3 瞬态传导抗扰度:电源线上的“过山车”考验

实际车辆环境里,电源电压并不总是稳稳的12V或24V。当你启动发动机、开关大功率负载时,直流电源线上会产生各种各样的瞬态脉冲。ISO 7637-2定义了多种脉冲波形来模拟这些场景,E-mark认证引用该标准作为瞬态传导抗扰度的测试依据。

说到瞬态抗扰度测试,就不得不提到你给的网络热词里那个“直流电源输入端口电压暂降、短时中断和电压变化的抗扰度试验”。这个试验在ISO 16750-2里也有对应的描述,主要模拟的是启动时电源电压跌落、蓄电池桩头松动导致的短暂断电、发电机输出电压波动等场景。虽然ISO 16750系列不是E-mark认证直接引用的标准,但在实际项目里,整车厂往往会在自己的EMC规范中同时引用ISO 7637和ISO 16750,因此做E-mark认证时,这两类瞬态测试经常被放在一起打包执行。

测试配置上,瞬态抗扰度测试需要使用可编程电源和瞬态发生器。关键难点在于:测试波形必须在DUT实际供电状态下叠加。也就是说,DUT正常上电工作,然后瞬态发生器在电源线上叠加规定的脉冲波形。功能测试的关注点是:脉冲施加期间和施加之后,DUT的关键功能有没有发生不可接受的变化。像重启、死机、参数丢失这类故障,基本上只要出现一次,就会被判不合格。

值得提醒的是,瞬态抗扰度测试中的脉冲5(负载突降脉冲)能量很大,对DUT电源端的TVS管和反压保护电路是严峻考验。功能测试时,如果DUT在脉冲5测试后直接失效,通常不单纯是“抗扰度”问题,而是硬件保护电路设计不足。这种情况建议回到原理图层面,核算TVS管的功率容限和电源IC的输入耐压,而不是试图在软件上规避。

4.4 静电放电抗扰度:人体静电的“隐蔽杀手”

静电放电虽然看起来是发射类问题的远亲,但它本质上也是抗扰度问题——你的设备要有能力在ESD事件中不损坏、不死机、不误动作。E-mark认证中,静电放电抗扰度按照ISO 10605执行,分为接触放电和空气放电两种方式。

ESD功能测试有一个显著特点:测试点位的选择对结果影响极大。操作人员可触及的金属外壳、连接器金属壳体、按键缝隙、显示区域边缘,每一个点都要考核。测试过程中,DUT必须处于典型工作状态,每施加一次放电,都要观察并记录功能状态。ESD事件是瞬时的,但它的影响可能是持久的——比如一次放电导致Flash中的数据被改写,这就是严重的功能安全问题。

做ESD测试时我有个习惯:测试前先备份DUT的配置参数,测试后马上读取核对,防止数据篡改类故障被漏掉。很多时候ESD功能测试只看“死没死机”“重启没重启”,忽略了数据完整性问题,这在实际使用场景里恰恰可能是最致命的。

为了让你快速对照,我把上面几个核心测试项目的关键参数整理成一个表:

测试项目参考标准典型频率/波形典型等级功能关注点
辐射抗扰度(ALSE)ISO 11452-230MHz-1GHz30V/m通信错误、误动作、死机
大电流注入(BCI)ISO 11452-41MHz-400MHzI-IV级CAN通信错误、复位、传感器漂移
瞬态传导抗扰度ISO 7637-2 / ISO 16750-2脉冲1、2a、2b、3a、3b、4、5按功能等级重启、死机、参数丢失
静电放电抗扰度ISO 10605接触/空气放电4kV/8kV-15kV死机、数据篡改、误动作

5. 功能测试的判定逻辑:性能判据、监测矩阵与实操记录

5.1 性能判据A/B/C/D的含义与选择逻辑

抗扰度测试里最核心、也最容易被误解的概念,是“性能判据”(Performance Criteria)。ISO 11452系列和ISO 7637系列标准里通常把性能判据分为A、B、C、D四类:

  • 判据A:测试期间和测试后,设备所有功能都满足设计要求。
  • 判据B:测试期间,设备功能出现降级或偏离,但测试结束后能自动恢复,无需操作者干预。
  • 判据C:测试期间,设备功能出现降级或偏离,测试结束后需要操作者干预或系统重置才能恢复。
  • 判据D:测试期间或测试后,设备功能出现不可恢复的降级或损坏。

对于安全相关功能,比如刹车、转向、油门控制、安全气囊触发,整车厂和认证机构通常要求满足判据A。对于舒适性功能,比如空调、车窗、娱乐系统,可以放宽到判据B。这里要特别强调,判据不是设备自己决定的,是产品定义和风险评估决定的。你做功能测试前,必须和客户(或客户的标准文件)确认清楚:每一个功能点到底适用哪个判据。如果测试报告里写的判据与客户要求不一致,认证测试等于白做。

5.2 功能监测矩阵怎么建

既然要判定功能状态,就必须在测试过程中“看得见”功能状态。我的建议是:在正式测试前,花半天时间建立一份功能监测矩阵。每个测试项目一行,每个关键功能一列,交叉处写明监测手段和判定标准。以车身控制器为例:

功能模块监测手段测试期间允许状态测试后恢复要求
主控芯片运行状态周期性报文/心跳信号必须保持运行无需干预
CAN通信CAN总线报文监测仪可偶发错误帧自动恢复且无故障码
外部灯控制电流探头/电压采样亮度波动不超过±10%自动恢复
传感器采样模拟量监测通道采样误差不超过±5%自动恢复
电源输入示波器监测无欠压复位无需干预

这份矩阵不仅是测试执行的依据,也是测试报告的重要附件。认证工程师看到你有这样一套完整的监测逻辑,对测试结果的公信力会更有信心。

5.3 实测中的记录方法论

测试过程中,原始记录要做到三点:实时、连续、可追溯。实时是指故障发生时能立即标记当时的工作台状态(比如当前频率、场强、注入电流、DUT供电电压);连续是指整个扫描过程中DUT功能状态的变化都要记录,不能只记录“最后结果”;可追溯是指所有记录要关联到具体的测试配置和软件版本。

实际操作中,我通常采用三路记录:DUT运行状态的监控截图或视频记录、测试设备的功率和状态数据自动记录、纸质/电子原始记录表单。这三路记录最终整合成一份带时间戳的测试记录。一旦出现问题,你可以按时间戳回推,定位出哪个频点、哪种工况条件下触发了故障,这对后续整改非常有价值。

这里有一个容易被忽视的细节:摄像头的摆放位置和帧率。摄像头要能清楚拍到状态指示灯、显示屏(如果有)和DUT外观;帧率建议不低于15fps,否则瞬态故障可能拍不到。之前我遇到过明明软件Monitor显示CAN通信断了200ms,但回看视频时因为帧率不够,没拍到指示灯熄灭的画面,导致故障确认多花了半天时间。

6. 测试准备、常见“翻车”现场与经验沉淀

6.1 测试前的DUT准备清单

基于多次预测试和认证测试的经验,我整理了一份DUT准备清单,每一条背后都有对应的事故教训:

  • 线束长度和走向:严格遵守标准要求,长度按实车最长线束或标准规定,走向不能随意缠绕。线束是天线,它的形态直接影响测试结果。
  • 接地方式:明确DUT是“浮地”还是“接地”,测试台上的接地必须与实车一致。有些设备在实验室是浮地测试,到了实车因为搭铁点位置变化,抗扰度表现会完全不同。
  • 负载模拟:所有输出通道要接等效负载,特别是电机、灯泡、电磁阀这类感性负载。没有负载的测试状态往往过于乐观。
  • 软件版本冻结:认证测试使用的软件版本必须与最终量产版本一致,或者确保测试结束后升级的软件不涉及底层驱动、通信协议等关键逻辑改动。
  • 故障注入准备:如果标准要求或客户要求做故障注入(比如模拟传感器短路、断路),提前准备好故障注入盒和故障设置表。

6.2 我见过的“翻车”现场与整改思路

一些案例和对应整改方向,给你参考:

案例一:DUT在辐射抗扰度扫频到87MHz时,Lin通信中断并持续到测试结束。排查过程:先确认问题在87MHz附近反复出现,锁定为线束谐振频率落在该频段。整改措施:在LIN物理层加共模滤波电容,并调整线束在测试台上的铺设路径,避开谐振点。经验:87MHz附近是1米线束半波长的典型谐振频段,遇到这个频段的问题优先查线束。

案例二:BCI测试在75MHz附近AVS模拟量采样值跳变。排查过程:用近场探头扫描PCB,发现在模拟前端附近有高频耦合点。整改措施:模拟采样线路加RC滤波,采样频率调整,避开干扰频段。经验:模拟信号对抗扰度最敏感,优先从采样链路滤波入手。

案例三:瞬态抗扰度脉冲5测试后,DUT无法恢复启动。排查过程:测试后测量电源IC输入电压异常,判断是TVS管在脉冲5大能量冲击下短路失效。整改措施:更换功率容限更大的TVS,并在TVS和电源IC之间加串联电感限制冲击电流。经验:脉冲5属于高能量脉冲,TVS不能只看耐压值,还要看峰值脉冲功率。

6.3 测试报告与证书之间还差了哪些事

很多工程师以为测试通过了就等于拿到证了,其实不然。认证测试除了技术层面的测试报告,还需要准备一系列认证文件,包括产品描述、结构图、关键零部件清单、软件版本说明等。如果测试报告和产品描述之间存在不一致的地方(比如额定电压范围写错了、产品型号清单有遗漏),发证机构会要求澄清甚至重新测试。

所以我的建议是:正式进入认证流程前,先和发证机构的项目工程师做一次技术预沟通,把产品定义、测试标准引用版本、性能判据、预计的测试计划都过一遍。大部分流程上的返工,都是在预沟通阶段就能避免的。

另外一个实操经验是:如果产品有多个型号、多个硬件版本或软件版本,每次申请认证时都要明确证书覆盖范围。E-mark证书上的覆盖范围直接在证书文本中写明。如果你的产品系列有10个型号,但硬件配置只有3种,要在申请时说明型号与硬件/软件的关系,避免后续因为证书覆盖范围不清导致市场准入问题。

6.4 从“过认证”到“抗扰度能力建设”

最后我想聊一个更高层级的问题。E-mark认证从本质上说只是一次抽样检测,它给你的是一个时间点上的“体检报告”,而不是产品全生命周期的抗扰度保证。真正让产品可靠性有保障的,是把抗扰度设计理念融入到日常开发流程中:原理图评审阶段就审查接口防护和滤波设计,PCB布局阶段就规避敏感走线,软件架构阶段就加入故障检测和恢复机制。

这些年下来,我越来越倾向于把抗扰度功能测试看成一次“与电磁环境的联合调试”,而不只是一道过与不过的关卡。设备在被干扰时的表现,往往能最真实地反映出设计的短板——电源裕量不足、地平面不完整、传感器信号链噪声容限不够、看门狗策略不当,这些问题在功能测试的聚光灯下无处遁形。所以每次测试发现的问题,我都不只是打个补丁了事,而是会追问一句:这个故障暴露了设计上的什么缺陷?把这个问清楚了,测试的价值才算真正落地。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 6:03:53

Keil uVision工程自动化:安全注入.uvprojx文件的Python实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 6:03:41

SSM框架饰品电商系统开发与毕业设计实战

1. 项目概述与背景解析这个基于SSM框架的饰品销售网站项目,是面向2026届计算机相关专业毕业设计的完整解决方案。作为一个典型的B2C电商系统,它涵盖了商品展示、购物车管理、订单处理、支付对接等核心电商功能模块。选择饰品作为垂直领域具有特殊优势&am…

作者头像 李华
网站建设 2026/9/18 6:02:37

LTE信令流程详解:从Attach到Service Request的完整链路与排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华