当前位置: 首页 > news >正文

嵌入式分享合集136

自己的原文哦~          https://blog.51cto.com/whaosoft/14123193

一、Linux 内核的 4 大 IO 调度算法

 Linux 内核包含4个IO调度器:

  • Noop IO scheduler
  • Anticipatory IO scheduler
  • Deadline IO scheduler 
  • CFQ IO scheduler。
anticipatory, 预期的;提早发生的;期待着的

    通常磁盘的读写影响是由磁头到柱面移动造成了延迟,解决这种延迟内核主要采用两种策略:缓存和IO调度算法来进行弥补。

    本文做一简单介绍。

调度算法概念

  1. 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成。
  2. 每个块设备都有它自己的队列。
  3. I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作。
  4. 内核必须首先确定队列中一共有多少个请求,然后才开始进行调度。

    一个进程总是处于上CPU运行和等待IO轮回中,如下图所示。

IO 调度器(IO Scheduler) 

    IO调度器(IO Scheduler)是操作系统用来决定块设备上IO操作提交顺序的方法。存在的目的有两个,一是提高IO吞吐量,二是降低IO响应时间。然而IO吞吐量和IO响应时间往往是矛盾的,为了尽量平衡这两者,IO调度器提供了多种调度算法来适应不同的IO请求场景。其中,对数据库这种随机读写的场景最有利的算法是DEANLINE。

    IO调度器在内核栈中所处位置如下:

   块设备最悲剧的地方就是磁盘转动,这个过程会很耗时间。

    每个块设备或者块设备的分区,都对应有自身的请求队列(request_queue),而每个请求队列都可以选择一个I/O调度器来协调所递交的request。I/O调度器的基本目的是将请求按照它们对应在块设备上的扇区号进行排列,以减少磁头的移动,提高效率。每个设备的请求队列里的请求将按顺序被响应。实际上,除了这个队列,每个调度器自身都维护有不同数量的队列,用来对递交上来的request进行处理,而排在队列最前面的request将适时被移动到请求队列中等待响应。

    IO scheduler 的作用主要是为了减少磁盘转动的需求。主要通过2种方式实现:

      1. 合并

      2. 排序

    每个设备都会自己对应请求队列,所有的请求在被处理之前都会在请求队列上。在新来一个请求的时候如果发现这个请求和前面的某个请求请求的位置是相邻的,那么就可以合并为一个请求。如果不能找到合并的,就会按照磁盘的转动方向进行排序。通常IO scheduler 的作用就是为了在进行合并和排序的同时,也不会太影响单个请求的处理时间。

1、NOOP

FIFO

    1. noop是什么? noop是一种输入输出调度算法。NOOP, No Operation. 什么都不做,请求来一个处理一个。这种方式实施起来简单,也更有效。问题就是disk seek 太多,对于传统磁盘,这是不能接受的。但对于SSD 磁盘就可以,因为SSD 磁盘不需要转动。

    2. noop的别称 又称为电梯调度算法。

    3. noop原理是怎样的?

    将输入输出请求放到一个FIFO队列中,然后按次序执行队列中的输入输出请求:当来一个新请求时:

    1. 如果能合并就合并;

    2. 如果不能合并,就会尝试排序。如果队列上的请求都已经很老了,这个新的请求就不能插队,只能放到最后面。否则就插到合适的位置;

    3. 如果既不能合并,又没有合适的位置插入,就放到请求队列的最后;

    4. 适用场景

    4.1 在不希望修改输入输出请求先后顺序的场景下;

    4.2 在输入输出之下具有更加智能调度算法的设备,如NAS存储设备;

    4.3 上层应用程序已经精心优化过的输入输出请求;

    4.4 非旋转磁头式的磁盘设备,如SSD磁盘

2、CFQ(Completely Fair Queuing, 完全公平排队)

    CFQ(Completely Fair Queuing)算法,顾名思义,绝对公平算法。它试图为竞争块设备使用权的所有进程分配一个请求队列和一个时间片,在调度器分配给进程的时间片内,进程可以将其读写请求发送给底层块设备,当进程的时间片消耗完,进程的请求队列将被挂起,等待调度。

    每个进程的时间片和每个进程的队列长度取决于进程的IO优先级,每个进程都会有一个IO优先级,CFQ调度器将会将其作为考虑的因素之一,来确定该进程的请求队列何时可以获取块设备的使用权。

    IO优先级从高到低可以分为三大类:

RT(real time)

BE(best try)

IDLE(idle)

    其中RT和BE又可以再划分为8个子优先级。可以通过ionice 去查看和修改。优先级越高,被处理得越早,用于这个进程的时间片也越多,一次处理的请求数也会越多。

    实际上,我们已经知道CFQ调度器的公平是针对于进程而言的,而只有同步请求(read或syn write)才是针对进程而存在的,他们会放入进程自身的请求队列,而所有同优先级的异步请求,无论来自于哪个进程,都会被放入公共的队列,异步请求的队列总共有8(RT)+8(BE)+1(IDLE)=17个。

    从Linux 2.6.18起,CFQ作为默认的IO调度算法。对于通用的服务器来说,CFQ是较好的选择。具体使用哪种调度算法还是要根据具体的业务场景去做足benchmark来选择,不能仅靠别人的文字来决定。

3、DEADLINE

    DEADLINE在CFQ的基础上,解决了IO请求饿死的极端情况。

    除了CFQ本身具有的IO排序队列之外,DEADLINE额外分别为读IO和写IO提供了FIFO队列。

    读FIFO队列的最大等待时间为500ms,写FIFO队列的最大等待时间为5s(当然这些参数都是可以手动设置的)。

    FIFO队列内的IO请求优先级要比CFQ队列中的高,而读FIFO队列的优先级又比写FIFO队列的优先级高。优先级可以表示如下:

FIFO(Read) > FIFO(Write) > CFQ

    deadline 算法保证对于既定的 IO 请求以最小的延迟时间,从这一点理解,对于 DSS 应用应该会是很适合的。

    deadline 实际上是对Elevator 的一种改进: 

    1. 避免有些请求太长时间不能被处理。

    2. 区分对待读操作和写操作。

    deadline IO 维护3个队列。第一个队列和Elevator 一样, 尽量按照物理位置排序。第二个队列和第三个队列都是按照时间排序,不同的是一个是读操作一个是写操作。

    deadline IO 之所以区分读和写是因为设计者认为如果应用程序发了一个读请求,一般就会阻塞到那里,一直等到的结果返回。而写请求则不是通常是应用请求写到内存即可,由后台进程再写回磁盘。应用程序一般不等写完成就继续往下走。所以读请求应该比写请求有更高的优先级。

    在这种设计下,每个新增请求都会先放到第一个队列,算法和Elevator的方式一样,同时也会增加到读或者写队列的尾端。这样首先处理一些第一队列的请求,同时检测第二/三队列前几个请求是否等了太长时间,如果已经超过一个阀值,就会去处理一下。这个阀值对于读请求时 5ms, 对于写请求时5s。

    个人认为对于记录数据库变更日志的分区,例如oracle 的online log, mysql 的binlog 等等,最好不要使用这种分区。因为这类写请求通常是调用fsync 的。如果写完不成,也会很影响应用性能的。

4、ANTICIPATORY

    CFQ和DEADLINE考虑的焦点在于满足零散IO请求上。对于连续的IO请求,比如顺序读,并没有做优化。

    为了满足随机IO和顺序IO混合的场景,Linux还支持ANTICIPATORY调度算法。ANTICIPATORY的在DEADLINE的基础上,为每个读IO都设置了6ms的等待时间窗口。如果在这6ms内OS收到了相邻位置的读IO请求,就可以立即满足。

小结

    IO调度器算法的选择,既取决于硬件特征,也取决于应用场景。

    在传统的SAS盘上,CFQ、DEADLINE、ANTICIPATORY都是不错的选择;对于专属的数据库服务器,DEADLINE的吞吐量和响应时间都表现良好。

    然而在新兴的固态硬盘比如SSD、Fusion IO上,最简单的NOOP反而可能是最好的算法,因为其他三个算法的优化是基于缩短寻道时间的,而固态硬盘没有所谓的寻道时间且IO响应时间非常短。

 .

二、 USB 通信协议

1. 基本概念

一个【传输】(控制、批量、中断、等时):由多个【事务】组成;

一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。

USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。

2. 包(Packet)

包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。数据在 USB总线上的传输以包为单位,包只能在帧内传输。高速USB 总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。EOF不是一个包,而是一种电平状态,EOF期间不允许有数据传输。

注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,但是SOF包中帧编号的增加速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,因此其帧编号的增加周期也为 1mS

  • USB总线上的情形是怎样的?

包是USB总线上数据传输的最小单位,不能被打断或干扰,否则会引发错误。若干个数据包组成一次事务传输,一次事务传输也不能打断,属于一次事务传输的几个包必须连续,不能跨帧完成。一次传输由一次到多次事务传输构成,可以跨帧完成。

USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),包的基本格式如下图:

2.1 PID类型(即包类型)

 2.2 Token Packets

此格式适用于IN、OUT、SETUP、PING。

PID 数据传输方向

IN Device->Host

OUT Host->Device

SETUP Host->Device

PING Device->Host

2.3 Start-of-Frame(SOF) Packets

SOF包由Host发送给Device。

  1. 对于full-speed总线,每隔1.00 ms ±0.0005 ms发送一次;
  2. 对于high-speed总线,每隔125 μs ±0.0625 μs发送一次;

SOF包构成如下图所示

2.4 Data Packets 

有四种类类型的数据包:DATA0, DATA1, DATA2,and MDATA,且由PID来区分。DATA0和DATA1被定义为支持数据切换同步(data toggle synchronization)。

2.5 Handshake Packets

  • ACK: 对于IN事务,它将由host发出;对于OUT、SETUP和PING事务,它将由device发出。
  • NAK: 在数据阶段,对于IN事务,它将由device发出;在握手阶段,对于OUT和PING事务,它也将由device发出;host从不发送NAK包。

3. 事务(Transaction)

在USB上数据信息的一次接收或发送的处理过程称为事务处理(Transaction)即:The delivery of service to an endpoint。一个事务由一系统packet组成,具体由哪些packet组成,它取决于具体的事务。可能由如下包组成:

  • 一个token packet
  • 可选的data pcket
  • 可选的handshake packet
  • 可选的special packet

3.1 输入(IN)事务处理

输入事务处理:表示USB主机从总线上的某个USB设备接收一个数据包的过程。

  • 【正常】的输入事务处理

3.2. 输出(OUT)事务处理

3.3 设置(SETUP)事务处理 

4. USB传输类型

    在USB的传输中,定义了4种传输类型:

  • 控制传输 (Control Transfer)
  • 中断传输 (Interrupt Transfer)
  • 批量传输 (Bulk Transfer)
  • 同步传输 (Isochronous)

4.1 控制传输 (Control Transfer)

控制传输由2~3个阶段组成:

  1. 建立阶段(Setup)
  2. 数据阶段(无数据控制没有此阶段)(DATA)
  3. 状态阶段(Status)

每个阶段都由一次或多次(数据阶段)事务传输组成(Transaction)。

控制数据由USB系统软件用于配置设备(在枚举时),其它的驱动软件可以选择使用control transfer实现具体的功能,数据传输是不可丢失的。

4.1.1 建立阶段

主机从USB设备获取配置信息,并设置设备的配置值。建立阶段的数据交换包含了SETUP令牌封包、紧随其后的DATA0数据封包以及ACK握手封包。它的作用是执行一个设置(概念含糊)的数据交换,并定义此控制传输的内容(即:在Data Stage中IN或OUT的data包个数,及发送方向,在Setup Stage已经被设定)。

4.1.2 数据阶段

根据数据阶段的数据传输的方向,控制传输又可分为3种类型:

  1. 控制读取(读取USB描述符)
  2. 控制写入(配置USB设备)
  3. 无数据控制

数据传输阶段:用来传输主机与设备之间的数据。

  • 控制读取

是将数据从设备读到主机上,读取的数据USB设备描述符。该过程如下图的【Control Read】所示。对每一个数据信息包而言,首先,主机会发送一个IN令牌信息包,表示要读数据进来。

然后,设备将数据通过DATA1/DATA0数据信息包回传给主机。最后,主机将以下列的方式加以响应:当数据已经正确接收时,主机送出ACK令牌信息包;当主机正在忙碌时,发出NAK握手信息包;当发生了错误时,主机发出STALL握手信息包。

  • 控制写入

是将数据从主机传到设备上,所传的数据即为对USB设备的配置信息,该过程如下的图【Control Wirte】所示。对每一个数据信息包而言,主机将会送出一个OUT令牌信息包,表示数据要送出去。紧接着,主机将数据通过DATA1/DATA0数据信息包传递至设备。

最后,设备将以下列方式加以响应:当数据已经正确接收时,设备送出ACK令牌信息包;当设备正在忙碌时,设备发出NAK握手信息包;当发生了错误时,设备发出STALL握手信息包。

4.1.3 状态阶段

状态阶段:用来表示整个传输的过程已完全结束。

状态阶段传输的方向必须与数据阶段的方向相反,即原来是IN令牌封包,这个阶段应为OUT令牌封包;反之,原来是OUT令牌封包,这个阶段应为IN令牌封包。

