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

Ansys Zemax | 手机镜头设计 - 第 1 部分:光学设计

本文是 3 篇系列文章的一部分,该系列文章将讨论智能手机镜头模组设计的挑战,从概念、设计到制造和结构变形的分析。本文是三部分系列的第一部分,将专注于OpticStudio中镜头模组的设计、分析和可制造性评估。(联系我们获取文章附件)

简介

智能手机已成为我们日常生活的重要组成部分,并包含大量高科技光学系统,以满足对出色成像性能的需求。大多数智能手机在有限的空间内安装了多个复杂且低成本的相机单元。这对设计师和制造商都提出了挑战。注塑成型的塑料透镜需要精确的装配,确保每个模块在安装时都可正常工作。

手机镜头规格

手机镜头是小型相机,这意味着在设计的时候要最大限度地减少它们在手机中占用的空间。它们重量轻,可在低F#下捕获高质量图像。手机镜头的通常规格是一个非常短的系统(总长(TOTR)0.2/0.25(这是由探测器像素的大小决定的),系统将具有大视场角和快F#。

让我们看一个来自专利(1)的手机镜头的例子:

· 快 F/2.0
· 有效焦距f:@2.4mm艾里斑半径=1.22λf#≈1.22μm
· 全视场角=95度
· 像素尺寸=2.5μm。像素大小接近Airy斑大小。根据定义,奈奎斯特频率是2个像素作为一个周期。对于2.5μm的像素尺寸,它的一个周期是5.0μm,因此对应的奈奎斯特频率为200线对/毫米。奈奎斯特频率下大于20%的MTF是可接受图像质量的典型最小对比度。
· 传感器1280 x 720像素。这是1MP(百万像素)。尽管就现代智能手机相机的分辨率而言,它不是顶级的(当前的智能手机镜头可能使用12MP左右),但它仍然可用于监控和其他小型光学应用。此外,这里主要介绍与现代智能手机光学等应用相关的概念和方法。
· 半对角线图像高度:2-2.7mm
· 短 TOTR=4.8mm

手机镜头通常使用扩展偶次或Q型非球面来满足这些规格。

材料:塑料

注塑成型塑料通常被用于大批量和低成本生产这些镜片。下表总结了塑料镜片与玻璃镜片的优缺点。但请注意,塑料材料可以被进一步分为不同的塑料族群,这些系列中的每一个材料都将表现出特定的特性(COC=环烯烃共聚物,COP = 环烯烃聚合物,PMMA(丙烯酸),PC=聚碳酸酯,PEI=聚醚酰亚胺)(3)。

以下是肖特的 N-BK7 玻璃和爱尔康的 PMMA 塑料之间的比较。它显示了可以在材料目录中读取其中一些特性:

该专利给出了塑料镜片的折射率和阿贝数。让我们将其替换为具有接近特性的材料:

 

其中 Nd和 Vd分别是 587.56 nm 波长对应的折射率和阿贝数。

APL5014C 是三井化学株式会社的材料,

EP10000 是三菱瓦斯化学株式会社的材料。

光学设计回顾

在优化标准方面,要考虑的要点是球差、彗差、像散、场曲、畸变、色差、相对照度和分辨率(或MTF)。

对于三阶像差校正,通过降低匹兹伐和来校正场曲,这可能需要较大的折射率差来有效校正。由于塑料透镜中可选的折射率有限,设计人员使用高度非球面面型的透镜来校正每个视场。

本文的光学设计包含5个扩展非球面透镜。在前面有一个盖板玻璃来保护光学器件。在背面,我们可以看到一个可选的红外滤光片。专利中描述用于“减少或消除环境噪声对光电传感器的干扰”。

在专利中,光阑表面位于第一个扩展非球面透镜的边缘。

此文件位于附件中,名为:710_original.zar。

当我们将专利中给出的镜头数据直接输入 OpticStudio 时,MTF 规格不能得到满足。

扩展偶次和Q型非球面

该专利使用扩展非球面多项式表面。这些类型系统最常用的多项式是扩展偶次和Q型非球面。两者都可以在OpticStudio中使用。

让我们看一下扩展非球面多项式。扩展非球面的矢高z可以描述为:

公式中:

c 是曲率(曲率半径的倒数)

r 是以镜头单位表示的径向坐标

