一、EMC防护中的滤波电容

为什么总是在电路里摆两个0.1uF和0.01uF的电容?

旁路和去耦

    旁路电容(Bypass Capacitor)和去耦电容(Decoupling Capacitor)这两个概念在电路中是常见的,但是真正理解起来并不容易。

    要理解这两个词汇,还得回到英文语境中去。

    Bypass在英语中有抄小路的意思,在电路中也是这个意思,如下图所示。

嵌入式分享合集111_应用层

couple在英语中是一对的意思,引申为配对、耦合的意思。如果系统A中的信号引起了系统B中的信号,那么就说A与B系统出现了耦合现象(Coupling),如下图所示。而Decoupling就是减弱这种耦合的意思。

电路中的旁路和去耦

    如下图中,直流电源Power给芯片IC供电,在电路中并入了两个电容。

嵌入式分享合集111_应用层_02

旁路

    如果Power受到了干扰,一般是频率比较高的干扰信号,可能使IC不能正常工作。在靠近Power处并联一个电容C1,因为电容对直流开路,对交流呈低阻态。频率较高的干扰信号通过C1回流到地,本来会经过IC的干扰信号通过电容抄近路流到了GND。这里的C1就是旁路电容的作用。

去耦

    由于集成电路的工作频率一般比较高,IC启动瞬间或者切换工作频率时,会在供电导线上产生较大的电流波动,这种干扰信号直接反馈到Power会使其产生波动。在靠近IC的VCC供电端口并联一个电容C2,因为电容有储能作用,可以给IC提供瞬时电流,减弱IC电流波动干扰对Power的影响。这里的C2起到了去耦电容的作用。

为什么要用两个电容

    回到本文最开始提到的问题,为什么要用0.1uF和0.01uF的两个电容?

    电容阻抗和容抗计算公式分别如下:

嵌入式分享合集111_嵌入式硬件_03

    容抗与频率和电容值成反比,电容越大、频率越高则容抗越小。可以简单理解为电容越大,滤波效果越好。那么有了0.1uF的电容旁路,再加一个0.01uF的电容不是浪费吗?

    实际上,对一个特定电容,当信号频率低于其自谐振频率时呈容性,当信号频率高于其自谐振频率时呈感性。当用0.1uF和0.01uF的两个电容并联时,相当于拓宽了滤波频率范围。

二、详解UDS CAN诊断:什么是UDS(ISO 14229)诊断

之前讲解到CAN物理层和数据链路层的相关知识,这些属于ISO 11898-1、ISO 11898-2和ISO 11898-3协议方面的知识,本篇文章开启新篇章,讲解依托于CAN通信的应用层服务:UDS(ISO 14229)诊断协议。

本文素材来源于:ISO 14229-1-2020:规范和要求。

UDS诊断概念

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。简单来说,可以理解为UDS诊断协议就是ISO 14229协议,在ISO 14229协议中定义了UDS服务用法、服务格式等信息。

UDS诊断最主要目的是为了能够快速准确判断车辆或者某个控制器的故障以及故障原因,从而为维修提供可靠的依据。

UDS诊断组成部分

截止到2020年,UDS诊断由以下8个部分组成:

  • ISO 14229-1-2020:规范和要求;
  • ISO 14229-2-2013:会话层服务;
  • ISO 14229-3-2012:CAN实现的统一诊断服务(UDSonCAN) ;
  • ISO 14229-4-2012:FlexRay实现的统一诊断服务(UDSonFR) ;
  • ISO 14229-5-2013:Internet协议实现的统一诊断服务(UDSonIP);
  • ISO 14229-6-2013:K线实现的统一诊断服务(UDSonK-Line) ;
  • ISO 14229-7-2015:本地互联网络实现的统一诊断服务(UDSonLIN);
  • ISO 14229-8-2020:时钟扩展外围接口实现的统一诊断服务(UDSonCXPI)。
  • 在开放系统互连(OSI)基本参考模型中规定了各类物理层通信对应部分的UDS诊断协议。例如,CAN通信(ISO 11898-1、ISO 11898-2和ISO 11898-3)在应用层的UDS诊断协议是ISO 14229-1和ISO 14229-3。

嵌入式分享合集111_Power_04

UDS诊断服务