对于【控制读取】而言,主机会送出OUT令牌封包,其后再跟着0长度的DATA1封包。而此时,设备也会做出相对应的动作,送ACK握手封包、NAK握手封包或STALL握手封包。

相对地对于【控制写入】传输,主机会送出IN令牌封包,然后设备送出表示完成状态阶段的0长度的DATA1封包,主机再做出相对应的动作:送ACK握手封包、NAK握手封包或STALL握手封包。

4.2 批量传输 (Bulk Transfer)

用于传输大量数据,要求传输不能出错,但对时间没有要求,适用于打印机、存储设备等。

批量传输是可靠的传输,需要握手包来表明传输的结果。若数据量比较大,将采用多次批量事务传输来完成全部数据的传输,传输过程中数据包的PID 按照 DATA0-DATA1-DATA0-…的方式翻转,以保证发送端和接收端的同步。

USB 允许连续 3次以下的传输错误,会重试该传输,若成功则将错误次数计数器清零,否则累加该计数器。超过三次后,HOST 认为该端点功能错误(STALL),放弃该端点的传输任务。

一次批量传输(Transfer)由 1 次到多次批量事务传输(Transaction)组成。

翻转同步:发送端按照 DATA0-DATA1-DATA0-…的顺序发送数据包,只有成功的事务传输才会导致 PID 翻转,也就是说发送端只有在接收到 ACK 后才会翻转 PID,发送下一个数据包,否则会重试本次事务传输。同样,若在接收端发现接收到到的数据包不是按照此顺序翻转的,比如连续收到两个 DATA0,那么接收端认为第二个 DATA0 是前一个 DATA0 的重传。

它通过在硬件级执行“错误检测”和“重传”来确保host与device之间“准确无误”地传输数据,即可靠传输。它由三种包组成(即IN事务或OUT事务):

  1. token
  2. data
  3. handshake

  1. For IN Token (即:IN Transaction)
  • ACK: 表示host正确无误地接收到数据
  • NAK: 指示设备暂时不能返回或接收数据 (如:设备忙)
  • STALL:指示设备永远停止,需要host软件的干预 (如:设备出错)
  1. For OUT Token (即:OUT Transaction)

如果接收到的数据包有误,如:CRC错误,Device不发送任何handshake包

  • ACK: Device已经正确无误地接收到数据包,且通知Host可以按顺序发送下一个数据包
  • NAK: Device 已经正确无误地接收到数据包,且通知Host重传数据,由于Device临时状况(如buffer满)
  • STALL: 指示Device endpoint已经停止,且通知Host不再重传
  1. Bulk读写序列

即由一系统IN事务或OUT事务组成。

4.3 中断传输(Interrupt Transfer)

中断传输由IN或OUT事务组成。

中断传输在流程上除不支持PING 之外,其他的跟批量传输是一样的。他们之间的区别也仅在于事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。

主机在排定中断传输任务时,会根据对应中断端点描述符中指定的查询间隔发起中断传输。中断传输有较高的优先级,仅次于同步传输。

同样中断传输也采用PID翻转的机制来保证收发端数据同步。下图为中断传输的流程图。

中断传输方式总是用于对设备的查询,以确定是否有数据需要传输。因此中断传输的方向总是从USB设备到主机。

DATA0或DATA1中的包含的是中断信息,而不是中断数据。

4.4 同步传输(Isochronous Transfer)

  1. 它由两种包组成:
  2. token
  3. data

同步传输不支持“handshake”和“重传能力”,所以它是不可靠传输。

同步传输是不可靠的传输,所以它没有握手包,也不支持PID翻转。主机在排定事务传输时,同步传输有最高的优先级。

同步传输适用于必须以固定速率抵达或在指定时刻抵达,可以容忍偶尔错误的数据上。实时传输一般用于麦 克风、喇叭、UVC Camera等设备。实时传输只需令牌与数据两个信息包阶段,没有握手包,故数据传错时不会重传。

 .

三、为什么单片机的I/O口需要驱动?

   为什么单片机的I/O口需要驱动呢?这个问题需要从I/O口的电气特性上进行解释。

    首先,给出单片机典型的I/O口,即P1口电气结构图,如图所示。P1口通常是作为通用I/O口使用,不需要多路转换电路MUX。其输出级电路内部有上拉电阻,与场效应管共同组成输出驱动电路。因此,P1口作为输出时,不需要再外接上拉电阻,而当P1口作为输入口使用时,仍然需要先向锁存器写“1”,截止场效应管。

   内部上拉电阻阻值很大,经过测量大致在330KΩ左右,而内部电源Vcc仅仅+5V,这样以P1.X高电平驱动发光二极管为例,场效应管截止,相当于Vcc通过330KΩ的电阻向二极管提供电流,5/330*10-3=0.015mA,而二极管的点亮电流为5mA至10mA,这就说明单片机的端口只是驱动TTL电平,不提供或提供很小的驱动电流,所以在带负载时,单片机应当在I/O口加上驱动芯片。 

.

四、嵌入式 OTA 升级实现原理

01 概念  

    OTA:Over-the-Air Technology,即空中下载技术。

    OTA升级:通过OTA方式实现固件或软件的升级。

    只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如网络/蓝牙。

    通过有线方式进行升级,叫本地升级,比如通过UART,USB或者SPI通信接口来升级设备固件。

02 优点  

  1. 通过OTA方式,可以对分布在各地的设备进行软件升级,而不必让运维人员各地奔波。
  2. 物联网平台支持通过OTA方式进行设备固件升级,是智能设备修复系统漏洞、实现系统升级的手段。
  3. 在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。通过固件升级用户提供更好的服务。

03 实现原理  

    核心流程:

  1. 制作升级包
  2. 下载升级包
  3. 验签升级包
  4. 更新程序

 下载方式:

    不管采用OTA方式还是有线通信方式升级,下载升级包的方式包括后台式下载和非后台式下载两种模式。

    后台式下载:

    在升级的时候,新固件在后台悄悄下载,即新固件下载属于应用程序功能的一部分,在新固件下载过程中,应用可以正常使用,也就是说整个下载过程对用户来说是无感的,下载完成后,系统再跳到BootLoader程序,由BootLoader完成新固件覆盖老固件的操作。比如智能手机升级Android或者iOS系统都是采用后台式方式,新系统下载过程中,手机可以正常使用。

    非后台式下载:

    在升级的时候,系统需要先从应用程序跳入到BootLoader程序,由BootLoader进行新固件下载工作,下载完成后BootLoader继续完成新固件覆盖老固件的操作,至此升级结束。早先的功能机就是采用非后台来升级操作系统的,即用户需要先长按某些按键进入bootloader模式,然后再进行升级,整个升级过程中手机正常功能都无法使用。

  新旧固件覆盖模式:

    新固件替换老固件覆盖的两种方式:双区模式和单区模式。

    双区模式:

    双区模式中老固件和新固件在flash中各占一块bank(存储区)。假设老固件放在bank0(运行区)中,新固件放在bank1(下载区)中,升级的时候,应用程序先把新固件下载到bank1中,只有当新固件下载完成并校验成功后,系统才会跳入BootLoader程序,然后擦除老固件所在的bank0区,并把bank1的新固件拷贝到bank0中。

    后台式下载必须采用双区模式进行升级。

    优点:

    升级过程中出现问题或者新固件有问题,它还可以选择之前的老固件老系统继续执行而不受其影响。

    缺点:

    多占用flash空间的一个存储区,在系统资源比较紧张的时候较为困难。

单区模式:

    单区模式的非后台式下载只有一个bank0(运行区),老固件和新固件共享这一个bank0。升级的时候,进入bootloader程序后先擦除老固件,然后直接把新固件下载到同一个bank中,下载完成后校验新固件的有效性,新固件有效升级完成,否则要求重来。

    优点:

    跟双区模式相比,单区模式节省了Flash空间的一个bank,在系统资源比较紧张的时候,单区模式是一个不错的选择。

    缺点:

    如果升级过程中出现问题或者新固件有问题,单区模式碰到这种情况就只能一直待在bootloader中,然后等待再次升级尝试,此时设备的正常功能已无法使用,从用户使用这个角度来说,可以说此时设备已经“变砖”了。

    相比较,双区模式虽然牺牲了很多存储空间,但是换来了更好的升级体验。

2、MCU OTA 升级

    以MCU(微控制器)固件升级为例,讲解嵌入式裸机程序的OTA升级。由于裸机固件是固化在设备的存储器(如flash)中,即存储器中保存的是机器码,对MCU进行OTA固件升级,也就是要实现通过OTA方式将存储器中旧固件的机器码替换为新固件的机器码。

数字签名

    签名:

    A给B发送消息,A先计算出消息的消息摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名。

    验签:

    B收到消息后,也会使用和A相同的方法计算消息摘要,然后用A的公钥解密签名,并与自己计算出来的消息摘要进行比较,如果相同则说明消息是A发送给B的,同时,A也无法否认自己发送消息给B的事实。

    (B使用A的公钥解密签名文件的过程,叫做"验签")

密码学基础概念:

  1. 什么是消息摘要?
  2. 什么是非对称加解密?私钥与公钥?
  3. 什么是数字签名?

    数字签名的作用:

    保证数据完整性,机密性和发送方角色的不可抵赖性。

    消息摘要函数:

MD4、MD5、SHA-1、SHA-256、SHA-384、SHA-512

    数字签名算法:

RSA、Rabin方式、ElGamal方式、DSA

01 制作升级包  

    通过签名工具使用签名算法对固件进行数字签名,签名后的文件即为升级包。

    升级包的内容一般包括 firmware、header 和 signature value。

Firmware:固件

Header:头部信息。存放配置信息,如版本号、产品类型等。

Signature value:签名值。对firmware和header签名后的值。

 签名工具:

    上位机软件,能计算固件的签名值,并将固件打包为升级包的格式。

    固件签名:

    上位机软件先计算整个固件的消息摘要,使用非对称密码的私钥对摘要进行加密,被加密后的消息摘要数据就是签名值。

    固件签名的意义:

    计算hash值可以识别固件是否被篡改和伪装,确保固件的完整性。

    使用非对称秘钥签名方便后续验证升级包身份的合法性。

02 下载升级包  

    根据上位机软件和MCU设备约定的通信协议,上位机软件将升级包通过OTA方式发送给MCU设备,

    MCU设备收到数据后,根据通信协议解析出升级包的数据,并将升级包的数据保存到存储器中。

    通信协议的作用:

    通讯双方约定俗成地用于数据交流的格式。

    下载的方式:

  1. 在应用程序中下载:后台式
  2. 在BootLoader中下载:非后台式

03 验签升级包  

    MCU设备接收完所有的升级包后,先计算升级包中固件的摘要,然后使用非对称秘钥的公钥解密升级包的签名值,如果解密出来的固件摘要与自己计算的摘要相同,则验签成功。

04 更新固件  

    验签成功保证了固件的完整性和合法性后,MCU设备从应用程序进入BootLoader程序,在BootLoader程序中将flash中的新固件数据搬运到旧固件的存储区,将其覆盖。然后BootLoader程序启动固件运行,此时固件为新固件。

    flash固件数据更新:

    擦除flash,写flash。

3、Linux OTA升级

    Linux系统的组成:

    主要由三大部分组成,包括 uboot(引导启动程序)、kernel(内核)和 rootfs(根文件系统)。

    三者在flash中的分区如下:

    应用程序存放于rootfs。

01 系统升级  

    Linux系统由 uboot\kernel\rootfs 三大部分组成,对Linux系统进行升级,也就是对flash中这三个分区的数据进行更新替换。

    由于uboot\kernel\rootfs在flash分区中是以二进制数据存储的,与MCU固件在flash中存的是二进制数据一样,包括uboot\kernel\rootfs的升级文件也是以二进制数方式直接写入到对应的Flash分区。其升级方式与MCU固件的升级原理基本是一致的。

    一般可在uboot中下载升级包来升级uboot\kernel\rootfs ,与MCU在BootLoader程序中完成升级类似。

02 应用程序升级  

    在Linux系统中,应用程序是存放在文件系统中,并以可执行程序文件的方式存在,其在系统中就是文件,这与MCU固件存放在flash分区的方式不同。

    应用程序的升级流程与MCU固件、Linux系统升级基本一致。应用程序的升级除了可以升级可执行文件外,还可以升级配置文件等。

    应用程序升级流程:

    制作升级包(打包签名工具)、下载升级包(下载工具)、升级包验签、程序更新与 MCU OTA 升级区别:

    制作升级包:将应用程序相关的文件(可执行程序、库文件、配置文件等)打包为压缩包,作为一个整体再进行签名。

  升级包下载和验签通过后,将压缩包解压,可以得到应用程序的相关文件。

    应用程序的更新,可以通过启动应用程序的程序来更新,如启动脚本、启动程序,类似MCU升级的BootLoader程序作用。

    更新方式:

  1. 直接覆盖旧程序;
  2. 保留旧程序,执行新程序;

    直接覆盖旧程序:

    保留旧程序,执行新程序:

    如ping\pong操作

 .

五、通过UART实现OTA升级

  以AT32为例介绍一下OTA升级的详细流程。

概述

    空中下载技术OTA(Over-the-Air Technology)是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口,对产品中的固件程序进行更新升级。通常实现OTA功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序为Bootloader区域,第二个项目程序App代码为真正的功能代码,执行应用和升级。这两部分项目代码同时烧录在User Flash中。

