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所示。