引 言
在光学中,如果用 E 表示亮度,L 表示光度,r 表示天体之间的距离,则亮度和光度之间的关系为E=L/4er2。而在天体光度学中,天体的亮度用视星等 m 表示,二者之间的关系为m=-2.5lgE,这个式子称为普森公式。在公式中的亮度 E 与光学中的照亮度一致,指的是在观测点的物体表面被天体照亮的程度,用垂直于天体轴线方向的平面上每单位面积所通过的光通量表示。根据普森公式,只要测出某个天体的亮度,就可确定其视星等。
光度测量系统就是通过测量某个星体的亮度从而确定其星等。光度测量系统由探测器、信号提取、光子计数模块组成,其中光子计数模块包括计数器和计数控制器。由于探测器和监控主机之间需要实时采集高速光子计数数据并对数据进行处理显示,所以对数据传输率的要求很高。PCI(Peripheral ComponentInterconnect)总线是一种高性能的计算机局部总线,由于拥有高达 132MB/s(33MHz,32bit 时)的带宽,非常适合于图形、图像、动画和网络等高速外设的需要。因此,我们选取了AMCC 公司提供的PCI 接口芯片S5933,并配合Xilinx 公司的 spartaNII FPGA 来实现光子计数。
1 系统的硬件结构和设计
光度测量系统由探测器、前端信号提取和光子计数模块组成,其中光子计数模块包括计数器和计数控制器。由于需要连续进行数据采集,因此将采集、控制和数据通道部分做成板卡的形式占用 PC机内部的一个 PCI总线扩展槽,通过 PCI总线和进行数据处理的计算机进行通讯。如图1 所示。

探测模块由望远镜光路系统和探测器组成。采用光子计数型光电倍增管做探测器,当一定强度光照被其接收后就将输出连续的脉冲信号。从前端采集的弱信号经过信号提取模块中低噪声前置放大器、鉴别器和脉冲整形电路后产生标准脉冲输出,此脉冲信号即为光子脉冲,其光子信号为正 TTL逻辑电平(0~5V),脉冲宽度 30ns,输出阻抗 75ù。计数器根据测量采样率的要求,产生计数控制信号,控制计数器对光子脉冲进行计数。计数值通过 PCI接口控制器送到计算机中进行数据处理。
1.1 FPGA 内计数模块的实现
在数据采集电路中,时序逻辑电路主要解决时序逻辑控制、数据锁存等功能。用普通中小规模集成电路来实现,则电路组成庞大,并且将单路计数器升级为多路计数器时,整个模块的硬件电路都要重新设计。而用超大规模的复杂组合逻辑与时序逻辑的现场可编程逻辑器件 FPGA 和 VHDL语言实现,则简单灵活,易于更新升级。在设计硬件时预留了多路光子脉冲信号的输入端口,应用中只需改变硬件程序,将其下载到 FPGA 的外带 EEPROM中就可完成单路计数器到多路计数器的升级。因此,我们采用 Xilinx 公司的SpartanII 系列芯片,实际应用中预留了大部分的硬件资源,以便今后将系统中单路计数器改为多路计数器。

一般的数据采集系统是将采集到的数据先存储在外部数据存储器中,然后再对其进行处理。对于高速数据采集而言,这种方式将严重影响其采集速度,而且存储值也会受到很大限制。可将计数值直接通过 PCI接口送至计算机内存,这样,采集速度将大大提高,而且可存储大量数据,以便于下一步的处理。计数模块的原理如图 2,其主要的功能单元包括:脉冲整形、计数锁存、计数控制、电平转换和 PCI控制接口控制模块。电平转换单元用来连接不同工作电压 FPGA 和 PCI控制芯片。在光度测量系统中,要求光度测量动态范围跨 10 个星等,图 3 的曲线就是对应不同星等的光电子计数率。系统所要求观测的最亮星为 0 等星,其光电子计数率高达 7×107cps,在采样频率为 10Hz 时,所对应的光子计数值为 7×106counts。最暗的为 9 等星,其最小分辨率为330counts。光子计数系统的最大光电子计数率取决于光电倍增管的时间响应特性和微弱信号提取及检测电路的频率特性,或由光电子脉冲宽度决定。当光电子脉冲宽度为 30ns 时,为了避免脉冲堆积效应所产生的计数误差,在 FPGA 中构造的计数器的容量为 224counts,约为 1.7×107counts。在FPGA 中采用 VHDL 语言进行设计。按其功能划分为四个模块:计数模块、清零模块、锁存模块和控制模块。计数器利用 PCI 接口的33MHz 脉冲为基准时钟,采用上升沿触发。同时由系统中的同步信号(也由 PCI 插槽中的33MHz 产生 ) 经分频后产生的频率为10/100Hz 的计数控制信号。