上图,OTA代码执行流程。

    在上图所示流程中,MCU复位后,从0x08000004地址取出复位中断向量的地址,并跳转到复位中断服务程序,在运行完复位中断服务程序之后跳转到Bootloader的main函数,如图标号①所示;在执行完Bootloader以后(App代码为图中FLASH灰底部分App程序的复位中断向量起始地址为0x08000004+N+M),跳转至App程序的复位向量表,取出App程序的复位中断向量的地址,并跳转执行App程序的复位中断服务程序,随后跳转至App程序的main函数,如图标号②和③所示,同样main函数为一个死循环,并且注意到此时AT32的FLASH,在不同位置上,共有两个中断向量表。

    在main函数执行过程中,如果CPU得到一个中断请求,PC指针仍强制跳转到地址0x08000004中断向量表处,而不是App程序的中断向量表,如图标号④所示;程序再根据我们设置的中断向量表偏移量,跳转到对应中断源的中断服务程序中,如图标号⑤所示;在执行完中断服务程序后,程序返回main函数继续运行,如图标号⑥所示。

    通过以上两个过程的分析,我们知道OTA程序必须满足两个要求:

    1) App程序必须在Bootloader程序之后的某个偏移量为x的地址开始。

    2) 必须将App程序的中断向量表相应的移动,移动的偏移量为x。

AT32 USART OTA 快速使用方法

硬件资源

    文档中是用AT-START-AT32F403A实验板的硬件条件为例,OTA demo源代码还包括AT32其他型号,用户只需编译对应型号工程烧录于AT-START实验板运行即可。

  1. 指示灯LED2/LED3/LED4
  2. USART1(PA9/PA10)
  3. AT-START实验板

软件资源

1) tool_release

  • IAP_Programmer.exe,PC机tool,用于演示OTA升级流程

2) source_code

  • Bootloader,Bootloader源程序,运行LED2闪烁
  • App_led3_toggle,App1源程序,运行LED3闪烁
  • App_led4_toggle,App2源程序,运行LED4闪烁

    注:工程基于keil v5建立,若用户需要在其他编译环境上使用,请参考对应BSP目录AT32F403A_407_Firmware_Library_V2.x.x\project\at_start_f403a\templates中各种编译环境(例如IAR6/7/8,keil 4/5,eclipse_gcc)进行对应修改即可。

OTA Demo 使用

    本文档描述了两种常用的OTA应用demo,template app和dual app,后面章节会分别介绍。

    1) 打开Bootloader工程源程序,选择对应MCU型号的target编译后下载到实验板

    2) 打开IAP_Programmer.exe

    3) 选择正确的串口、APP下载地址和bin文档,点击Download下载,如下图

    4) 观察LED2/3/4闪烁,LED2闪烁-Bootloader工作,LED3闪烁-App1工作,LED4闪烁-App2工作

上图,IAP demo上位机。

Template app OTA 程序设置

地址分布

    上图,Flash地址分配。

    注:Bootloader区域最后一个扇区,用于存放防止升级过程出错(掉电等异常情况)的flag,用户编译修改Bootloader时,要保证不覆盖flag的地址。

执行流程

    OTA分为Bootloader、App和Template三部分,应用在App中执行,Template仅作为新App固件数据的临时存放空间。程序执行整体流程框图如下:

    上图,程序执行流程。

Bootloader project 设置

    1)Keil 设置

    上图,Bootloader project中address 1在Keil设置。

    2) Bootloader源程序修改ota.h文件中

    上图,Bootloader project中address 2在程序中设置。

App project 设置

    OTA demo提供了2个App程序供测试用,皆以address 2(0x800 4000)为起始地址。App1 LED3闪烁,App2 LED4闪烁。以App1为例,设计步骤如下:

    1) Keil工程设置

 上图,App project中address 2在Keil设置。

    2) App1源程序设置

 上图,App project向量表偏移在程序中设置。

    3) 编译生成bin文件

    通过User选项卡,设置编译后调用fromelf.exe,根据.axf文件生成.bin文件,用于OTA更新。通过以上3个步骤,我们就可以得到一个.bin的APP程序,通过Bootloader程序即可实现更新。

    4) 开启debug app code功能

    如果在设计App code过程中需要对App project进行单独调试,请按照以下操作。

  • 先下载Bootloader工程
  • 再调试App工程

Dual app OTA 与程序设置

地址分布

上图,Flash地址分配。

    注:Bootloader区域最后2个扇区,用于存放App是否正常的flag,用户编译修改Bootloader时,要保证不覆盖flag的地址。

执行流程

    OTA分为Bootloader、App1和App2三部分,应用在App1或App2中执行。程序执行整体流程框图如下:

    上图,程序执行流程。

Bootloader project 设置

    1)Keil 设置

    上图,Bootloader project中address 1在Keil设置。

    2)Bootloader源程序修改ota.h文件中

上图,Bootloader project中address 2在程序中设置。

App project 设置

    OTA demo提供了2个App程序供测试用,app_led3_toggle以0x800 4000为起始地址,app_led4_toggle以0x8080000为起始地址。App1 LED3闪烁,App2 LED4闪烁。以App1为例,设计步骤如下:

    1) Keil工程设置

    上图,App project中address 2在Keil设置。

    2) App1源程序设置

上图,App project向量表偏移在程序中设置。

    3) 编译生成bin文件

    通过User选项卡,设置编译后调用fromelf.exe,根据.axf文件生成.bin文件,用于OTA更新。通过以上3个步骤,我们就可以得到一个.bin的APP程序,通过Bootloader程序即可实现更新。

    4) 开启debug App code功能

    如果在设计App code过程中需要对App project进行单独调试,请按照以下操作。

  • 先下载Bootloader工程
  • 再调试App工程

Bootloader/App与上位机串口通信协议

    程序与上位机通信,接收固件升级数据,上位机端和嵌入式端通信协议如下:

    1) 上位机通信协议

    上图,上位机通信协议。

    2) 嵌入式端下位机通信协议

上图,下位机通信协议。

    注:

    ACK:0xCCDD

    NACK:0xEEFF

    Data:0x31+Addr+数据+chenksum(1byte)

    Addr:4bytes,高位在前

    Kbytes,下载数据,不足2K内容填充0xFF

    Checksum:1byte,4bytes的Addr+2KBytes数据的校验和的低八位

六、MCU简易数字示波器

    这是一款采用STC8A8K MCU制造的简单示波器,只有零星组件,易于成型。这些功能可以涵盖简单的测量:

   该作品主要的规格如下:

  • 单片机:STC8A8K64S4A12 @27MHz
  • 显示屏:0.96“ OLED,分辨率为 128x64
  • 控制器:一个 EC11 编码器
  • 输入:单通道
  • 秒/秒:500 毫秒、200 毫秒、100 毫秒、50 毫秒、20 毫秒、10 毫秒、5 毫秒、2 毫秒、1 毫秒、500us、200us、100us
    100us( 仅在自动触发模式下可用)
  • 电压范围:0-30V
  • 采样额定值:250kHz @100us/格

    所有操作均由 EC11 编码器完成。输入包括单击,双击,长按,旋转和旋转时按。这似乎有点复杂,不用担心,下面有细节。该编码器的资源几乎已经耗尽。如果有新功能,可能需要额外的输入组件。

主界面 - 参数模式

  • 单击编码器:运行/停止采样。
  • 双击编码器:进入波形滚动模式。
  • 长按编码器:进入设置界面。
  • 旋转编码器:调整参数。
  • 按下时旋转编码器:在选项之间切换。
  • 切换自动和手动量程:连续顺时针旋转编码器以进入自动量程。逆时针旋转编码器以进入手动范围。

主界面 - 波浪滚动模式

  • 单击编码器:运行/停止采样。
  • 双击编码器:进入参数模式。
  • 长按编码器:进入设置界面。
  • 旋转编码器:水平滚动波形。(仅在采样停止时可用)
  • 按下时旋转编码器:垂直滚动波形(仅在采样停止时可用)

设置界面

  • 单击式编码器:不适用
  • 双击编码器:不适用
  • 长按编码器:返回主界面。
  • 旋转编码器:调整参数。
  • 按下时旋转编码器:在选项之间切换。

功能

  • 触发电平:对于重复信号,触发电平可以使其在显示屏上稳定。对于单发信号,触发电平可以捕获它。
  • 触发斜率:触发斜率确定触发点是在信号的上升沿还是下降沿。
  • 触发模式:
  • 自动模式:连续扫描。单击编码器可停止或运行采样。如果触发,波形将显示在显示屏上,触发位置将放在图表的中心。否则,波形将不规则地滚动,并且显示屏上将显示“Fail”。
  • 正常模式:完成预采样后,可以输入信号。如果触发,波形将显示在显示屏上并等待新的触发。如果没有新的触发器,波形将被保留。
  • 单模:完成预采样后,可以输入信号。如果触发,将显示波形并停止采样。用户需要单击编码器才能开始下一次采样。
  • 对于正常模式和单模式,请确保已正确调整触发电平,否则显示屏上不会显示波形。
  • 指标:通常,指标 on 表示采样正在运行。更重要的用途是在单触发和正常触发模式下,在进入触发阶段之前,需要预先采样。在预采样阶段,指示器不会亮起。在指标亮起之前,我们不应该输入信号。选择的时间尺度越长,预采样的等待时间就越长。
  • 保存设置:退出设置界面时,设置和主界面中的所有参数都将保存在EEPROM中。

    作品展示部分效果如下:

项目地址~  ​​https://github.com/CreativeLau/Mini-DSO​​

.

七、编写一个超简单的CPU

FPGA的处理能力固然强大,但在进行程序化的任务时,用状态机来实现有时就显得不如CPU写程序那么简洁。在FPGA里面也可以用逻辑来搭出简单的CPU,并固化一小段代码去实现特定的功能。

考虑下最简单的CPU是什么样子呢?最少,需要有读取程序(指令),并执行指令的过程。指令存放在一块内存当中,CPU每步取一条指令来执行,根据读出的指令内容,内部的状态发生转变——比如寄存器按指令要求进行运算,比如访问外部的端口(或总线)。指令是一个编码,描述这一步需要做的事情;执行指令的过程就是状态转移的过程。我实验的这个超简单CPU是这样:

上图中,PC是Program Counter,就是程序计数器,选择ROM中程序执行的地址。opr用来存放当前的指令,它的内容从ROM中读到。寄存器还有A寄存器和R0~R7寄存器,用来计算和存放结果,另外还有一个1-bit的“零"标志位zflag,是给条件转移指令用的。

当然,若只是里面的寄存器变来变去,这个CPU就没有实用价值了,所以还有一个输入端口,以及一个输出端口,用来和寄存器A交换数据。设计指令字长为8-bit,寄存器宽度也为8-bit。每条指令都是从ROM中读8-bit,可以最多有256种不同的指令,当然指令中能编码立即数,所以指令不会有那么多种。我给这个CPU设计了14条指令:

跳转指令有2条,无条件转移和Z条件转移,转移范围为5-bit相对地址,即-16~+15。带立即数指令有4条,因为指令才8-bit,立即数只好分配4-bit了。装入A寄存器的高4位或低4位,以及与A做加减法。R0~R7寄存器只能与A寄存器进行copy和比较操作。影响zflag标志的指令有位测试指令TESTB, 比较指令COMP和加减法指令。指令空间并没有用完,可以根据需要再补充指令。用Verilog语言来写这个CPU的状态转移部分: 

module cpu0(clk, Iaddr, Ibus, PortI, PortO);input clk;output [9:0] Iaddr;input [7:0] Ibus;input [7:0] PortI;output reg [7:0] PortO;reg [9:0] pc;reg [7:0] RA;reg [7:0] Rn[0:7];reg zflag;assign Iaddr=pc;reg [7:0] opr;always @(posedge clk)opr <= Ibus;wire [1:0] opc1=opr[7:6];wire [5:0] opx=opr[5:0];wire [1:0] opc2=opr[5:4];wire [3:0] imm4=opr[3:0];wire [2:0] sel=opr[2:0];reg branch;always @(posedge clk) beginpc <= pc + 1'b1;    // default incrementbranch <= 1'b0;if(~branch) beginif(opc1==2'd3)if(opr[5] | zflag) beginpc <= pc + {{5{opr[4]}},opr[4:0]};  // jump instructionbranch <= 1'b1;endendendalways @(posedge clk) beginif(~branch) beginif(opc1==2'd1 && opc2==2'd0)Rn[sel] <= RA;endendalways @(posedge clk) beginif(~branch) begincase(opc1)2'd0: beginif(opx==6'd0)RA <= PortI;end2'd1: beginif(opc2==2'd1)RA <= Rn[sel];end2'd2: begincase(opc2)2'd0: RA[7:4] <= imm4;2'd1: RA[3:0] <= imm4;2'd2: RA <= RA + imm4;2'd3: RA <= RA - imm4;endcaseendendcaseendendalways @(posedge clk) beginif(~branch) beginif(opc1==2'd0 && opx==6'd1)PortO <= RA;endendalways @(posedge clk) beginif(~branch) beginif(opc1==2'd1) begincase(opc2)2'd3: zflag <= ~RA[sel];2'd2: zflag <= (RA==Rn[sel]);endcaseendif(opc1==2'd2) beginif(opc2[1])zflag <= (RA==8'd0);endendendendmodule