k 是圆锥常数

ρ 是归一化径向坐标

αi是以透镜单位表示的非球面系数。

扩展非球面多项式可以扩展到 480 阶。

优化非球面项需要注意,因为非球面项之间可能会相互冲突,并且高阶系数可能导致不可制造的形状。2阶项会与曲率冲突,并且不适用于某些加工设备 – 它在 OpticStudio 中可用是为了完整性。4阶项会与圆锥常数冲突。通常,系数的值不容易比较。很难根据系数的值判断哪个阶次的影响最大。

这就是为什么有时Q型非球面比扩展非球面更适合。Q型非球面具有正交项。Q型非球面是由 G.Forbes 开发的径向对称表面。它有两种变体:

· Qbfs(最佳拟合球面,OpticStudio 中的“类型 0”)定义了一个由非球面与最佳拟合球面的RMS斜率偏离来表征的表面。它适用于球面的轻微非球面变化。

· Qcon(圆锥面,OpticStudio中的“类型1”)定义了一个由非球面与圆锥基面矢高偏离来表征的表面。它最适用于球面的强非球面变化。

Q型非球面比扩展偶次非球面的计算量更大。但是,它们有几个优点。系数的大小同非球面与最佳拟合球面或圆锥面的斜率或矢高偏离(取决于类型 0 或类型 1)直接相关。这些项在归一化半径上是正交的,因此可以在优化过程中直接控制,以帮助提高可制造性。这意味着各个项可以一起优化,因为它们不会直接影响彼此。系数的值通常也较大,因此需要较少的精度位数。

下表总结了这些优缺点:

OpticStudio 提供了一个在非球面类型之间进行转换的工具,可以让我们把其他类型非球面表面转换成Q型非球面。由于系统中有一个球面有很强的非球面变化,我们将使用 Qcon 类型(“类型 1”)。

如果项数设置为自动,OpticStudio 将基于原来非球面的阶数自动确定新非球面的合适阶数。

转换为Q型非球面是1:1转换,因此拟合是精确的。如果不是,请增加项数。

优化

从专利开始,手机镜头模组已经用真实的塑料材料和不同的多项式定义进行了修改。MTF性能未得到满足,因此让我们稍微修改一下设计以使其满足。使用 OpticStudio 优化工具,可以构建一个评价函数来稍微重新优化厚度。希望这一步足以确保良好的性能。红外滤光片的厚度不做改变,因为它是红外滤光片的标准厚度。

评价函数设定为小的 RMS 波前差以及所有视场在 200 lp/mm 空间频率下的 MTF 优于0.2。另一种选择是使用对比度优化。评价函数还可以包括用于控制畸变和相对照度的操作数。这些操作数的权重可以设置很小,或者为零,并在第一轮优化后进行检查。有时这些权重值在软件优化运行中可以保持固定不变。

优化结束后,将显示厚度值四舍五入到小数点后3位。

厚度优化后出现了一个问题。现在表面4的厚度太小,表面14和表面15的轮廓重叠。

 

为了纠正这个问题,我们可以简单地增加表面14和表面15之间的空气间隔,并删除表面16的额外厚度。这也将有助于安装镜头。

在优化中,可以使用操作数 FTGT(全厚度大于)或 DSAG(可以计算不同的矢高数据,如最大矢高)来控制。

每个透镜的厚度变化很小(<0.1mm)。将“原始”文件和“新”文件使用文件比较器进行比较,如下:

以下是经过轻微重新优化设计后的新 MTF 结果。轴上 MTF 曲线非常接近衍射极限:

该文件名为 710_reoptimized_MTF_materials_QType.zar。

控制可制造性

非球面由于其非常规形状而更具制造挑战性。手机镜头通常通过注塑成型生产,将塑料注入非球面形的模具中实现。该过程的可重复性非常好,这也是为什么注塑成型会成为大批量生产的不错选择的原因。

使用塑料也会有一些缺点,因为这些镜片结构往往不太稳定。稍后将通过FEA建模结合STAR模块对此进行研究。

为了能够制造模具,有几点需要注意:

· 拐点:表面上曲率改变符号的位置。拐点导致典型的鸥翼形状

· 凹面:取决于局部曲率半径,这可能受到制造工具尺寸的限制

