Pipelined-ADC设计一:序言

本文介绍了设计一款12位、50MHz、2.5bit级的Pipelined-ADC,涉及模数转换原理、动态和静态性能参数、流水线结构、以及数字校正算法,旨在满足不同应用场景的需求并降低功耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        现在是2023年12月18日,准备开新帖,设计一个 流水线型 模数转换器( Pipelined-ADC )。记录帖,后续会放在咸鱼。同步记录,谨防盗用。

        初定指标:12位50Mhz,采用2.5bit每级结构,180nm,1.8V工艺。都采用传统结构,功耗、、、尽可能小一点吧。


第一章 概述

        对于不同的使用场景,模数转换器的性能要求也不同。为了满足应用条件,需要对模数转换器的各种参数进行明确定义。同时可以根据详细的指标选取合适类型的转换器。本章将介绍模数转换器的性能参数的详细定义。

1.1 模数转换原理

        模数转换器的功能是将模拟信号转换为数字信号,通常 ADC 的工作过程有采样、量化以及编码。采样过程是将模拟信号转换为离散的电平值,量化则是将这些离散值使用有限个幅值近似,最后通过编码输出与之对应的数字量。根据奈奎斯特定理,对于一个给定了采样频率(fs)的模数转换器,其所能处理的信号频率存在上限。通常信号的输入频率(fin)应该小于模数转换器采样频率的一半,即满足:

1.2 ADC性能参数

        模数转换器的性能参数分为动态参数和静态参数,其中动态参数反映了 ADC 在动态信号输入的条件下,输出信号与噪声和谐波之间的关系。静态参数则是反映 ADC的实际转移曲线与理想转移曲线出现的偏差,与时间无关。下面简要介绍这两类参数中所包含的具体指标。

1.2.1 动态参数

        (1)信噪比

        信噪比(Signal to Noise Ratio, SNR):表示信号功率(Psignal)和系统中所有噪声功率(Pnoise)的比值。常用单位为dB,表达式为:

        (2)信噪失调比

        信噪失调比(Signal to Noise and Distortion RatioSNDR),表示信号功率(Psignal)与 噪声功率(Pnoise)、谐波功率(PHD)之和的比值。SNDR 决定了 ADC 的有效位数。通常用 dB 为单位表示,计算公式为:

        (3)无杂散动态范围:

        无杂散动态范围(Spurious Free Dynamic Range, SFDR):信号功率(Psignal)与输出频谱中最大的谐波失真信号功率(PHDmax)的比值。常用公式为:

        (4)总谐波失真

        总谐波失真(Total Harmonic Distortion, THD):信号功率(Psignal)与全部谐波功率(PHD)之和的比值,常用单位为 dB。由于电路存在非线性,会在信号传输时引入谐波失真。采用全差分的工作模式可以有效抑制偶次谐波,所以在设计过程中主要考虑奇次谐波的影响。计算公式如下:

        (5)有效位数

        有效位数(Effective Number of Bits, ENOB):表示实际 ADC 能处理信号的精度。在实际工作中,由于电路中必然存在的噪声和谐波等因素,ADC 通常达不到设计时给定的分辨率。所以提出了有效位数,用来衡量 ADC 实际的量化精度。ENOB SNDR 决定,单位为 bits,计算公式如下:

1.2.2 态参数

        (1)最小量化区间:

        最小量化区间(Least Significant BitLSB):表示 ADC 可以量化的最小电压范围,表达式如下,其中 VFS 表示转换器的满摆幅,N 为模数转换器量化位数。

        (2)失调误差:

        失调误差(Offset Error)ADC 的实际转移曲线与理想转移曲线在最低位时的判决电平之间的差值。如图所示,失调误差在系统中不会引入非线性。

图 1 失调误差示意图

        (3)增益误差:

        增益误差(Gain Error):是指在消除失调误差后,将模数转换器实际的转移曲线与理想转移曲线的最低电平位置相互对齐,此时两者在最高电平之间的差值,如图所示:

图 2 增益误差示意图

        (4)微分非线性:

        微分非线性(Differential Non-linearity, DNL):模数转换器在实际转换过程中,其转移曲线上的每个垂直台阶的两个相邻编码之间的距离,通常以 LSB 为单位。出现微分非线性的原因是实际电路中的运放、比较器带来的误差以及各种非理想因素。DNL 的值可正可负,其绝对值越小越好,当 DNL 的绝对值大于 1,该模数转换器可能会出现失码现象。

        (5)积分非线性:

        积分非线性(Integral Non-linearity, INL):是指模数转换器的实际转移曲线和理想的转移曲线在垂直方向上出现的最大偏差值,以 LSB 为单位。INL 可以通过对 DNL 进行累加求其值。图为 DNL INL 的示意图:

图 3  DNL 与 INL 示意图

1.3 Pipelined - ADC概述

        Pipelined ADC 的特点是在模数转换中采用分级的流水线结构,将总的转换位数分为几个部分进行并行的处理。流水线型 ADC 的结构如图所示。主要包括采样保持电路、各个流水线子级和延迟校准模块。各个子级之间的工作模式类似于工厂生产线,将一个工作分为几个部分同时进行,以此提高处理速度,因此流水线 ADC 在转换速率方面非常有优势。

图 4 流水线 ADC 示意图

        单个流水线子级由子 ADC、本级的采样保持电路、DAC、减法器和余差放大器组成。其中子 ADC 结构均为 Flash_ADC,其余模块一般统称为 MDAC。一般流水线最后一级只包含 Flash_ADC,负责将上一级的模拟信号进行转换,不包括 MDAC 模块。通常流水线 ADC 都会包含一个延迟校准模块,用来将所有子级输出的数字码整合为完整的数字输出。

        流水线 ADC 具体的工作模式如图所示:以单个子级模块为单位,该模块在流水线正常工作时一般处于采样或者保持两种状态,并且相邻的两个子级的工作状态不相同。例如,当第一子级处于采样状态,该级的工作状态为对信号进行采样和量化。与之相邻的子级为采样保持模块和第二子级,这两级应处于保持状态。当第一子级处于保持状态,会将信号输出到下一级,此时与之相邻的两个模块应处于采样状态,将本级输入信号进行采样和量化的处理。以此类推,流水线 ADC 各个子级的工作状态如图所示:

图 5 流水线 ADC 各子级的工作状态

1.4 数字校正算法

        流水线 ADC 是基于数学算法衍生出的一种 ADC 结构,经过长时间的发展,已经出现多种类似的算法,其中应用最为广泛的为 1992 年由 Stephen H. Lewis 提出的一种算法。这种算法的优点是可以降低电路中对比较器失调电压的要求,从而简化比较器设计,同时为 ADC 更高的转换精度提供了理论基础。

        本节将以最简单的 1.5 位子级介绍数字校正算法。该结构采用每级 1.5 位结构,输出两位数字码,最后一级为两位 Flash_ADC。这里假设流水线 ADC 的分辨率为 n,使用全 1.5 位子级,则需要 n-1 级,假设每一级的量化输出为 Di=di,1di,0。则最终输出的 n 位数字码的计算方式如图所示:

图 6 数字校正算法示意图

        每一级的数字码输出最终需要根据流水线结构进行延迟相加,最终得到完整的 n 位的数字量。下面对这种算法的编码关系进行简要的介绍:

        以 1.5 位子级流水线为例,假设 Vr,i为第 i 级的输出余量,Vr,i-1为第 i-1 级的余量,Vref为 1.5 位子级的参考电压。对于流水线第一级量化结果可表示为:

        则第一级的输入输出关系如式所示,其中 m1 = D1-1=-1、0、1。

        同时可以推导流水线第 i (i=2,...,n-2)级的量化结果,可表示为:

        则第 i 级的输入输出关系可以表示为式,其中 mi+1 = D1 -1=-1、0、1。

        可以看出,对于 1.5 位子级,输出两位数字码,其中一位数字码表示转换完成的数字量,另外一位作为冗余位,在最后的加法操作中用于数字校正。另外,对于流水线第 n-1 级,由于不包含一位的冗余位,其输入输出关系可表示为:

        综上所述,为 1.5 位子级的编码关系,在这里给出 1.5 位子级的输入输出量化关系如图所示。数字校正算法对于比较器失调电压方面的优化将在后续详细介绍。