除了指令所描述的寄存器的操作外,还多了一个branch寄存器和条件判断,这是做什么呢?

请注意,PC寄存器所指的是下一条要执行的指令地址(默认总是 pc <= pc + 1),但是如果遇到跳转指令,下一条指令是紧接着跳转指令的,将在下一个时钟沿上被读入opr,但是这条指令不该被执行,所以需要条件判断一下。而要跳转的位置的指令需要在PC更新之后的下一拍才能够被读入opr,这就是转移指令比普通指令要多花一个时钟周期的原因(这个CPU是两级流水线)。写测试程序了,没有编译器,汇编程序都得自己写呢。先就手写机器码吧!

module coderom(addr, data);input [9:0] addr;output reg [7:0] data;always @(addr) begincase(addr)0 : data = 8'h80;        // LOADAL 01 : data = 8'h90;        // LOADAH 02 : data = 8'h01;        // OUT A3 : data = 8'hA1;        // ADDA #14 : data = 8'h40;        // MOV R0, A5 : data = 8'h00;        // IN A6 : data = 8'h77;        // TESTB A,77 : data = 8'h50;        // MOV A, R08 : data = 8'hDB;        // JUMPZ 49 : data = 8'hF8;        // JUMP 2default: data=8'h00;endcaseendendmodule

这个程序不干啥有价值的,就是检测到输入端口第7位为高时,循环加一计数,输出到端口点LED.顶层模块,将ROM和CPU连起来:

module cpu_top(clk, PortI, PortO);input clk;input [7:0] PortI;output [7:0] PortO;wire [7:0] rom_q;wire [9:0] rom_addr;cpu0 minicpu(.clk(clk),.PortI(PortI),.PortO(PortO),.Ibus(rom_q),.Iaddr(rom_addr));coderom rom(.addr(rom_addr),.data(rom_q));  endmodule

.

八、电源IC是如何失效的?电源IC损坏过应力分析

在我们项目开发和产品量产过程中总是会出现一些 IC 损坏的现象,通常要想找出这些 IC损坏的根本原因并不总是很容易。有些偶发性的损坏很难被重现,这时的难度就会更大。而且有些时候 IC 的失效表现简直就是破坏性的,可能IC已经被烧得一塌糊涂,即使求助IC原厂分析,往往也不一定能找出失效的根本原因,出现这种情况,作为工程师的你估计头皮要感觉到阵阵发麻了。

电源 IC 的失效常常是其输入端受到电气过应力( EOS)的结果。在很多情况下,器件失效的原因都是输入电压太高了。本文对电源 IC 输入端 ESD 保护单元的结构进行了解释,说明了它们在受到 EOS 攻击时是如何受损的。造成 EOS 攻击事件的原因常常是热插入和导线或路径电感与低 ESR 陶瓷电容结合在一起形成的瞬态效应。在电路设计中采用一些特别的设计可以避免 EOS 的发生,防范它们可能带来的危害。本文也将对 Buck 转换器输入端的结构进行介绍,给出过高的输入电压造成器件损坏的机制,通过不同的应用案例说明过高的输入电压是如何发生的,还将提供相应的问题解决方案。

Buck 转换器输入端的结构

下图显示了一个Buck转换器 IC 内部的基本构成,其中包含了几个静电释放( ESD)防护单元。

上图中,电源输入端 VIN 被一个很大的 ESD 单元保护着,其保护范围包括内部稳压器和 MOSFET, 因而可以承受很高的静电电压。SW 端子内部通常没有 ESD 单元,因为大型 MOSFET 本身就可以像 ESD 保护单元一样动作,静电电流可经其内部体二极管流向 GND 或 VIN 端,也可利用它们的击穿特性实现保护。BOOT 端有一个 ESD 单元处于它和 SW 之间,其它小信号端子也各有一个小型的 ESD 单元,它们通常都和输入串联电阻一起保护这些小信号端子免受静电放电的危害。

ESD 和 EOS 的差异

当超过 ESD 单元钳位电压的过电压出现在 IC 端子上时, IC 会不会损坏就取决于 ESD 元件被击穿期间通过它的能量的多少。
ESD( Electro Static Discharge, 静电释放)和 EOS( Electrical Over Stress, 电气过应力)都是与电压过应力有关的概念,但它们之间的差异也很明确:

ESD 的电压很高( > 500V),持续时间相对较短( < 1µs)

EOS 的电压相对较低( < 100V),持续时间更长一些(通常 > 1µs)

当持续时间更长的 EOS 事件发生时,冲击 ESD 保护单元的能量就会更多,常常超出 ESD 保护单元的最大冲击能量承受能力,这样就会在 ESD 保护单元中积累太多的热量,最终导致严重的毁灭性结果。通常情况下,芯片中支撑ESD 保护单元的其他部分也会连带着一起受损。

电源热插入导致的输入端过应力

一种造成电源 IC 输入端受到 EOS 冲击的常见原因是电源的热插入事件,这种事件发生在处于开机状态的电源被引入一个系统的时候。这种系统的输入端通常含有低 ESR 的陶瓷输入电容,它们与电源引线的电感一起发生谐振,可以导致高压振荡信号的出现。下图显示的就是这样的场景,其中的电源是开着的,有两根引线将电源接入应用系统,其中的开关 S 用于模拟热插入的行为。

出现在系统输入端的电压振荡信号的幅度与很多因素有关:电源供应器的内阻,引线的电阻和电感量,开关 S 的电阻,输入电容 C1、 C2 的电容量和它们的 ESR 的大小。

作为一个例子,我们假设 12V 电源供应器具有很大的输出电容,电源引线的长度为 1.2m 并且具有很低的电阻,开关S 的阻抗也是很低的, C1、 C2 是 10µF/25V X5R 1206 的 MLCC。电源引线的总电感大约为 1.5µH,包括连接器在内其电阻约为 10mΩ。两只电容在 12V 直流偏置下的实际总容量约为 9µF,而且它们各自的 ESR 约为 5mΩ。

下图显示了热插入事件发生在这样的输入电路时的振荡过程的模拟结果。

从模拟结果可以看到,这样的热插入过程导致的输入电流高达大约 30A,由引线电感和输入电容导致的电压振荡波形的峰值几乎可以达到直流输入电压的 2 倍。下图显示的是对同样的电路进行热插入测试的情形,其中的开关 S 被换成了 MOSFET,该 MOSFET 是用脉冲发生器驱动的,目的是让热插入的动作变成是稳定的,同时也是可以重复的。

从上图可以看到,实际的热插入事件导致了比理论上更高的振荡电压峰值,这是由于 MLCC 输入电容在直流偏置电压下的电容量的非线性变化导致的,它的这种特性在图中的右侧显示出来。当电容上的电压升高时,它的电容量会下降,对其充电的电流进入更小的电容后就会得到更高的电压。在此案例中, 12V 电源的热插入事件能导致大约 30V 的最高电压峰值。

消除热插入期间电压尖峰的措施

上面已经解释过热插入期间电压尖峰发生的原因,下图 将与输入电路有关的参数表达了出来:电源供应器的内阻Ri,电源传输线的电感 Lwire 和电阻 Rwire,具有低 ESR 的输入电容。

有多种方法可以降低热插入期间的电压振铃信号的幅度:方法 1:大多数电源供应器是使用了很大的输出电容的开关模式电源适配器,这种电路的输出阻抗很低,遇到热插入事件时可以快速生成大电流。如下图那样增加一个共模电感和一只 ESR 比较高的小型电解电容,适配器的输出阻抗就会增加,谐振过程会受到抑制。

方法 2:使用较小线径的适配器电缆来增加电缆的阻抗。为了达成好的谐振抑制效果,电缆的阻抗应该大于 0.3Ω,其坏处是电缆上的压降会增加。

方法 3:增加电缆两条线间的耦合程度。两线间更好的耦合可以形成相反的磁场,这对谐振的抑制有帮助。如下图显示了对 75cm 长、规格为 18AWG 的同轴电缆的模拟,根据漏感测试的结果,两线间的耦合度大概为 0.8。

通过使用不同类型的电缆进行测量,可以确认耦合良好的线对谐振过程会有更好的抑制效果,相应的热插入过程所导致的电压尖峰也更低。

方法 4:由 LC 电路形成的谐振可以通过给输入电容并联一个 RC 电路进行抑制, RC 电路的参数可用下述方法进行计算,RS 的计算公式如下图:其中 LP是电缆的电感量, CIN是系统的输入电容, ξ 是希望的抑制系数。在前述的热插入案例中, LP 大约是 1.5µH, CIN 在 12V 时为 9µF。当我们选择良好的抑制效果(ξ = 1)时, RS = 0.2Ω。抑制电容 CS 的值必须足够大以避免它在热插入造成的电流脉冲出现期间被过度充电,其电压增量 VC = IC * 1/ωC,其中的 ω 是 LP 和 CIN 的谐振频率(测量数据大约是 40kHz)。由于电流脉冲的幅度是 35A,要想使充电造成的电压增量小于 2V,我们需要电容的值大于 70µF。

在加入 100µF 和 0.2Ω 的 RC 电路后,针对上述的热插入案例再次进行仿真模拟,我们可以看到谐振被完全抑制住了,电压的过冲低于 2V,参见下图所示。

在实践应用中,RC 抑制电路可以很容易地通过使用一只 100µF/25V 的电解电容实现,它需要和陶瓷输入电容并联在一起。之所以这么简单,是因为大多数 100µF 的电解电容在 100kHz 频率下有大约 0.2Ω 的 ESR。在下图中的右侧电路就在输入端加入了 100µF/25V 电解电容,热插入试验表明其输入端的过冲会被完全抑制掉,不会有损毁风险再出现在 IC 上。 

其他造成电源 IC 输入端 EOS 的原因

除了热插入造成的冲击以外,还有其他一些状况可能造成电源 IC 输入端受到 EOS 的攻击:

a. USB 输出端短路测试造成 USB 开关输入端损毁

下图显示的是一个典型的 USB 开关的应用电路图,有一个 1µF 的去耦电容放在靠近 IC 输入端的地方,电容前面有大约 10cm 的铜箔路径将它和 5V 主电源连接起来。

USB 端口都需要进行短路测试, 这个测试通过一个开关来模拟, IC 需要在侦测到短路以后快速将其 MOSFET 开关关断。从上图中的实例可以看到, MOSFET 开关关断的动作是有延时的,因而会有一个短时大电流流过 IC 之后关断才会发生。由于输入线有电感存在,此电感和输入端去耦电容 C2 会一起发生谐振,因而可在示波器上看见输入端出现了高压脉冲,这很可能超过 IC 的最高耐压能力并将其损毁。

为了解决这样的可靠性隐患,用于热插入风险防范的类似措施可以被纳入考虑范围,因此我们要在电路中加入类似电解电容的 RC 抑制电路。抑制电路的参数计算方法是类似的,我们可以利用开关关断过程的 dI/dt 计算电容的值。实际上,一个 47µF 的电解电容就可以将电压峰值控制在大约 6V 上,如下图 所示。

b. Buck 转换器的反向偏置问题

工作在强制 PWM 模式下的 Buck 转换器在经由输出端反向偏置时会表现出 Boost 转换器的行为。假如转换器的输出端由高于预设输出电压的外部电源供电时, IC 内部的下桥 MOSFET 会从输出端吸入电流,再与上桥 MOSFET 一起形成一个Boost 转换器。如下图所示,该电路的输出端就由一个缓慢上升的 5V 电源供电,它的输入端电压将上升并最终将其 ESD 单元击穿。

像这种电源反向偏置的情况并不经常发生,但在存在电池的系统中就很容易出现。又假如在某些设计中使用了动态电压调节技术(通过反馈网络对输出电压进行调节),如果输出电容很大,又恰好遇到了输出电压的设定突然变低,Boost 的动作就会发生了。

总结

电源 IC 的损坏经常是由于输入电压过应力造成的,这在电源热插入导致出现过高电压尖峰或由线路电感和低 ESR 陶瓷电容形成谐振时就会发生。
当电源 IC 输入端的 ESD 单元遇到超过其能量承担水平的冲击能量时就会被损坏。造成 IC 损坏的 EOS 能量通常要比正常的人体模式( HBM) ESD 能量高好几倍。当 ESD 单元被损坏的时候,作为其承载体的硅晶圆也会受到伤害。在大多数情况下,承载体的损坏会直接导致功率级的不正常运作,引起直通短路、功率级烧毁等问题。

具有折返特性的 ESD 单元在被触发以后可能保持在低于工作电压的电压上,这会在被触发之后立即导致大电流的出现。

由于热插入事件和电源线上的谐振效应都会将电压尖峰引入 IC 输入端,因而在电源设计过程中必须对这样的瞬态过程进行检查,确保在任何情况下都不会在 IC 输入端形成高电压。由于 ESD 单元的激活电压总是高于器件的绝对最大额定值,应用中能够出现的电压就不能超过 IC 的绝对最大额定值,以便确保 ESD 单元在工作过程中不会被激活。

九、单端、推挽、桥式拓扑结构变压器对比

