基于CTMU的精确激光测距方案设计
扫描二维码
随时随地手机看文章
摘要:以Microchip公司PIC24F系列单片机内嵌的CTMU为核心,将CTMU与ADC单元组成基本控制模块,利用CTMU提供脉冲源之间的精确时间差测量功能,提出了一种新的精确激光测距设计方案。并且通过粗粒度时间和细粒度时间组合的计算方法,既扩大了CTMU动态范围,又不损失分辨率。本设计成本低且测距精度高,为现在日益发展的测量距离技术提供了一个新的方法和思路。
关键词:CTMU;恒流源;激光测距;时间测量
引言
目前,激光脉冲测距法具有探测距离远、对光源相干性要求低等优点,被广泛应用于各个领域。它利用激光脉冲持续时间极短、能量相对集中、瞬时功率大的特点,在平均光功率相同的条件下,能够实现长距离测量。但是,如果要求满足一定激光脉冲测距的精度,例如精确到ps级,这就对电子技术提出了更高要求。市场提供的高精度激光传感器虽然可以实现,但是造价太高,不能广泛应用。随着集成电路技术的发展,Microchip公司推出了可以识别脉冲之间精确时间的技术。根据Microchip公司的集成新技术CTMU(Charge Time Measurement Unit)我们采用一片带CTMU的PIC单片机来实现激光脉冲测距仪的所有功能,大大降低了设计难度,缩短了开发周期,降低了功耗和成本,实现了高精度、远距离的动态测量。
1 CTMU的工作原理
1.1 CTMU简介
充电时间测量单元CTMU是一个灵活的模拟模块,它提供脉冲源之间的精确时间差测量及异步脉冲生成。CTMU可与其他片上模拟模块一起,用于精确测量时间、电容、电容的相对变化,或生成具有特定延时的输出脉冲。该模块主要有以下特性:
◆最多16路通道,可用于电容或时间测量输入;
◆具有片上精确电流源;
◆具有4个边沿输入触发源;
◆可实现高精度时间测量;
◆具有与系统时钟异步的外部或内部信号的延时。
CTMU与A/D转换器配合工作,根据具体器件和可用的A/D转换通道数进行时间或电荷测量。如果配置为产生延时,那么CTMU连接到其中一个模拟比较器。电平输入边沿源可以从4个源中选择:两个外部输入、Timerl和输出比较模块1(OCAP1)。CTMU结构框图如图1所示。
CTMU的工作方式是使用固定电流源来对电路进行充电。电路的类型取决于要进行测量的类型。在进行电荷测量的情况下,电流是固定的,向电路施加电流的时间也是固定的。这样只要通过A/D转换测得电压就可以测得电路的电容。在进行时间测量的情况下,电流和电路的
电容都是恒定的,这种情况下,由A/D转换读取的电压可以代表从电流源开始对电路进行充电到停止充电经过的时间。如果CTMU用于产生延时,那么电容和电流源,以及向比较器电路提供的电压都是固定的,信号的延时由将电压充电到比较器门限电压所需的时间决定。
1.2 CTMU的工作原理
简单地说,CTMU是一个片上恒流源,周围的数字电路用于精确控制它的操作。该电流源可在0.55~550μA的4个数值均相差十倍的范围下工作。
1.2.1 恒流源
CTMU的核心是高精度电流源,旨在提供用于测量的恒定基准。范围为0.55μA、5.5μA、55μA和550μA电流源,在每个范围中,可按2%的步幅进行输出微调,最高可调至±62%。利用CTMU电荷测量可以产生小于1 ns的时间测量分辨率,CTMU电流源工作原理如图2所示。
电流源通过外部或内部触发源触发,具有Timer1、输出比较、输入捕获、软件触发和两个外部引脚的任意组合等特性;具有4个边沿输入触发源;具有每个边沿源的极性控制、边沿顺序控制和控制对边沿的响应。
1.2.2 PIC单片机的CTMU与ADC单元
CTMU可以与ADC单元连接实现对电容的电压值采样。PIC MCU A/D转换与CTMU接口电路如图3所示。
2 传输时间激光测距
2.1 CTMU测量时间原理
CTMU用于测量初始发送脉冲和其反射的返回信号之间的往返时间,由此可确定测量距离,精确到1英尺。激光脉冲传输时间测距是通过准确测量激光脉冲发射和接收时刻来实现的,光电探测器件将发射脉冲的小部分激光及探测到的激光回波信号转变为电信号,分别触发测距计数器开始和结束计时,由此获得光脉冲传输时间。经数据计算得到距离值z=C·△T/2。其中,C表示真空中的光速,△T表示激光往返时间。
图4是利用CTMU进行脉冲激光测距的具体原理图。当发出激光脉冲时,电流源对电容CAD进行充电,当接到返回脉冲后,停止充电。
图4中,电容总和C=CAD+CPIN+CSTRAY。其中CPIN为引脚电容,CSTRAY为偏差电容。
时间测量的工作原理基于以下基本公式。
电容中的瞬时电流为I=C·(dv/dt),I和C是常量,所以重新调整公式得dt=(C/I)·dv。积分之后,T=(C/I)·V+K(通常K为0)。
CTMU模块提供了恒定、已知的电流源。A/D转换器用于测量公式中的电压V,电容C为电容总和,因此,T与V成正比。
2.2 CTMU时间分辨率
如果使用的是PIC24F系列单片机,其内部ADC为10位(1 024个计数)。
假设:I=55μA,C=CAD+CPIN+CSTRAY=15 pF,A/D转换参考电压VREF=VDD。
如果VDD=3.0 V,则1个A/D转换计数V=3.0 V/1 024=2.93 mV,CTMU时间分辨率为T=(15 pF/55μA)×2.93 mV=0.799 ns。
因此,分辨率可达到<1 ns。光每米的传播时间为6.6 ns,所以该电路的分辨率为12 mm。若想提高分辨率,还可以选择精度更高的A/D转换器。激光脉冲测距的动态范围:0.799 ns·1 024=818.1 76 ns,因此,选用1 5pF的电容可测量120 m的距离。
为了获得更高的分辨率,可以使用PIC24FJGA310单片机,其内部ADC为12位(4 096个计数),若取I=550μA,C=CAD=4.4 pF,VREF=VDD,且VDD=3.0 V,则1个A/D计数V=3.0 V/4 096=0.732 4 mV,则CTMU时间分辨率为T=(4.4 pF/550μA)×0.732 4 mV=0.006 ns。因此,分辨率可达到<10 ps。
3 设计方案性能分析
3.1 提高分时间辨率的方法
提高分时间辨率的方法包括:降低A/D转换VREF;使用内部CTMU通道(无外部引脚连接);使用外部高分辨率ADC。
3.2 动态范围注意事项
为了维持恒流,CTMU电流源需要一个很小的电压开销通常为VDD-0.5 V,如图5所示。
为了维持恒流,CTMU电流源需要一个很小的电压开销,通常为VDD-0.5 V=2.8 V。将动态范围限制为ADC输入范围的85%,即2.8 V,或使用外部参考电压VREF=2.5 V,这将允许100%的ADC输入范围。CTMU电压开销示意图如图5所示。
3.3 CTMU精度
根据设计,校准之后CTMU电流源的精度为1%。
假设:I=55μA,C=CAD+CPIN+CSTRAY=15 pF,A/D转换VREF=外部2.5 V,动态范围T=(15 pF/55μA)×2.5 V=682 ns,则线性工作范围内的精度为1%×682 ns=6.8 ns。
3.4 测量长时间的方法
通常的方法是增大电容和降低电流,在两种情况下,电容C的充电时间都会变长,延长了时间测量的周期,但是,这两种方法都会降低分辨率。因此,我们使用粗粒度时间和细粒度时间组合的计算方法,就可以实现既扩大CTMU动态范围而又不损失分辨率。
将CTMU与输入捕捉(ICAP)、输出比较(OCMP)或Timer1组合使用。基于指令时钟周期TCY提供“粗粒度”的同步时间间隔(例如,对于PIC24 FJGA310,以16MIPS工作时,指令时钟周期为62.5 ns)。CTMU用于测量“细粒度”的异步时间间隔。
测量总时间=粗粒度时间+细粒度时间,CTMU和ICAP组合长时间测量示例图如图6所示。其中,TICAP=TCY×(8002-2)+(T1-T2)=500μs+(T1- T2)。
粗粒度测量的精度取决于晶振,晶振的精度一般为0.02%。细粒度测量500 ns范围内CTMU的精度为1%,即为1%×(0.500μs/500 μs)=0.001%,因此,总精度=粗粒度+细粒度=0.02%+0.001%=0.021%,由上可知测量时间的精度主要由晶振精度决定。
结语
本文基于PIC单片机的CTMU技术,提出了一种高精度测距的实现方法。该设计只要一片PIC单片机,无需复杂电路就可实现激光脉冲测距,简化了设计,提高了数据采集的精度,测程远,精度高,价格合理,操作简便,在实际测量中将发挥重要作用。随着汽车电子技术的发展,这种测量方法为汽车的自适应巡航控制(Adaptive Cruise Control,ACC)系统等应用提供了新的设计思路。