3 系统软件设计
3.1 系统主程序
系统软件设计主要采用Ds89C450的汇编语言实现。主程序完成的主要工作是:单片机系统的初始化,TDC—GPl模块初始化和工作模式的选择设置,串口通信程序、数据的处理、显示和传输等,其中单片机与上位机的通信采用查询方式。主程序流程图如图4所示。
3.2 TDC子程序
对TDC—GPl的初始化子程序流程图如图5所示。置TDc芯片于写工作状态后,开始对TDC—GPl进行写操作。通过赋值控制寄存器7屏蔽所有的SToP输入信号;接着,写控制寄存器11,初始化TDC和ALU;然后,指针指向控制寄存器0,使芯片工作于量程2,自校准模式,无数乘功能;再写控制寄存器4,选择参考时钟SEL—TDC—CLK;再写控制寄存器2,令通道2第1个脉冲上升沿与通道1第1个脉冲上升沿作差;最后,通过写控制寄存器7,取消2个通道对STOP输入信号的屏蔽,允许多次采样。在测量中,各个寄存器的设置如下:reg7=00H,regll=07H,regO=78H,reg4=40H,reg2=2lH,reg7=04H。
当单片机查询到TDC—GPl芯片输出的中断信号后,程序进入中断服务子程序。置TDC芯片于读工作状态,单片机开始对进行内部结果寄存器数据的读出操作。通过选定起始地址可读出多重数据并能连续不断地进行读操作,最后根据设置完成测试数据的计算、处理、显示及传输等功能。
4 试验数据及分析
系统工作在室温25℃,5.03 V电压条件下,通过对CPLD信号发生电路产生的数字脉冲信号间隔进行实际测量,以验证系统工作性能。分别对单个(第1组及第2组)和多个(第3组和第4组)不同的脉冲宽度进行测量,并计算其绝对误差。测量数据如表1所示。
通过对表1分析得出,测量结果保持了的测试稳定度和测量精度,基本实现了精密时差测量的功能。但仍然存在一定的时间测量误差。另外,经过对相同时差多次测量发现,测量结果有一定的波动,主要原因是时间测量模块是采用内插延时线法测量的,在工作时间过长或外界温差较大时会产生热效应,导致延时链受温度影响而延长时间变化,采用高精度的系统工作电压和恒温措施可稳定延时线延时常数,进一步提高测量精度。
5 结 语
设计基于TDC—GPl和DS89C450单片机的精密时差测量系统,通过对测量数据的分析表明,系统实现了纳秒级的时间间隔测量,同时系统具有性能稳定、精度高、节能等有优点,因而在无线定位、测时、遥控遥测、激光测距、电子测量仪器等领域具有广阔的应用前景。