正文内容均来自于Henzler于2010年发表的《Time-to-Digital Converters》。

最近在学习TDC,新的东西太多了,看了一遍忘得很快,碰巧前两天看到了有关费曼学习法,打算通过写博客来总结每个阶段的所学(其实就是疫情在家闲得慌/狗头),希望自己能够坚持。文中所有内容都是我个人对上述文献的一些总结,我还很菜,如有错误,敬请指正。

一、为什么会有TDC(时间数字转换器)?

到目前为止,芯片设计的总体1方向是,越来越小的面积,越来越低的功耗。以我目前正在学习的CMOS工艺为例,要使面积缩小,晶体管的尺寸也要随之减小,要使功耗降低,使电源电压降低,从而带来了设计上的一系列问题,如:晶体管的增益降低。尽管可以通过cascode结构、增加输出阻抗、使用有源负载等传统方法来改善增益。但由于电源电压的限制,即使提高了增益,电路的响应速度和电压摆幅也有可能因此而受到影响。尤其是电压摆幅降低,会使信噪比降低,降低输出信号水平。而在此基础上,数字辅助或增强技术( Digital assist or enhancement techniques)可以用更小的代价来更好的实现这些功能。举个简单的例子:

在电压域中,电源电压变低,而噪声没变时,噪声对信号的影响就会愈发明显。而若将电压值转换成是与之对应的时间值(就类似于ADC将模拟电压值,转换成二进制码),则即使电源电压变小,要保证与原来相同的信息量,只需要增加时间长度即可。噪声存在于边沿跳变时刻,随着工艺的进步,边沿跳变时长会越来越短,并不会像电压域那样产生巨大的影响。这样就解决了上面所述的电源电压降低带来的一系列问题,将信号处理从电压域转到了时域,一系列新的技术应运而生。

二、第一代TDC(模拟TDC)

第一代TDC设计的目的似乎只是为了将时间值测量出来。结构图所示:

框图和时序图如上所示。先通过脉冲信号发生器,将Start(时间起始信号)和Stop(时间结束信号)之间的时间间隔装化成脉冲信号(如波形Vp),再通过积分器,将脉冲信号转化成电压信号传递给ADC,最后输出数字信号。假设ADC位数为N,则该TDC的动态范围

由上式可见,当TDC测量的范围越大,由于ADC的位数固定,所以TDC的分辨率也就越低。

长时间的测量需要分两个阶段来进行:长时间间隔的粗量化(由时钟周期数得出),以及粗量化之后剩余部分的细量化(由上述结构得出)。

有几个问题会降低TDC得性能:脉冲发生器、积分器和ADC必须满足整个TDC的线性要求。

普通的积分器是通过一个电流源连接到一个积分电容来实现的,由于实际电流源的输出电阻是有有限的,所以线性度也很弱。可以用有源RC积分器(运放结构)来解决线性度的问题,但是运放有限的带宽限制了积分电路的速度和最小时间间隔。导致分辨率不会很高。

上述测量方法都是要在已知电阻电容具体值的情况下进行的,属于绝对时间测量方法。而由于工艺原因,电阻与电容的值不可能十分精准,故需要校准。而相对测量方法可以有效的避免这个问题。

可以通过双斜率积分来实现相对测量。主要分为两个测量阶段:

第一阶段,up支路有效, 将Start信号与Stop信号的时间间隔转换为脉冲信号,再通过积分器转化为电压信号,将电压信号输入到电压比较器的正输入端,作为参考信号。

第二阶段,down支路有效,进行为第一阶段1/p倍速度的积分,知道积分出的电压值与第一阶段的输出相等,比较器翻转,计数器输出计数值。

如此,就有了第二阶段的积分时间 t2 ,是第一段积分时间 t1 的 p 倍,而计数器在第一和第二阶段都是计数的,所以计数器的输出应为(1+p)t1,再通过 t1 与输入的关系,只要已知 p 即可得到输入。p与电容和电流的比值有关,为(C2*I1) / (C1*I2)。

基于双斜率方法的TDC,前一段时间还读到过一篇:

A Low-Cost Low-Power CMOS Time-to-Digital Converter Based on Pulse Stretching (2006)

该文章是用pulse stretcher(脉冲展宽)电路来粗量化之后的剩余部分进行展宽,再进行细量化。优点是在保证了分辨率的同时,还有低功耗的特点。