· 斜率变化:描述表面不规则性在子孔径上变化速度的通用方式

OpticStudio具有控制表面矢高、曲率、斜率的工具。

所有这些工具都有相应的操作数,可以添加到评价函数中以控制不可制造的解决方案。例如,让我们看一下表面13,它是鸥翼表面,基本曲率半径为0.777mm:

以下绘制了表面矢高、表面斜率和表面曲率:

矢高表和 BFSD(最佳拟合球面数据)操作数定义了要从最佳拟合球面 (BFS) 中移除的材料总量。所有这些分析都提供了有关非球面可制造性和测试的重要信息:

· 矢高和矢高表给出了表面形状,因此给出了局部厚度z的变化。这与最佳拟合球面数据一起决定了制造非球面所需的努力。数字越低,需要的努力就越少。非球面矢高偏离度直接影响加工时间。

· 曲率显示非球面系数如何改变了表面的局部曲率半径。局部曲率的控制是至关重要的,以允许刀具正常工作。

· 非球面偏离的局部斜率决定了表面变化的快慢。它对制造和测试都很重要。BFS 和表面之间的最大斜率差直接影响干涉检测中看到的最大条纹数;均方根(rms)斜率差影响整个表面孔径上条纹的总数。这将决定可否通过直接测量的方法检测光学元件的子孔径的大小。

以下是用于计算这些值的评价函数操作数:

可以逐个表面检查设计,以确定可制造性以及检测这些表面的最佳方法。

分析(相对照度、图像模拟、MTF)

相对照度

相对照度(RI)分析计算均匀朗伯场景下光学系统的相对照度针对径向视场坐标的函数。由于余弦四次方定律,边缘视场照度趋于下降。余弦四次方定律是在光阑置于透镜上的薄而慢的无像差系统中观察到的,图像辐照度按照视场角余弦的四次方下降。

对于47.5度的角度,预计 RI 为cos4(47.5),大约 21%。

相对照度图显示一个更高的值。它是沿+Y视场绘制的。

图像模拟

让我们看看相机使用图像模拟看到的内容。由于全视场为95度,我们从视场角切换到视场高度作为视场定义。一个像素在0度视场下所占的角度大小可能与在47.5度视场下的不同。

因此,让我们添加一个近轴透镜,并将角度视场定义更改为物高视场定义。物体厚度设置为1000mm(因此物体将在1m 处)。在表面1处输入一个新表面,将其设置为焦距为1000mm的近轴表面。将近轴表面厚度设置为10mm。然后将角度视场定义转换为物高视场定义。

我们可以使用评价函数操作数来检查此转换:

可以看到,最大视场的物高为1103mm。对于这个视场,软件无法计算相对照度,因此我们将该值降低到1000mm,对应于45度角。

让我们看看如何通过相机看到这个输入图像“{Zemax}\IMAFiles\Demo picture – 640 x 480.bmp”。

该图像的对角线为400像素 =

所以视场高度为1200 = 

这意味着像素大小为2.5mm =.

放大倍率为-0.002,因此像面处的像素大小约为5um。

该系统为衍射受限系统,艾里斑半径为1.4um。根据我们的规格,探测器的像素尺寸为2.5um。因此,让我们将过采样设为2以使“光学”像素尺寸更小。

下图显示了结果。PSF网格颜色在图像编辑器中被翻转。

图像模拟主要向我们展示了图像在视场边缘较暗的结果。

FFT 离焦 MTF

FFT离焦MTF曲线显示了设计灵敏度随像面位置的变化。下图显示的是空间频率200cycles/mm,偏移量+/-0.015mm的情况。

MTF vs 视场

MTF vs视场图显示了特定频率(此处为50、100、150 和 200 cycles/mm)下的MTF,作为视场的函数。它显示了MTF如何随视场角而变化。

结论

本文展示了帮助设计师在OpticStudio中创建手机镜头的工具。

下一篇文章:设计手机相机镜头第2部分:使用 OpticsBuilder 实现光机械封装,我们将使用 Zemax OpticsBuilder 编辑光学元件,扩展镜片的复杂边缘,以便将它们安装到机械底座中。

参考文献

1.US patent 2019/0129149 A1 – lens system 710 “Wide FOV 5 Element Lens System”:  https://patents.google.com/patent/US20190129149A1/en