单端正激式

    单端:通过一只开关器件单向驱动脉冲变压器。

    正激:脉冲变压器的原/付边相位关系,确保在开关管导通,驱动脉冲变压器原边时,变压器付边同时对负载供电。

  该电路的最大问题是:开关管T交替工作于通/断两种状态,当开关管关断时,脉冲变压器处于“空载”状态,其中储存的磁能将被积累到下一个周期,直至电感器饱和,使开关器件烧毁。图中的D3与N3构成的磁通复位电路,提供了泄放多余磁能的渠道。

单端反激式

    反激式电路与正激式电路相反,脉冲变压器的原/付边相位关系,确保当开关管导通,驱动脉冲变压器原边时,变压器付边不对负载供电,即原/付边交错通断。

    脉冲变压器磁能被积累的问题容易解决,但是,由于变压器存在漏感,将在原边形成电压尖峰,可能击穿开关器件,需要设置电压钳位电路予以保护D3、N3构成的回路。

    从电路原理图上看,反激式与正激式很相象,表面上只是变压器同名端的区别,但电路的工作方式不同,D3、N3的作用也不同。

推挽(变压器中心抽头)式

    这种电路结构的特点是:对称性结构,脉冲变压器原边是两个对称线圈,两只开关管接成对称关系,轮流通断,工作过程类似于线性放大电路中的乙类推挽功率放大器。

主要优点:高频变压器磁芯利用率高(与单端电路相比)、电源电压利用率高(与后面要叙述的半桥电路相比)、输出功率大、两管基极均为低电平,驱动电路简单。

    主要缺点:变压器绕组利用率低、对开关管的耐压要求比较高(至少是电源电压的两倍)。

全桥式

    这种电路结构的特点是:由四只相同的开关管接成电桥结构驱动脉冲变压器原边。

 图中T1、T4为一对,由同一组信号驱动,同时导通/关端;T2、T3为另一对,由另一组信号驱动,同时导通/关端。两对开关管轮流通/断,在变压器原边线圈中形成正/负交变的脉冲电流。

    主要优点:与推挽结构相比,原边绕组减少了一半,开关管耐压降低一半。

    主要缺点:使用的开关管数量多,且要求参数一致性好,驱动电路复杂,实现同步比较困难。这种电路结构通常使用在1KW以上超大功率开关电源电路中。

半桥式

    电路的结构类似于全桥式,只是把其中的两只开关管(T3、T4)换成了两只等值大电容C1、C2。

主要优点:

  • 具有一定的抗不平衡能力,对电路对称性要求不很严格
  • 适应的功率范围较大,从几十瓦到千瓦都可以
  • 开关管耐压要求较低
  • 电路成本比全桥电路低

    这种电路常常被用于各种非稳压输出的DC变换器,如电子荧光灯驱动电路中。

.

十、消防电源

消防电源就是在配电柜内由强切模块切换,在应急状态下,普通电源切断后,仍可提供使用的应急电源,就是消防电源了。

消防电源适用于当建筑物发生火灾时,其作为疏散照明和其它重要的一级供电负荷提供集中供电,在交流市电正常时,由交流市电经过互投装置给重要负载供电,当交流市电断电后,互投装置将立即投切至逆变器供电,供电时间由蓄电池的容量决定,当市电电压恢复时,应急电源将恢复为市电供电。那么消防对电源及配电的基本要求是什么?消防电源是否必须要双电源呢?下面本文简明扼要地给大家讲一讲,看完文章希望能给广大电气设计人员一些参考。

01 消防电源的定义:

消防电源是给消防系统的相关设备、风机、水泵、相关的消防电梯、防火卷帘等双电源供电的。非消防用电是正常使用的照明、动力的所有不属于消防设备的用电的。

02 消防对电源及配电的基本要求:

工业建筑、民用建筑、地下工程所设的消防控制室、消防水泵、消防电梯、防排烟设施、火灾自动报警、自动灭火系统、应急照明、疏散指示标志和电动的防火门窗卷帘、阀门等消防用电,都应该按照现行《工业与民用供电系统设计规范》的规定对其电源进行设计。消防对电源及配电的基本要求如下:

1)可靠性:

火灾时若供电中断,会使消防用电设备失去作用,贻误灭火战机,给人民的生命和财产带来严重后果。因此,要确保电源及其配电的可靠性。可靠性是诸要求中首先应考虑的问题。

(2)耐火性:

火灾时系统应具有耐火、耐热、防爆性能。上建方面应采用耐火材料建造,以保障其具有不间断供电的能力。

(3)安全性:

保障人身安全,防止触电事故。

(4)有效性:

保证供电持续时间,确保应急期间消防用电设备的有效性。

(5)科学性:

在保证可靠性、耐火性、安全性和有效性的前提下,还应确保供电质量,力求系统接线简单,操作方便,投资省,运行费用低。

03 消防电源必须要双电源吗?

消防电源是用于保障建筑物火灾自动报警系统、消防水源泵、消防排烟系统等消防设备正常工作的电源设备。为了保证消防设备在火灾发生时始终能够正常运转,避免单点故障对消防系统造成影响。

双电源供电方式是指在消防电源系统中,将一台主电源和一台备用电源进行配合使用,当主电源发生故障时,备用电源能够立即替换,并确保消防设备不间断供电。这种方式可以有效地提高消防电源的可靠性和稳定性,是确保消防设备在火灾来临时能够正常工作的重要措施之一。

根据国家相关法规和标准的要求:

一级负荷供电和二级负荷供电的消防电源,必须采用双电源供电方式,并且需要安装相应的智能控制系统,实现自动切换和监控,以确保消防电源的可靠性和安全性,切一级负荷供电要做到电源备份和线路备份,二级负荷供电做到电源不要求备份,线路要求备份;三级负荷供电的消防电源不做强制要求双电源供电。

.

十一、电磁干扰与去耦电容

 电路的设计中存在很多 电磁干扰(EMI) 问题, 去耦电容 的应用场景就是减小电磁干扰,这一过程衍生出了另一个概念—— 电磁兼容(EMC) 。

电磁干扰(EMI)的例子?

1、静电放电(ESD)

    冬天的时候,尤其是空气比较干燥的内陆城市,很多朋友都有这样的经历,手触碰到电脑外壳、铁柜子等物品的时候会被电击,这就是 静电放电现象 ,也称之为 ESD 。

2、快速瞬间群脉冲(EFT)

    不知道有没有同学有这样的经历,早期我们使用电钻这种电机设备,并且同时在听收音机或者看电视的时候,收音机或者电视会出现杂音,这就是 快速瞬间群脉冲 的效果,也称之为 EFT 。

3、浪涌(Surge)

    以前的老电脑,有的性能不是很好,带电热插拔优盘、移动硬盘等外围设备的时候,内部会产生一个百万分之一秒的电源切换,直接导致电脑出现蓝屏或者重启现象,就是热插拔的 浪涌 效果,称之为 Surge 。

    电磁干扰的内容有很多,我们这里不能一一列举,但是有些内容非常重要。这些问题不要认为是小问题,比如一个简单的静电放电,我们用手能感觉到的静电,可能已经达到3KV以上了。

    如果用眼睛能看得到的,至少是5KV了,只是因为这个电压虽然很高,能量却非常小,持续的时间非常短,因此不会对人体造成伤害。但是我们应用的这些半导体元器件就不一样了,一旦瞬间电压过高,就有可能造成器件的损坏。

去耦电容的概念

    去耦电容 是电路中装设在元件的电源端的电容,此电容可以提供较稳定的电源,同时也可以降低元件耦合到电源端的噪声,间接可以减少其他元件受此元件噪声的影响。

    在电子电路中, 去耦电容和旁路电容都是起到抗干扰的作用 ,电容所处的位置不同,称呼就不一样了。对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling)电容也称退耦电容,是把输出信号的干扰作为滤除对象。

去耦电容的应用

    首先看下图USB 接口和供电电路 :

左边这个电路,过了保险丝以后,接了一个470uF的电容C16,右边这个电路,经过开关后,接了一个100uF的电容C19,并且并联了一个0.1uF 的电容C10。其中C16和C19起到的作用是一样的,C10的作用和他们两个不一样,我们先来介绍这2个大一点的电容。

1、大容值电容的作用

    容值比较大的电容,理论上可以理解成水缸或者水池子,同时,大家可以直接把电流理解成水流,其实大自然万物的原理都是类似的。

    【作用一】缓冲作用。

    当上电的瞬间,电流从电源处流下来的时候,不稳定,容易冲击电子器件,加个电容可以起到缓冲作用。就如同我们直接用水龙头的水浇地,容易冲坏花花草草。我们只需要在水龙头处加个水池,让水经过水池后再缓慢流进草地,就不会冲坏花草,起到有效的保护作用。

    【作用二】稳定作用。

    我们的一整套电路,后级电子器件的功率大小都不一样,而器件正常工作的时候,所需电流的大小也不是一成不变的。比如后级有个器件还没有工作的时候,电流消耗是100mA,突然它参与工作了,电流猛的增大到了150mA,这个时候如果没有一个水缸的话,电路中的电压(水位)就会直接突然下降,比如我们的5V电压突然降低到3V了。

    而我们系统中有些电子元器件,必须高于一定的电压才能正常工作,电压太低就直接不工作了,这个时候水缸就必不可少了。电容会在这个时候把存储在里边的电量释放一下,稳定电压,当然,随后前级的电流会及时把水缸充满的。

    有了这个电容,可以说我们的电压和电流就会很稳定了,不会产生大的波动。这种电容常用的有如图3-2、图3-3、图3-4 所示三种:

  这三种电容是最常用的三种,其中第一种个头大,占空间大,单位容量价格最便宜,第二种和第三种个头小,占空间小,性能一般也略好于第一种,但是价格也贵不少。当然,除了价格,还有一些特殊参数,在通信要求高的场合也要考虑很多。

2、电容的选取

    第一个参数是耐压值的考虑。我们用的是5V系统,电容的耐压值要高于5V,一般1.5倍到2倍即可,有些场合稍微再高点也可以。

    第二个参数是电容容值,这个就需要根据经验来选取了,选取的时候,要看这个电容起作用的整套系统的功率消耗情况,如果系统耗电较大,波动可能比较大,那么容值就要选大一些,反之可以小一些。

3、小容值电容的作用

    我们再来看图3-1中的另一种电容C10,它容值较小,是0.1uF,也就是 100nF,是用来滤除高频信号干扰的。比如ESD,EFT等。我们初中学过电容的特性——可以通交流隔直流,但是电容的参数对不同频率段的干扰的作用是不一样的。

    这个100nF的电容,是我们的前辈根据干扰的频率段,根据板子的参数,根据电容本身的参数所总结出来的一个值。也就是说,以后大家在设计数字电路的时候,在电源处的去耦高频电容,直接用这个 0.1uF就可以了,不需要再去计算和考量太多。

4、其他注意事项

    在所有的IC器件的VCC和GND之间,都放一个0.1uF的高频去耦电容,特别在布板的时候,这个0.1uF电容要尽可能的靠近IC,尽量很顺利的与这个 IC的VCC和GND连到一起。

.

十二、BSP工程师?

BSP,全称​​Board Support Package​​,汉语意思即板级支持包

BSP工程师,顾名思义就是负责板级支持包的开发、调试和维护工作。

那么什么是板级支持包呢?

前面我们讲过,嵌入式硬件工程师负责设计硬件,画出PCB图,工厂会根据PCB图生产出对应的电路板。

一个嵌入式系统光有电路板是不够的,还要有对应的软件支持,软件开发的前提是首先使板子正常稳定的工作,然后再在其上编写对应的应用软件以实现其特有的功能。

其中使板子正常稳定的工作的代码就属于板级支持包

那么BSP工程师的具体工作有哪些呢?

我们首先从嵌入式设备谈起,前面我们谈到了很多的嵌入式设备,从系统角度来讲这些设备有些是跑操作系统的,有些没有跑。

对于不跑操作系统的设备来讲,其功能相对简单一点,使用的主控芯片一般也比较简单,比如风靡一时的51系列单片机、stm系列的单片机。

对于这些简单系统来讲,它对软件开发人员要求相对比较低,当然也就没有我前面所说的分工那么详细,有时候甚至从画板、点亮、开发都是由一个人来完成的。

对于跑操作系统来讲的设备,就不一样了。一般来讲,跑操作系统的设备其软件开发分三个阶段:

1. 点亮板子

第一批板子出厂时是不包含任何软件的。

BSP工程师需要结合硬件原理图修改从芯片厂商拿到的参考代码,调试板子,使板子上的操作系统能够正常稳定工作;

从而提供一个稳定的开发调试环境,这个过程叫做点亮板子,行话叫做Bringup

这属于BSP工程师最具有价值含量的工作之一,因为它对BSP工程师所掌握的知识的广度和深度都有一定要求。

其中会涉及到计算机原理、操作系统,处理器架构等,还包括硬件方面的一些知识。

综合起来其最核心的工作就是对内核的移植、裁剪。

2. 使能板子上所有设备

上个阶段中,板子的CPU和基本的器件已经能正常工作,这个阶段中将使能所有的外设,并为后面要开发的应用程序提供对应的软件控制接口。

这个过程的实质是对应的操作系统下驱动开发的过程,需要掌握硬件工作的原理,操作系统的相关知识。

3. 为板子开发应用程序

如前文所述,嵌入式系统是一个具有专一功能的系统,其上所有的硬件,软件都应该为这一功能服务。

第二个阶段结束的时候,板子上所有的设备都已经可以正常使用了。