TDC学习--Time-to-Digital Converter Basics(一)相关推荐

  1. ffmpeg学习二:《FFmpeg Basics》读书笔记(上)

    为了更好的理解ffmpeg工程,官方推荐了一本书:<FFmpeg Basics>.完整的读完这本书,应该对这个工程能有一个基本的理解了.本菜英文不好,姑且从这本书中提炼出一些比较常用的知识 ...

  2. ffmpeg学习三:《FFmpeg Basics》读书笔记(下)

    一.格式转换 格式转换是ffmpeg工具用的最多的地方了.我们可以使用-f选项,在输出文件之前指定输出文件的格式. 1-1媒体格式 1-1-1文件格式 媒体格式是能够存储音视频数据的特殊的文件类型.如 ...

  3. 库卡(KUKA)机器人入门学习必备知识

    库卡(KUKA)机器人入门学习必备知识 1.库卡机器人零点标定使用的工具通常有两种:1)千分表,标定精度偏低.2)EMD电子装置,标定精度较高. 2.库卡机器人停机模式有三种.分别是:STOP0,ST ...

  4. 智能车K60学习笔记

    文章目录 K60学习笔记(开个坑,慢慢学) 基础知识 一系列定义或名称 简单位运算 中断(Interrupt) 8051 定时器中断 Kinetis K60介绍 K60模块 PORT模块 GPIO模块 ...

  5. TDC综述(四)——参考文献

    [1] H. Chen and D. D.-U. Li, "Multichannel, low nonlinearity time-todigital converters based on ...

  6. A/D和D/A的学习

    从我们学到的知识了解到,我们的单片机是一个典型的数字系统.数字系统只能对输入的数字信号进行处理,其输出信号也是数字信号.但是在工业检测系统和日常生活中的许多物理量都是模拟量,比如温度.长度.压力.速度 ...

  7. 嵌入式知识-ARM裸机-学习笔记(12):ADC模数转换器

    嵌入式知识-ARM裸机-学习笔记(12):ADC模数转换器 一.ADC 1. 什么是ADC ADC(analog digital converter):模数转换(也就是模拟量转换为数字量).由于CPU ...

  8. STM32学习之ADC(模拟数字转换器)

    目录 ADC的定义及其类型 ADC-单通道独立规则模式 对于该模式的理解: 通道及ADC分配: 时钟配置: GPIO配置: ADC模式配置: 校准: 读取ADC: 代码:野火的开源代码 由于大二学生一 ...

  9. 深度学习计算框架综述(二)计算框架的组成与设计要点

    本章主要介绍一个通用计算框架主要包含哪几个模块,以及这些模块的设计要点,建议大家阅读本章前,了解一下Protocol Buffer 以及 FlatBuffer 的概念及基本用法. 首先,我们先分析一下 ...

最新文章

  1. x-http-wrapper: 如何解决每次发版时,修改http相关代码造成的错误!(Android、iOS、h5)...
  2. php 写入exif,PHP写入读取图片自定义信息_exif或者什么的?
  3. jdk与jre的区别(转)
  4. 【JavaSE03】Java中分支语句-思维导图
  5. colinux的安装
  6. java基础 作业(一)
  7. [HNOI2005][BZOJ1202] 狡猾的商人
  8. 使用wordPress搭建个人博客
  9. 数据科学 IPython 笔记本 一、TensorFlow
  10. Android 高仿微信6.0主界面 带你玩转切换图标变色
  11. 判定被7整除的简易方法
  12. oracle lob类型和mysql text_LOB数据类型
  13. 国网电费充值api,油卡充值api(中石化中石油)
  14. RDP 协议组件 X.224 在协议流中发现一个错误并且中断了客户端连
  15. Unity Package manifest
  16. Twaver-HTML5基础学习(23)页管理容器(TabBox)、选中模型(SelectionModel)
  17. 七个常出口国的最新关税要求
  18. Win32 鼠标消息 - 客户区鼠标消息、非客户区鼠标消息、击中测试、鼠标滚轮
  19. “中国李宁“,能否救李宁?
  20. 《程序员》05期上市,下一代互联网竞争格局

热门文章

  1. php抓取dom处理后数据,写爬虫时PHP解析HTML最高效的方法那就是用DomCrawler!
  2. 任务调度-xxl-job
  3. python自动登录教程_python+selenium实现163邮箱自动登陆的方法
  4. Linux 杀死所有进程
  5. dropout 过拟合
  6. win10分辨率设置_Win10可以“双屏显示”了,而且设置方法很简单,你会弄吗?...
  7. 使用WinNTSetup安装win10时提示efi part有红叉(win10安装UEFI系统安装)
  8. Commons之Commons-io
  9. Python(七)函数
  10. 阿里云服务器windows phpstudy wordpress建站ssl证书安装