一、汽车电路原理图

1、熟悉汽车电路绘制的规则  

在汽车的全车电路图中,各电器采用从左到右(供电电源在左,用电设备在右,在局部电路的原理图中,信号输入端在左,信号输出端在右)、从上到下(火线在上,搭铁线在下)的顺序进行布置,且各电气系统的电路尽可能绘制在一起。

  2、熟悉汽车电路元件符号及含义  

熟悉汽车电路图的名称,明确电气符号、文字标注、代码及缩略语的含义,建立元器件和图形符号间一一对应的关系。

01  电气符号

汽车上所有的电器在电路图中都是用电气符号来表示的。电气符号是简单的图形符号,只大概地表示出电器外形,在图形符号上或旁边用文字加以说明电器名称。各汽车生产厂家绘制的电气符号各有不同,有的是简单的,有的是复杂的。

举例:图1是大众/ 奥迪/ 斯柯达车系的符号,它是最常见的发动机电控单元的符号。

嵌入式分享合集132_字符串

图1

图2、图3分别是通用车系和宝马车系的符号,在电控单元处画出了简单的内部电路。

嵌入式分享合集132_嵌入式硬件_02

 图2

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

 图3

图4是奔驰车系的符号,在电控单元处用英文字母标明该端子的作用,并用箭头符号标明信号是输入还是输出。

嵌入式分享合集132_实时时钟_04

图4

图5是北京现代车系的符号,在电控单元处标注出了信号的名称和类型,从图中可以看出是供电、搭铁、输入信号还是控制信号。

嵌入式分享合集132_字符串长度_05

图5

图6是丰田车系的符号,在电控单元处用英文字母标明该端子的作用。

 

嵌入式分享合集132_字符串长度_06

图6

图7是本田车系的符号,在电控单元处画出了简单的内部电路并用英文字母对端子进行了标注。 

嵌入式分享合集132_字符串长度_07

图7

有的电气符号也简单地表达出电器内部的工作原理和电路,如下图所示的起动机的符号,从图中可以看到起动机、电磁开关线圈、电磁开关触点以及它们之间线路的连接关系。 

嵌入式分享合集132_字符串长度_08

02  电器端子标注

为了方便查找和维修汽车电路,在电路图中用一定数字、字母对电器的接线端子进行了标注,了解这些端子的标注,可准确地找到导线和相应的接线端子。

嵌入式分享合集132_字符串长度_09

各国汽车制造厂家对端子的标注方法不尽相同,下表所示为德国汽车电路设备端子的部分标注说明。 

嵌入式分享合集132_字符串长度_10

03  汽车电路中的缩略语 

由于电路图幅面有限,对各元器件的注释大量采用缩略语。缩略语有的是系统英文名称的缩写,如ABS(Anti-lock Braking System)表示防抱死制动系统,AT(AutomaticTransmission)表示自动变速器,有的用端子所连接电器的英文缩写来作为端子的缩写,如BAT(battery蓄电池)表示该端子连接的是蓄电池,INJ(Injector喷油器)表示该端子连接的是喷油器。

只有正确理解电路图中的缩略语,才能正确阅读电路图。电路图中的缩略语可以通过查阅英汉汽车缩略语词典来了解其含义,也可以通过参考电路图中的说明来了解。

  3、熟悉元器件的作用  

01  开关

开关是控制电路通、断的关键。电路中主要的开关往往汇集许多导线,如点火开关、车灯控制开关,阅读与开关相关的电路图时应注意分析以下事项:

■  在开关的许多接线柱中,找出哪些是接电源的,哪些是接用电器的,接线柱旁的接线符号代表什么意思。

■  蓄电池或发电机的电流是通过什么路径到达这个开关的,中间是否经过其他开关和保险丝,控制开关是手动按钮还是自动控制的。

■  开关共有几个挡位,每个挡位有什么作用,在每个挡位中,哪些接线柱通电,哪些断电。

■  各个开关分别控制什么用电器,被控制用电器有什么作用和功能。