这个阶段的任务就是开发应用程序来实现某种特定的功能,应用程序中会使用第二阶段提供的软件接口控制板子上的设备来完成这一功能。

BSP工程师应具备的能力

上述前两个阶段属于BSP开发的内容,第三个阶段属于嵌入式应用软件开发的过程。

综上所述,BSP工程师主要应该具备的能力主要有:

掌握计算机原理方面的知识

掌握操作系统的相关知识,深入研究某种操作系统,目前来讲,研究linux操作系统应该是大部分人的选择;

基本的linux(开发环境)操作

精湛的C语言功底和一定的C++/汇编的知识。

掌握一定的硬件和电路原理方面的知识

熟悉常见的接口协议,如I2C, SPI, UART, USB等。

当然作为一个软件开发人员也必须掌握一些通用的软件,比如:

代码管理软件,常见的如git等;

.

十三、单片机中常用的负电压

负电压的产生电路图原理

    在电子电路中我们常常需要使用负电压,比如说我们在使用运放的时候常常需要建立一个负电压。下面就简单的以正5V电压到负电压5V为例说一下它的电路。

    通常需要使用负电压时一般会选择使用专用的负压产生芯片,但这些芯片都比较贵,比如ICL7600,LT1054等。差点忘了MC34063了,这个芯片使用的最多了,关于34063的负压产生电路这里不说了,在datasheet中有的。下面请看我们在单片机电子电路中常用的两种负电压产生电路。

    现在的单片机有很多都带有了PWM输出,在使用单片机的时候PWM很多时候是没有用到的,用它辅助产生负压是不错的选择

    上面的电路是一个最简单的负压产生电路了。使用的原件是最少的了,只需要给它提供1kHz左右的方波就可以了,相当简单。这里需要注意这个电路的带负载能力是很弱的,同时在加上负载后电压的降落也比较大。

    由于上面的原因产生了下面的这个电路:

负电压产生电路分析

    电压的定义:电压(voltage),也称作电势差或电位差,是衡量单位电荷在静电场中由于电势不同所产生的能量差的物理量。其大小等于单位正电荷因受电场力作用从A点移动到B点所做的功,电压的方向规定为从高电位指向低电位的方向。

    说白了就是:某个点的电压就是相对于一个参考点的电势之间的差值。V某=E某-E参。一般把供电电源负极当作参考点。电源电压就是Vcc=E电源正-E电源负。

    想产生负电压,就让它相对于电源负极的电势更低即可。要想更低,必须有另一个电源的介入,根本原理都是利用两个电源的串联。电源2正极串联在参考电源1的负极后,电源2负极就是负电压了。

  一个负电压产生电路:利用电容充电等效出一个新电源,电容串联在GND后,等效为电源2,则产生负电压。 

    1、电容充电:当PWM为低电平时,Q2打开,Q1关闭,VCC通过Q2给C1充电,充电回路是VCC-Q2-C1-D2-GND,C1上左正右负。 

2、电容C1充满电。 

  3、电容C1作为电源,C1高电势极串联在参考点。C1放电,从C2续流,产生负电压。    当PWM为低电平时,Q2关闭,Q1打开,C1开始放电,放电回路是C1-C2-D1,这实际上也是对C2进行充电的过程。C2充好电后,下正上负,如果VCC的电势为5点几伏,就可以输出-5V的电压了。

产生负电压(-5V)的方案 

7660和MAX232输出能力有限,做示波器带高速运放很吃力,所以也得用4片并联的方式扩流。第一版是7660两片并联的。

    用普通的DC/DC芯片都可以产生负电压,且电压精确度同正电压一样,驱动能力也很强,可以达到300mA以上。

    一般的开关电源芯片都能产生负电压,实在不行用开关电源输出的PWM去推电荷泵,也可以产生较大的电流,成本也很低,不知纹波要求多少,电荷泵用LC滤波之后纹波相当小的。7660是电荷泵,所以电流很小。

    整个示波器的设计,数字电源的+5V和模拟电源的+5V是分开供电的,但是数字地和模拟地应该怎么处理呢?

    数字地和模拟地是一定要连在一起的,不然电路没法工作。

    数字部分的地返回电流不能流过模拟部分地,两个地应该在稳定的地参考点连在一起。

负电压的意义

    1、人为规定。

    例如电话系统里是用-48V来供电的,这样可以避免电话线被电化学腐蚀。当然了,反着接电话也是可以工作的,无非是电压参考点变动而已。

    2、通讯接口需要。

    例如RS232接口,就必须用到负电压。-3V~-15V表示1,+3~+15V表示0。这个是当初设计通讯接口时的协议,只能遵守咯。PS:MAX232之类的接口芯片自带电荷泵,可以自己产生负电压。串口文章推荐:STM32串口通信基本原理。

    3、为(非轨到轨)运放提供电源轨。

    老式的运放是没有轨到轨输入/输出能力的,例如OP07,输入电压范围总是比电源电压范围分别小1V,输出分别小2V。这样如果VEE用0V,那么输入端电压必须超过1V,输出电压不会低于2V。这样的话可能会不满足某些电路的设计要求。为了能在接近0V的输入/输出条件下工作,就需要给运放提供负电压,例如-5V,这样才能使运放在0V附近正常工作。不过随着轨到轨运放的普及,这种情况也越来越少见了。

    4、这个比较有中国特色,自毁电路。

    一般来说芯片内部的保护电路对于负电压是不设防的,所以只要有电流稍大,电压不用很高的负电压加到芯片上,就能成功摧毁芯片。

 嵌入式硬件

十四、红外遥控的原理

目前很多手机都集成了红外功能,这一功能在手机上主要用作遥控器使用。现在的硬件厂商都在搭建生态,比如智能家居。以手机作为智能终端,通过APP来控制所要接入的各种设备,如空调、电视、照明灯、音响等。而手机的红外功能就可以把手机当作一个遥控器来使用。

家用设备中,红外的普及是通过空调和电视来实现的。两者的遥控设备都是通过红外功能来实现的,这两种近距离场景是红外应用最广泛的地方。红外要实现遥控需要红外发送和红外接受等硬件的支持。在空调和电视端,集成的红外接收电路;在手机端集成的是红外发射电路。

1 红外发射电路

红外发射电路的核心元器件是红外发射探头,该探头的外形与直插LED非常类似,外表透明,在使用时也是按照LED的驱动电路来设计电路的。

当基极端的IR为低电平时红外电路处于关断状态;当基极端的IR为高电平时红外电路导通,发出外红光,被接收电路所接收。

2 红外接收电路

红外接收电路涉及到红外接收元器件电路以及解码电路。红外发射和接收是成对出现的,通用的红外接收元器件为黑色外壳,外形如LED。但是这种接收器件比较容易收到干扰。在设计电路时都使用专用的红外接收器件,如HS0038。

3 红外的通讯协议

有了发射电路、有了接收电路,那么数据是如何传输的呢?这就要设计到通讯协议了。手机的红外在适配不同型号的电视、空调时都一个学习的过程,这个学习的过程就是协议适配的过程。目前比较主流的通讯协议是NEC的。NEC规定了0和1的定义,定义了报文数据结构。0和1的定义如下图所示。

遥控器在按下的时候,红外发射部分会发送一串脉冲,该脉冲的编码是遵循NEC协议的,接收端对脉冲编码解析出用户按键的含义再执行相应的命令。

手机端的红外,是发送部分,APP中按下某一个键,红外就会发送出一串脉冲,接收电路对该脉冲进行解码,由此实现发送和接收的配合,实现遥控设备的目的。

但是,手机红外目前功能主要用来控制电视、空调等,当作遥控器来使用,应用场景比较受限,这主要由红外的通讯距离短、需要点对点匹配等约束的。

.

十五、常用半导体中英对照表

01. 常用半导体中英对照表

离子注入机 ion implanter

LSS理论 Lindhand Scharff and Schiott theory,又称“林汉德-斯卡夫-斯高特理论”。

沟道效应 channeling effect

射程分布 range distribution

深度分布 depth distribution

投影射程 projected range

阻止距离 stopping distance

阻止本领 stopping power

标准阻止截面 standard stopping cross section

退火 annealing

激活能 activation energy

等温退火 isothermal annealing

激光退火 laser annealing

应力感生缺陷 stress-induced defect

择优取向 preferred orientation

制版工艺 mask-making technology

图形畸变 pattern distortion

初缩 first minification

精缩 final minification

母版 master mask

铬版 chromium plate

干版 dry plate

乳胶版 emulsion plate

透明版 see-through plate

高分辨率版 high resolution plate, HRP

超微粒干版 plate for ultra-microminiaturization

掩模 mask

掩模对准 mask alignment

对准精度 alignment precision

光刻胶 photoresist,又称“光致抗蚀剂”。

负性光刻胶 negative photoresist

正性光刻胶 positive photoresist

无机光刻胶 inorganic resist

多层光刻胶 multilevel resist

电子束光刻胶 electron beam resist

X射线光刻胶 X-ray resist

刷洗 scrubbing

甩胶 spinning

涂胶 photoresist coating

后烘 postbaking

光刻 photolithography

X射线光刻 X-ray lithography

电子束光刻 electron beam lithography

离子束光刻 ion beam lithography

深紫外光刻 deep-UV lithography

光刻机 mask aligner

投影光刻机 projection mask aligner

曝光 exposure

接触式曝光法 contact exposure method

接近式曝光法 proximity exposure method

光学投影曝光法 optical projection exposure method

电子束曝光系统 electron beam exposure system

分步重复系统 step-and-repeat system

显影 development

线宽 linewidth

去胶 stripping of photoresist

氧化去胶 removing of photoresist by oxidation

等离子[体]去胶 removing of photoresist by plasma

刻蚀 etching

干法刻蚀 dry etching

反应离子刻蚀 reactive ion etching, RIE

各向同性刻蚀 isotropic etching

各向异性刻蚀 anisotropic etching

反应溅射刻蚀 reactive sputter etching

离子铣 ion beam milling,又称“离子磨削”。

等离子[体]刻蚀 plasma etching

钻蚀 undercutting

剥离技术 lift-off technology,又称“浮脱工艺”。

终点监测 endpoint monitoring

金属化 metallization

互连 interconnection

多层金属化 multilevel metallization

电迁徙 electromigration

回流 reflow

磷硅玻璃 phosphorosilicate glass

硼磷硅玻璃 boron-phosphorosilicate glass

钝化工艺 passivation technology

多层介质钝化 multilayer dielectric passivation

划片 scribing

电子束切片 electron beam slicing

烧结 sintering

印压 indentation

热压焊 thermocompression bonding

热超声焊 thermosonic bonding

冷焊 cold welding

点焊 spot welding

球焊 ball bonding

楔焊 wedge bonding

内引线焊接 inner lead bonding

外引线焊接 outer lead bonding

梁式引线 beam lead

装架工艺 mounting technology

附着 adhesion

封装 packaging

金属封装 metallic packaging

陶瓷封装 ceramic packaging

扁平封装 flat packaging

塑封 plastic package

玻璃封装 glass packaging

微封装 micropackaging,又称“微组装”。

管壳 package

管芯 die

引线键合 lead bonding

引线框式键合 lead frame bonding

带式自动键合 tape automated bonding, TAB

激光键合 laser bonding

超声键合 ultrasonic bonding

红外键合 infrared bonding

02. 微电子辞典大集合

(按首字母顺序排序)

A

Abrupt junction 突变结
Accelerated testing 加速实验
Acceptor 受主
Acceptor atom 受主原子
Accumulation 积累、堆积
Accumulating contact 积累接触
Accumulation region 积累区
Accumulation layer 积累层
Active region 有源区
Active component 有源元
Active device 有源器件
Activation 激活
Activation energy 激活能
Active region 有源(放大)区
Admittance 导纳
Allowed band 允带
Alloy-junction device合金结器件 

Aluminum(Aluminium) 铝
Aluminum – oxide 铝氧化物
Aluminum passivation 铝钝化
Ambipolar 双极的
Ambient temperature 环境温度
Amorphous 无定形的,非晶体的
Amplifier 功放 扩音器 放大器
Analogue(Analog) comparator 模拟比较器 

Angstrom 埃

Anneal 退火
Anisotropic 各向异性的
Anode 阳极
Arsenic (AS) 砷
Auger 俄歇
Auger process 俄歇过程
Avalanche 雪崩
Avalanche breakdown 雪崩击穿
Avalanche excitation雪崩激发

B

Background carrier 本底载流子
Background doping 本底掺杂
Backward 反向
Backward bias 反向偏置
Ballasting resistor 整流电阻
Ball bond 球形键合
Band 能带
Band gap 能带间隙
Barrier 势垒
Barrier layer 势垒层
Barrier width 势垒宽度
Base 基极
Base contact 基区接触
Base stretching 基区扩展效应
Base transit time 基区渡越时间
Base transport efficiency基区输运系数
Base-width modulation基区宽度调制
Basis vector 基矢
Bias 偏置
Bilateral switch 双向开关
Binary code 二进制代码
Binary compound semiconductor 二元化合物半导体
Bipolar 双极性的
Bipolar Junction Transistor (BJT)双极晶体管
Bloch 布洛赫
Blocking band 阻挡能带
Blocking contact 阻挡接触
Body - centered 体心立方
Body-centred cubic structure 体立心结构
Boltzmann 波尔兹曼
Bond 键、键合
Bonding electron 价电子
Bonding pad 键合点
Bootstrap circuit 自举电路

