首先需要理解信道增益队列背后的概念。信道[1]增益队列是板卡上的存储器,它以给定顺序存储信道和增益。例如,用户可以指定信道0/增益-1,信道1/增益-2和信道0/增益-1作为信道增益队列中的三个条目。当开始数据采集的命令被发送给DriverLINX时,数模转换器会按照指定的顺序,以指定的增益读取那些信道,然后将数据返回给软件去处理。
用户可以将高速数字读取实现在主板的模拟输入信道增益队列[2]中。在这种情况下,请求信道0的同时需要指定一个特别的增益码,以表示需要16位的数字数据,而不是模拟输入的信道0. DriverLINX服务请求的增益属性是16位宽,然而只有较低的几位需要唯一的标识板卡的可用模拟输入范围:与单极或双极结合的1,2,4和8的增益只会产生8种可能的组合。增益属性的较高位被用于选择板卡[3]的特别功能。如果为信道0请求的增益所对应的值第13位被设置为1(8192),这就表明需要16位数字数据,而不是模拟输入信道0。
高速读取有几个值得注意的重要特性:
l 数字读取执行既不是轮询,也不是中断读取。相反,它们直接通过PCI[4]总线和总线控制进行传输,就像在数字输入子系统一样,允许高速流。在3M赫兹时的数据量非常巨大,因此必须分配更多的缓冲区。
l 这些数字读取是确定的,这些值以一个已知的时间被读取,在最好情况下,每次读取需333纳秒(3M赫兹)。这是一个有节奏的、时钟控制的、带有缓存的读取。
模拟输入子系统内的数字读取背后的真正价值是,它使子系统之间不需要切换。这使模拟和数字数据被读取而无需损失任何切换子系统的时间。因而,用户可以读取模拟信道0,模拟信道1,数字数据,模拟信道2,模拟信道3,然后重复。这些读取是通过直接在信道增益队列上实现来达到这一点的。
以一种类似的方式实现同步的数字写入和模拟读取是可能的。首先,像通常一样选择信道和增益,然后修改增益,将数字数据以及一个与硬件相关的值合并到增益中。重要的是要记住这些数据与模拟输入读取同步,因此它总是以模/数转换器采样的速度被写入,无论这速度是多少。如果模拟输入子系统被设置为250K赫兹,那么数字数据就会以250K赫兹被写入。