激光二极管(半导体激光器)是一种利用半导体pn结将电流转换成光能并产生激光的电子器件。激光二极管具有优异的指向性和直进性,作为一种容易控制能量的光源,被广泛应用于光通信、医疗、感测、数据存储和休闲娱乐等领域。其基本原理是利用电子和空穴复合时产生的光。目前市场上已有不同波长和输出特性的众多产品。本文将详细介绍激光二极管的基本原理、结构、材料、种类和应用。 什么是激光二极管? 激光二极管(Laser Diode)也被称为“半导体激光器”。“激光”是“Light Amplification by Stimulated Emission of Radiation”的首字母缩写,意为“受激辐射光放大”。自然光和LED光即使波长恒定,其相位差不恒定,波形也不整齐。而激光是仅放大特定波长的“相干(coherent)”光。相干光源因其相位差恒定、波形一致,可利用干涉使焦点非常小(数um~),从而可用于光开关和光调制等各种应用中。 历史与发展 激光二极管的历史始于1917年,当时阿尔伯特·爱因斯坦首次将“受激辐射”现象形成理论,奠定了所有激光技术的基础。后来,德国人约翰·冯·诺依曼于1953年在一份未发表的手稿中描述了半导体激光器的概念。1957年,美国人戈登·古尔德提出可以利用受激辐射现象来放大光,并将其命名为“LASER(受激辐射光放大)”。就这样,随着各国科学家对激光器的研究不断取得进展,1962年同质结结构的砷化镓(GaAs)半导体激光器问世,相干光技术得到实际验证,同年,可见光振荡也获得成功。然而,这个时代的半导体激光器存在室温下连续振荡方面的课题。1970年,双异质结构的发现使得室温下的连续振荡成为可能。1970年代之后,半导体激光器技术迅速发展,并被广泛应用于各个领域。 激光二极管的发光原理 激光二极管是一种能发射特定波长激光的半导体器件。其基本结构由p型半导体和n型半导体组成的pn结、发射光的有源层、以及反射光的有涂层的镜面组成。激光二极管的发光原理是当电流流动时电子和空穴复合,此时辐射出的光子在有源层内被放大,并在谐振器内被反射,形成激光。我们先来了解一下激光二极管和LED共有的“发光半导体”的基本结构和发光原理。 二极管的基本结构和材料 半导体是导电性能介于导电的“导体”和不易导电的“绝缘体(非导体)”之间的物质。导体包括铁、金等金属物质,绝缘体包括橡胶、玻璃等物质。半导体可以通过使其导电或不导电来控制电流。另外,在某些使用方式下,还可以在光能和电能之间进行能量转换。 通常,二极管的元件主要由硅(Si)制成。硅(Si)是最典型的半导体材料。硅以“硅石(SiO2:主要成分是二氧化硅的石头”的形式存在于自然界中,是一种资源丰富的材料。因其易于加工而被广泛应用于很多半导体产品中。 硅(Si)作为半导体材料,本来是绝缘体,几乎没有作为载流子的自由电子。因此,通过向硅(Si)中添加其他杂质来提高硅(Si)中的载流子浓度,从而提高其电导率。像这样通过添加杂质来增加载流子的半导体被称为“杂质半导体”。载流子包括自由电子和自由空穴,其中使自由电子载流子增加的半导体称为“n型半导体”,使自由空穴载流子增加的半导体称为“p型半导体”。 * p型半导体(+:positive,空穴多的半导体)、n型半导体(-:negative,电子多的半导体) 二极管的元件是p型半导体和n型半导体连接的结构,称为“pn结”。p型半导体的引脚称为“阳极”,n型半导体的引脚称为“阴极”,电流是从阳极流向阴极的。 二极管的发光原理 当给pn结元件施加正向电压时,空穴(正)和电子(负)向结点方向移动并结合。此时产生的多余能量会被转化为光能,从而实现发光。这种现象称为“复合发光”。 下面我们使用pn结的能带图来说明此时载流子的移动情况。(左)表示未对pn结施加偏压的状态,(右)表示对pn结施加正向偏压的状态。当施加正向电压时,pn结处的能量势垒高度降低,n型区中的多数载流子(电子)如图所示穿过能量势垒并移动到p型区,与p型区的多数载流子(空穴)复合。此时,多余的能量会以光的形式释放出来。另一方面,p型区中的空穴移动到n型区并与n型区中的多数载流子(电子)复合,同样,多余的能量会以光的形式释放出来。 如图所示,导带和价带的能级存在差异,这种能量差称为“带隙”。另外,电子越过带隙从导带迁移到价带称为“电子跃迁”。也就是说,当电子从能量较高的导带跃迁到能量较低的价带并与空穴复合时,相当于其带隙的能量将以光子(光)的形式被释放出来。这就是半导体发光的原理。 激光二极管的材料、波长和发光颜色 激光二极管是一种利用半导体材料实现发光的器件。激光二极管的性能和特性会因所选的材料而有很大不同。普通的二极管会使用硅,但激光二极管会使用化合物半导体,因此其发光效率更高。激光二极管的选材会直接影响其波长、发光效率、工作温度等诸多特性。 下面,我们来详细了解一下激光二极管所用的化合物半导体的作用及其特点。 化合物半导体的作用 普通的二极管元件会采用“硅(Si)”这种材料,而激光二极管元件则使用“化合物半导体”材料。硅(Si)的发光跃迁概率(电流转变为光的概率)较低,几乎不发光,因此不适合用作激光二极管和LED等发光器件的材料。 像激光二极管和LED这类发光的半导体称为“直接跃迁型半导体”,不发光的半导体称为“间接跃迁型半导体”。在半导体中,电子会从能量较高的导带跃迁到能量较低的价带。此时的电子跃迁有“直接跃迁”和“间接跃迁”两种,具体取决于半导体材料。下图是间接跃迁和直接跃迁示意图。纵轴表示能量,横轴表示波数k。 A)发光的半导体“直接跃迁型半导体”(左图) 导带底和价带顶对应相同波数k(电子波的空间振动状态)的半导体称为“直接跃迁型半导体”。当电子在价带和导带之间跃迁时,波数k保持不变。也就是说,导带中被激发的电子将能量差——带隙Eg以光子(光)的形式释放出来,并跃迁到价带,与空穴复合。这可以获得很高的发光效率,从而被用作激光二极管和LED的材料。直接跃迁型半导体包括GaAs/AlGaAs、GaAlP/InGaAlP、GaN/InGaN等半导体。这种以多种元素为材料的半导体称为“化合物半导体”。特别是III族和V族元素相结合的III-V族化合物半导体,被广泛应用于激光二极管和LED等发光器件。 B)不发光的半导体“间接跃迁型半导体”(右图) 导带底和价带顶对应不同波数k的半导体称为“间接跃迁型半导体”。当电子在价带和导带之间跃迁时,波数k会发生变化。这种变化是由于声子(晶格振动的量子)的发射和吸收引起的,其能量会以热量的形式被释放出来。光子(光)的吸收和声子的吸收/发射需要同时发生。光子的发射对应的跃迁概率(发光跃迁概率)较低,发光效率较差,因此这种半导体不能用作发光器件。间接跃迁型半导体有Si和Ge。 波长范围和调整方法 激光二极管和LED材料——化合物半导体,会根据其材料的组成和比例而发出各种波长的光(红色和绿色等可见光、红外光、紫外光等)。基本发光波长取决于有源层——半导体的载流子(激发态的电子和空穴)复合时的带隙能量。 带隙能量(Eg)和波长(λ)之间的关系可以用下列公式来表示:Eg=hν=hc/λ(h:普朗克常数,ν:光子的振动频率,c:光速) 从这个关系式可以看出,带隙能量(Eg)与波长(λ)成反比。也就是说,带隙能量越大,光的波长λ越短。 激光二极管和LED等所用的化合物半导体是通过在半导体材料(衬底)上外延生长pn结的薄膜结晶而制成的。为了堆叠出良好的薄膜晶体,半导体衬底和各结晶层的晶格常数最好要匹配,而且,在选择材料时,不仅要考虑带隙能量,还需要考虑到晶格常数。 上图显示了以III-V族化合物半导体为主的晶格常数与带隙能量(=波长)之间的关系。带隙能量大的材料往往晶格常数小,反之,带隙能量小的材料往往晶格常数大。从该图可以看出,理论上,III-V族化合物半导体可以支持包括紫外光、可见光和红外光在内的广泛波段。例如,该图表明,当在GaAs衬底上生长GaInP的pn结时,晶格常数匹配良好,并且可以获得约650nm的发光波长。 发光颜色与波长的关系 LED可以在很宽的波长范围内发光,单色性好的激光二极管则不同,可发出波长几乎恒定的光。世界上有各种波长的激光,其中肉眼可以看到的波长的光被称为“可见光”。其代表性的波长如下: 可见光(人眼可以看见的光的范围) 材料和发光颜色 激光二极管(半导体激光器)的主要材料如下: 砷化镓(GaAs) : 最常见的激光二极管材料,能够支持很宽的波长范围。半导体制造技术非常发达,可实现高性能。 氮化镓(GaN) : 以开发出高效率的蓝光LED和高输出UV LED而闻名。 磷化铟(InP) : 被用于高速通信应用和近红外激光二极管。 激光二极管的制造工艺通常使用化学气相沉积(CVD)和被称为“分子束外延(MBE)”的技术。利用这些技术,可以生长质量非常高的膜层,从而能够制造出高精度的半导体激光器。另外,激光二极管的发光波长和输出功率可以通过半导体材料选择和制造工艺微调来控制。 激光二极管振荡原理 至此,我们已经介绍了激光二极管和LED共有的“发光半导体”的结构和材料。那么,激光二极管和LED之间有哪些不同呢?“激光(LASER)”是“Light Amplification by Stimulated Emission of Radiation”的首字母缩写,意为“受激辐射光放大”。顾名思义,激光的基本条件是受激辐射而放大的光,这一点与LED不同。接下来,我们将介绍激光二极管振荡的原理——光的“受激辐射”和“放大”。 受激辐射光放大 在前面提到过,在半导体中,当电子从导带跃迁到价带并与空穴复合时,其能量将以光的形式释放出来。发光方式有“自发辐射”和“受激辐射”两种。“自发辐射”是导带中的电子在彼此不相互作用的前提下分别与价带中的空穴复合并发光,一次复合辐射出一个光子。 正如前面提到的,光的波长取决于半导体中载流子复合时的带隙能量大小。然而,在实际的复合中,具有与带隙能量不同的较大能量的电子会与价带中的空穴复合,因此自发辐射的光具有随机的光子方向和相位。 而“受激辐射”中,当相当于导带和价带之间的带隙能量Eg的光λ1通过时,导带中的电子因与光的相互作用被激发,并跃迁到价带的基态。此时,会发射出能量(波长)相同、相位相同的光(光子)。最初只有一个光子,现在变成两个,这两个光子进一步激发导带的电子,变为四个光子……就这样,通过受激辐射不断增加,形成波长和相位相同的强光。以上就是激光的受激辐射产生原理。 光学谐振器 受激辐射具有光放大作用,要想实现激光振荡,就需要提高因该放大作用而获得的增益。因此,激光二极管采用的是两个反射面(镜面)彼此面对面放置,使光在它们之间反复往复的结构。这种光放大介质两侧具有平行反射面的结构称为“法布里-珀罗(Fabry-Perot)谐振器”,谐振器内部称为“谐振腔”。这种谐振器在大多数激光器(不仅仅是半导体激光二极管)的激光振荡中都发挥着重要作用。 但是,仅仅通过谐振腔使光往复,并不能让光发射到激光二极管外部。所以,为了使光从反射面射到外部,需要降低某一反射面的反射率,也就是需要反射一部分光并让另一部分光穿透过去。将反射面的反射率(或透射率)设置到最合适,是有效提高激光二极管发光效率的一个非常重要的因素。光在谐振腔内往复,当光被充分放大并达到一定强度时,就会穿透反射率较低的反射面。这就是激光振荡的原理。 通常,激光二极管采用将半导体的解理面用作反射面、光从解理面射出的结构。具有这种结构的激光二极管称为“边发射激光器(EEL:Edge Emitting Laser)”。 激光二极管的结构(光限制、载流子控制) 为了实现发光效率高的、实用的激光二极管,迄今为止,已经研究了多种结构。“光和载流子的限制”是有效提高激光二极管发光效率的重要因素。首先,我们来了解一下光限制的基本原理——光波导。 光波导 光具有容易被限制在高折射率部分的性质。在光波导中,光传播的部分称为“纤芯”,其周围的部分称为“包层”。纤芯的折射率n2高于包层的折射率n1,由于折射率的差异,光被限制在纤芯中。光在纤芯和包层之间的界面上反复进行全反射的同时向前传播。 利用这种光波导的例子之一是“光纤”。光纤由“纤芯”(负责光信号的传输)及其周围的“包层”以及表面涂层组成。由于包层使用的是折射率低于纤芯的材料,因此光被限制在纤芯内,并呈锯齿形路线在纤芯内向前传播。光的这些性质也被用于激光二极管的器件结构中。 双异质结 结构 为了有效提高光提取效率(提高发光效率),LED和激光二极管所用的半导体采用的是双异质结结构。通常,由不同材料组成的结称为“异质结”,具有两个异质结称为“双异质结”。双异质结呈三明治型结构,称为“有源层”的半导体层被夹在称为“包层”的n型和p型半导体之间。“有源层”是带隙能量较小的、关键的发光半导体,“包层”是带隙能量比有源层大的半导体。 双异质结构有“光限制”和“载流子限制”两种作用。 光限制:通过使用折射率高的层作为有源层,使用折射率低的层作为包层,可以像光纤一样将光限制在中央的有源层区域。 载流子限制: 另外还可以将载流子(电子和空穴)限制在有源层内。下面我们使用双异质结的能带图来介绍其具体作用。 在上图中,左侧是未向双异质结施加偏压的状态。 n型包层中存在很多电子,但有源层和n型包层之间有能量势垒,另外由于带隙差,有源层和p型包层之间也存在能量势垒。因此,电子不能进入有源层,而是滞留在n型包层中。而空穴则由于有源层和p型包层之间没有能量势垒而能够进入有源层。 右图表示对该结构施加正向电压时的状态。 n型包层中的电子由于能量势垒消失而可以移动到有源层。但是,由于带隙差,有源层和p型包层之间的能量势垒仍然存在,因此电子会被阻挡并滞留在有源层中。来自p型包层的空穴也同样滞留在有源层中。来自n型包层的电子和来自p型包层的空穴会在有源层内复合发光。这种结构可将载流子(电子和空穴)限制在有源层中,载流子的密度会非常高,从而使复合率变高。这种效应称为“载流子限制效应”。利用这种效应,可以制造出发光效率高的半导体。 光限制和载流子控制 激光二极管元件的基本结构是双异质结构。整个p型面和n型面附有电极的激光器称为“广域激光二极管(Broad area laser,大面积激光二极管)”。在这种结构中,电流的流动范围很宽,因此激光会从有源层的较宽范围发射出来。这种结构需要非常大的电流,不适合实际应用。针对这种情况,业内设计出使电流仅注入到部分有源层的条型结构激光器。其中,“内部条形激光器”是主流产品,这种激光器在有源层周围嵌入了折射率比有源层低的层。与光纤的原理相同,光会被限制在有源层中。 采用这种结构的激光器,振荡模式稳定,实用性强,因此目前大多数激光二极管都采用这种结构。 也就是说,激光二极管的有源层结构不仅使光由于双异质结在垂直方向上被限制,还由于嵌入条形结构而在水平方向上被限制。通过这样的结构设计,高发光效率的激光二极管得以投入实际应用。 目前,为了进一步提高发光效率,将多个有源层堆叠在一起的“堆叠式激光二极管”已经投入实际使用,相关的产品也越来越多样化。这也使激光二极管的应用范围非常广。以往,激光二极管的主要市场是CD和DVD等光盘的提取、激光打印机和MFP(Multi-Function Printer,多功能打印机)的感光等应用;如今,还被用作光学传感器的光源,并且市场需求在不断扩大。特别是近年来,随着数百瓦级的高输出激光二极管的开发,还有望用作汽车自动驾驶所需的LiDAR光源。 激光二极管与自然光和LED光的区别 激光二极管(半导体激光器)和LED都是使用了半导体元件的光源,它们产生光的机制相似。两者的区别在于是否发生“受激辐射”。LED产生的光会直接发射出来(自发辐射),而半导体激光器的发光属于“受激辐射”,利用谐振结构,使自己产生的光在有源层内往复并放大,最终形成相位一致的更强的光。以这种方式发射的激光与LED光和自然光相比,具有以下特性: 1. 指向性和直进性好 LED和自然光的波长、相位和方向是随机的,因此光容易向各个方向分散。而激光则传播方向非常集中,指向性非常高。这是因为半导体激光器的原理使其能够产生波长相同、相位相同、集中在同一方向的光,因此即使距离光源很远,光也几乎不会扩散,仍然会保持一个方向、保持强光直线向前发射。这种特性是激光二极管得以用在众多应用中的原因之一。 2. 单色性好 激光二极管发出的光具有单色性好、波长窄、即使通过棱镜也很难被分解的特点。这是因为激光的波长、相位和方向相同。因此,可以有效产生特定波长的光,从而实现明亮且色彩复现性高的光。从下图也可以看出,与LED光相比,激光集中在特定的波长上。 而太阳光等自然光是各种颜色波长的混合体,因此通过棱镜时会被分解成七种颜色的光。LED光的波长范围也很宽,而波长范围宽会使光的强度将低。 使用棱镜进行分光 由于激光的单色性好,适用于需要特定波长的光学检测和激光治疗等领域。 3. 相干性好,能量密度高 激光的相干性优异,因此多束激光可以相互干涉并形成更强的光。这是因为激光的波长恒定,而该波长的光是相位相同的“相干光”。多个激光二极管发出的光彼此相位一致,因此当光重叠时会相互放大。 而LED和自然光则因为含有多个波长的光,而且这些波长的光相位不同,所以当光重叠时,不会相互干涉并变强。另外,由于激光的方向和相位非常一致,因此聚光性优异,更容易将光能集中在一个方向上。例如,当太阳光通过透镜聚光时,其能量可以燃烧纸张,而激光因为能量更集中,所以甚至可以达到熔化金属的高能量密度。 激光二极管的种类 激光的种类 激光被广泛应用于医疗、工业、通信等领域,根据其介质材料的不同,激光可分为几类。除了本文中介绍的激光二极管外,还有以下几种: 固体激光器:采用固体材料(半导体除外)作为激光介质的激光器,代表性的产品有红宝石激光器和YAG激光器。红宝石激光器是世界上最早的激光器。波长为1064nm的YAG激光器是以矿石为介质的,已被广泛应用于金属加工等工业应用。通常,即使激光介质都是固体的,但采用半导体材料的激光器因其性质有很大不同而被归类为激光二极管。 液体激光器:采用液体作为激光介质的激光器,根据所使用介质的特性主要被分为“有机染料激光器”、“有机螯合物激光器”、“无机激光器”三种。其中具有代表性的是“有机染料激光器”,它使用有机染料(将染料分子溶解在有机溶剂中制成)作为介质,是一种可以通过溶解在有机溶剂中的染料分子连续选择波长(包括可见光)的“波长可调谐激光器”。这种激光器被广泛应用于光谱测量和分析等理学领域。 气体激光器:采用气体作为激光介质。与其他激光器相比,具有激光介质均匀且损耗少、输出功率高的特点。具有代表性的气体激光器之一是二氧化碳激光器(CO2激光器),因其输出功率高且适用于各种材料的加工和焊接而在工业领域中得到广泛应用。另外,还作为激光手术刀被用于医疗领域。 激光二极管(半导体激光器)的种类 激光二极管可以根据光的发射方向进行分类。 边发射激光器(EEL:Edge Emitting Laser):采用将半导体的解理面用作反射镜、使光从解理面发射的结构。 面发射激光器(SEL:Surface Emitting Laser):采用使光从半导体衬底表面垂直发射的结构。 垂直腔面发射激光器(VCSEL:Vertical Cavity Surface Emitting Laser):在半导体衬底表面的垂直方向上形成光学谐振腔,发出的激光束与衬底表面垂直。具有阈值电流小、能以低电流高速调制、温度稳定性好等特点,被广泛应用于光通信和传感器领域。 垂直腔面发射激光器 这些不同种类的激光二极管具有不同的特性,目前已根据它们的特性广泛应用在各种用途中。 激光二极管的封装 目前,激光二极管使用较多的封装形式是CAN封装,这种封装具有圆柱形的金属机身,前端有出光口。通常具有以下特点: 激光二极管的封装:CAN封装示例 激光二极管的封装:框架封装示例 外形尺寸:直径3.8mm~5.6mm,高度2.5mm~6mm。行业标准尺寸5.6mmφ CAN型封装是主流产品。在Quad Beam LD和部分通信系统中,会使用诸如9.0mmφ的较大尺寸产品。在注重成本的光盘领域,也使用框架采用树脂材质的产品。 机身材质:通常采用黄铜、不锈钢、铝等金属。出光口:前端有一个很细的窗口,激光从该窗口射出。出光口通常由硅或玻璃制成,直径范围约100μm~500μm。在注重成本的应用中,也会使用不带盖玻盖片的产品。 引脚排列:CAN封装通常有2个或3个引脚。如果是2个引脚,引脚分别用于激光二极管和PIN光电二极管;如果是3个引脚,则添加了温度感测用的引脚。 近年来,市场上也销售表贴型封装和裸芯片产品,预计激光二极管的应用领域会进一步扩大。 激光二极管的寿命 激光二极管的平均寿命取决于工作环境(使用温度、静电、电源噪声等),通常认为在正常条件(外壳温度25℃)下可连续点亮约10,000小时。如果使用时的工作温度高,会使使用寿命缩短,另外静电放电(ESD)也会导致故障。此外,电源产生的浪涌和噪声也可能会损坏激光器元件。 要想长期使用激光二极管,采用散热器等散热措施、充分的防静电和防浪涌措施、使用噪声滤波器、将输出控制在所需要最低限度等措施,都可以有效延长使用寿命。 激光器发射的光具有很高的功率密度,如果使用不当,即使很小的发射量,也可能会对人体造成伤害,非常危险。因此,使用前必须采取充分的安全措施。 激光二极管的应用 1. 光盘(CD、DVD、BD) 在CD、DVD、BD等被称为“光盘”的数字存储介质中,激光二极管可用于光学拾音器(用于播放和存储数据的装置)。可利用激光可读取(播放)音乐、视频等数据,反之还可以写入(存储)信息。 可利用激光来检测是否存在轻微的凹凸,并将其转换为声音和视频等电信号。CD主要使用红外激光器,DVD主要使用红光激光器。蓝光光盘和下一代DVD的拾音器主要使用蓝光激光器,因为波长越短,激光束越窄,就可以保存和播放更多的信息。 光盘应用示例 光的波长 2. 激光打印机、MFP(Multi-Function Printer,多功能打印机)等 聚光性优异的激光二极管适用于激光打印机和多功能打印机的感光应用。通过照射感光鼓将信号转移到纸上。激光打印机的打印速度快、打印质量好,因而被广泛应用于需要大量印刷的商业用途。 3. 光通信 适用波长1300nm~的红外激光器。这种激光器的功率损耗小,而且可以将大量信息转换成光信号并远距离传输,因而被用作光纤通信的光源。另外还适用于需要高速通信的无线通信系统中的光数据传输应用,在越来越需要长距离高速传输的通信领域,其精度也越来越高。 4. 激光显微镜 激光显微镜通过用激光照射对象物并检测其反射的光来观察对象物。通过使用波长比可见光短的激光,可用更高分辨率进行观察。 5. 激光笔、激光墨线仪 由于激光的直进性好,所以也适用于激光笔。另外还适用于在天花板和墙壁上标记垂直和水平的墨线仪,在建筑工地进行安装和施工时用来做标记。 6. 光学测距和3D传感器 激光二极管的线性度高,精度也高,因此还适用于光学检测。利用激光测量对象物的距离和形状的LiDAR(Light Detection and Ranging),适用于汽车的自动驾驶系统和航空测量,也适用于智能手机和AR耳机等应用。此外,在测速和引力波探测等众多领域的应用也在不断扩大。 7. 烟雾和粉尘传感器 激光二极管还可用作传感器的光源。通过激光与烟雾和空气中的微细粉尘碰撞并散射来检测是否有烟雾或粉尘。 8. 激光治疗 在医疗领域,可利用光动力效应进行疾病诊断和治疗、手术和放射治疗等,例如皮肤治疗、眼科手术、牙科治疗和内窥镜手术等,预计未来应用范围会进一步扩大。 9. 材料加工 激光二极管可以产生高输出功率的光,因此可用作金属、塑料、陶瓷等材料加工的光源。激光加工可实现高精度、高速加工,也适用于难加工材料的切割、钻孔等应用。 10. 娱乐 激光二极管还适用于现场表演、音乐会和投影映射等娱乐应用。利用激光的特性,可以打造出奇幻的演出效果。
激光二极管(半导体激光器)是一种利用半导体pn结将电流转换成光能并产生激光的电子器件。激光二极管具有优异的指向性和直进性,作为一种容易控制能量的光源,被广泛应用于光通信、医疗、感测、数据存储和休闲娱乐等领域。其基本原理是利用电子和空穴复合时产生的光。目前市场上已有不同波长和输出特性的众多产品。本文将详细介绍激光二极管的基本原理、结构、材料、种类和应用。 什么是激光二极管? 激光二极管(Laser Diode)也被称为“半导体激光器”。“激光”是“Light Amplification by Stimulated Emission of Radiation”的首字母缩写,意为“受激辐射光放大”。自然光和LED光即使波长恒定,其相位差不恒定,波形也不整齐。而激光是仅放大特定波长的“相干(coherent)”光。相干光源因其相位差恒定、波形一致,可利用干涉使焦点非常小(数um~),从而可用于光开关和光调制等各种应用中。 历史与发展 激光二极管的历史始于1917年,当时阿尔伯特·爱因斯坦首次将“受激辐射”现象形成理论,奠定了所有激光技术的基础。后来,德国人约翰·冯·诺依曼于1953年在一份未发表的手稿中描述了半导体激光器的概念。1957年,美国人戈登·古尔德提出可以利用受激辐射现象来放大光,并将其命名为“LASER(受激辐射光放大)”。就这样,随着各国科学家对激光器的研究不断取得进展,1962年同质结结构的砷化镓(GaAs)半导体激光器问世,相干光技术得到实际验证,同年,可见光振荡也获得成功。然而,这个时代的半导体激光器存在室温下连续振荡方面的课题。1970年,双异质结构的发现使得室温下的连续振荡成为可能。1970年代之后,半导体激光器技术迅速发展,并被广泛应用于各个领域。 激光二极管的发光原理 激光二极管是一种能发射特定波长激光的半导体器件。其基本结构由p型半导体和n型半导体组成的pn结、发射光的有源层、以及反射光的有涂层的镜面组成。激光二极管的发光原理是当电流流动时电子和空穴复合,此时辐射出的光子在有源层内被放大,并在谐振器内被反射,形成激光。我们先来了解一下激光二极管和LED共有的“发光半导体”的基本结构和发光原理。 二极管的基本结构和材料 半导体是导电性能介于导电的“导体”和不易导电的“绝缘体(非导体)”之间的物质。导体包括铁、金等金属物质,绝缘体包括橡胶、玻璃等物质。半导体可以通过使其导电或不导电来控制电流。另外,在某些使用方式下,还可以在光能和电能之间进行能量转换。 通常,二极管的元件主要由硅(Si)制成。硅(Si)是最典型的半导体材料。硅以“硅石(SiO2:主要成分是二氧化硅的石头”的形式存在于自然界中,是一种资源丰富的材料。因其易于加工而被广泛应用于很多半导体产品中。 硅(Si)作为半导体材料,本来是绝缘体,几乎没有作为载流子的自由电子。因此,通过向硅(Si)中添加其他杂质来提高硅(Si)中的载流子浓度,从而提高其电导率。像这样通过添加杂质来增加载流子的半导体被称为“杂质半导体”。载流子包括自由电子和自由空穴,其中使自由电子载流子增加的半导体称为“n型半导体”,使自由空穴载流子增加的半导体称为“p型半导体”。 * p型半导体(+:positive,空穴多的半导体)、n型半导体(-:negative,电子多的半导体) 二极管的元件是p型半导体和n型半导体连接的结构,称为“pn结”。p型半导体的引脚称为“阳极”,n型半导体的引脚称为“阴极”,电流是从阳极流向阴极的。 二极管的发光原理 当给pn结元件施加正向电压时,空穴(正)和电子(负)向结点方向移动并结合。此时产生的多余能量会被转化为光能,从而实现发光。这种现象称为“复合发光”。 下面我们使用pn结的能带图来说明此时载流子的移动情况。(左)表示未对pn结施加偏压的状态,(右)表示对pn结施加正向偏压的状态。当施加正向电压时,pn结处的能量势垒高度降低,n型区中的多数载流子(电子)如图所示穿过能量势垒并移动到p型区,与p型区的多数载流子(空穴)复合。此时,多余的能量会以光的形式释放出来。另一方面,p型区中的空穴移动到n型区并与n型区中的多数载流子(电子)复合,同样,多余的能量会以光的形式释放出来。 如图所示,导带和价带的能级存在差异,这种能量差称为“带隙”。另外,电子越过带隙从导带迁移到价带称为“电子跃迁”。也就是说,当电子从能量较高的导带跃迁到能量较低的价带并与空穴复合时,相当于其带隙的能量将以光子(光)的形式被释放出来。这就是半导体发光的原理。 激光二极管的材料、波长和发光颜色 激光二极管是一种利用半导体材料实现发光的器件。激光二极管的性能和特性会因所选的材料而有很大不同。普通的二极管会使用硅,但激光二极管会使用化合物半导体,因此其发光效率更高。激光二极管的选材会直接影响其波长、发光效率、工作温度等诸多特性。 下面,我们来详细了解一下激光二极管所用的化合物半导体的作用及其特点。 化合物半导体的作用 普通的二极管元件会采用“硅(Si)”这种材料,而激光二极管元件则使用“化合物半导体”材料。硅(Si)的发光跃迁概率(电流转变为光的概率)较低,几乎不发光,因此不适合用作激光二极管和LED等发光器件的材料。 像激光二极管和LED这类发光的半导体称为“直接跃迁型半导体”,不发光的半导体称为“间接跃迁型半导体”。在半导体中,电子会从能量较高的导带跃迁到能量较低的价带。此时的电子跃迁有“直接跃迁”和“间接跃迁”两种,具体取决于半导体材料。下图是间接跃迁和直接跃迁示意图。纵轴表示能量,横轴表示波数k。 A)发光的半导体“直接跃迁型半导体”(左图) 导带底和价带顶对应相同波数k(电子波的空间振动状态)的半导体称为“直接跃迁型半导体”。当电子在价带和导带之间跃迁时,波数k保持不变。也就是说,导带中被激发的电子将能量差——带隙Eg以光子(光)的形式释放出来,并跃迁到价带,与空穴复合。这可以获得很高的发光效率,从而被用作激光二极管和LED的材料。直接跃迁型半导体包括GaAs/AlGaAs、GaAlP/InGaAlP、GaN/InGaN等半导体。这种以多种元素为材料的半导体称为“化合物半导体”。特别是III族和V族元素相结合的III-V族化合物半导体,被广泛应用于激光二极管和LED等发光器件。 B)不发光的半导体“间接跃迁型半导体”(右图) 导带底和价带顶对应不同波数k的半导体称为“间接跃迁型半导体”。当电子在价带和导带之间跃迁时,波数k会发生变化。这种变化是由于声子(晶格振动的量子)的发射和吸收引起的,其能量会以热量的形式被释放出来。光子(光)的吸收和声子的吸收/发射需要同时发生。光子的发射对应的跃迁概率(发光跃迁概率)较低,发光效率较差,因此这种半导体不能用作发光器件。间接跃迁型半导体有Si和Ge。 波长范围和调整方法 激光二极管和LED材料——化合物半导体,会根据其材料的组成和比例而发出各种波长的光(红色和绿色等可见光、红外光、紫外光等)。基本发光波长取决于有源层——半导体的载流子(激发态的电子和空穴)复合时的带隙能量。 带隙能量(Eg)和波长(λ)之间的关系可以用下列公式来表示:Eg=hν=hc/λ(h:普朗克常数,ν:光子的振动频率,c:光速) 从这个关系式可以看出,带隙能量(Eg)与波长(λ)成反比。也就是说,带隙能量越大,光的波长λ越短。 激光二极管和LED等所用的化合物半导体是通过在半导体材料(衬底)上外延生长pn结的薄膜结晶而制成的。为了堆叠出良好的薄膜晶体,半导体衬底和各结晶层的晶格常数最好要匹配,而且,在选择材料时,不仅要考虑带隙能量,还需要考虑到晶格常数。 上图显示了以III-V族化合物半导体为主的晶格常数与带隙能量(=波长)之间的关系。带隙能量大的材料往往晶格常数小,反之,带隙能量小的材料往往晶格常数大。从该图可以看出,理论上,III-V族化合物半导体可以支持包括紫外光、可见光和红外光在内的广泛波段。例如,该图表明,当在GaAs衬底上生长GaInP的pn结时,晶格常数匹配良好,并且可以获得约650nm的发光波长。 发光颜色与波长的关系 LED可以在很宽的波长范围内发光,单色性好的激光二极管则不同,可发出波长几乎恒定的光。世界上有各种波长的激光,其中肉眼可以看到的波长的光被称为“可见光”。其代表性的波长如下: 可见光(人眼可以看见的光的范围) 材料和发光颜色 激光二极管(半导体激光器)的主要材料如下: 砷化镓(GaAs) : 最常见的激光二极管材料,能够支持很宽的波长范围。半导体制造技术非常发达,可实现高性能。 氮化镓(GaN) : 以开发出高效率的蓝光LED和高输出UV LED而闻名。 磷化铟(InP) : 被用于高速通信应用和近红外激光二极管。 激光二极管的制造工艺通常使用化学气相沉积(CVD)和被称为“分子束外延(MBE)”的技术。利用这些技术,可以生长质量非常高的膜层,从而能够制造出高精度的半导体激光器。另外,激光二极管的发光波长和输出功率可以通过半导体材料选择和制造工艺微调来控制。 激光二极管振荡原理 至此,我们已经介绍了激光二极管和LED共有的“发光半导体”的结构和材料。那么,激光二极管和LED之间有哪些不同呢?“激光(LASER)”是“Light Amplification by Stimulated Emission of Radiation”的首字母缩写,意为“受激辐射光放大”。顾名思义,激光的基本条件是受激辐射而放大的光,这一点与LED不同。接下来,我们将介绍激光二极管振荡的原理——光的“受激辐射”和“放大”。 受激辐射光放大 在前面提到过,在半导体中,当电子从导带跃迁到价带并与空穴复合时,其能量将以光的形式释放出来。发光方式有“自发辐射”和“受激辐射”两种。“自发辐射”是导带中的电子在彼此不相互作用的前提下分别与价带中的空穴复合并发光,一次复合辐射出一个光子。 正如前面提到的,光的波长取决于半导体中载流子复合时的带隙能量大小。然而,在实际的复合中,具有与带隙能量不同的较大能量的电子会与价带中的空穴复合,因此自发辐射的光具有随机的光子方向和相位。 而“受激辐射”中,当相当于导带和价带之间的带隙能量Eg的光λ1通过时,导带中的电子因与光的相互作用被激发,并跃迁到价带的基态。此时,会发射出能量(波长)相同、相位相同的光(光子)。最初只有一个光子,现在变成两个,这两个光子进一步激发导带的电子,变为四个光子……就这样,通过受激辐射不断增加,形成波长和相位相同的强光。以上就是激光的受激辐射产生原理。 光学谐振器 受激辐射具有光放大作用,要想实现激光振荡,就需要提高因该放大作用而获得的增益。因此,激光二极管采用的是两个反射面(镜面)彼此面对面放置,使光在它们之间反复往复的结构。这种光放大介质两侧具有平行反射面的结构称为“法布里-珀罗(Fabry-Perot)谐振器”,谐振器内部称为“谐振腔”。这种谐振器在大多数激光器(不仅仅是半导体激光二极管)的激光振荡中都发挥着重要作用。 但是,仅仅通过谐振腔使光往复,并不能让光发射到激光二极管外部。所以,为了使光从反射面射到外部,需要降低某一反射面的反射率,也就是需要反射一部分光并让另一部分光穿透过去。将反射面的反射率(或透射率)设置到最合适,是有效提高激光二极管发光效率的一个非常重要的因素。光在谐振腔内往复,当光被充分放大并达到一定强度时,就会穿透反射率较低的反射面。这就是激光振荡的原理。 通常,激光二极管采用将半导体的解理面用作反射面、光从解理面射出的结构。具有这种结构的激光二极管称为“边发射激光器(EEL:Edge Emitting Laser)”。 激光二极管的结构(光限制、载流子控制) 为了实现发光效率高的、实用的激光二极管,迄今为止,已经研究了多种结构。“光和载流子的限制”是有效提高激光二极管发光效率的重要因素。首先,我们来了解一下光限制的基本原理——光波导。 光波导 光具有容易被限制在高折射率部分的性质。在光波导中,光传播的部分称为“纤芯”,其周围的部分称为“包层”。纤芯的折射率n2高于包层的折射率n1,由于折射率的差异,光被限制在纤芯中。光在纤芯和包层之间的界面上反复进行全反射的同时向前传播。 利用这种光波导的例子之一是“光纤”。光纤由“纤芯”(负责光信号的传输)及其周围的“包层”以及表面涂层组成。由于包层使用的是折射率低于纤芯的材料,因此光被限制在纤芯内,并呈锯齿形路线在纤芯内向前传播。光的这些性质也被用于激光二极管的器件结构中。 双异质结 结构 为了有效提高光提取效率(提高发光效率),LED和激光二极管所用的半导体采用的是双异质结结构。通常,由不同材料组成的结称为“异质结”,具有两个异质结称为“双异质结”。双异质结呈三明治型结构,称为“有源层”的半导体层被夹在称为“包层”的n型和p型半导体之间。“有源层”是带隙能量较小的、关键的发光半导体,“包层”是带隙能量比有源层大的半导体。 双异质结构有“光限制”和“载流子限制”两种作用。 光限制:通过使用折射率高的层作为有源层,使用折射率低的层作为包层,可以像光纤一样将光限制在中央的有源层区域。 载流子限制: 另外还可以将载流子(电子和空穴)限制在有源层内。下面我们使用双异质结的能带图来介绍其具体作用。 在上图中,左侧是未向双异质结施加偏压的状态。 n型包层中存在很多电子,但有源层和n型包层之间有能量势垒,另外由于带隙差,有源层和p型包层之间也存在能量势垒。因此,电子不能进入有源层,而是滞留在n型包层中。而空穴则由于有源层和p型包层之间没有能量势垒而能够进入有源层。 右图表示对该结构施加正向电压时的状态。 n型包层中的电子由于能量势垒消失而可以移动到有源层。但是,由于带隙差,有源层和p型包层之间的能量势垒仍然存在,因此电子会被阻挡并滞留在有源层中。来自p型包层的空穴也同样滞留在有源层中。来自n型包层的电子和来自p型包层的空穴会在有源层内复合发光。这种结构可将载流子(电子和空穴)限制在有源层中,载流子的密度会非常高,从而使复合率变高。这种效应称为“载流子限制效应”。利用这种效应,可以制造出发光效率高的半导体。 光限制和载流子控制 激光二极管元件的基本结构是双异质结构。整个p型面和n型面附有电极的激光器称为“广域激光二极管(Broad area laser,大面积激光二极管)”。在这种结构中,电流的流动范围很宽,因此激光会从有源层的较宽范围发射出来。这种结构需要非常大的电流,不适合实际应用。针对这种情况,业内设计出使电流仅注入到部分有源层的条型结构激光器。其中,“内部条形激光器”是主流产品,这种激光器在有源层周围嵌入了折射率比有源层低的层。与光纤的原理相同,光会被限制在有源层中。 采用这种结构的激光器,振荡模式稳定,实用性强,因此目前大多数激光二极管都采用这种结构。 也就是说,激光二极管的有源层结构不仅使光由于双异质结在垂直方向上被限制,还由于嵌入条形结构而在水平方向上被限制。通过这样的结构设计,高发光效率的激光二极管得以投入实际应用。 目前,为了进一步提高发光效率,将多个有源层堆叠在一起的“堆叠式激光二极管”已经投入实际使用,相关的产品也越来越多样化。这也使激光二极管的应用范围非常广。以往,激光二极管的主要市场是CD和DVD等光盘的提取、激光打印机和MFP(Multi-Function Printer,多功能打印机)的感光等应用;如今,还被用作光学传感器的光源,并且市场需求在不断扩大。特别是近年来,随着数百瓦级的高输出激光二极管的开发,还有望用作汽车自动驾驶所需的LiDAR光源。 激光二极管与自然光和LED光的区别 激光二极管(半导体激光器)和LED都是使用了半导体元件的光源,它们产生光的机制相似。两者的区别在于是否发生“受激辐射”。LED产生的光会直接发射出来(自发辐射),而半导体激光器的发光属于“受激辐射”,利用谐振结构,使自己产生的光在有源层内往复并放大,最终形成相位一致的更强的光。以这种方式发射的激光与LED光和自然光相比,具有以下特性: 1. 指向性和直进性好 LED和自然光的波长、相位和方向是随机的,因此光容易向各个方向分散。而激光则传播方向非常集中,指向性非常高。这是因为半导体激光器的原理使其能够产生波长相同、相位相同、集中在同一方向的光,因此即使距离光源很远,光也几乎不会扩散,仍然会保持一个方向、保持强光直线向前发射。这种特性是激光二极管得以用在众多应用中的原因之一。 2. 单色性好 激光二极管发出的光具有单色性好、波长窄、即使通过棱镜也很难被分解的特点。这是因为激光的波长、相位和方向相同。因此,可以有效产生特定波长的光,从而实现明亮且色彩复现性高的光。从下图也可以看出,与LED光相比,激光集中在特定的波长上。 而太阳光等自然光是各种颜色波长的混合体,因此通过棱镜时会被分解成七种颜色的光。LED光的波长范围也很宽,而波长范围宽会使光的强度将低。 使用棱镜进行分光 由于激光的单色性好,适用于需要特定波长的光学检测和激光治疗等领域。 3. 相干性好,能量密度高 激光的相干性优异,因此多束激光可以相互干涉并形成更强的光。这是因为激光的波长恒定,而该波长的光是相位相同的“相干光”。多个激光二极管发出的光彼此相位一致,因此当光重叠时会相互放大。 而LED和自然光则因为含有多个波长的光,而且这些波长的光相位不同,所以当光重叠时,不会相互干涉并变强。另外,由于激光的方向和相位非常一致,因此聚光性优异,更容易将光能集中在一个方向上。例如,当太阳光通过透镜聚光时,其能量可以燃烧纸张,而激光因为能量更集中,所以甚至可以达到熔化金属的高能量密度。 激光二极管的种类 激光的种类 激光被广泛应用于医疗、工业、通信等领域,根据其介质材料的不同,激光可分为几类。除了本文中介绍的激光二极管外,还有以下几种: 固体激光器:采用固体材料(半导体除外)作为激光介质的激光器,代表性的产品有红宝石激光器和YAG激光器。红宝石激光器是世界上最早的激光器。波长为1064nm的YAG激光器是以矿石为介质的,已被广泛应用于金属加工等工业应用。通常,即使激光介质都是固体的,但采用半导体材料的激光器因其性质有很大不同而被归类为激光二极管。 液体激光器:采用液体作为激光介质的激光器,根据所使用介质的特性主要被分为“有机染料激光器”、“有机螯合物激光器”、“无机激光器”三种。其中具有代表性的是“有机染料激光器”,它使用有机染料(将染料分子溶解在有机溶剂中制成)作为介质,是一种可以通过溶解在有机溶剂中的染料分子连续选择波长(包括可见光)的“波长可调谐激光器”。这种激光器被广泛应用于光谱测量和分析等理学领域。 气体激光器:采用气体作为激光介质。与其他激光器相比,具有激光介质均匀且损耗少、输出功率高的特点。具有代表性的气体激光器之一是二氧化碳激光器(CO2激光器),因其输出功率高且适用于各种材料的加工和焊接而在工业领域中得到广泛应用。另外,还作为激光手术刀被用于医疗领域。 激光二极管(半导体激光器)的种类 激光二极管可以根据光的发射方向进行分类。 边发射激光器(EEL:Edge Emitting Laser):采用将半导体的解理面用作反射镜、使光从解理面发射的结构。 面发射激光器(SEL:Surface Emitting Laser):采用使光从半导体衬底表面垂直发射的结构。 垂直腔面发射激光器(VCSEL:Vertical Cavity Surface Emitting Laser):在半导体衬底表面的垂直方向上形成光学谐振腔,发出的激光束与衬底表面垂直。具有阈值电流小、能以低电流高速调制、温度稳定性好等特点,被广泛应用于光通信和传感器领域。 垂直腔面发射激光器 这些不同种类的激光二极管具有不同的特性,目前已根据它们的特性广泛应用在各种用途中。 激光二极管的封装 目前,激光二极管使用较多的封装形式是CAN封装,这种封装具有圆柱形的金属机身,前端有出光口。通常具有以下特点: 激光二极管的封装:CAN封装示例 激光二极管的封装:框架封装示例 外形尺寸:直径3.8mm~5.6mm,高度2.5mm~6mm。行业标准尺寸5.6mmφ CAN型封装是主流产品。在Quad Beam LD和部分通信系统中,会使用诸如9.0mmφ的较大尺寸产品。在注重成本的光盘领域,也使用框架采用树脂材质的产品。 机身材质:通常采用黄铜、不锈钢、铝等金属。出光口:前端有一个很细的窗口,激光从该窗口射出。出光口通常由硅或玻璃制成,直径范围约100μm~500μm。在注重成本的应用中,也会使用不带盖玻盖片的产品。 引脚排列:CAN封装通常有2个或3个引脚。如果是2个引脚,引脚分别用于激光二极管和PIN光电二极管;如果是3个引脚,则添加了温度感测用的引脚。 近年来,市场上也销售表贴型封装和裸芯片产品,预计激光二极管的应用领域会进一步扩大。 激光二极管的寿命 激光二极管的平均寿命取决于工作环境(使用温度、静电、电源噪声等),通常认为在正常条件(外壳温度25℃)下可连续点亮约10,000小时。如果使用时的工作温度高,会使使用寿命缩短,另外静电放电(ESD)也会导致故障。此外,电源产生的浪涌和噪声也可能会损坏激光器元件。 要想长期使用激光二极管,采用散热器等散热措施、充分的防静电和防浪涌措施、使用噪声滤波器、将输出控制在所需要最低限度等措施,都可以有效延长使用寿命。 激光器发射的光具有很高的功率密度,如果使用不当,即使很小的发射量,也可能会对人体造成伤害,非常危险。因此,使用前必须采取充分的安全措施。 激光二极管的应用 1. 光盘(CD、DVD、BD) 在CD、DVD、BD等被称为“光盘”的数字存储介质中,激光二极管可用于光学拾音器(用于播放和存储数据的装置)。可利用激光可读取(播放)音乐、视频等数据,反之还可以写入(存储)信息。 可利用激光来检测是否存在轻微的凹凸,并将其转换为声音和视频等电信号。CD主要使用红外激光器,DVD主要使用红光激光器。蓝光光盘和下一代DVD的拾音器主要使用蓝光激光器,因为波长越短,激光束越窄,就可以保存和播放更多的信息。 光盘应用示例 光的波长 2. 激光打印机、MFP(Multi-Function Printer,多功能打印机)等 聚光性优异的激光二极管适用于激光打印机和多功能打印机的感光应用。通过照射感光鼓将信号转移到纸上。激光打印机的打印速度快、打印质量好,因而被广泛应用于需要大量印刷的商业用途。 3. 光通信 适用波长1300nm~的红外激光器。这种激光器的功率损耗小,而且可以将大量信息转换成光信号并远距离传输,因而被用作光纤通信的光源。另外还适用于需要高速通信的无线通信系统中的光数据传输应用,在越来越需要长距离高速传输的通信领域,其精度也越来越高。 4. 激光显微镜 激光显微镜通过用激光照射对象物并检测其反射的光来观察对象物。通过使用波长比可见光短的激光,可用更高分辨率进行观察。 5. 激光笔、激光墨线仪 由于激光的直进性好,所以也适用于激光笔。另外还适用于在天花板和墙壁上标记垂直和水平的墨线仪,在建筑工地进行安装和施工时用来做标记。 6. 光学测距和3D传感器 激光二极管的线性度高,精度也高,因此还适用于光学检测。利用激光测量对象物的距离和形状的LiDAR(Light Detection and Ranging),适用于汽车的自动驾驶系统和航空测量,也适用于智能手机和AR耳机等应用。此外,在测速和引力波探测等众多领域的应用也在不断扩大。 7. 烟雾和粉尘传感器 激光二极管还可用作传感器的光源。通过激光与烟雾和空气中的微细粉尘碰撞并散射来检测是否有烟雾或粉尘。 8. 激光治疗 在医疗领域,可利用光动力效应进行疾病诊断和治疗、手术和放射治疗等,例如皮肤治疗、眼科手术、牙科治疗和内窥镜手术等,预计未来应用范围会进一步扩大。 9. 材料加工 激光二极管可以产生高输出功率的光,因此可用作金属、塑料、陶瓷等材料加工的光源。激光加工可实现高精度、高速加工,也适用于难加工材料的切割、钻孔等应用。 10. 娱乐 激光二极管还适用于现场表演、音乐会和投影映射等娱乐应用。利用激光的特性,可以打造出奇幻的演出效果。
01 高压上电流程 新能源汽车高压上电,即动力电池输出高压电,供给车辆高压用电设备,高压控制盒、电机控制器、驱动电机等。 图中MSD表示手动维修开关,V1监测MSD的连接良好、动力电池串联回路连接完好,V2监测预充电阻后的电压,V3监测对负载的预充电压,通过比较V1、V2、V3电压值来判断各接触器的连接状态,PTC加热元件对动力电池系统保温。 行车模式下的高压上电过程,VCU控制负极接触器闭合,再由BMS控制预充电接触器,在检测到预充电压达到目标电压值后,判断预充电成功,闭合正极接触器,断开预充接触器,完成行车模式的高压上电过程,通过对比分析V1、V2、V3电压值来判断各接触器的连接状况。 通过采集行车模式下正常上电过程V1、V2、V3电压值,绘制得到图2曲线图。 由图2可知,上电过程的t1时刻,动力电池系统MSD正常连接,模组之间串联良好,V1电压值为动力电池的额定电压500V;t2时刻,负极接触器闭合,此时V2与预充电阻串联(图1),V2电压低于V1;t3时刻,预充接触器闭合,动力电池系统开始对外部高压电器预充电,V2与V3并联,V2的电压被拉低,再V2与V3电压同时升高;t4时刻预充电完成V2=V3≥90%V1,闭合正极接触器;t5时刻预充接触器断开,上电完成。 02 控制策略 钥匙置ON挡后,VCU被唤醒,VCU自检完成之后,向CAN线发送第1帧报文请求闭合高压互锁回路使能,同时唤醒MCU以及BMS,BMS自检正常后监控互锁回路信号、检测高压回路绝缘状况,检查动力电池SOC状态,内部单体电压以及电池温度,判断整车当前的充电或是行车模式,符合高压上电条件后,执行上电程序。实时监控驾驶员的钥匙请求,当keyon=0后,进入低压电/高压电的下电流程。 其中,高压回路的绝缘状况检测,将动力电池高压电源作为检测电源,在动力电池的正负极以及车辆底盘之间建立桥式阻抗网络(图4)。通过控制电子开关管T1、T2的通断,改变A、B之间的等效电阻,通过计算BMS得到绝缘阻值,并进行绝缘性能的判定。 另外,整车在高压上电前须确保高压回路的完整性,使高压处于封闭的环境下运行,通常BMS发出并监测12V低压电气信号,检测高压部件、高压接插件、护盖等的连接完整性。 03 故障诊断 新能源汽车无法上高压,READY灯点亮失败,类似这种故障时有发生,且各品牌各车型都有出现类似案例,引起上电失败的原因也层出不穷。从上电过程总结,第1类初始化阶段,各控制器未完成自检,动力电池SOC太低,单体压差过大,动力电池过温/过冷;第2类如绝缘阻值过低,绝缘监测报故障;互锁回路不完整,无法监测到低压电气信号,报互锁故障;第3类执行高压上电阶段,接触器的非正常通断造成预充电的失败或超时。(图5、图6) 图5所示的上电故障发生在负极接触器闭合后的t2时刻,负极接触器闭合后,检测V2电压小于V1电压的50%,且未到t3时刻,预充接触器还未闭合,而V3电压逐渐升高,已经开始了预充电过程。于是设置判定条件:负极接触器闭合V2≤50%V1,且120~150ms后,V2电压达到V1电压的80%,则判定为预充接触器粘连故障。 图6所示的上电故障发生在t4时刻,预充完成,闭合正极接触器。由于正极接触器未能正常闭合,100ms后断开预充接触器,预充电容通过放电电阻释放电能,V3电压降低。于是设置判定条件为:闭合正极继电器,断开预充继电器后,V3电压没有达到V1电压的95%以上,则判定正极继电器断路。动力电池执行上高压阶段出现上电失败的其他案例,通过采集分析V1、V2、V3的电压数据,判定出在设定的上电时刻有没有执行相应的指令,从而推断出故障点的位置,如MSD的未连接或熔断器烧坏,负极接触器粘连、预充接触器粘连、预充电阻烧坏、正极接触器粘连等。 04 结论 针对新能源汽车上电故障问题,本文以某型纯电动汽车为例,分析其上电流程及控制策略,得出以下建议。1)各控制器自检未完成,检查各控制器的“ON”、“CHG”或“WAKEUP”信号以及相互间CAN通信状况。2)绝缘故障,检查高压线束破损情况,检查高压插接器有无泥沙杂物进入,分别检查高压部件、高压线束正负极对车身搭铁的绝缘阻值。3)高压互锁故障,依车型手册找出互锁回路连接状况,检查互锁回路的导通情况,检查互锁回路的电气信号。4)动力电池执行上高压阶段,通过采集分析V1、V2、V3的电压数据,判定出在设定的上电时刻有没有执行相应的指令,从而推断出故障点的位置。
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。 想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel) CAN有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。 近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。
随着 ICT 技术的发展,单 SOC 算力可以承担更多业务,网络带宽拓展及低时延、区分服务等特性使得业务部署、功能分配更加灵活,比如 : 感知、融合、规划、控制、执行可分离解耦,汽车业务功能可分可合、可软件定义。电子电气架构从分布式架构到域集中式架构,再到中央集中式架构转变,分散的 ECU功能集成到域控制器甚至车载中央计算机,这就是多域融合。 汽车电子底层硬件不再是由单一芯片提供简单的逻辑计算,而是需要复杂的多核 SoC 芯片提供更为复杂控制逻辑以及强大的算力支持。但是多域业务具有不同的技术需求,比如座舱域 IVI 业务强调交互体验、应用生态丰富,比较适合的操作系统是 Android;仪表盘、辅助驾驶有实时性、可靠性要求,操作系统倾向于 RTLinux、RTOS;智驾域强调大算力融合感知、推演规划,也有实时性、可靠性要求,也会选择 RTLinux、RTOS。在域融合的同时,要保证关键业务的安全可靠,也要考虑应用生态的可持续性兼容,这就需要有资源隔离技术来支撑在同一 SOC 上切分资源,可并发运行多种操作系统,保障互不干扰。 资源隔离技术有多种,从硬件底层逐层向上包括硬件隔离、虚拟化隔离、容器隔离、进程隔离等。硬件隔离的隔离性最好,单隔离域的性能、安全可靠性最好,但灵活性、可配置性差,不能实现硬件共享,导致整个系统的资源利用率差,不能充分达到软件定义汽车的目标。容器隔离、进程隔离可以更轻量级地实现业务隔离,但还是在同一个操作系统内,存在着资源干扰、相互安全攻击的隐患,并且无法支持异构操作系统业务域融合,影响传统业务继承,不利于生态发展。在众多的资源隔离技术中,虚拟化是安全可靠、弹性灵活的优选方案,是软件定义汽车的重要支撑技术。典型应用场景如图 1 所示: 图1 虚拟化典型应用场景 01 技术形态 Hypervisor 直译即 “超级监督者” ,也称为虚拟机监控程序(VMM)。如图 2 所示,Hypervisor处于 SoC 硬件平台之上,将实体资源(如 CPU、内存、存储空间、网络适配器、外设等 ) 转换为虚拟资源,按需分配给每个虚拟机,允许它们独立地访问已授权的虚拟资源。Hypervisor 实现了硬件资源的整合和隔离,使应用程序既能共享 CPU 等物理硬件,也能依托不同的内核环境和驱动运行,从而满足汽车领域多元化应用场景需求。 图2 虚拟化在系统中的位置 在汽车领域,Hypervisior 主要完成以下任务: CPU 虚拟化:为虚拟机提供 VCPU 资源和运行环境; 内存虚拟化:负责为其自身和虚拟机分配和管理硬件内存资源; 中断虚拟化:发生中断和异常时,按需将中断和异常路由到虚拟机进行处理; 虚拟机设备模拟:根据需求创建虚拟机可以访问的虚拟硬件组件; 硬件支持 BSP:提供 Hypervisor 在 SoC 上运行的板级支持包,如串口驱动; 虚拟机资源配置:对虚拟机的 CPU,内存,IO 外设等资源进行配置和管理; 虚拟机通信:为虚拟机提供 IPC,共享内存等通信机制。 虚拟机调度:为虚拟机提供优先级和时间片等调度算法; 虚拟机生命周期管理:创建,启动和停止虚拟机; 虚拟机调测服务:提供控制台,日志等调试功能; 在汽车领域,Hypervisior 还面临如下挑战: 轻量高效。Hypervisor 在带来软件定义的灵活性的同时,也导致了软件栈层次增加,不可避免会有性能损耗。汽车领域的成本敏感特性,注定了降低 CPU、存储、网络、GPU 等外设性能损耗的需求贯穿整车项目始终,因此 Hypervisor 的轻量和高效十分重要; 安全可靠。相较于互联网领域看重的资源动态分配和闲置利用,汽车领域更看重 Hypervisor 的实时性、可靠性、安全性; 便捷适配。在汽车领域,芯片类型和操作系统丰富多样,嵌入式虚拟化的一大特点就是异构,Hypervisor 必须具备快速适配不同的底层硬件和上层操作系统的能力。 02 技术发展趋势 2.1 云边端虚拟化关键技术差异化 虚拟化技术最早可以追溯到 20 世纪 60 年代,IBM 开发了虚拟机监视器软件,将计算机硬件虚拟分割成一个或多个虚拟机,可支持多名用户对大型计算机的同时、交互的访问。随着 21 世纪通用服务器算力的提升,云计算蓬勃发展,作为底层支撑技术的云虚拟化也快速迭代演进。后来算力从云、边、端逐步下沉,也就伴随着出现了边缘虚拟化、端侧嵌入式虚拟化。它们的典型架构、关键技术需求如图 3 所示。 图3 云边端虚拟化典型架构及关键技术需求 (1) 云侧虚拟化 其特点是硬件平台基本同构,大量节点构成集群,架构设计以吞吐能力优先,要支持多业务并发,虚拟化要满足集群负载均衡、节能降耗的资源调度策略,在进行跨节点虚拟机调配过程中,要保证业务无中断迁移。虚拟机故障时,要能保证从检查点恢复,减少业务损失,虚拟机要能支持 CPU 算力、内存、存储空间、网络、GPU、外设等能力的弹性扩展,还要能超分配,以便提升数据中心的运营收益。 (2) 边侧虚拟化 是在某些特定业务的边缘节点上,采用通用 ICT 架构,支持多种业务的动态部署,典型如 SDN、NFV。其技术特点是:基于通用硬件平台、行业定制的管理部署平台,实现软硬解耦、软件定义,多功能节点按需部署、弹性组网,一般会采用 1+1 或者 N+1 冗余方式保证业务高可用,在 5G 电信网元中需要考虑 5G 业务端到端实时性,Hypervisor、虚拟机、通信协议栈都需要设计考虑。 (3) 端侧虚拟化 端侧典型特点是异构,其芯片架构、处理能力都差异较大。一般是单芯片方案,不存在着集群、主备间的虚拟机迁移,因此比较强调高安全、单节点高可靠,比如会有功能安全 ASIL 等级要求,同时对于实时性、确定性有更强的要求。另外,端侧资源更加有限、成本更敏感,因此要求 Hypervisor 轻量化、高性能。 2.2 虚拟化模型趋势 Hypervisor 可以划分为两大类,一类是 Type1 裸机型,Hypervisor 直接运行在硬件设备上的,也叫做 Bare-Metal Hardware Virtualization(裸机虚拟化环境);一类是 Type2 主机托管型,也叫做 Hosted Virtualization (主机虚拟化环境)。图 4 展示了两种 Hypervisor 的分层架构。 图4 Type1和Typer2型Hypervisor Type2 型 Hypervisor 需要借助宿主操作系统来管理 CPU、内存、网络等资源,由于 Hypervisor 和硬件之间存在一个宿主操作系统,Hypervisor 及 VM 的所有操作都要经过宿主操作系统,所以就不可避免地会存在延迟、性能损耗,同时宿主操作系统的安全缺陷及稳定性问题都会影响到运行在之上的 VM(虚拟机),所以 , Type-2 型 Hypervisor 主要用于对性能和安全要求不高的场合,比如 : 个人 PC 系统。 Type1 型的 Hypervisor 不依赖主机操作系统,其自身具备操作系统的基础功能。设计上更简洁,直接运行于硬件之上,整体代码量和架构更为精简,对内存和存储资源要求更少,可满足自动驾驶车控系统功能安全等级要求,也具备进行形式化验证的条件。所以汽车操作系统更适合使用 Type 1 型 Hypervisor。 随着微内核操作系统技术的发展,很多基于微内核操作系统设计的 Hypervisor 依赖的 Host OS 已经非常精简,只包括基本的、不变的功能,如 : CPU 调度和内存管理,设备驱动和其他可变组件处于内核之外,这类 Hypervisor 应当归于 Type1、还是 Type2,业内存在分歧。总体来说,微内核 Hypervisor 更小、更稳定、扩展性更好,更适合用于嵌入式虚拟化场合。 2.3 Hypervisor 与虚拟机协作技术路线 (1) 全虚拟化 最初的虚拟化是通过软件模拟具有完整硬件系统功能的、运行在一个隔离环境中的计算机系统,即通过软件虚拟硬件设备提供给 GuestOS 使用,优点是 GuestOS 不感知外部真实硬件环境、不用改动。由于 Guest OS 中每次访问全虚拟化硬件都要陷入到 Hypervisor 中,直接导致该方式虚拟的硬件性能较差,一般只用来模拟如串口等比较简单的硬件。对硬件的模拟可以在 Hypervisor 中直接模拟,也可以将请求传递到其他 VM 中进行模拟,如在某一 VM 中通过 QEMU 进行模拟。 (2) 硬件辅助虚拟化 Intel 最早提出硬件辅助虚拟化技术,由硬件直接提供共享功能,支持多 GuestOS 的访问,减少软件虚拟技术带来的延时和性能损耗。Intel 提出了分别针对处理器 & 内存、IO、网络的 Intel VT-x、Intel VT-d 和 Intel VT-c 技术等。随着 ARM 算力提升,从移动端向边缘、甚至云算力中心发展,ARM 也在不断增强其硬件辅助虚拟化技术,比如 stage 2 页表转换、虚拟异常等。 (3) 半虚拟化 在硬件辅助虚拟化技术不完善、不强大的发展阶段,或者对于某些复杂外设的共享复用,为避免全虚拟化的性能问题,可以采用 GuestOS 与 Hypervisor 协作的半虚拟化技术。这种技术一般应用于 IO 设备虚拟化,采用前后端的方式来实现 IO 设备虚拟化,在 Guest OS 中实现前端驱动,在 Hypervisor 或 Host OS 中实现后端驱动,前后端一般按照 VirtIO 标准来实现,后端驱动作为硬件的实际访问方。Guest OS 中前端驱动通过 Virt Queue 等通信机制与后端驱动进行通信,前端驱动将 Guest OS 的请求传递给后端驱动,后端驱动将请求发送给硬件驱动,处理完后将结果再传回给前端驱动。半虚拟化相对全虚拟化实现的硬件性能较好,且可实现相对比较复杂的硬件,比如 : 块设备,网卡,显示设备等。具体如图 5 所示。 图5 半虚拟化Pass-through资源分配 Hypervisor 支持将硬件资源直接分配给其上虚拟机中 Guest OS 使用,无需通过 Hypervisor 进行地址和指令翻译。例如 : 串口资源、USB 资源等接口比较丰富的资源可以通过 Pass-through 直接分配给某虚拟机使用。设备控制器一般都是以 MMIO 方式来访问的,所以只需要将控制器地址区域映射到 VM 就可实现设备控制器的分配,同时还需要分配一个设备硬件中断对应的虚拟中断到该 VM,直接透传的方式就是 VM 独占访问该硬件,所以在性能上是最好的。 03 关键技术解读 3.1 CPU 虚拟化和节能降耗技术 车载高性能处理器一般采用多核 CPU 架构。在 SMP(Symmetric Multi-Processing 对称多处理)架构下,Hypervisor 调度器会根据 CPU 的亲和性配置让客户机操作系统在指定的 CPU 上运行,虚拟机的操作系统可按照自己的调度方式,比如:优先级方式在 CPU 上进行任务调度。为了最大化地利用系统资源,Hypervisor 也支持多个虚拟机对某个 CPU 的共享使用。在共享核上,Hypervisor 可通过优先级或时间分区方式对虚拟机进行调度,确保虚拟机运行时间和调度策略是确定的。Hypervisor 的调度算法需要确保不能够出现分区内某个虚拟机出现死循环或故障而长期占用处理器资源,导致其他虚拟机的业务无法得到合理时间配额的问题。 虚拟机调度还需要考虑节能降耗问题,在工作负载较高的情况下系统提升主频提升用户体验,在工作负载较低的情况下系统自动节能降频提升续航。车载高性能处理器本身为了节能降耗需求设计为大小核架构,CPU 以及之上运行的复杂操作系统需要支持大小核调度,动态调频,低功耗设置,关闭 CPU 核,休眠(Suspend to RAM/Suspend to Disk)等节能降耗功能。系统虚拟化后,CPU 等物理资源都需要Hypervisor 才能直接访问,Hypervisor 调度算法也需要完成对虚拟机节能降耗的支持。 3.2 IO 设备虚拟化 出于性能考虑,一般嵌入式领域多使用半虚拟化技术。半虚拟化技术需要 Guest OS 中的前端驱动与Hypervisor 中的后端驱动配合实现。前端驱动将 Guest OS 的请求通过 Hypervisor 提供的通信机制发送给后端驱动,后端驱动通过调用物理驱动实现对设备的访问。这就涉及到不同厂商的 Guest OS 与不同厂商的 Hypervisor 生态对接问题。 Virtio 是目前最流行的一种 I/O 半虚拟化解决方案。Virtio 是 OASIS 标准组管理的开放协议和接口,以使得虚拟机能够标准化方式访问 IO 设备。Virtio 于 2016 年 3 月正式标准化,2020 发布 V1.1 版本。Virtio 标准采用通用和标准化的抽象模型,支持设备类型不断增加,性能高效,在云计算领域广泛应用,开源活跃度高,Linux 等操作系统已有稳定的前端驱动代码。大部分商业和开源 Hypervisor 都已经支持Virtio 标准。 Virtio 是车载行业比较常用的半虚拟化技术的实现,如图 6 所示,在 Guest OS 内部虚拟一条设备总线 Virtio-bus,通过 Virtio Ring 双向通信机制,前端驱动与挂载在 Virtio-bus 上遵循 Virtio 标准的后端虚拟设备,进行访问与通信。Virtio 提供了全面的 Virtio 总线和设备控制接口,包括 virtio-net, virtio-blk, virtio-console, virtio-input 等。 图6 Virtio虚拟化实现模型 利用 virtio-blk 技术实现块设备共享 块设备是使用缓存机制读写的存储设备,分配给 Hypervisor 所在的操作系统进行管理。virtio-blk driver 是符合 virtio 标准的块设备驱动,vdev virtio block 是后端的虚拟块设备,virtio blk driver 通过该vdev 设备完成对物理块设备的读写,并获取执行结果。 利用 virtio-net 技术实现跨系统通信 Virtio-net 实现了多系统间点对点的通信,Guest 系统内部的 virtio-net driver 通过 virtqueue 与Hypervisor 所在系统的 virtio-net 设备进行全双工通信,实现多系统之间的控制类、配置类的指令、数据的交互。适合音视频流以外的数据传输,稳定性较好,因 virtqueue 的控制逻辑复杂,对实时性有一定影响。 利用 virtio 技术实现触摸共享 触摸设备是字符型设备,通过 virtio-input driver、vdev-input 实现前端驱动和后端设备。设备端通过 virtqueue 向驱动上报触摸坐标数据。 3.3 实时性技术 实时性是嵌入式实时操作系统的关键性能指标。Hypervisor 的实时性是整个系统实时性的基础,如果 Hypervisor 无法及时调度到客户机操作系统运行,客户机操作系统也不能取得较好的实时性指标。衡量 Hypervisor 实时性主要指标包括中断延迟和调度延迟。中断延迟以硬件发生中断时刻为起始时间,以虚拟机收到 Hypervisor 注入的中断时刻为截止时间,在各种压力情况下最长延时时间即为中断延时。调度延迟是指以高优先级的虚拟机进程就绪为起始时刻,以该高优先的虚拟机进程得到调度运行为截止时刻,在系统各种压力情况下最长的延时时间即为调度延迟。 中断虚拟化后,当外界中断产生时,Hypervisor 收到并以最快的速度注入到虚拟机,使得 Hypervisor 对虚拟机中断处理时间足够少。Hypervisor 优化虚拟机的切换时间,尽量减少 Hypervisor 上关中断和关抢占的时间,尽量少使用内核锁,当高优先级的虚拟机需要切换运行时,能最快速度切换至高优先级虚拟机上运行。 3.4 安全和可靠性技术 功能安全、信息安全和可靠性是车控操作系统产品可靠安全运行的必要组成部分。Hypervisor 为智能汽车域控制器提供基础运行环境,其安全性和可靠性是保证整个系统功能安全和可靠的基础和核心。Hypervisor 需按照汽车功能安全 ISO26262 ASIL-D 最高标准进行设计,开发和测试,其功能安全需求由域控制器产品的安全需求分解产生。 Hypervisor 上运行了多个虚拟机,一个虚拟机的异常不能传递至其他虚拟机。Hypervisor 能获取到当前系统整体健康状态,当虚拟机发生异常时,Hypervisor 应实时监控系统健康状态,有效地隔离故障,并在最小波及范围内修复异常,保障系统持续可用。 Hypervisor 加入汽车软件栈,会导致纵向上软件栈层次增加,横向上业务软件复杂度增加,而汽车的安全可靠要求强于既有的云侧虚拟化、边缘虚拟化,因此虚拟化安全性正日益得到行业的关注。这些安全性包括: 虚拟机管理器和虚拟机之间的信任链问题。利用虚拟化技术在一个可信物理平台上创建出多个虚拟机,并将从硬件可信根开始构建的信任链传递到每一个虚拟机,从而在一个可信物理平台上构建多个虚拟的可信计算平台,有些解决方案缺乏虚拟机管理器到虚拟机之间的信任链验证; 虚拟机间的攻击:恶意入侵者可以通过利用虚拟机管理程序中的漏洞,通过同一物理主机上存在的另一个虚拟机来获得对虚拟机的控制,从而破坏目标虚拟机; 虚拟机逃逸:利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的。 为了提高 Hypervisor 的安全性,建立相应的安全性目标很重要,下表简要列出相关要求: Hypervisor 的安全性能力可以从三个维度进行提升。 (1) 需要建立安全边界 如图 7 所示,这个边界由 Hypervisor 严格定义并且实施。Hypervisor 安全边界的保密性、完整性和可用性需要得到保证。边界能防御一系列攻击,包括侧向通道信息泄漏、拒绝服务和特权提升。虚拟机监控程序安全边界还提供网络流量、虚拟设备、存储、计算资源和所有其他虚拟机资源的隔离能力。 图7 安全边界 整体虚拟化安全架构如图 8 所示。安全边界的保密性可以通过传统的密码学方法来实施。完整性通过可信度量机制来保障,可信报告机制实现不同虚拟环境的可信互通,监控机制动态度量实体的行为,发现和排除非预期的互相干扰。虚拟技术提供的隔离机制将实体运行空间分开。 图8 整体虚拟化安全架构 安全边界的隔离通过Hypervisor的vCPU调度隔离安全、内存隔离、网络隔离和存储隔离技术来支持,实现了同一物理机上 Hypervisor 和虚拟机、虚拟机之间的隔离。 (2) 需要建立深度防御漏洞的缓解机制 对于安全边界存在的潜在漏洞,Hypervisor 需要有一定的技术手段进行主动防御,这些技术手段包括地址空间布局随机化(ASLR)、数据执行保护(DEP)、任意代码保护、控制流保护和数据损坏保护等。 (3) 建立强大的安全保障流程 与 Hypervisor 相关的攻击面包括虚拟网络、虚拟设备和所有跨虚拟机表面,所有虚拟机攻击面都建议实施威胁建模、代码审核、模糊(fuzzed)测试,通过建立自动化构建及环境,触发定期安全检查。 虚拟化技术作为云计算场景的重要技术,在 10 多年的生产实践中已经积累了很多安全范式,这些经验也可被汽车场景借鉴。但是与云场景相比,汽车场景的虚拟化技术也有其特殊性,如虚拟机不需要动态迁移 / 创建,Hypervisor 有功能安全等级的要求等等,其安全性手段需要在实践中不断丰富和完善。 04 典型应用案例 在汽车智能化发展历程中,虚拟化主要应用于智能座舱、智能驾驶、智能网关等融合场景。智能驾驶受技术成熟度、政策法规所限,基本处于预研、方案原型阶段。智能网关业务功能相对同构,并且有可能进一步融合到其他场景方案中。因此,目前主要的应用案例集中在智能座舱中。 智能座舱域融合也是在近几年启动,正在不断迭代演进中。受芯片算力、虚拟化技术成熟度、生态链对于虚拟化解决方案的掌控能力等因素影响,有些厂商同时采用了硬隔离方案来实现域融合,一方面最大程度地沿用既有技术能力,有确定性保障,但是缺少了软件定义的灵活性,智能化程度有限,是域融合的一种可选方案。在嵌入式虚拟化技术方面,国外的 QNX、OpenSynergy、PikeOS 等有先发优势,尤其在汽车领域已耕耘多年,因此在这两年涌现了较多的应用案例。在智能本土化发展的趋势带动下,国内这几年也出现了不少芯片厂商、独立软件厂商研发嵌入式虚拟化技术、产品、解决方案,如中瓴智行的 RAITE Hypervisor(RHOS)、中兴 GoldenOS、斑马智行的 AliOS Hypervisor、中汽创智 CAIC Hypervisor 等。 4.1 智能座舱域控制器产品 某厂家智能座舱域控制器产品,基于高通 8155、瑞萨 R-Car H3 处理器,采用 QNX Hypervisor,搭载 QNX Host、 Android P/R/S Guest OS, 可配置输出最多 6 块高清大屏独立显示,集成了娱乐系统、液晶仪表、车身控制、DMS、APA 等功能,支持独立四音区、多屏互动和音视频分享,集成度高,在长城、长安、宇通客车等多款车型上适配量产。 另外,国产化方案芯驰 X9HP+ 平台,采用硬分区、Hypervisor 两种方案灵活配置实现中低端智能座舱域控制器产品。 4.2 RHOS 智能座舱域控制器平台 (1) NXP I.MX8QM 座舱域控制器 某厂家基于自研的 Type-1 型虚拟化软件 RHOS(Raite Hypervisor OS),适配支持了 NXP I.MX8QM,提供一个轻量、灵活的汽车智能座舱虚拟化解决方案,已在东风车型量产上市。其系统架构如图 11所示: 图11 NXP I.MX8智能座舱系统架构 在 SoC 上运行 Hypervisor 后可支持同时运行多个操作系统,比如 Linux 系统可以运行实时性和安全性较高的业务,如全液晶仪表等,可以扩展运行 DMS、HUD 等业务。另外一个虚拟机运行 Android 操作系统,上面部署信息娱乐等安全性和实时性要求较低的业务。为保证系统具备良好的市场竞争力,域控制器兼容 TBOX 功能需求,系统能够支持休眠唤醒和快速启动。 Linux 和 Android 虚拟机可按需进行资源的配置,包括内存、CPU、存储空间、外设等。该架构支持系统升级,包括对虚拟机和 Hypervisor 的升级,支持异常日志记录,包括虚拟机内核和 Hypervisor 日志。 多屏交互是智能座舱重要的应用场景,Android 的 APP 应用程序可以通过 Hypervisor 推送到 Linux仪表进行显示。 图12 虚拟机多屏交互架构 Android 和 Linux 仪表交互的方案如图 12 所示。NXP I.MX8QM 芯片有两个以上显示接口,每个显示接口可以接 2 个显示屏,当 Android 系统需要投射信息到仪表屏幕时,仪表显示屏的 Overlay 图层可以进行投屏内容的显示。系统交互零延迟、零拷贝,多系统交互不额外占用 CPU 和 GPU 资源。通过Hypervisor 虚拟化技术实现跨系统多屏交互,有效提高了行车安全性,并降低智能座舱的硬件成本。 (2) MT8675 座舱域控制器 RHOS 通过适配支持MT8675,形成一个功能丰富、性价比高的一机多屏智能座舱域控制器解决方案,已获得多个车厂量产项目。其总体系统架构如图 13 所示: 图13 MT8675智能座舱系统架构 MT8675 只提供了一个 GPU,座舱域需要在仪表和中控上共享使用 GPU 资源。RHOS 实现了 GPU虚拟化共享,并通过性能优化,达到业界领先的虚拟化效果(损耗)。
西门子、三菱、欧姆龙是我们自动化行业使用最多的三个PLC品牌。今天分享一下欧姆龙PLC的FinsTCP通信协议。大家在学习FinsTCP通信协议时,建议先掌握ModbusTCP或三菱MC通信协议。这样看来,ModbusTCP协议太简单了三菱PLC的MC通信协议报文解析Fins通信协议是欧姆龙PLC专用协议,主要用于控制欧姆龙系列PLC,它是一个公开的协议,可以通过欧姆龙官方下载到协议文档。 一、握手协议 FinsTCP通信协议,与ModbusTCP和MC协议有一个不同地方在于,当我们完成TCP连接后,不能直接进行读取或写入,需要有一个握手过程,以保证通信安全。这点与西门子S7协议类似,S7协议会有两次握手验证,FinsTCP只需要一次即可。握手命令如下所示:发送报文格式:接收报文格式:我们使用TCP助手测试一下:本机IP地址是192.168.2.77,PLC的IP地址是192.168.2.164,因此发送报文为:46 49 4E 53 00 00 00 0C 00 00 00 00 00 00 00 00 00 00 00 4D返回报文为:46 49 4E 53 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 4D 00 00 00 A4 其中0x4D=77,对应ClientNode,PC的IP最后一位。0xA4=164,对应ServerNode,PLC的IP最后一位。 二、Fins通用格式 我们学习通信,一般都会有个通用格式。 所谓通用格式,就是无论发送、接收的报文都会按照这个格式来,会将变化的部分封装成一个整体,一般叫做数据部分或者Parameter。 Fins通用报文格式如下: 三、读取协议帧 FinsTCP通信协议读取数据的请求帧报文是在通用格式的基础上,将 Parameter部分替换为 Area+Address+Length。读取请求帧格式如下所示: 响应帧报文是在通用格式的基础上,将 Parameter部分替换为 ErrorCode+Value。读取响应帧格式如下所示: 四、写入协议帧 FinsTCP通信协议写入数据的请求帧报文是在通用格式的基础上,将 Parameter部分替换为 Area+Address+Length+Value。写入请求帧格式如下所示:响应帧报文是在通用格式的基础上,将 Parameter部分替换为 ErrorCode。写入响应帧报文如下所示: 五、通信测试 我们以读取D0开始的5个寄存器为例,结合协议文档,来进行报文拼接。 发送报文如下: Header:0x46 0x49 0x4E 0x53 Length:0x00 0x00 0x00 0x1A Command:0x00 0x00 0x00 0x02 ErrorCode:0x00 0x00 0x00 0x00 ICF:0x80 RSV:0x00 GCT:0x02 DNA:0x00 DA1:0xA4 DA2:0x00 SNA:0x00 SA1:0x4D SA2:0x00 SID:0x00 MRC:0x01 SRC:0x01 Area:0x82 Address:0x00 0x00 0x00 Length:0x00 0x05 我们通过网络调试助手发送这个报文,观察一下返回的报文: 响应报文如下: 我们只需要关注最后的ErrorCode和Value即可。 ErrorCode:0x00 0x00 Value:0x00 0x0A 0x00 0x14 0x00 0x1E 0x00 0x28 0x00 0x32 其中0x00 0x0A 0x00 0x14 0x00 0x1E 0x00 0x28 0x00 0x32即表示D0-D4的值,进行数据解析处理后的值分别为10、20、30、40、50,与PLC数据一致。 六、代码实现 我们也可以编写C#程序来实现整个过程。 这里测试为主,代码相对简单,实际应用时可进一步封装,代码如下: static void Main(string[] args){ // 连接 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect("192.168.2.164", 9600); //握手 byte[] handsend = new byte[] { 0x46, 0x49, 0x4E, 0x53, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D }; socket.Send(handsend); byte[] handrcv = new byte[1024]; int count = socket.Receive(handrcv); //简单验证握手正确 if (count == 24 && handrcv[12] == 0x00 && handrcv[13] == 0x00 && handrcv[14] == 0x00 && handrcv[15] == 0x00) { //读取D0开始的5个字 byte[] readsend = new byte[] { 0x46, 0x49, 0x4E, 0x53, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0xA4, 0x00, 0x00, 0x4D, 0x00, 0x00,0x01,0x01,0x82,0x00,0x00, 0x00,0x00,0x05}; socket.Send(readsend); byte[] readrcv = new byte[1024]; int rcvCount = socket.Receive(readrcv); if (rcvCount == 40) { for (int i = 30; i < rcvCount; i += 2) { // 每2个字节作为一个数据 byte[] dataBytes = new byte[2]; dataBytes[0] = readrcv[i + 1]; dataBytes[1] = readrcv[i]; Console.WriteLine(BitConverter.ToInt16(dataBytes, 0)); } } } Console.ReadLine();} 输出结果如下: 写在最后 去年8月,历经2年,我出版了一本上位机书籍——《C#上位机开发实战指南》。 我的新书《C#上位机开发实战指南》出版了 大家如果需要购买,可以通过京东旗舰店购买。 -END- 上位机技术文章,请关注公众号【上位机Guide】上位机技术交流,请添加本人微信【fuswj001】 感谢大家阅读,关注我,分享上位机开发技术。
今天给大家分享一下,我们做上位机开发中,如果遇到多PLC多协议,应该如何来实现。 一、通信库 几乎每个工控人都曾这么臆想过:如果所有的品牌都统一一种协议,那该多好!PLC技术发展多年,不同的制造商在早期都采用了不同的通信协议,随着时间的推移,这些协议已经成为了行业标准,很难在短时间内进行统一。这个是由历史原因导致的,我们无法改变,只能改变自己。上位机开发不认PLC品牌,不认仪表品牌,只认协议。因此对于我们来说,我们并不认西门子和三菱,我们认的是S7协议和MC协议,其他品牌也是一样。上位机开发第一步需要有通信库,通信库的本质就是一个类库项目,最终编译成一个dll文件,里面包含了各种协议类,我们可以通过创建通信对象,调用其读写方法,实现与PLC之间的交互。 二、配置库 我们在使用组态软件或者触摸屏开发项目时,一般都会添加驱动,然后创建变量。C#上位机也不例外,我们需要自己去实现变量配置的过程,不同的开发人员实现变量配置的方法各不相同,一般会有以下几种方式: 数据库存储 ini存储 xml文件存储 json文件存储 excel文件存储 但是使用什么方式,原理都是相通的,只是存储的形式不一样而已。那么这个配置库的原理是怎样的呢?我们可以将单个PLC设备,抽象成一个Device类。每个Device类中,会有若干个组,单个组抽象成一个Group类。每个组里,会有若干个变量,单个变量抽象成一个Variable类。设计过程中会涉及到接口、继承、抽象类等技术。最终形成一个这样的架构:一个Project会有若干个Device,每个Device对象里会有若干个Group,每个Group中会有若干个Variable。这样对于我们来说,每个PLC就是一个Device对象,我们只需要调用一行代码即可将配置文件解析成设备对象,多个PLC就是设备对象的集合。 三、配置+通信 目前我们已经实现了配置库和通信库,这两个是独立的。通信框架的核心在于将配置与通信进行融合。我们可以在Device类中创建一个通信对象。那这样在Device既可以获取到所有的配置信息,又可以获取到通信对象,所有的通信过程都可以实现了。我们可以在Device类中创建一个Start方法,基于多线程实现数据读取,并将断线重连、数据解析、数据处理、报警判断等逻辑均写在底层。 四、项目应用 当我们有了通信框架之后,不同的项目无非就是配置不同。 而且框架会越来越成熟,因为每个项目都会增加你的经验值,并且我们可以不断地进行优化完善。 我从2017年开始,使用这套框架开发了上百个项目,WinForm与WPF都可以使用,开发效率很高,并且非常稳定。 这样我们就把更多的精力放在界面和业务逻辑上,用更短的时间完成项目开发。 完成启动后,与PLC数据交互也非常简单: 读取只需调用Device["变量名称"] 写入只需调用Device.Write("变量名称","写入值")