|
|
数据采集卡计数器输出信号的路由与干扰抑制
阅读时间:约7分钟 适用人群:使用NI数据采集卡做数字输出或计数任务,遇到计数器信号被意外路由到外部端口并希望调整或抑制干扰的工程人员。 一、背景与问题现象 在使用计数器产生数字输出的采样时钟时,常常会发现一个意料之外的现象:计数器产生的方波信号被自动路由到了板卡的某个外部引脚上,而程序里并没有做过任何显式配置。以PCI 6259为例,计数器0的默认输出引脚是2号端子,同时这一引脚在功能上被定义为PFI12;计数器1的默认输出则对应PFI13(40号端子)。也就是说,只要计数器在产生脉冲,这个信号就会原样出现在接线端子的对应引脚上。 这一问题在实际布线时会带来具体麻烦:如果外部电路的敏感区域恰好靠近这些PFI引脚,持续输出的方波会造成电磁干扰,影响被测系统的正常工作。因此问题便集中于两点,一是能否把计数器输出完全移出外部端子,二是在无法移出的情况下,能否把它改接到一个远离敏感电路的位置。 二、计数器默认输出的硬件机制 理解这个现象要从设备的路由机制入手。X系列与M系列的板卡内部有一套复杂的信号路由网络,计数器输出信号属于可以被路由到多个目标端口的内部资源。所谓默认引脚,是指设备上电并配置计数器后,硬件会自动把该计数器的输出连接到预定义的外部端子。即使程序从未主动调用路由功能,这种默认连接依然成立,这正是干扰来源。 在测量与自动化资源管理器中,设备属性页的"路由"选项卡会列出所有可用的内部信号与其可连接的目标端口,是查看路由关系的首选位置。需要说明的是,板卡的PFI端子与数字端口存在复用关系,例如在PCI 6259上,端口2和端口3的信号与部分PFI端子共享物理引脚,因此把计数器输出路由到某个PFI后,信号也会同时出现在对应的数字端口线上。 三、路由修改的可行途径 若希望调整计数器输出所连接的端子,可以从函数选板进入数据采集高级函数,使用信号路由相关的函数完成内部信号的连接与断开。例如把PFI12上的计数器信号改接到PFI15,理论上应当使用这类路由函数建立新的连接。但在实际测试中会发现一个特殊现象:新路由建立之后,信号会同时出现在两个端子上,即使删除路由函数并重新运行程序,旧连接依然保留。这说明该设备的输出侧支持信号多扇出,单纯断开会话并不会自动清除已有的路由表项。 另一种尝试是通过计数器通道的属性节点直接指定输出端子,把输出端口的属性值设置为空,以期让信号不再出现在任何外部引脚。这一做法在执行时会返回错误,原因是空值不属于该属性允许的取值集合。需要区分的是,编辑阶段属性节点的连线未必报错,错误往往在程序真正运行时才被抛出,且错误码会明确指出该属性不接受空值。综合来看,把计数器输出彻底从所有外部端口移除,在多数型号上并不被支持,官方文档也没有提供类似"禁用输出"的开关。 四、抑制干扰的其他途径 既然无法彻底移出,就要设法降低干扰的影响。最简单直接的手段是在问题引脚上并联一个终端电阻到地,阻值可以在五十欧姆到十千欧姆之间选取。电阻直接接在接线端子上,把PFI引脚对地拉低,可以有效吸收输出端口的能量,减弱方波在外部电路上的耦合,同时避免引脚悬空时产生的浮空电压。 如果干扰仅限于计数器0所在的PFI12,改用计数器1的输出端PFI13也是一种思路,前提是计数器1在本应用中空闲。更进一步的替代方案是不使用计数器生成采样时钟,而是启动一次虚拟的模拟输入或模拟输出操作,把其采样时钟直接路由为数字输出的采样时钟。这种方式在时钟频率较低时非常干净,但对于高频需求并不总是适用,例如四兆赫兹的时钟就只能依赖计数器方案生成。 五、实践建议与小结 综合上述分析,处理计数器输出路由问题应当按如下顺序尝试:首先在路由表层面确认默认连接是否可以被显式断开;其次考虑终端电阻接地来压制干扰;再次尝试把信号改路由到离敏感电路最远的PFI端子;最后评估改用其他时钟源是否可行。信号路由配置一旦写入设备,往往会持续生效到会话结束或设备复位,调试时应确保先清理旧的连接再建立新的。 对于使用接线端子扩展板并自制附加电路的场景,布线时要刻意避开PFI密集区域,把自制电路放在远离这些引脚的一侧。高频采样时钟对布线和接地极其敏感,必要时还需配合屏蔽与滤波措施。此类问题没有一劳永逸的单一开关,多数情况下需要路由、端接与电路布局三者配合才能获得稳定的系统。调试过程中应把每次修改都记录在案,特别是路由表项的变化,因为这类硬件层面的配置在程序界面上的表现并不直观,只有结合示波器实测引脚波形,才能确认改动是否真正生效。 |