Bootstrapped emitter follower 自举射极跟随器
Boron 硼
Borosilicate glass 硼硅玻璃
Boundary condition 边界条件
Bound electron 束缚电子
Breadboard 模拟板、实验板
Break down 击穿
Break over 转折
Brillouin 布里渊
Brillouin zone 布里渊区
Built-in 内建的
Build-in electric field 内建电场
Bulk 体/体内 

Bulk absorption 体吸收

Bulk generation 体产生
Bulk recombination 体复合
Burn - in 老化
Burn out 烧毁
Buried channel 埋沟
Buried diffusion region 隐埋扩散区

C

Can 外壳
Capacitance 电容
Capture cross section 俘获截面
Capture carrier 俘获载流子
Carrier 载流子、载波
Carry bit 进位位
Carry-in bit 进位输入
Carry-out bit 进位输出
Cascade 级联
Case 管壳
Cathode 阴极
Center 中心
Ceramic 陶瓷(的)
Channel 沟道

Channel breakdown 沟道击穿
Channel current 沟道电流
Channel doping 沟道掺杂
Channel shortening 沟道缩短
Channel width 沟道宽度
Characteristic impedance 特征阻抗
Charge 电荷、充电
Charge-compensation effects 电荷补偿效应
Charge conservation 电荷守恒
Charge neutrality condition 电中性条件
Charge drive/exchange/sharing/transfer/storage 电荷驱动/交换/共享/转移/存储
Chemmical etching 化学腐蚀法
Chemically-Polish 化学抛光
Chemmically-Mechanically Polish (CMP) 化学机械抛光

Chip 芯片
Chip yield 芯片成品率
Clamped 箝位
Clamping diode 箝位二极管
Cleavage plane 解理面
Clock rate 时钟频率
Clock generator 时钟发生器
Clock flip-flop 时钟触发器
Close-packed structure 密堆积结构
Close-loop gain 闭环增益
Collector 集电极
Collision 碰撞
Compensated OP-AMP 补偿运放
Common-base/collector/emitter connection 共基极/集电极/发射极连接
Common-gate/drain/source connection 共栅/漏/源连接
Common-mode gain 共模增益
Common-mode input 共模输入
Common-mode rejection ratio (CMRR) 共模抑制比
Compatibility 兼容性
Compensation 补偿
Compensated impurities 补偿杂质
Compensated semiconductor 补偿半导体
Complementary Darlington circuit 互补达林顿电路
Complementary Metal-Oxide-Semiconductor Field-Effect-Transistor(CMOS)
互补金属氧化物半导体场效应晶体管
Complementary error function 余误差函数
Computer-aided design (CAD)/test(CAT)/manufacture(CAM) 计算机辅助设计/ 测试 /制造
Compound Semiconductor 化合物半导体
Conductance 电导
Conduction band (edge) 导带(底)
Conduction level/state 导带态
Conductor 导体
Conductivity 电导率
Configuration 组态
Conlomb 库仑
Conpled Configuration Devices 结构组态
Constants 物理常数
Constant energy surface 等能面
Constant-source diffusion恒定源扩散
Contact 接触
Contamination 治污
Continuity equation 连续性方程
Contact hole 接触孔
Contact potential 接触电势
Continuity condition 连续性条件
Contra doping 反掺杂
Controlled 受控的
Converter 转换器
Conveyer 传输器
Copper interconnection system 铜互连系统
Couping 耦合
Covalent 共阶的
Crossover 跨交
Critical 临界的
Crossunder 穿交
Crucible坩埚
Crystal defect/face/orientation/lattice 晶体缺陷/晶面/晶向/晶格
Current density 电流密度
Curvature 曲率
Cut off 截止
Current drift/dirve/sharing 电流漂移/驱动/共享
Current Sense 电流取样
Curvature 弯曲
Custom integrated circuit 定制集成电路
Cylindrical 柱面的
Czochralshicrystal 直立单晶
Czochralski technique 切克劳斯基技术(Cz法直拉晶体J)

D

Dangling bonds 悬挂键
Dark current 暗电流
Dead time 空载时间
Debye length 德拜长度
De.broglie 德布洛意
Decderate 减速
Decibel (dB) 分贝
Decode 译码
Deep acceptor level 深受主能级
Deep donor level 深施主能级
Deep impurity level 深度杂质能级
Deep trap 深陷阱
Defeat 缺陷
Degenerate semiconductor 简并半导体

Degeneracy 简并度
Degradation 退化
Degree Celsius(centigrade) /Kelvin 摄氏/开氏温度
Delay 延迟 Density 密度
Density of states 态密度
Depletion 耗尽
Depletion approximation 耗尽近似
Depletion contact 耗尽接触
Depletion depth 耗尽深度
Depletion effect 耗尽效应
Depletion layer 耗尽层
Depletion MOS 耗尽MOS
Depletion region 耗尽区
Deposited film 淀积薄膜
Deposition process 淀积工艺
Design rules 设计规则
Die 芯片(复数dice)
Diode 二极管
Dielectric 介电的
Dielectric isolation 介质隔离
Difference-mode input 差模输入
Differential amplifier 差分放大器
Differential capacitance 微分电容
Diffused junction 扩散结
Diffusion 扩散
Diffusion coefficient 扩散系数
Diffusion constant 扩散常数
Diffusivity 扩散率
Diffusion capacitance/barrier/current/furnace 扩散电容/势垒/电流/炉
Digital circuit 数字电路
Dipole domain 偶极畴
Dipole layer 偶极层
Direct-coupling 直接耦合
Direct-gap semiconductor 直接带隙半导体
Direct transition 直接跃迁
Discharge 放电
Discrete component 分立元件
Dissipation 耗散
Distribution 分布
Distributed capacitance 分布电容
Distributed model 分布模型
Displacement 位移 

Dislocation 位错
Domain 畴 Donor 施主
Donor exhaustion 施主耗尽
Dopant 掺杂剂
Doped semiconductor 掺杂半导体
Doping concentration 掺杂浓度
Double-diffusive MOS(DMOS)双扩散MOS.
Drift 漂移 

Drift field 漂移电场
Drift mobility 迁移率
Dry etching 干法腐蚀
Dry/wet oxidation 干/湿法氧化
Dose 剂量
Duty cycle 工作周期
Dual-in-line package (DIP) 双列直插式封装
Dynamics 动态
Dynamic characteristics 动态属性
Dynamic impedance 动态阻抗

E

Early effect 厄利效应
Early failure 早期失效
Effective mass 有效质量
Einstein relation(ship) 爱因斯坦关系
Electric Erase Programmable Read Only Memory(E2PROM) 一次性电可擦除只读存储器
Electrode 电极
Electrominggratim 电迁移
Electron affinity 电子亲和势
Electronic -grade 电子能
Electron-beam photo-resist exposure 光致抗蚀剂的电子束曝光
Electron gas 电子气
Electron-grade water 电子级纯水
Electron trapping center 电子俘获中心
Electron Volt (eV) 电子伏
Electrostatic 静电的
Element 元素/元件/配件
Elemental semiconductor 元素半导体
Ellipse 椭圆
Ellipsoid 椭球
Emitter 发射极
Emitter-coupled logic 发射极耦合逻辑
Emitter-coupled pair 发射极耦合对
Emitter follower 射随器
Empty band 空带
Emitter crowding effect 发射极集边(拥挤)效应
Endurance test =life test 寿命测试
Energy state 能态
Energy momentum diagram 能量-动量(E-K)图
Enhancement mode 增强型模式
Enhancement MOS 增强性
MOS Entefic (低)共溶的
Environmental test 环境测试
Epitaxial 外延的
Epitaxial layer 外延层
Epitaxial slice 外延片
Expitaxy 外延
Equivalent curcuit 等效电路
Equilibrium majority /minority carriers 平衡多数/少数载流子
Erasable Programmable ROM (EPROM)可搽取(编程)存储器
Error function complement 余误差函数
Etch 刻蚀
Etchant 刻蚀剂
Etching mask 抗蚀剂掩模
Excess carrier 过剩载流子
Excitation energy 激发能
Excited state 激发态
Exciton 激子
Extrapolation 外推法
Extrinsic 非本征的
Extrinsic semiconductor 杂质半导体

F

Face - centered 面心立方
Fall time 下降时间
Fan-in 扇入
Fan-out 扇出
Fast recovery 快恢复
Fast surface states 快界面态
Feedback 反馈
Fermi level 费米能级
Fermi-Dirac Distribution 费米-狄拉克分布
Femi potential 费米势
Fick equation 菲克方程(扩散)
Field effect transistor 场效应晶体管
Field oxide 场氧化层
Filled band 满带
Film 薄膜
Flash memory 闪烁存储器
Flat band 平带
Flat pack 扁平封装
Flicker noise 闪烁(变)噪声
Flip-flop toggle 触发器翻转
Floating gate 浮栅
Fluoride etch 氟化氢刻蚀
Forbidden band 禁带
Forward bias 正向偏置
Forward blocking /conducting正向阻断/导通

Frequency deviation noise频率漂移噪声
Frequency response 频率响应
Function 函数

G

Gain 增益 

Gallium-Arsenide(GaAs) 砷化钾
Gamy ray r 射线
Gate 门、栅、控制极
Gate oxide 栅氧化层
Gauss(ian) 高斯
Gaussian distribution profile 高斯掺杂分布
Generation-recombination 产生-复合
Geometries 几何尺寸
Germanium(Ge) 锗
Graded 缓变的
Graded (gradual) channel 缓变沟道
Graded junction 缓变结
Grain 晶粒
Gradient 梯度
Grown junction 生长结
Guard ring 保护环
Gummel-Poom model 葛谋-潘 模型
Gunn - effect 狄氏效应

H

Hardened device 辐射加固器件

Heat of formation 形成热
Heat sink 散热器、热沉
Heavy/light hole band 重/轻 空穴带
Heavy saturation 重掺杂
Hell - effect 霍尔效应
Heterojunction 异质结
Heterojunction structure 异质结结构
Heterojunction Bipolar Transistor(HBT)异质结双极型晶体
High field property 高场特性
High-performance MOS.( H-MOS)高性能
MOS. Hormalized 归一化
Horizontal epitaxial reactor 卧式外延反应器

Hot carrior 热载流子
Hybrid integration 混合集成

I

Image - force 镜象力
Impact ionization 碰撞电离
Impedance 阻抗
Imperfect structure 不完整结构
Implantation dose 注入剂量
Implanted ion 注入离子
Impurity 杂质
Impurity scattering 杂志散射
Incremental resistance 电阻增量(微分电阻)

In-contact mask 接触式掩模
Indium tin oxide (ITO) 铟锡氧化物
Induced channel 感应沟道
Infrared 红外的
Injection 注入
Input offset voltage 输入失调电压
Insulator 绝缘体
Insulated Gate FET(IGFET)绝缘栅FET 

Integrated injection logic集成注入逻辑
Integration 集成、积分
Interconnection 互连
Interconnection time delay 互连延时
Interdigitated structure 交互式结构
Interface 界面
Interference 干涉
International system of unions国际单位制
Internally scattering 谷间散射
Interpolation 内插法
Intrinsic 本征的
Intrinsic semiconductor 本征半导体
Inverse operation 反向工作
Inversion 反型
Inverter 倒相器
Ion 离子
Ion beam 离子束
Ion etching 离子刻蚀
Ion implantation 离子注入
Ionization 电离
Ionization energy 电离能
Irradiation 辐照
Isolation land 隔离岛
Isotropic 各向同性

J

Junction FET(JFET) 结型场效应管
Junction isolation 结隔离
Junction spacing 结间距
Junction side-wall 结侧壁

L

Latch up 闭锁
Lateral 横向的
Lattice 晶格
Layout 版图
Lattice binding/cell/constant/defect/distortion 晶格结合力/晶胞/晶格/晶格常熟/晶格缺陷/晶格畸变
Leakage current (泄)漏电流
Level shifting 电平移动
Life time 寿命
linearity 线性度
Linked bond 共价键
Liquid Nitrogen 液氮
Liquid-phase epitaxial growth technique 液相外延生长技术
Lithography 光刻
Light Emitting Diode(LED) 发光二极管
Load line or Variable 负载线
Locating and Wiring 布局布线
Longitudinal 纵向的
Logic swing 逻辑摆幅
Lorentz 洛沦兹
Lumped model 集总模型

M

Majority carrier 多数载流子
Mask 掩膜板,光刻板
Mask level 掩模序号
Mask set 掩模组
Mass - action law质量守恒定律
Master-slave D flip-flop主从D触发器
Matching 匹配
Maxwell 麦克斯韦
Mean free path 平均自由程
Meandered emitter junction梳状发射极结
Mean time before failure (MTBF) 平均工作时间
Megeto - resistance 磁阻
Mesa 台面
MESFET-Metal Semiconductor金属半导体FET
Metallization 金属化
Microelectronic technique 微电子技术
Microelectronics 微电子学
Millen indices 密勒指数
Minority carrier 少数载流子
Misfit 失配
Mismatching 失配
Mobile ions 可动离子
Mobility 迁移率
Module 模块
Modulate 调制
Molecular crystal分子晶体
Monolithic IC 单片IC 