■  在被控的用电器中,哪些电器处于常通,哪些电路处于短暂接通,哪些应先接通,哪些应后接通,哪些单独工作,哪些应同时工作。

02  继电器

起开关作用,它是利用电磁或其他方法(如热电或电子)控制某一回路的接通或断开,实现用小电流控制大电流,从而减小控制开关触点的电流负荷。在分析带继电器的电路时,要分清主回路和控制回路。下图为一汽大众捷达NF供电继电器工作电路,控制回路和主回路分别用不同颜色的箭头标明。

 

嵌入式分享合集132_嵌入式硬件_11

03   传感器

汽车电路中的传感器经常共用电源线、接地线、但绝不会共用信号线。

嵌入式分享合集132_字符串_12

一汽大众迈腾节气门电路

在分析传感器电路时,可用排除法来判断电路,即排除其不可能的功能来确定其实际功能,如分析某一具有三根导线的传感器电路时,如果已经分析出其电源电路、接地电路,则剩余的电路必然为信号电路。

04  执行器

汽车电路中最常见的执行器主要是喷油器、点火线圈、换挡电磁阀、怠速步进电动机、空调压缩机等。执行器要正常工作需要三个信号,即电源、接地和控制信号。控制信号主要由控制单元送出,在汽车电路中,会看到执行器共用电源线、接地线甚至控制线的情况。

下图所示电路中,点火线圈N70、N127、N291、N292就共用了电源线和接地线。

 

嵌入式分享合集132_字符串长度_13

新帕萨特点火线圈电路

05   电控单元(ECU)

汽车电子控制系统越来越多,在识读汽车电子控制系统电路图时,要以电控系统的ECU为中心,因为这是整个系统的控制中心,所有电气部件都必然与这里发生关系。

 

二、PLC字符串指令

字符串是指由很多字符(数字、字母、符号)组成的集合,其中的每个字符都以一个ASCII码的形式占用一个字节的存储空间。字符串指令共有6条,包括字符串长度指令、字符串复制指令、字符串连接指令、复制子字符串指令、字符串搜索指令和字符搜索指令。

字符串长度、复制和连接指令

1.指令说明
字符串长度、复制和连接指令说明如表6-49所示。
表6-49 字符串长度、复制和连接指令说明

嵌入式分享合集132_字符串长度_14

2.指令使用举例
字符串长度、复制和连接指令的使用如图6-31所示。

嵌入式分享合集132_字符串长度_15

图6-31 字符串长度、复制和连接指令的使用
在I0.0触点闭合前(即指令执行前),VB0~VB6单元存有字符串“HELLO空格”(第一个单元VB0存放字符串长度值)。当I0.0触点闭合时,首先字符串连接STR_CAT指令执行,将字符串“WORLD”放到“HELLO空格”后面,同时VB0中的字符串长度值自动由6变为11;然后字符串复制STR_CPY指令执行,将VB0中的字符串长度值“11”及后续11个连续单元中的字符串复制到VB100为首地址的连续单元中;最后字符串长度STR_LEN指令执行,将VB100中的字符串长度值送入AC0中。
在使用字符串指令时需注意以下要点。字符串又称字符串常数,由多个字符(数字、字母、符号)组成,每个字符以ASCII码的形式占用1字节空间。字符串存储区的第一个单元用于存放字符串长度值,该值随字符串长度变化而变化。单个字符串长度不允许超过126字节。在编写程序输入字符串时,需给字符串加英文双引号,如图6-31所示梯形图中的“WORLD”。

复制子字符串指令

1.指令说明
复制子字符串指令说明如表6-50所示。
表6-50 复制子字符串指令说明

嵌入式分享合集132_字符串长度_16

2.指令使用举例
复制子字符串指令的使用如图6-32所示。 

 

嵌入式分享合集132_字符串_17

图6-32 复制子字符串指令的使用
在I0.0触点闭合前,VB0~VB11单元存有字符串“HELLO空格WORLD”;当I0.0触点闭合时,复制子字符串SSTR_CPY指令执行,将VB0后续11个单元(VB1~VB11)中的第7个字符起连续5个字符复制到VB20为首地址的连续单元中,结果VB21~VB25中存入字符串“WORLD”,VB20中为字符串的长度值5。