一般的计数器在锁存和清零的时间内将停止计数,从而引起光子的计数误差。为了避免这种计数误差,在计数器模块中采用了双计数器,从而实现了无缝计数。其原理如图4 所示。
控制模块:一方面根据系统要求产生 10/100Hz 的计数控制信号,另一方面将数据锁存后检测 S5933中 wrfull 信号,判断S5933 的 FIFO 是否为空。当 FIFO为空时就产生 S5933 的控制信号和地址信号,将锁存的数据打入 FIFO。因为采用双计数器,控制模块产生的计数控制信号 1 和 2 是互补的。计数模块中的两个计数器分别由计数控制信号1 和2 控制。当控制信号的上升沿到来时将引发相对应的计数器开始计数。举例说明,当控制信号 1 的下降沿到来时,计数器 1 将停止计数,同时将数据进行锁存,经过两个基准时钟后锁存器达到稳定,然后将计数器 1 清零。在控制信号 1 下降沿的同时控制信号 2到达上升沿,触发计数器 2 计数,当计数器 2 停止计数进行锁存和清零时,计数器 1 又将开始重新计数。就这样通过两个计数器的交替工作就可以有效地避免光子脉冲的丢失,引起计数误差。
1.2 AMCC S5933 中存储方案及工作模式
S5933 在 PCI 总线上可以扮演总线主控者,允许该器件控制 PCI 总线通过 FIFO 发送和接收数据。从外加接口访问 FIFO 缓冲器有两种方式,一种是使用一般的寄存器访问方式,另一种是使用 RDFIFO 和WRFIFO 输入信号直接访问 FIFO。设计中采用了异步寄存器访问方式。为了最大限度利用 PCI 总线带宽,外加接口设为 32 位数据宽度。当 FPGA 中的锁存器取的新的数值后将读取 S5933 的 WRFULL 信号,防止向满的 FIFO 写入数据。在确信 FIFO 为空后,将锁存器内的数据送到外加接口的数据线上,并将从设备准备好信号 TRDY 设为有效,使用地址信号 ADR[6:2], 字节允许信号 BE[3:0], 选通信号 select 和读写信号将数据传送到偏移地址为 20H 的寄存器中。当写字节计数器到 0 时将产生中断信号。当 CPU 识别出中断后,访问 PCI端的 FIFO 读寄存器接收数据,并将 FIFO 清空。FIFO 配置可以在系统初试化阶段和操作期间进行。在操作阶段定义了 FIFO 指针的前移条件为写4 个字节到 FIFO 缓冲器是一个单元数据才为满。设计中 S5933 配置了外部的 NV 串行存储器。在 NV 存储器的45H 单元设置了 FIFO 寄存器,使用传送字节计数器控制数据传送。当初始化时,系统自动将NV 存储器的配置参数装入 PCI配置寄存器。
2 驱动及应用程序设计
为实现驱动程序的可移植性,减少平台依赖性,对基于 PCI 总线的采集卡采用分层驱动程序模型WDM(Windows Driver Model)。设备驱动程序提供连接到计算机的硬件的软件接口,它是操作系统的一个信任部分,应用程序以一种规范的方式访问硬件。设计中利用了 DriverStudio 开发工具开发 Windows2000/XP 下的 WDM 设备驱动程序。用 DriverStudio 所生成的 WDM 程序框架大大节约了开发时间。应用程序设计采用 Visual C++ 6.0开发工具设计,由两个部分组成:动态链接库和应用程序。动态链接库负责与内核态的 PCI功能驱动程序通信并接收应用程序的各种操作请求,而应用程序则负责对所采集的数据进行实时显示、分析和存盘。
动态链接库的工作原理如下。当它收到应用程序开始采样的请求后,首先创建两个线程:采样线程和显示存盘线程。采样线程负责将采样数据写到应用程序提交的内存;而显示存盘线程则负责给应用程序发送显示和存盘消息。当应用程序接收到此消息后,便从它提交的内存中读取数据并显示和存盘。
3 实验与结果
利用光度测试光路,调节星模拟器亮度分别为不同的光电子计数率,在采样频率为 10Hz 时,分别测出目标、背景和暗计数数据。图5 所示为模拟目标平均光电子计数率约为 1300cps 时的测量数据,经过Matlab 概率分析目标曲线和背景曲线的差值的平均为130counts/10Hz,与 1300cps 的目标光子计数率相符,从而验证了方案的可行性。

4 结 论
采用 S5933 控制芯片和 FPGA 设计采集卡使电路简单灵活、易于单路计数器向多路计数器的升级;并在计数模块中采用了双计数器,从而实现了不间断计数。采用上述原理设计的数据采集卡已在实际应用中取得了良好的效果。
参考文献:
[1] 周维超, 李 梅, 王春鸿. PCI 总线接口卡在相关跟踪处理器中的应用[J]. 光电工程, 2003, 30(3): 10-12.ZHOU Wei-chao, LI Mei, WANG Chun-hong. Application of interface Card for PCI Bus in Correlation Tracking Processor[J].Opto-Electronic Engineering, 2003, 30(3): 10-12.
[2] 陈利学, 孙 彪, 赵玉连. 微机总线与接口设计[M]. 成都: 电子科技大学出版社, 1998.CHEN Li-xue, SUN Biao, ZHAO Yu-lian. The design of microprocess and interface[M]. Chengdu: University of ElectronicScience and Technology of China Press, 1998.
[3] Inc. MindShare, SHANLEY T, ANDERSON D. PCI system Architecture(4thEdition)[M]. Portland, US: Addison Wesley,2000.
基金项目:国家 863 高技术项目资助
作者简介:孙 青(1979-),女(汉族),江苏徐州人,硕士生,从事信号与信息处理研究。E-mail:sunqing98@163.com