MOSFET金属氧化物半导体场效应晶体管
Mos. Transistor(MOST )MOS. 晶体管
Multiplication 倍增
Modulator 调制
Multi-chip IC 多芯片IC
Multi-chip module(MCM) 多芯片模块
Multiplication coefficient倍增因子

N

Naked chip 未封装的芯片(裸片)
Negative feedback 负反馈
Negative resistance 负阻
Nesting 套刻
Negative-temperature-coefficient 负温度系数
Noise margin 噪声容限
Nonequilibrium 非平衡
Nonrolatile 非挥发(易失)性
Normally off/on 常闭/开
Numerical analysis 数值分析

O

Occupied band 满带
Officienay 功率
Offset 偏移、失调
On standby 待命状态
Ohmic contact 欧姆接触
Open circuit 开路
Operating point 工作点
Operating bias 工作偏置
Operational amplifier (OPAMP)运算放大器
Optical photon =photon 光子
Optical quenching光猝灭
Optical transition 光跃迁
Optical-coupled isolator光耦合隔离器
Organic semiconductor有机半导体
Orientation 晶向、定向
Outline 外形
Out-of-contact mask非接触式掩模
Output characteristic 输出特性
Output voltage swing 输出电压摆幅
Overcompensation 过补偿
Over-current protection 过流保护
Over shoot 过冲
Over-voltage protection 过压保护
Overlap 交迭
Overload 过载
Oscillator 振荡器
Oxide 氧化物
Oxidation 氧化
Oxide passivation 氧化层钝化

P

Package 封装
Pad 压焊点
Parameter 参数
Parasitic effect 寄生效应
Parasitic oscillation 寄生振荡
Passination 钝化
Passive component 无源元件
Passive device 无源器件
Passive surface 钝化界面
Parasitic transistor 寄生晶体管
Peak-point voltage 峰点电压
Peak voltage 峰值电压
Permanent-storage circuit 永久存储电路
Period 周期
Periodic table 周期表
Permeable - base 可渗透基区
Phase-lock loop 锁相环
Phase drift 相移
Phonon spectra 声子谱
Photo conduction 光电导
Photo diode 光电二极管
Photoelectric cell 光电池
Photoelectric effect 光电效应
Photoenic devices 光子器件
Photolithographic process 光刻工艺
(photo) resist (光敏)抗腐蚀剂
Pin 管脚
Pinch off 夹断
Pinning of Fermi level 费米能级的钉扎(效应)
Planar process 平面工艺
Planar transistor 平面晶体管
Plasma 等离子体
Plezoelectric effect 压电效应
Poisson equation 泊松方程
Point contact 点接触
Polarity 极性
Polycrystal 多晶
Polymer semiconductor聚合物半导体
Poly-silicon 多晶硅
Potential (电)势
Potential barrier 势垒
Potential well 势阱
Power dissipation 功耗
Power transistor 功率晶体管
Preamplifier 前置放大器
Primary flat 主平面
Principal axes 主轴
Print-circuit board(PCB) 印制电路板
Probability 几率
Probe 探针
Process 工艺
Propagation delay 传输延时
Pseudopotential method 膺势发
Punch through 穿通
Pulse triggering/modulating 脉冲触发/调制

Pulse Widen Modulator(PWM) 脉冲宽度调制

Punchthrough 穿通
Push-pull stage 推挽级

Q

Quality factor 品质因子
Quantization 量子化
Quantum 量子
Quantum efficiency量子效应
Quantum mechanics 量子力学
Quasi – Fermi-level准费米能级
Quartz 石英

R

Radiation conductivity 辐射电导率

Radiation damage 辐射损伤
Radiation flux density 辐射通量密度
Radiation hardening 辐射加固
Radiation protection 辐射保护
Radiative - recombination辐照复合
Radioactive 放射性
Reach through 穿通
Reactive sputtering source 反应溅射源
Read diode 里德二极管
Recombination 复合
Recovery diode 恢复二极管
Reciprocal lattice 倒核子
Recovery time 恢复时间
Rectifier 整流器(管)
Rectifying contact 整流接触
Reference 基准点 基准 参考点
Refractive index 折射率
Register 寄存器
Registration 对准
Regulate 控制 调整
Relaxation lifetime 驰豫时间
Reliability 可靠性
Resonance 谐振
Resistance 电阻
Resistor 电阻器
Resistivity 电阻率
Regulator 稳压管(器)
Relaxation 驰豫
Resonant frequency共射频率
Response time 响应时间
Reverse 反向的
Reverse bias 反向偏置

S

Sampling circuit 取样电路
Sapphire 蓝宝石(Al2O3)
Satellite valley 卫星谷
Saturated current range电流饱和区
Saturation region 饱和区
Saturation 饱和的
Scaled down 按比例缩小
Scattering 散射
Schockley diode 肖克莱二极管
Schottky 肖特基
Schottky barrier 肖特基势垒
Schottky contact 肖特基接触
Schrodingen 薛定厄
Scribing grid 划片格
Secondary flat 次平面
Seed crystal 籽晶
Segregation 分凝
Selectivity 选择性
Self aligned 自对准的
Self diffusion 自扩散
Semiconductor 半导体
Semiconductor-controlled rectifier 可控硅
Sendsitivity 灵敏度
Serial 串行/串联
Series inductance 串联电感
Settle time 建立时间
Sheet resistance 薄层电阻
Shield 屏蔽
Short circuit 短路
Shot noise 散粒噪声
Shunt 分流
Sidewall capacitance边墙电容 

Signal 信号
Silica glass 石英玻璃
Silicon 硅
Silicon carbide 碳化硅
Silicon dioxide (SiO2) 二氧化硅
Silicon Nitride(Si3N4) 氮化硅
Silicon On Insulator 绝缘硅
Siliver whiskers 银须
Simple cubic 简立方
Single crystal 单晶
Sink 沉
Skin effect 趋肤效应
Snap time 急变时间
Sneak path 潜行通路
Sulethreshold 亚阈的
Solar battery/cell 太阳能电池
Solid circuit 固体电路
Solid Solubility 固溶度
Sonband 子带
Source 源极
Source follower 源随器
Space charge 空间电荷
Specific heat(PT) 热
Speed-power product 速度功耗乘积 

Spherical 球面的
Spin 自旋 Split 分裂
Spontaneous emission 自发发射
Spreading resistance扩展电阻
Sputter 溅射 

Stacking fault 层错
Static characteristic 静态特性
Stimulated emission 受激发射
Stimulated recombination 受激复合
Storage time 存储时间
Stress 应力
Straggle 偏差
Sublimation 升华
Substrate 衬底
Substitutional 替位式的
Superlattice 超晶格
Supply 电源 

Surface 表面
Surge capacity 浪涌能力
Subscript 下标
Switching time 开关时间
Switch 开关

T

Tailing 扩展
Terminal 终端
Tensor 张量 Tensorial 张量的
Thermal activation 热激发
Thermal conductivity 热导率
Thermal equilibrium 热平衡
Thermal Oxidation 热氧化
Thermal resistance 热阻
Thermal sink 热沉
Thermal velocity 热运动
Thermoelectricpovoer 温差电动势率
Thick-film technique 厚膜技术
Thin-film hybrid IC薄膜混合集成电路
Thin-Film Transistor(TFT) 薄膜晶体
Threshlod 阈值
Thyistor 晶闸管
Transconductance 跨导
Transfer characteristic 转移特性
Transfer electron 转移电子
Transfer function 传输函数 

Transient 瞬态的
Transistor aging(stress) 晶体管老化
Transit time 渡越时间
Transition 跃迁
Transition-metal silica 过度金属硅化物
Transition probability 跃迁几率
Transition region 过渡区
Transport 输运 Transverse 横向的
Trap 陷阱 Trapping 俘获
Trapped charge 陷阱电荷
Triangle generator 三角波发生器
Triboelectricity 摩擦电
Trigger 触发
Trim 调配 调整
Triple diffusion 三重扩散
Truth table 真值表
Tolerahce 容差
Tunnel(ing) 隧道(穿)
Tunnel current 隧道电流
Turn over 转折
Turn - off time 关断时间

U

Ultraviolet 紫外的

Unijunction 单结的
Unipolar 单极的
Unit cell 原(元)胞
Unity-gain frequency 单位增益频率
Unilateral-switch单向开关

V

Vacancy 空位 

Vacuum 真空
Valence(value) band 价带 

Value band edge 价带顶
Valence bond 价键 

Vapour phase 汽相
Varactor 变容管 

Varistor 变阻器
Vibration 振动 

Voltage 电压

W

Wafer 晶片
Wave equation 波动方程
Wave guide 波导
Wave number 波数
Wave-particle duality 波粒二相性
Wear-out 烧毁
Wire routing 布线
Work function 功函数
Worst-case device 最坏情况器件

Y

Yield 成品率

Z

Zener breakdown 齐纳击穿

Zone melting 区熔法

.

十六、阻容降压不为人知的秘密

很多人对阻容降压都比较了解,但是对阻容降压没有多少好感;

因为:

①设计参数通常和实际测试相差较远;(是因为思路不对,下面细讲)

②阻容降压因为输入输出没有隔离而比较危险。(其实绝缘和接地做好了也是非常安全的)

但是在小功率方面的优点是非常突出的:设计简单、成本低、体积小、广泛应用于小家电。

阻容降压其实可以做到很精确的计算,正是因为它的输入市电电压会发生变化(220V±10%),所以更要精确计算,使电路工作在最佳的设计参数下,保证质量可靠。

图13W的LE照明灯,其电路采用阻容降压驱动。下面以该实物讲解正确的计算方法

阻容降压利用电容在交流频率下产生的容抗限制最大电流达到降压目的。如图2为LED照明灯的阻容降压驱动电路。

如果去掉图2中的R2、R3、C1,那么该电路就是一个简单的整流电路。其中R2的作用是在外电源断开后给C1放电的,防止电击伤人;该电阻是必须的。

根据图2原理图给定的参数计算C1电容容抗(C1为CBB电容),于是计算如图3所示。

f:市电交流频率50Hz

C:824表示0.82μF

重点来了图2原理图Udc是整流滤波后的直流电压(也是交流电的峰值电压),所以Udc必须除以根号2换算成交流的有效值才能计算;

整流桥一个半波周期经过了两个二极管,所以还要减去两个二极管的压降2Ud=1.4V

根据设计要求,Udc的电压为200V左右才可以驱动4个LED灯珠,同时忽略电阻R3的压降,于是计算如图4所示。

经过以上两个公式,于是可以计算出流过电容的电流,如图5所示。

给LED照明灯接入市电测试,如图6所示,实测市电交流电压为220V左右。

图6:实测市电交流电压

图7所示,把万用表串入火线(L)输入端,测得流过降压电容C1的电流为20.2mA。  

图7:实测电流

图8所示,用万用表测量C2滤波电容的电压(Udc)为192V左右,设计参数为200V,两个数值非常接近。

图8:实测整流电压

总结,实测值和设计参数都非常接近,该计算方法不能把交流和直流混在一起计算,需要有效值的折算过程,其他文章都忽略了这一点,恐怕连作者自己都不会知道。

要点:

①电容降压电流输出能力<100mA;

②负载为阻性负载,负载动态变化要小;

③需要稳定的整流电压(Udc)可以加一个稳压二极管,稳压二极管的稳压值要稍低于整流电压值;

④降压电容为无极性电容,通常采用CBB电容,耐压值400V以上;

⑤阻容降压采用半波整流,输出电流是全波整流的一半。

http://www.lryc.cn/news/618980.html

相关文章:

  • 移动端调用大模型详解
  • 关于淘宝双十一
  • 数据分析小白训练营:基于python编程语言的Numpy库介绍(第三方库)(上篇)
  • DuckDB读取xlsx格式数据的方法比较
  • 【SpringBoot】MyBatis 动态 sql
  • 如何应对CAN总线冲突和数据丢包
  • 【c++深入系列】:万字详解模版(下)
  • 【项目设计】高并发内存池
  • AI赋能IT服务管理:从被动响应到智能驱动的跃迁
  • Linux驱动开发probe字符设备的完整创建流程
  • 【前端八股文面试题】【JavaScript篇7】什么是JavaScript的原型、原型链? 有什么特点
  • JavaScript Array.prototype.flatMap ():数组 “扁平化 + 映射” 的高效组合拳
  • 无人机三维路径规划
  • 2020/12 JLPT听力原文 问题一 4番
  • MyBatis-Plus——SQL注入器
  • LintCode第1526-N叉树的前序遍历
  • RabbitMQ面试精讲 Day 20:RabbitMQ压测与性能评估
  • 【游戏优化笔记】开发中如何减少建筑和树木等环境元素的资源消耗?
  • 行业热点丨智能仿真时代:电子工程多物理场解决方案创新实践
  • 【盘古100Pro+开发板实验例程】FPGA学习 | 中值滤波 | 图像实验指导手册
  • Redis知识点+项目+面试八股
  • redis认识缓存击穿
  • Flutter UI Kits by Olayemi Garuba:免费开源的高质量UI组件库
  • Element用法---Loading 加载
  • React 腾讯面试手写题
  • Photoshop软件打开WebP文件格的操作教程
  • 第六十四章:AI的“觅食”之路:数据采集器设计与多源数据获取
  • Android性能优化:架构层面的性能考量
  • Android 引导式访问(屏幕固定 Screen Pinning)完整指南
  • CPPIO流