字符串与字符搜索指令

1.指令说明

字符串与字符搜索指令说明如表6-51所示。

表6-51 字符串与字符搜索指令说明

嵌入式分享合集132_嵌入式硬件_18

2.指令使用举例

字符串搜索STR_FIND指令的使用如图6-33所示。

嵌入式分享合集132_实时时钟_19

图6-33 字符串搜索STR_FIND指令的使用

在I0.0触点闭合前,VB0为首地址的字符串存储区(VB0~VB12)存有字符串“Turn空格pump空格On”,以VB20为首地址的字符串存储区存有字符串“On”。当I0.0触点闭合时,首先MOV_B指令执行,让AC0的值为1,然后字符串搜索STR_FIND指令执行,从VB0字符串存储区的第1个字符(由AC0指定)开始搜索与VB20字符串存储区相同的字符串“On”,找到后,将该字符串首字符“O”的位置号“11”存入AC0中;若未找到相同字符串,则会让AC0为0。

字符搜索CHR_FIND指令的使用如图6-34所示。

在I0.0触点闭合前,VB0为首地址的字符串存储区(VB0~VB11)存有字符串“Temp空格空格98.6 F,以VB20为首地址的字符串存储区存有字符串“1234567890+-”。当I0.0触点闭合时,首先MOV_B指令执行,让AC0的值为1,然后字符搜索CHR_FIND指令执行,从VB0字符串存储区的第1个字符(由AC0指定)开始搜索与VB20字符串存储区中相同的字符,找到后,将这些字符的首字符(“9”)位置号“7”存入AC0中。接着S_R指令执行,将VB0字符串存储区的第7个及后续的字符转换成实数,再保存到VD200单元中。注:VB11单元中的“F”对S_R指令来说为非法字符,遇到非法字符转换自动停止。

嵌入式分享合集132_实时时钟_20

图6-34 字符搜索CHR_FIND指令的使用 

三、时钟失效之后,STM32还能运行吗

问题:

该问题由某客户提出,发生在 STM32F103VDT6 器件上。据其工程师讲述:在其产品的设计中,STM32 的 HSE 外接 8MHz 的晶体产生振荡,然后通过 STM32 内部的PLL 倍频到 72MHz,作为 STM32 的系统时钟,驱动芯片工作。在 STM32 片外有专用的看门狗芯片,监控 STM32 的运行。STM32 内部的软件会在 STM32 的某个管脚上产生脉冲来复位看门狗。一旦 STM32 没有及时的产生脉冲来复位门狗,则看门狗会认为 STM32 运行不正常,从而复位 STM32。在对该产品做可靠性测试时,进行了对看门狗监控时钟失效能力的测试。测试的方法是:将 HSE 外接的晶体的两个端子接地,使其停止振荡,从而验证看门狗能否做出对 STM32 的做出复位动作。试验结果表明,看门狗没有产生复位动作。进一步测试发现,STM32 在失效情况下仍在向看门狗发送复位脉冲。

调研:

重复测试,确认其所述现象属实。检查软件代码,确认其软件没有开启 STM32 的 CSS功能。修改代码,将 PLL 的二分频从 STM32 的 MCO 管脚送出,以方便用示波器观察。通过控制晶体的管脚是否接地来控制 HSE 是否振荡。当 HSE 正常振荡时,MCO 送出的信号频率为 36MHz,当 HSE 停止振荡时,MCO 送出的信号的频率在 1.7MHz 附近,如图(一)所示:

嵌入式分享合集132_嵌入式硬件_21

通过调试器观察寄存器 RCC_CFGR 中的 SWS 控制控制位,其值为[10],说明此时的系统时钟确实来自 PLL 的输出。

从 STM32F103VD 的数据手册中查找 PLL 相关的参数如表(一):

 

嵌入式分享合集132_实时时钟_22