图 7 1.5 位子级的输入输出关系

<think>嗯,用户想了解如何使用UniApp开发鸿蒙系统应用,特别是教程和兼容性问题。首先,我需要整理UniApp支持鸿蒙的相关信息。记得之前看到的引用中提到,UniApp开发鸿蒙主要支持Vue3,不支持Vue2,而且plus API也不能用。这点很重要,用户需要注意代码的兼容性。 然后,开发环境的搭建步骤可能需要详细说明。比如需要安装HUAWEI DevEco Studio,配置HarmonyOS SDK,还有UniApp的HBuilderX版本是否支持。用户可能对具体步骤不太清楚,所以要分点列出,确保他们能步步操作。 兼容性方面,除了Vue版本的问题,还有原生渲染的问题。引用里提到nvue在鸿蒙上不是原生渲染,而是类似Web,可能会影响性能或样式。需要提醒用户注意样式适配,可能需要调整CSS。另外,API替代方案,比如用鸿蒙的API替代uni的plus API,这部分需要举例说明,比如网络请求怎么做。 教程资源方面,用户可能需要官方文档和社区支持的信息。引用中提到了Uni-app和HarmonyOS NEXT的活跃社区,可以推荐用户加入交流群,查阅官方指南。另外,示例项目和实践步骤也很重要,比如如何创建项目,修改manifest.json,以及调试和发布的流程。 可能用户还会有其他疑问,比如性能优化、特定功能如何实现,或者与其他框架的对比。所以在相关问题部分,可以预设这些问题,帮助用户进步探索。需要确保回答结构清晰,分步骤说明,同时引用提供的资料来支持每个要点,比如兼容性说明和社区支持的部分。最后检查是否符合系统级指令,比如数学公式的格式,但这里可能用不上。确保使用中文,没有markdown,语言口语化,自然流畅。</think>### 使用 UniApp 开发鸿蒙系统应用指南 #### 、开发环境准备 1. **基础工具安装** - 安装 HUAWEI DevEco Studio 4.0 及以上版本(鸿蒙应用开发官方IDE)[^2] - 配置 HarmonyOS SDK 和模拟器 - 使用 HBuilderX 3.9+ 版本(支持鸿蒙应用编译) 2. **框架依赖** - 仅支持 Vue3 语法,需将原有 Vue2 项目升级至 Vue3[^2] - 不支持 `uni-app` 的 `plus` API,需使用鸿蒙原生 API 替代(如网络请求、设备信息获取) #### 二、兼容性注意事项 1. **渲染模式差异** - `nvue` 页面在鸿蒙端**非原生渲染**,采用类似 Web 的渲染方式,需注意默认样式的兼容性调整[^2] - 避免使用 CSS 高级特性(如 `position: sticky`),推荐使用 Flex 布局 2. **API 适配方案** ```javascript // 替代 uni.request 的鸿蒙网络请求示例 import http from '@ohos.net.http'; const httpRequest = http.createHttp(); httpRequest.request("https://api.example.com", (err, data) => {}); ``` 3. **功能限制** - 暂不支持 WebView 组件 - 蓝牙、NFC 等硬件功能需通过鸿蒙原生能力扩展 #### 三、开发流程实践 1. **项目配置** 修改 `manifest.json` 添加鸿蒙支持: ```json "app-plus": { "harmony": { "packageName": "com.example.yourapp" } } ``` 2. **调试与发布** - 通过 DevEco Studio 连接鸿蒙真机调试 - 使用 `npm run build:harmony` 生成 .hap 应用包 - 提交至华为应用市场需通过方舟编译器二次编译 #### 四、教程资源推荐 1. 官方文档 - [HarmonyOS应用开发文档](https://developer.harmonyos.com/cn/docs/documentation/) - [UniApp鸿蒙适配指南](https://ask.dcloud.net.cn/article/40809) 2. 社区支持 - 加入 `uni-app 鸿蒙化技术交流群` 获取实时支持[^2] - 参考华为开发者联盟案例库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生就看看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值