2.Resolution and MTF: https://www.edmundoptics.co.uk/knowledge-center/application-notes/imaging/resolution/

3.Plastic:

https://optical-tech-group.toyotec.com/en/technicalcolumn/what-materials-are-used-for-plastic-lenses/
https://www.photonics.com/Articles/Plastic_Optics_Specifying_Injection-Molded/a25487
https://www.ipt.fraunhofer.de/en/Competencies/Productionmachines/precisiontechnology-plasticreplication/injection-molded-lenses.html

4.[Webinar] Cell Phone Lens: The Fundamentals Behind the Optical System Design [Q&A]

5.Community forum thread: How to control the aspherical surface during the optimization

相关文章:

Ansys Zemax | 手机镜头设计 - 第 1 部分:光学设计

本文是 3 篇系列文章的一部分&#xff0c;该系列文章将讨论智能手机镜头模组设计的挑战&#xff0c;从概念、设计到制造和结构变形的分析。本文是三部分系列的第一部分&#xff0c;将专注于OpticStudio中镜头模组的设计、分析和可制造性评估。&#xff08;联系我们获取文章附件…...

jvm从入门到精通

jvm 1.jvm与java体系结构​​​​​​​...

[NLP]LLM 训练时GPU显存耗用量估计

以LLM中最常见的Adam fp16混合精度训练为例&#xff0c;分析其显存占用有以下四个部分&#xff1a; GPT-2含有1.5B个参数&#xff0c;如果用fp16格式&#xff0c;只需要1.5G*2Byte3GB显存, 但是模型状态实际上需要耗费1.5B*1624GB. 比如说有一个模型参数量是1M&#xff0c;在…...

Unity引擎使用InteriorCubeMap采样制作假室内效果

Unity引擎制作假室内效果 大家好&#xff0c;我是阿赵。   这次来介绍一种使用CubeMap做假室内效果的方式。这种技术名叫InteriorCubeMap&#xff0c;是UE引擎自带的节点效果。我这里是在Unity引擎里面的实现。 一、效果展示 这个假室内效果&#xff0c;要动态看才能看出效…...

Gin安装解决国内go 与 热加载

get 方式安装超时问题&#xff0c;国内直接用官网推荐的下面这个命令大概率是安装不成功的 go get -u github.com/gin-gonic/gin 可以在你的项目目录下执行下面几个命令&#xff1a; 比如我的项目在E:\Oproject\zl cmd E:\Oproject\zl>就在目录下执行 go env -w GO111…...

安防监控视频云存储平台EasyCVRH.265转码功能更新:新增分辨率配置

安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储…...

Linux 创建用户赋予root权限,并限定登录ip

1.创建jms用户 创建组 groupadd jms创建用户 -g 指定分组 useradd -m -d /home/jms jms -g jms -s /bin/bash设置用户密码 passwd jms2.赋予root权限 编辑文件 vim /etc/sudoers添加如下内容 jms ALL(ALL:ALL) NOPASSWD: ALL3.限定登录ip 编辑文件&#xff0c;在末尾添…...

基于令牌级 BERT 嵌入的趋势生成句子级嵌入

一、说明 句子&#xff08;短语或段落&#xff09;级别嵌入通常用作许多 NLP 分类问题的输入&#xff0c;例如&#xff0c;在垃圾邮件检测和问答 &#xff08;QA&#xff09; 系统中。在我上一篇文章发现不同级别的BERT嵌入的趋势中&#xff0c;我讨论了如何生成一个向量表示&a…...

计算机视觉目标检测性能指标

目录 精确率&#xff08;Precision&#xff09;和召回率&#xff08;Recall&#xff09; F1分数&#xff08;F1 Score&#xff09; IoU&#xff08;Intersection over Union&#xff09; P-R曲线&#xff08;Precision-Recall Curve&#xff09;和 AP mAP&#xff08;mean…...

什么是webpack?如何在项目中安装配置webpack?

webpack 是前端项目工程化的具体解决方案。 它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性能优化等强大的功能。 让程序员把工作的重心放到具体功能的实现上&#xff0c;提高了前端开发效率和项目的可维护性。目前企业…...

linux两台服务器互相备份文件(sshpass + crontab)