UDS诊断是一种定向通信的交互协议(Request/Response),诊断方(Tester)发送服务请求,ECU返回响应(肯定响应/否定响应)。

嵌入式分享合集111_应用层_05

嵌入式分享合集111_应用层_06

UDS诊断包括6大类,26种服务,每种服务都有自己独立的ID,即SID(Service Identifier)。

嵌入式分享合集111_旁路_07

UDS诊断服务的通信协议基本相似,但又有所区别。

以诊断和通信管理功能单元(Diagnostic and Communication Management functional unit )为例,服务请求和响应有两类:一类是具有Subfunction(子功能),另一类是不具有Subfunction(子功能)。

不具有Subfunction(子功能)的UDS诊断服务请求和响应机制如下图所示:

嵌入式分享合集111_应用层_08

诊断方(Tester)向ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。

ECU接收到请求数据(Request)后会返回响应,可返回肯定响应或者否定响应。

肯定响应(Positive Response)格式为:(SID+0X40)+数据。例如,请求0X10服务,肯定响应第1个字节为0X50;请求0X22服务,肯定响应第1个字节为0X62。

否定响应(Negative Response)格式为:0X7F+SID+NRC。例如,请求0X10服务,否定响应第1个字节为固定的0X7F,第2个字节为0X10,第3个字节为NRC。NRC是否定响应码,可以根据返回的NRC判断是什么原因导致的否定响应。

具有Subfunction(子功能)的UDS诊断服务请求和响应机制如下图所示:

嵌入式分享合集111_旁路_09

诊断方(Tester)向ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。

ECU接收到请求数据(Request)后会返回响应,可返回肯定响应或者否定响应。

肯定响应(Positive Response)格式为:(SID+0X40)+Subfunction(子功能)+数据。例如,请求0X10服务,Subfunction(子功能)为0X02,肯定响应第1个字节为0X50,第2个字节为0X02。

否定响应(Negative Response)格式为:0X7F+SID+NRC。例如,请求0X10服务,否定响应第1个字节为固定的0X7F,第2个字节为0X10,第3个字节为NRC。NRC是否定响应码,可以根据返回的NRC判断是什么原因导致的否定响应。

本文不再赘述UDS服务所有类型的协议格式,在之后的文章中会详细讲解每种类型每个ID服务的协议和功能。

三、两种运算放大器实现恒流源的电路

电压/电流转换即V/I转换,是将输入的电压信号转换成满足一定关系的电流信号。

    转换后的电流相当一个输出可调的恒流源。

    其输出电流应能够保持稳定而不会随负载的变化而变化。一般来说,电压电流转换电路是通过负反馈的形式来实现的,可以是电流串联负反馈,也可以是电流并联负反馈,主要用在工业控制和许多传感器的应用。

    下文介绍两种电压转电流电路。

第一种

电路结构

    这是一种较为常用的电压转换电流电路,也是一款恒流源电路。它由一个运放、一个三极管(也可以是MOS管)以及若干电阻构成,结构简单易懂。

    其输出电流为Iout= Vref/Rs。

嵌入式分享合集111_嵌入式硬件_10

仿真分析
    先进行仿真,参考上面的电路结构搭建如下图所示仿真电路:

运放采用:OPA2363

VS1 为直流电源 2.5V

R6 为精密电阻250R

RL 为负载

    可以看出电路输出电流为9.9mA,与理论电流值 2.5V/250R= 10mA 相差较小。

嵌入式分享合集111_应用层_11

    采用直流参数扫描,看一下10mA电流的带负载能力:10mA下,电路带载能力最大为2.06K 

嵌入式分享合集111_Power_12

第二种

电路结构

    这种结构的电压电流转换电路是书本上经常那提到的一种结构,结构稍复杂些。

    其输出电流I=Ui/R3。

嵌入式分享合集111_嵌入式硬件_13

仿真分析

    然而这种结构的电路不常用,多使用上面路电路的变形,如下图。

    输出电流为:1.65V/165R= 10mA。

    这里三极管和运放组合起到扩流的作用,毕竟运放输出电流能力有限。

嵌入式分享合集111_应用层_14

    看下此中电路结构的带负载能力:10mA 最大带载为3.55K。 

嵌入式分享合集111_旁路_15