这种产生方法的脉宽和延时精度决定于高低电平的延时精度。软件延时通过调用延时函数(即Wait函数)来实现,而LabVIEW中的Wait延时函数最小只能到毫秒级,并且受Windows操作系统中多任务运行的影响,在同时运行其他程序时,延时时间不稳定。因此,这种方法只有在延时和脉宽调节精度不高的场合可以适用,而对稳定性和精度要求较高的场合,并不适用。
3.2 时钟信号法
利用数据采集卡自带的时钟信号发生器直接产生周期性的脉冲波形。这种方法可以结合NI公司的DAQ Insistant(助手)方便地设置参数,产生所需的脉冲波形。由于采用板卡的时钟信号发生器是完全基于硬件定时的,所以延时时间和脉宽调节精度及稳定性较高,具体参数取决于板卡的时钟频率。但这种方法受数据采集卡的时钟信号发生器个数和输出的路数限制,一个时钟信号的发生器只能输出一路信号,而普通的数据采集卡只有一个或几个时钟信号发生器,所以产生信号路数较少。
3.3 数字波形法
先通过软件产生波形(模拟波形),再转换成数字波形,然后从数字通道输出,循环上述过程,就可以连续产生一路周期性的TTL脉冲信号。如果需要产生多路的时序脉冲信号,只要采用多路数字信号序列同步输出的方法产生即可。比如:需要产生如图2所示的两路脉冲信号波形,可以同步地以1 kS/s的样本输出速率。分别在两个数字通道输出如图3所示的两列数字波形。
如果是多路时序脉冲,只需要增加同步输出路数就可以实现。然而时序脉冲信号的延时精度和脉宽精度调节取决于每个数字通道的样本输出速率,如采用1 MS/s的样本输出速率,则可以实现1μs(1 s/1 MHz)的调节精度,延时时间和脉冲宽度调节则通过改变延时数字样本数和脉宽数字样本数实现,具体关系为:
延时时间一精度×延时数字个数,
脉冲宽度一精度×脉冲宽度数字个数
采用数字波形法来产生时序脉冲波形。由于NIPCI-6229数据采集卡数字I/O的同步时钟采用板卡自带的硬件时钟定时,所以不受计算机操作系统多任务运行时的影响,稳定性好。PCI-6229共有48路DIO通道,因此时序脉冲输出路数扩充方便。在此,采用数字波形法和PCI-6229数据采集卡,实现了多路时序脉冲信号发生器,其延时和脉宽调节精度可以稳定地达到微秒数量级。
4 软件编程
4.1 程序框图
图4为两路脉冲信号发生器的程序框图,多路脉冲发生器只需增加相应的输入端即可。
先用Pulse Pattern.vi子模板产生一个模拟脉冲波形,其中延时、脉宽、周期(即样本数)用控件调节,再用Analog to Digital Waveform.vi子模板将模拟脉冲波形转换成数字波形,同时设定正负逻辑转换开关。再把各单路数字波形用bundle函数进行捆绑,再通过DAQmx Write.vi子模板从选定的数字I/O通道写出,故在各个数字输出通道产生脉冲波形。然而时序脉冲信号的周期性通过For Loop循环实现,一次循环产生一个脉冲波形,即实现一次控制过程,如果需要进行多次控制,只要设定循环次数即可。
数字信号输出过程中的关键是数字通道的样本输出速率。样本输出速率通过一个样本时钟控制,在本发生器中由计数器/定时器通过编程输出设定频率的连续矩形脉冲,再从数据采集卡的PFI12接口输入,作为控制各路数字波形输出的同步时钟,控制各数字通道同步输出波形。其中,同步时钟脉冲的周期就是时序脉冲延时和脉宽调节精度。实际测量表明,在该数据采集卡中最小可达到0.5μs的调节精度。