crontab crontab是linux系统自带的定时调度软件&#xff0c;可用于设置周期性被执行的指令&#xff0c;一般用在每天的非高峰负荷时间段运行作业&#xff0c;可在无需人工干预的情况下运行作业。支持在一周或一月中的不同时段运行。 crontab命令允许用户提交、编辑或删除相应的…...

Flask框架-配置日志(1):flask使用日志

一、项目结构 study_flask --| apps/ --| __init__.py --| base/ --| logger.py --| __init__.py --| app.py 二、配置日志功能 1、base/logger.py import os import logging from datetime import datetime,date,timedelta from logging.handlers import RotatingFileHandl…...

每天一道leetcode:1192. 查找集群内的关键连接(图论困难tarjan算法)

今日份题目&#xff1a; 力扣数据中心有 n 台服务器&#xff0c;分别按从 0 到 n-1 的方式进行了编号。它们之间以 服务器到服务器 的形式相互连接组成了一个内部集群&#xff0c;连接是无向的。用 connections 表示集群网络&#xff0c;connections[i] [a, b] 表示服务器 a …...

解决Windows系统远程登陆后vscdoe无法输入字符,键盘没有反应,鼠标可以点击,没有反应

文章目录 前言操作过程 前言 使用vscode编译器时&#xff0c;通过远程登录或者屏幕锁屏解锁后&#xff0c;vscode出现无法输入字符内容&#xff0c;但vscode没有死机&#xff0c;切换到其他软件的窗口再切换回来后&#xff0c;可以使用鼠标点击&#xff0c;但是只要使用键盘输…...

axios同一个接口,同时接收 文件 或者 数据

1、前端代码 const service axios.create({baseURL: "http://192.168.2.200:8080/api",timeout: 180000 })// 响应拦截 service.interceptors.response.use(async response > {if(response){// 请求时设置返回blob, 但是实际上可能返回的是json的情况if (respon…...

【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云

【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云 serverless服务是腾讯云自研的新一代云原生关系型数据库TDSQ L-C的无服务器架构版&#xff0c;是全Serverless架构的云原生数据库 前言 体验了一下腾讯云刚出的TDSQL-C Serverless&#xff0c;使用…...

算法通关村第九关 | 二叉树查找和搜索树原理

1. 二分查找的扩展问题 1.1山脉数组的巅峰索引 LeetCode852&#xff1a;题目核心意思是在数组中&#xff0c;从0到i是递增的&#xff0c;从i1到数组最后是递减的&#xff0c;让你找到这个最高点。 三种情况&#xff1a; mid在上升阶段的时候&#xff0c;满足arr[mid] > a…...

jenkins gitlab 安装

目录 一 准备安装环境 二 安装gitlab软件 三 配置gitlab 四 重新加载配置启动gitlab 五 修改密码 五 创建用户组 一 准备安装环境 sudo yum update sudo yum install -y curl policycoreutils-python openssh-server安装 Postfix 邮件服务器&#xff0c;以便 Git…...

Vue2(组件开发)

目录 前言一&#xff0c;组件的使用二&#xff0c;插槽slot三&#xff0c;refs和parent四&#xff0c;父子组件间的通信4.1&#xff0c;父传子 &#xff1a;父传子的时候&#xff0c;通过属性传递4.2&#xff0c;父组件监听自定义事件 五&#xff0c;非父子组件的通信六&#x…...

(二)结构型模式:8、代理模式(Proxy Pattern)(C++示例)

目录 1、代理模式&#xff08;Proxy Pattern&#xff09;含义 2、代理模式的UML图学习 3、代理模式的应用场景 4、代理模式的优缺点 5、C实现代理模式的实例 1、代理模式&#xff08;Proxy Pattern&#xff09;含义 代理模式&#xff08;Proxy&#xff09;&#xff0c;为…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法&#xff0c;以下是几种常见的治理方式&#xff1a; 1. 数据质量管理 核心方法&#xff1a; 数据校验&#xff1a;建立数据校验规则&#xff08;格式、范围、一致性等&#xff09;数据清洗&…...

对象回调初步研究

_OBJECT_TYPE结构分析 在介绍什么是对象回调前&#xff0c;首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例&#xff0c;用_OBJECT_TYPE这个结构来解析它&#xff0c;0x80处就是今天要介绍的回调链表&#xff0c;但是先不着急&#xff0c;先把目光…...