其中,PLL 的输出频率范围是 16MHz – 72MHz。也就是说,PLL 在处于相位锁定的状态下,可以输出 16MHz – 72MHz 的时钟信号。而当输入信号频率过低而导致输出信号频率低于 16MHz 时,将可能处于失锁的状态。在这状态下,它的输出信号的频率与输入信号的频率之间,不一定符合所设定的倍频与分频关系。更确切的说,不能通过公式:

嵌入式分享合集132_嵌入式硬件_23

得出“输入信号频率为零时,输出信号频率也为零”这样的结论。这一点与实测的结果相吻合。

结论:

STM32 的 PLL 在没有输入信号的情况下,仍能维持在最低的频点处振荡,产生输出。以至,CPU 及其它外设仍能在 PLL 送出的时钟的驱动下运行。所以,通过判断有无时钟来驱动 CPU 执行指令的方式来判断 HSE 是否失效是行不通的。

处理:

对软件做如下修改:

1. 在软件的初始化部分,开启 STM32 的 CSS 功能;

2. 修改 NMI 中断服务程序,加入 while(1) 陷阱语句;

开启 CSS 功能后,当 HSE 失效时,STM32 会自动开启 HSI,并将系统时钟的来源切换到HSI 的输出,同时产生 NMI 中断。这样,程序的流程将停留在 NMI 中而不能产生复位片外的看门狗的脉冲。当片外看门狗溢出后,就会复位 STM32,使其恢复到正常驻的状。

建议:

STM32 中的 CSS 功能是专门为检测和处理 HSE 失效而设计的。但该功能在 STM32 复位后是被禁止的,须要软件对其使能才会发挥作用。当 CSS 单元检测到 HSE 失效时,它会使能 HSI,并将系统时钟切换到 HSI。同时,它会关闭 HSE,如果 PLL 的输入信号来自 HSE的输出,它也会关闭 PLL。CSS 单元在做时钟调整的同时,也会产生一个 NMI 中断请求,和一个送给高级定时器的刹车信号。NMI 中断请求会产生一个 NMI 中断,以便用户程序可以在中断服务程序中做紧急处理,而刹车信号则是使高级定时器进入刹车状态,以防止由其控制的电机驱动桥臂由于失去控制而过流。用户程序可以在 NMI 中断服务程序中尝试恢复 HSE 及 PLL 的功能,也可以使用陷阱让程序的流程停留在服务程序中,从而等待看门狗复位整个系统。

 

嵌入式分享合集132_字符串长度_24

四、DC-DC的PCB设计

DC-DC的电路比LDO会复杂很多,噪声也更大,布局和layout要求更高,layout的好坏直接影响DC-DC的性能,所以了解DC-DC的layout至关重要。

01 Bad layout

  • EMI,DC-DC的SW管脚上面会有较高的dv/dt, 比较高的dv/dt会引起比较大的EMI干扰;
  • 地线噪声,地走线不好,会在地线上面会产生比较大的开关噪声,而这些噪声会影响到其它部分的电路;
  • 布线上产生电压降,走线太长,会使走线上产生压降,而降低整个DC-DC的效率;

02 一般原则

  • 开关大电流回路尽量短;
  • 信号地和大电流地(功率地)单独走线,并在芯片GND处单点连接;

① 开关回路短

下图中红色LOOP1为DC-DC高边管导通,低边管关闭时的电流流向;绿色LOOP2的为高边管关闭,低边管开启时的电流流向;

为使这两个回路尽量小,引入更少的干扰,需要遵从如下几点原则:

  • 电感尽量靠近SW管脚;
  • 输入电容尽量靠近VIN管脚;
  • 输入输出电容的地尽量靠近PGND脚;
  • 使用铺铜的方式走线;

嵌入式分享合集132_嵌入式硬件_25

为什么要这么做?

  • 走线过细过长会增大阻抗,大电流在此大阻抗上会产生比较高的纹波电压;
  • 走线过细过长会增大寄生电感,此电感上耦合开关噪声,影响DC-DC稳定性,造成EMI问题;
  • 寄生电容和阻抗会增大开关损耗和导通损耗,影响DC-DC效率;

② 单点接地

单点接地,指的是信号地和功率地进行单点接地,功率地上会有比较大的开关噪声,所以需要尽量避免对敏感小信号造成干扰,如FB反馈管脚。

  • 大电流地:L,Cin,Cout,Cboot连接到大电流地的网络;
  • 小电流地:Css,Rfb1,Rfb2单独连接到信号地的网络;

嵌入式分享合集132_字符串_26

下图是TI的一个开发板的layout,红色为上管开时的电流路径,蓝色为下管开时的电流路径;如下的layout有如下比较好的优点:

① 输入输出电容的GND用铜皮进行连接,摆件时,两者的地尽量放一起;

② DC-DC Ton和Toff时的电流路径都很短;

③ 右边小信号是单点接地,距离比较远,免受左边大电流开关噪声的影响;

嵌入式分享合集132_字符串长度_27

TI某开发板的DC-DC PCB layout

03 实例

如下给出一个典型DC-DC BUCK电路的layout,SPEC中给出如下几点:

  • 输入电容,高边MOS管,和续流二极管形成的开关回路尽可能小和短;
  • 输入电容尽可能靠近Vin Pin脚;
  • 确保所有反馈连接短而直接,反馈电阻和补偿元件尽可能靠近芯片;
  • SW远离敏感信号,如FB;
  • 将VIN、SW,特别是GND分别连接到一个大的铜区,以冷却芯片,提高热性能和长期可靠性;

嵌入式分享合集132_嵌入式硬件_28

DC-DC BUCK典型电路 

嵌入式分享合集132_字符串长度_29

layout指导 

04 小结一下

DC-DC电路的layout至关重要,直接影响到DC-DC的工作稳定性和性能,一般DC-DC芯片的SPEC都会给出layout指导,可参考进行设计。

五、PLC时钟指令

时钟指令的功能是调取系统的实时时钟和设置系统的实时时钟,它包括读取实时时钟指令和设置实时时钟指令(又称写实时时钟指令)。这里的系统实时时钟是指PLC内部时钟,其时间值会随实际时间变化而变化,在PLC切断外接电源时依靠内部电容或电池供电。

时钟指令说明

表6-52 时钟指令说明

时钟指令T端指定首地址的8个连续字节单元(T~T+7)存放不同的日期时间值,其格式为:

在使用时钟指令时应注意以下要点。日期和时间的值都要用BCD码表示。例如,对于年,16#10(即00010000)表示2010年;对于小时,16#22表示晚上10点;对于星期,16#07表示星期六。在设置实时时钟时,系统不会检查时钟值是否正确。例如,2月31日虽是无效日期,但系统仍可接受,因此要保证设置时输入正确的时钟数据。在编程时,不能在主程序和中断程序中同时使用读/写时钟指令,否则会产生错误,中断程序中的实时时钟指令不能执行。只有CPU 224型以上的PLC才有硬件时钟,低端型号的PLC要使用实时时钟,须外插带电池的实时时钟卡。对于没有使用过时钟指令的PLC,在使用指令前需要设置实时时钟,既可以使用TODW指令来设置,也可以在编程软件中执行菜单命令“PLC→实时时钟”来设置和启动实时时钟。

时钟指令使用举例

时钟指令的使用如图6-35所示,其实现的控制功能是:在12:00~20:00时让Q0.0线圈得电,在7:30~22:30时让Q0.1线圈得电。

 网络1程序用于设置PLC的实时时钟,当I0.0触点闭合时,上升沿P触点接通一个扫描周期,开始由上往下执行MOV_B和SET_RTC指令,指令执行的结果是将PLC的实时时钟设置为“2009年12月28日8点16分20秒星期一”。网络2程序用于读取实时时钟,并将实时读取的BCD码小时、分钟值转换成整数表示的小时、分钟值。网络3程序的功能是让Q0.0线圈在12:00~20:00时得电。网络4程序的功能是让Q0.1线圈在7:30~22:30时得电,它将整个时间分成8:00~22:00时、7:30~8:00时和22:00~22:30时三段来控制。