PCI-2410,八通道同步卡

Similar documents
三 使用 3.1 JP1: JP1: 三针跳线, 决定 XC1612P 卡 A/D 的输入范围 输入 :-5-5V( 出厂时, 默认设置 ) JP1(1-2 短接 ) 输入 :-10-10V JP1(2-3 短接 ) 3.2 A/D 注意事项 : (1) 输入信号最好应用屏蔽电缆接线 ; (2) 当

NET-1203

行业

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

行业

供充放一体电源及充电电源手册_0_.doc

产品硬件使用说明书

录 目 录 第 5 章 我 们 的 世 界 第 5.1 节 精 彩 的 世 界 1 第 5.2 节 数 字 化 生 存 3 第 5.3 节 测 量 世 界 探 悉 4 第 5.4 节 取 样 - 量 化 导 致 信 息 丢 失 8 第 5.5 节 数 字 化 世 界 更 精 彩 10 第 6 章 L

行业

行业

untitled

行业

手册 doc

目录

bingdian001.com

ETA104 数据采集模块数据手册

KPCI KPCI-815 TEL: Fax:

<4D F736F F D20C9EEDBDACAD0B6ABB3CFD0C5B5E7D7D3BFC6BCBCD3D0CFDEB9ABCBBEBDE9C9DCBCB0BFE2B4E6>

Electrical and Optical Clock Data Recovery Solutions - Data Sheet

控制器 EtherCAT EtherCAT EtherCAT 接下一个电机驱动模块 (X4) 接下一个电机驱动模块 (X5) X11 IN X4 IN X3 OUT X5 IN X6 OUT X2 X1 X4 IN X3 OUT X5 IN X6 OUT X2 X1 SYS STA DC BUS D

PCI2003硬件说明书

Microsoft Word - Delta Controller ASCII_RTU_SC

COMPACT

JX-300X DCS 3.1 SP202 SP201S SP211 SP243X SP233 SP244 SP221 SP251 SP251-1 SP *600* *425*1000 RS-232/RS-485 5V24V 110W 24V 110W SP291 SB

ebook50-15

灵星LED视频屏控制板

行业

KPCI KPCI-815

行业

COMPACT

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

K-846使用说明书

untitled

数据采集编程指南 下篇 ni.com/china/daq

8S E600Y 0773-CE

第一部分 绪论

TDS5000B MyScope MyScope MyScope MyScope TDS5000B TDS5000B (DPO 1 GHz 5 GS/s 16M DPO MyScope TDS5000B TDS5000B DPO DPX 100,000 DPX DPO 2

PTS7_Manual.PDF

TDS5000B MyScope MyScope MyScope MyScope TDS5000B TDS5000B (DPO 1 GHz 5 GS/s 16M DPO MyScope TDS5000B TDS5000B DPO DPX 100,000 DPX DPO 2

额定规格 / 性能 单相 标准认证 UL CSA. NO. EN-- 额定规格输入 环境温度 项目电压电平额定电压使用电压范围输入电流型号动作电压复位电压 - B ma 以下 DC~V DC.~V DC.V 以下 DC.V 以上 - BL ma 以下 输出 项目 * 根据环境温度的不同而不同 详情请

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

行业

USB2813数据采集卡

Intersil精密模拟器件

untitled

感 谢 您 选 购 安 富 莱 电 子 的 产 品! 安 富 莱 AX-Pro 逻 辑 分 析 仪 和 示 波 器 是 一 款 基 于 USB2.0 高 速 接 口 的 虚 拟 仪 器, 是 电 子 工 程 师 和 软 件 工 程 师 常 用 的 一 种 电 路 分 析 和 软 件 协 议 分 析

Microsoft Word - 部分习题参考答案.doc

s00_000_Dummy f.r Titelseite nur f.r Arbeits-PDFs

产品硬件使用说明书

ISA-9620用户手册.PDF

PCI2003硬件说明书

USB2089数据采集卡

D/A DAC ( 1us) (10~20 ) DAC0832 1

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

STEP-MXO2 V2硬件手册

OB1

<4D F736F F D20C9EEDBDACAD0BAA3D4C2CDA8D0C5B6AFCCACC3DCC2EBBDE2BEF6B7BDB0B82E646F63>

The golden pins of the PCI card can be oxidized after months or years

USB2815数据采集卡

TD

  K-845 开关量输入输出卡技术说明书

KPCI-842使用说明书

目录 1. 产品介绍 概述 功能结构框图 产品特性 产品规范... 6 模拟输入... 6 模拟输出... 7 数字 IO... 7 计数器... 8 总线接口... 8 电源要求... 8 其他规格 外

IEC JIS HIOKI : 25~1000V : AC3kV : AC5kV : 2000M : AC5kV : 9999M : AC/DC 5kV : 4000M ( 1000V/500V * /

6020

用户大会 论文集2.2.doc


Keysight B2900A / Keysight B2961A 6 Keysight B2962A 6 Keysight B2961A B2962A nano-voltmeter / nv/10 fa 10 µvrms 210 V/ 3 A 10.5 A GUI nv 2

IC芯片自主创新设计实验

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

2005.book

FY.DOC

MICROMASTER 410/420/430/440 DA kW 250kW MICROMASTER Eco & MIDIMASTER Eco MICROMASTER, MICROMASTER Vector DA64 MIDIMASTER Vector 90kW (Low

i

DVK530/531扩展板


LED 显示屏驱动 IC2011V1.1 SM16125 概述 SM16125 是专为 LED 显示屏设计的驱动芯片, 内建 CMOS 位移寄存器与锁存功能, 可以将串行的输入数据转换成并行输出数据格式 SM16125 提供 16 个电流源, 可以在每个输出端口提供 3 45mA 的恒定电流, 大小

Microsoft Word - install_manual-V _CN.docx

Agenda PXI PXI

CC213

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

电子技术基础 ( 第 版 ) 3. 图解单相桥式整流电路 ( 图 4-1-3) 电路名称电路原理图波形图 整流电路的工作原理 1. 单相半波整流电路 u 1 u u sin t a t 1 u 0 A B VD I A VD R B

untitled

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

2 12

Ps22Pdf

51 C 51 isp 10 C PCB C C C C KEIL

K-848使用说明书

MICROMASTER 410/420/440 DA kW 200kW MICROMASTER Eco & MIDIMASTER Eco MICROMASTER, MICROMASTER Vector DA64 MIDIMASTER Vector 90kW (Low-Vol

技 术 文 件

untitled

概述

F515_CS_Book.book

SuperE RTU RTU/SCADA RTU SuperE RTU SuperE RTU SuperE RTU contr

ART2030 SSI数据输出卡

2

CHAPTER 1

19. 具 有 标 准 有 线 防 区 接 口 有 线 紧 急 按 钮 接 口 外 接 警 号 接 口 20. 电 源 交 直 流 自 动 切 换 : 配 高 效 长 寿 可 充 电 池 组, 平 常 涓 流 充 电, 交 流 停 电 自 动 转 换 三 GSM 联 网 报 警 编 程 操 作 GS

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Transcription:

PCI-2410 声音震动采集卡 8 路同步 24 位 AD,2 路 PWM,2 路测频,2 路计数 ( 或分频 ),16 路 DI/DO 用户手册 北京新超仁达科技有限公司 2013.01 版权所有 (C) 北京新超仁达科技有限公司 2013 在无北京新超仁达科技有限公司优先书面授权书前提下, 此出版物任何一个部分不可通过任何形式进行复制 修改和翻译 对于非法复制 修改和翻译商业行为, 将根据国家 知识产权相关法律追求其法律责任 从此文件发布日期起, 在此发表的是当前或者拟定的信息 由于我们会不断对产品进行改进和增加特征, 此出版物中的信息如有变动恕不另行通知 版权所有 @XC www.xckz.com 最后更新时间 :2014-2-12 1

一 概述...3 二 主要特点 性能... 3 三 技术参数...4 四 使用...4 4.1 ID 设置 :( 四位拨码开关 SW 设置 )... 4 4.2 A/D 注意事项 :...4 4.3 AS1,JTAG1:... 4 4.4 输出码制对应关系:... 4 五 接口定义与信号连接... 6 5.1 接口插座定义... 6 5.1.1 板卡 SMB 端子定义 跳线设置及 IEPE 传感器接法...6 5.1.2 P1 口定义... 7 5.1.3 P2 口定义... 7 5.1.4 P3 口定义... 8 5.2 模拟信号输入连接方式... 8 六 工作原理...9 6.1 逻辑框图...9 6.2 AD 工作模式 :... 9 6.2.1 连续采集:... 9 6.2.2 触发采集:... 9 6.3 AD 采集中断和 DMA... 10 1) 单次触发 :...11 2) 周期触发 :...11 3 ) 其他情况 :...11 6.4 FIFO 中数据存放顺序... 11 6.5 模拟 8254 分频 / 计数器... 11 6.6 测频原理...11 6.7 PWM 输出原理... 12 七 驱动...14 八 例程说明...16 8.1 关于 PCI2410.dll 位置的说明... 16 8.2 高级语言调用说明... 16 九 动态链接库中 API 函数说明... 18 十 维修服务...29 10.1 产品完整性... 29 10.2 维修...29 10.3 服务...29 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 2

PCI2410 用户使用手册 版权声明 : 本手册由北京新超仁达科技有限公司提供, 任何单位 个人不得转载 修改该文档的样式和内容, 否则将追究法律责任 版权归北京新超仁达科技有限公司 一 概述 PCI2410 是一款高性能的数据采集卡, 由北京新超仁达科技有限公司精心设计 适合中高速 高精度等场合的测量应用 PCI2410 具有 8 路同步差分输入 32 路开关量 (16 路 TTL 输入及 16 路 TTL 输出 ) 2 路方波测频 2 路 24 位脉冲计数 ( 或者方波分频 ) 2 路 24 位 PWM( 可指定 Pulse 个数 ) 输出等功能 AD 采集部分 : 其采集方式 触发源 时钟源 触发方式丰富, 极大的满足了不同用户的测量需求 PCI2410 的逻辑控制采用现场可编程门阵列 (FPGA) 实现, 以提高可靠性 同时数字地 (GND) 模拟地 (AGND) 分离, 单点接地, 以消除回路干扰 二 主要特点 性能 A/D 转换器 :156kSPS( 可选 312kSPS 版本 ) 24 位 Sigma-Delta ADC; 模拟信号输入方式 :8 路同步差分输入 模拟部分供电 :LDO 供电 ; 工作方式 : 中断 查询 ; 数据传输方式 :DMA; 本体噪声低, 通道隔离度高 ; 双极性输入电压范围 :±10V( 可选 ±30V 版本 ); 独立程控增益,4 级可调, 即 1 倍 10 倍 100 倍和 1000 倍 ; IEPE 传感器恒流源电流大小 :4.38mA @2%; IEPE 传感器激励电压 :24V; 恒流源输出阻抗 :>250 k Ω at 1 khz; 恒流源噪声 :<500 pa/ Hz; 耦合方式 :AC/DC; AC 耦合 -3dB 截止频率 :0.8Hz(±10V 版 ),0.83Hz(±30V 版 ); AD 采样频率可调 :1 ksps~156ksps( 或 1 ksps~312ksps); 采集方式 : 分连续采集和触发采集 ; 触发源有 4 种, 即脉冲触发 模拟触发 定时 心跳 触发 软触发, 软触发 用于连续采集模式 ; 触发模式有 4 种, 即预触发 中间触发 后触发 延时触发, 支持周期触发和单次触发 ; 时钟源支持内时钟和外时钟 ; 连续采集模式时, 触发源为 软触发, 欲多卡同步启动, 软触发后操作指定引脚即可 ; 板载 SDRAM 存储器 (4M 字 FIFO 化 SDRAM), 单次触发采集时最大可采集 2M 个点 ; FIFO 溢出监测, 包括 单次采完, 满, 半满, 空等状态 ; 板载 ID 识别, 支持多卡同步操作 ; 提供 WIN7/VISTA/2000/XP 下驱动程序及动态连接库 ; 尺寸大小 ( 不含挡片 ):99(W) 168(L) (mm) 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 3

三 技术参数 工作电压 : 5V±0.25V 功耗 : 5V@750mA 3.3V@450mA 12V@100mA 典型 工作温度 : 0 ~70 存储温度 : -20 ~85 湿度 : 5%~95%, 无冷凝 四 使用 4.1 ID 设置 :( 四位拨码开关 SW 设置 ) 如果系统插入了两块一样的卡, 可通过设置不同的 ID 来进行区分 具体设置如下表 : ID3 ID2 ID1 ID0 Board ID ON(1) ON(1) ON(1) ON(1) 15 ON(1) ON(1) ON(1) OFF(0) 14 ON(1) ON(1) OFF(0) ON(1) 13 ON(1) ON(1) OFF(0) OFF(0) 12 ON(1) OFF(0) ON(1) ON(1) 11 ON(1) OFF(0) ON(1) OFF(0) 10 ON(1) OFF(0) OFF(0) ON(1) 9 ON(1) OFF(0) OFF(0) OFF(0) 8 OFF(0) ON(1) ON(1) ON(1) 7 OFF(0) ON(1) ON(1) OFF(0) 6 OFF(0) ON(1) OFF(0) ON(1) 5 OFF(0) ON(1) OFF(0) OFF(0) 4 OFF(0) OFF(0) ON(1) ON(1) 3 OFF(0) OFF(0) ON(1) OFF(0) 2 OFF(0) OFF(0) OFF(0) ON(1) 1 OFF(0) OFF(0) OFF(0) OFF(0) 0 表一 ID 设置 注意 :OFF:0,ON:1 4.2 A/D 注意事项 : (1) 输入信号最好应用屏蔽电缆接线 ; (2) 当输入噪音较大时, 应用对采样结果进行多次平均的方法处理或硬件滤波 ; 4.3 AS1,JTAG1: 为 FPGA 编程下载线, 用户无需理会 4.4 输出码制对应关系: 双极性方式工作时, 转换后的 24 位数码为补码 此时 24 位数据的最高位 (DB 23 ) 为符号位, 1 表示负, 0 表示正 若您购买的是宽量程版本 (±30V) 的板卡此时数据与模拟电压值的对应关系为 : 如果 DB 23 =0: 模拟电压值 =( 数据 (24 位 ) 4.096 1.5 5.8485 1.25 (8388607 N); 如果 DB 23 =1: 模拟电压值 =( 数据 (24 位 )- 16777215) 4.096 1.5 5.8485 1.25 (8388607 N); N 受程控增益影响, 与各档位对应关系如下 : 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 4

±30V 档 :N = 1; ±3V 档 :N = 10; ±300mV 档 :N = 100; ±30mV 档 :N = 1000; 若您购买的是窄量程版本 (±10V) 的板卡此时数据与模拟电压值的对应关系为 : 如果 DB 23 =0: 模拟电压值 =( 数据 (24 位 ) 4.096 1.5 2 1.25 (8388607 N); 如果 DB 23 =1: 模拟电压值 =( 数据 (24 位 )- 16777215) 4.096 1.5 2 1.25 (8388607 N); N 受程控增益影响, 与各档位对应关系如下 : ±10V 档 :N = 1; ±1V 档 :N = 10; ±100mV 档 :N = 100; ±10mV 档 :N = 1000; 板卡外观 : 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 5

五 接口定义与信号连接 5.1 接口插座定义 5.1.1 板卡 SMB 端子定义 跳线设置及 IEPE 传感器接法 SMB 座 通道号 屏蔽壳 信号芯 SMB7 CH7 AIN7- AIN7+ SMB6 CH6 AIN6- AIN6+ SMB5 CH5 AIN5- AIN5+ SMB4 CH4 AIN4- AIN4+ SMB3 CH3 AIN3- AIN3+ SMB2 CH2 AIN2- AIN2+ SMB1 CH1 AIN1- AIN1+ SMB0 CH0 AIN0- AIN0+ SMB8 ATR AGND( 模拟地 ) 模拟触发输入 表二 模拟输入插座 CN1(DB37) 接口定义表 AIN n + AIN n -: 模拟信号输入差分对,n = 0,1,2 7, 分别对应 8 路 A/D 输入通道 ; 板卡跳线设置如上图, 一共 8 组跳线, 每路 AD 对应一组 ( 上下及右边共三个 ) 跳线 ; 例如 : 在使用 IEPE 加速传感器时, 短接下侧跳线以接通恒流源, 断开上侧跳线配置成 AC 耦合方式, 同时把右侧跳线短接 ; 出厂默认为断开恒流源,DC 耦合,SMB 外壳未接地 使用 IEPE 传感器时, 待传感器接好后, 请务必确保右侧跳线短接, 即通道差分对负端 (SMB 屏蔽壳 ) 接至 AGND; 否则传感器可能不工作 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 6

5.1.2 P1 口定义 插座引脚号 信号定义 插座引脚号 信号定义 (IDC20) (IDC20) 1 EXT_CLK 2 GND 3 GND 4 GND 5 测频 0 6 C_OUT0 7 G0 8 C_IN0 9 测频 1 10 C_OUT1 11 G1 12 C_IN1 13 GND 14 PWM0 15 GND 16 PWM1 17 DTR 18 PACER_PULSE 19 +5V_OUT 20 +12V_OUT 表三 脉冲 计数 测频信号插座 P1(IDC20) 接口定义表 EXT_CLK:AD 外时钟 使用 156kSPS 版本采集卡时, 采样速率 = 外时钟 /256; 使用 312kSPS 版本采集卡时, 采样速率 = 外时钟 /128; C_IN0 C_IN1 : 模拟 8254 输入端 ; C_OUT0 C_OUT1 : 模拟 8254 输出端 ; G0 G1: 模拟 8254 门控输入, 高电平使能, 低电平禁能 ; PWM0 PWM1: 固定或连续脉冲输出端 ; 测频 0 测频 1: 待测频信号输入端 ( 方波输入 ); GND: 数字地 DTR: 脉冲触发 PACER_PULSE :PACER 脉冲输出, 当触发源选用 定时触发 时, 定时器超时后输出 500ns 高脉冲, 可用做别的卡的脉冲触发源, 以同步多块卡 ; 5.1.3 P2 口定义 插座引脚号 (IDC20) 信号定义 插座引脚号 (IDC20) 信号定义 1 DO 0 2 DO 1 3 DO 2 4 DO 3 5 DO 4 6 DO 5 7 DO 6 8 DO 7 9 DO 8 10 DO 9 11 DO 10 12 DO 11 13 DO 12 14 DO 13 15 DO 14 16 DO 15 17 GND 18 GND 19 +5V_OUT 20 +12V_OUT 表四 数字量输出插座 P2(IDC20) 接口定义表 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 7

5.1.4 P3 口定义 插座引脚号 (IDC20) 信号定义 插座引脚号 (IDC20) 信号定义 1 DI 0 2 DI 1 3 DI 2 4 DI 3 5 DI 4 6 DI 5 7 DI 6 8 DI 7 9 DI 8 10 DI 9 11 DI 10 12 DI 11 13 DI 12 14 DI 13 15 DI 14 16 DI 15 17 GND 18 GND 19 +5V_OUT 20 +12V_OUT 表五 数字量输入插座 P3(IDC20) 接口定义表 其中 P2 P3 口的 19 20 脚为 +5V_OUT,+12V_OUT, 可往外提供 +5V 和 +12V 输出 5.2 模拟信号输入连接方式 AIN0+ 信号 AIN0- 输入 连 AIN7+ 接器 AIN7- + + 外部模拟输入差分信号 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 8

六 工作原理 6.1 逻辑框图 CH1..CH8( 模拟信号差分输入 ) 16 路 DI 16 路 DO ADC( 内含差分运算放大器 ) 缓冲器 锁存器 TRIG( 外触发信号 ) 4 位拨码 (ID) 现场可编程门阵列 FPGA ( 内含地址译码 数据锁存 数据缓冲 控制电路等 ) SDRAM( 存储器,4M 字 ) PCI 总线接口芯片 PLX9054 PCI 总线 6.2 AD 工作模式 : 6.2.1 连续采集: 用户配置采样频率和通道后, 勾选 连续采集 模式后, 点击 开始采集 按钮, 便可进行连续不间断采样 ; 多卡同步 连续采集 时, 须点击 开始采集 并触发 P1 口 Pin17 脚 ( 拉低后释放即可 ), 方可采集数据 ; 6.2.2 触发采集 : 在这种模式下, 用户需配置触发源, 触发模式及触发参数 JDK, 如下图 ; 点击 开始采集 按钮后,PC 便可根据 FIFO 状态或中断获取数据 J: 触发事件前采集 WORD 数, 即 J/2 个点 D: 触发事件后延时 WORD 数, 即 D/2 个点 K: 触发事件后采集 WORD 数, 即 K/2 个点 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 9

触发源 : 1) 脉冲触发源 : 脉宽不小于 50ns 的 TTL 高脉冲信号 ; 2) 模拟触发源 : 幅值在 -5V -- +5V 之间, 信号越平滑越好, 如下图示 ; 当周期触发时, 须保证两次模拟触发间隔不要小于 0.2ms; 3) 定时触发源 :32 位定时器, 基准时钟 4M, 即定时间隔最大可设置为约 1073.7S; 定时器超时后,DB37 头 Pin28 将输出脉宽 500ns 的高脉冲, 多卡同步操作时, 在无脉冲触发源时可作为另一块卡的触发源 ; 4) 软触发源 : 即 开始采集 按钮, 用于连续采集模式 ; 在触发采集模式下, 开始采集 按钮并非真正的触发源, 只用于告知采集卡 PC 已经准备好, 可采集数据了 ; 触发方式 : A. 单次触发 1) 预触发 : 参数 J 有效, 在触发信号来之前预先采集数据, 触发信号来了之后停止采集, 告知 PC 读取数据 ; 若触发信号来的过早, 会出现预采数据不够的情况,PC 会有相应画面呈现 ; 2) 中间触发 : 参数 J 及 K 有效, 在触发信号来之前预先采集数据, 触发信号来了之后继续采集够所设值, 停止采集, 告知 PC 读取数据 ; 若触发信号来的过早, 会出现预采数据不够的情况,PC 会有相应画面呈现 ; 3) 后触发 : 参数 K 有效, 触发信号来了之后采集够所设值, 停止采集, 告知 PC 读取数据 ; 4) 延时触发 : 参数 D 及 K 有效, 触发信号来了之后, 延时所设时间后并采集够所设值, 停止采集, 告知 PC 读取数据 ; B. 周期触发 1) 预触发 : 参数 J 有效, 在触发信号来之前预先采集数据, 触发信号来了之后停止采集, 即 单次采完 之后告知 PC 读取数据, 待 PC 读取数据之后方可继续感知下一次触发信号 ; 若触发信号来的过早, 会出现预采数据不够的情况,PC 会有相应画面呈现 ; 2) 中间触发 : 参数 J 及 K 有效, 在触发信号来之前预先采集数据, 触发信号来了之后继续采集够所设值, 停止采集, 即 单次采完 之后告知 PC 读取数据, 待 PC 读取数据之后方可继续感知下一次触发信号 ; 若触发信号来的过早, 会出现预采数据不够的情况,PC 会有相应画面呈现 ; 3) 后触发 : 参数 K 有效, 触发信号来了之后采集够所设值, 继续感知下一次触发信号, 待 FIFO 采集够半满告知 PC 读取数据 ; 此方式可以实现 一个脉冲输入采集一个点 需求 4) 延时触发 : 参数 D 及 K 有效, 触发信号来了之后, 延时所设时间后采集够所设值, 继续感知下一次触发信号, 待 FIFO 采集够半满告知 PC 读取数据 ; 6.3 AD 采集中断和 DMA 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 10

1) 单次触发 : 采集够一次触发事件设定的量, 随即产生 PCI 中断, 同时 FIFO 状态 单次采完 置位 ;J+K 须为 128 的整数倍, 并且不大于 4M; 2) 周期触发 : 当参数 J > 0( 即有 预采 情况时, 如预触发, 中间触发 ), 采集够一次触发事件设定的量, 随即产生 PCI 中断, 同时 FIFO 状态 单次采完 置位 ; 等上位机读完数据后, 采集卡才会去感知下一次触发事件, 要读取多少数据由 J 和 K 定 ;J+K 须为 128 的整数倍, 并且不大于 4M; 3 ) 其他情况 : 半满产生 PCI 中断 ; 6.4 FIFO 中数据存放顺序 FIFO 位宽为 16 位 (D0~D15), 模拟信号通过 AD 转换以后, 转换结果按通道依次交织存放在 FIFO 中 6.5 模拟 8254 分频 / 计数器板卡带两个 FPGA 模拟的 8254 计数器 ; 可用于分频方波信号和测量方波频率 ; 1) 方式 0 - 计数器赋初值后, 输出 OUT 立即变为低电平, 随即自动启动计数在每个 CLK 时钟上升沿, 计数器进行减 1 计数 计数值减到零时,OUT 输出变为高电平, 保持到下一个上升沿到来之前, 之后计数器自动重新装载初值, 如此反复 ; GATE 用于控制计数过程 GATE 为高电平, 允许计数 ;GATE 为低电平, 暂停计数 详情见时序注意 : 两路输入 C_IN 脚, 不用的加上拉, 不然有相互串的影响 ; 2) 方式 0 - 分频器 写入计数初值后, 输出 OUT 立即变为高电平, 随即自动启动分频 详情见时序 ( 五分频的例子,clk 为待分频信号,clk_div 为五分频后的输出信号 ) 6.6 测频原理 测量信号 ( 方波 ) 的相邻两个上升沿之间的间隔 例如 : 软件发测量命令, 用系统时钟 4MHz 测量待 测信号的两个相邻上升沿的间隔, 间隔用系统时钟数表示, 用户由此可以方便的计算出信号的频率 由于 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 11

最大间隔数为 24 位表示的数据 ( 最大 0xFFFFFF, 即 16777215 ), 最大定时长度为 4.19S (16777215*0.25 s 4.194303S) 说明 :START 信号为低, 软件启动一次测频, 测量待测信号两个相邻上升沿的时间宽度 ( 为 5 个 系统时间, 系统时钟 4MHz) 图中的 TimerOver 信号,1: 测频未结束 ;0: 测频结束 计算出外部信号的频率 Fre = 4 10 3 (XCounter), 单位 KHz 测频有关函数的调用步骤 : 调用 PCI2410_Set_FrequencyStar 函数, 启动测频, 即发图中的 START 信号 ; 调用 PCI2410_R_FrequencyStatus 函数, 判断定时是否结束, 即图中的 TimerOver 信号 ; 如果测频结束, 调用 PCI2410_R_FrequencyNum 函数, 获取频率, 单位 KHz 能测量的最低信号频率为 :4M 16777215 0.2384Hz;( 测量低频的时候, 所花时间较长 ) 从图中能看出, 待测信号的频率越高, 测量误差越大, 为了能够测量高频信号, 可以采用先分频, 再测频的方式 本卡自带二路分频器 章节 ) 硬件的连接方法 :( 支持两路测频 ) 将外部待测信号, 从 测频 0 或 测频 1 接入, 信号地接 GND ( 引脚定义详细参照 P1 口定义 6.7 PWM 输出原理工作模式 : 模式 0:PWM 模式 用户可以定义输出方波的周期及占空比 模式 1: 固定脉冲模式 用户可以定义输出方波个数 周期及占空比 方波输出 : 用户通过 LRESULT WINAPI PCI2410_Set_PWMInt(HANDLE hplx,float *Fre,float high_low,dword Num,BYTE CHNum) 函数, 初始化 PWM 配置, 调用启动函数 PCI2410_Set_PWMStar( 也可用此函数终止方波输出 ), 板卡开始连续输出方波 方波的输出频率由 Fre 控制, 方波的占空比由 high_low 控制, 在连续输出模式下 Num 参数无效 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 12

提示 : 方波输出的脉冲占空比 (5% 95%); PCI-2408 的方波输出频率范围为 :0.12 Hz-2MHz 输出示意图 : 输出波形 高电平宽度 重复周期 连续输出时序图 : PWM 输出可以应用于 : 1 方波输出 2 灯光或电机控制, 通过输出固定频率的信号, 并设置占空比, 来控制亮度或转速 3 电压信号的远程传输, 因为数字信号通过隔离或差分发送器 (RS485 或 422 发送器 ) 可以传输很远, 可以通过固定周期而调节脉冲的宽度来表示电压信号的幅度, 最大分辨率可以到 24 位 固定个数脉冲输出 : 用户通过 LRESULT WINAPI PCI2410_Set_PWMInt(HANDLE hplx,float *Fre,float high_low,dword Num,BYTE CHNum) 函数, 初始化 PWM 配置, 调用启动函数 PCI2410_Set_PWMStar 在内部时钟 ( 也可用此函 数终止方波输出 ) 板卡开始连续输出方波 方波的输出频率由 Fre 控制, 方波的占空比由 high_low 控制, 达到固定个数后, 脉冲输出可自动停止 固定个数输出时序图 : 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 13

固定脉冲输出可以应用于 : 1 控制电磁阀门 快门的一次性开启时间 2 输出单脉冲 3 输出触发信号 4 输出固定个数脉冲, 实现精确控制 七 驱动 PCI2410 的软件包括 PCI2410 驱动程序, 调用例程 7.1 驱动安装 PCI2410 驱动安装步骤如下 : WIN7 安装驱动前, 请确定是管理员身份登录 同时设置用户帐户控制 (UAC), 如图所示 : ( 如何进入系统的用户帐户控制? 进入控制面板 -> 用户帐户和家庭安全 -> 用户帐户 -> 更改用户帐户控制设置 ) 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 14

鼠标将滑块滑到 从不通知, 然后点 确定 即可 1 关闭计算机, 将 PCI-2408 卡插入 PCI 插槽 ( 白色 ) 启动计算机后, 操作系统将自行检测新硬件, 并弹 出 添加新硬件向导 对话框 : 点取消按钮 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 15

2 双击运行驱动文件夹中的 wd_install.bat 批处理即可 完成安装后如从 ( 控制面板 / 系统 / 设备管理器 ) 中可找到外部设备 :PCI-2408, 则可证明硬件驱动安装正确 7.2 驱动的卸载双击运行驱动文件夹中的 remove.bat 批处理即可 八 编程指导 8.1 DLL 函数全部是 WINAPI 调用约定的, 即 _stdcall 接口在使用各种编程语言时应注意选择, Visual C++/C++ Builder/Delphi 可以使用两种类型的调用约定 要在函数定义中明确指出 _stdcall 还是 _cdecl; Visual Basic/PowerBuilder 等语言应该使用 WINAPI 调用接口 八 例程说明 8.1 关于 PCI2410.dll 位置的说明 用户机器搜索动态链接库 (PCI2410.dll) 的顺序为 : 程序的执行目录当前目录系统目录 ( 依次是 :%windir%\system32, %windir%\system, %windir%), %windir% 代表系统目录 Path 环境变量所列出的路径所以可以把动态链接库放置在加载模块将要搜索的目录中的任一目录下 例子程序将 PCI2410.dll 放在程序的执行目录 以便快速找到 8.2 高级语言调用说明一 VC 程序编程说明编程前, 将 PCI2410.lib,PCI_2410.h 拷贝到用户当前项目所在目录中 VC 编程的基本流程 : 方式一 : 隐式链接 1 利用隐式链接动态链接库函数 PCI2410.lib,PCI_2410.h 文件必须在当前工作目录中 方法, 程序的开始处加入如下语句 : #pragma comment(lib, PCI2410.lib ) #include PCI_2410.h 2 调用 PCI2410_RegDriver 函数进行注册 ; 3 调用 PCI2410_init 函数进行初始化 the PLX library; 4 单块卡: 调 PCI2410_DeviceOpen 函数 ; 多块卡 : 调 PCI2410_OpenDeviceALL 函数 ; 获得板卡的操作句柄 ; 5 在退出程序时必须执行如下操作 : A 调用 PCI2410_DeviceClose 函数关闭句柄 B 调用 PCI2410_LibUninit 函数取消初始化 the PLX library 方式二 : 显式加载 1 调用 LoadLibary 函数加载 PCI2410.dll; 2 调用 GetProcAddress 函数, 获取 PCI2410.dll 导出函数的地址 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 16

3 注意强制类型转换 4 利用函数指针变量两种方式各有优点, 请客户按照实际情况自行取舍 ( 更多知识请参照 MSDN 或专业书籍 ) 详细可以参考光盘上的 PCI2410 的 VC 目录下的例子 在编程时必须注意, 硬件操作句柄 hplx 必须为全局变量或必须传递给有相应硬件操作的函数 硬件句柄只要在程序启动时打开一次即可, 不需要每次打开或关闭 二 VB 程序编程说明编程前, 请将 PCI2410.dll 动态链接库拷贝到用户工程所在的目录或 windows 系统的 system32 目录中 ( 注 : 如果用户是 Window xp/2000 系统, 请将 PCI2410.dll 动态链接库拷贝到 system32 目录下 ; 如果用户是 Windos98 系统, 请将 PCI2410.dll 动态链接库拷贝到 system 目录下 ) VB 编程的基本流程 : 1 在工程菜单中选择添加模块, 将 PcMod.bas 模块添加进来 ( 该模块在光盘中 \PCI2410\vb 目录中, 应用时将文件拷贝到当前工作目录 ), 此文件为所有函数的声明文件 2 在模块中定义一个硬件操作句柄 hplx, 为一个 long 属性的全局变量, 这样可以被用户程序中的所有 form 调用 3 调用 PCI2410_RegDriver 函数进行注册 ; 4 调用 PCI2410_init 函数进行初始化 the PLX library; 5 单块卡 : 调 PCI2410_DeviceOpen 函数 ; 多块卡 : 调 PCI2410_OpenDeviceALL 函数 ; 获得板卡的操作句柄 ; 6 在退出程序时必须执行如下操作 :A 调用 PCI2410_DeviceClose 函数关闭句柄 B 调用 PCI2410_LibUninit 函数取消初始化 the PLX library 在退出程序时必须执行如下操作 : 利用 PCI2410_DeviceClose 函数关闭句柄注 :PcMod.bas 模块已经包含了所有必要的 PCI2410 函数的声明语句 有关用户其他方面的应用请参考光盘中的例程 注 :VB 中如果设备操作句柄不等于 0 为有效句柄 三 LabVIEW 程序编程说明本公司生产的所有采集卡的相关接口函数, 均以动态链接库的形式提供给用户 在使用 LabVIEW 对本公司采集卡进行开发时, 只需通过 LabVIEW 中的 Call Library Function Node 节点来调用我们所提供的动态链接库函数即可对硬件进行相关操作 在程序框图中, 点右键选互连接口 -> 库与可执行程序 -> 调用库函数接点 详见光盘中的 LabVIEW 例程或参照 LabVIEW 相关教程 四 LabWindows/CVI 编程说明在程序的最前面包含 windows.h, 同时把 PCI_2410.H,PCI2410.lib 引入即可 五 Delphi 程序编程说明在 Delphi 中调用动态链接库的方式分为静态调用和动态调用 编程前, 请将 PCI2410.dll 动态链接库拷贝到用户项目所在的目录或 windows 系统的 system32 目录中 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 17

( 注 : 如果用户是 Window xp/2000 系统, 请将 PCI2410.dll 动态链接库拷贝到 system32 目录下 ; 如果用户 是 Windos98 系统, 请将 PCI2410.dll 动态链接库拷贝到 system 目录下 ) Delphi 编程的基本流程 : 1 在.pas 文件中的 implementation 处声明动态连接库中的函数 2 定义一个硬件操作句柄, 为一个 ulong 属性的全局变量 3 调用 PCI2410_RegDriver 函数进行注册 ; 4 调用 PCI2410_init 函数进行初始化 the PLX library; 5 单块卡 : 调 PCI2410_DeviceOpen 函数 ; 多块卡 : 调 PCI2410_OpenDeviceALL 函数 ; 获得板卡的操作 句柄 ; 6 在退出程序时必须执行如下操作 :A 调用 PCI2410_DeviceClose 函数关闭句柄 B 调用 PCI2410_LibUninit 函数取消初始化 the PLX library 注 :Delphi 中如果设备操作句柄不等于 $0 为有效句柄 有关用户其他方面的应用请参考相关书籍 九 动态链接库中 API 函数说明 新超公司经过精心设计, 提供的动态链接库 (DLL) 支持目前所有的高级语言 ( 如 :VB,VC,Delphi,C++ Builder,Labview,LabWindows/CVI 等 ), 底层函数极其复杂, 其中封装的用户级 API 函数达 50 个之多, 极 大的方便了用户操作 PCI2410 卡 API 函数介绍如下 : 错误代码宏定义 : 定义错误号 #define WD_STATUS_SUCCESS 0 成功 #define WD_STATUS_FAIL 1 注册失败 #define ErrorCode 100 #define InvalidInputPara (ErrorCode + 1) 输入参数错误 #define CardIDErr (ErrorCode + 2) 卡号出错 #define NoDeviceErr (ErrorCode + 3) 没有设备 #define InvalidDMAHandle (ErrorCode + 4) DMA 句柄无效 #define InvalidDeviceHandle (ErrorCode + 5) 设备句柄无效 #define ADFreSelectErr (ErrorCode + 6) AD 频率错误 #define DMAChannelErr (ErrorCode + 7) DMA 通道出错 #define IntEnableFailed (ErrorCode + 8) 中断允许失败 #define ReadEEPROM_Failed (ErrorCode + 9) 读取 EEPROM 失败 #define Write_EEPROM_Failed (ErrorCode + 10) 写入 EEPROM 失败 #define Trigger_NUMErr (ErrorCode + 11) 无效触发采集点数 #define TriggerTimeErr (ErrorCode + 12) 无效触发时机 ; #define HeartbeatTimeErr (ErrorCode + 13) 无效心跳间隔 ; #define EXPORTS _declspec(dllexport) #pragma pack(1) 为 labview 调用 函数功能 : 注册驱动 ; 先调用此函数注册 返回 presult: 错误代码, 错误代码含义请看宏定义 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 18

void PCI2410_RegDriver(LRESULT* presult); 函数功能 : 初始化 the PLX library, 此函数要先于函数 PCI2410_DeviceOpen 被调用 presult 返回 : 错误代码, 错误代码含义请看宏定义 ; void PCI2410_init(LRESULT* presult); 函数功能 : 取消初始化 the PLX library, 此函数最后被调用 返回 presult: 错误代码, 错误代码含义请看宏定义 ; void PCI2410_LibUninit(LRESULT* presult); 函数功能 : 当前错误号 lerror 如果错误号为 0 表示无错误 ; lpmsg, 返回当前错误号所代表的含义返回值 : 错误代码, 错误代码含义请看宏定义 ; LRESULT PCI2410_GetErrorMessage(LRESULT lerror, TCHAR* lpmsg); 函数功能 : 打开 PCI2410 卡, ncardid; 由板上四位拨码设定, 范围 0-15; 返回 hdevice: 硬件操作句柄返回 presult: 错误代码, 错误代码含义请看宏定义 ; void PCI2410_DeviceOpen(unsigned char ncardid,handle * hdevice,lresult* presult); 函数功能 : 打开多个 PCI2410 设备, 在系统连接多块 PCI2410 时使用 cardnum: 连接系统的 PCI2410 卡的数量返回 hdevices: 为指向句柄数组 hdevice[16] 的指针 ; 以 ID 码为索引返回句柄数组 ; 返回 presult: 错误代码, 错误代码含义请看宏定义 ; void PCI2410_OpenDeviceALL(unsigned char *cardnum,handle *hdevices,lresult* presult); 函数功能 : 获取 PCI2410 卡的数量 ; num, 存放 PCI2410 卡的数量 ; 返回 presult: 错误代码, 错误代码含义请看宏定义 ; void PCI2410_CountCards(unsigned char *num, LRESULT* presult); 函数功能 : 获取 PCI2410 卡的 ID 码 ; IDnum, 存放 PCI2410 卡的 ID 码 ; 返回 presult: 错误代码, 错误代码含义请看宏定义 ; void PCI2410_GetID(unsigned char*idnum, LRESULT* presult); 函数功能 : 允许中断 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 19

funcinthandler, 指向中断处理函数的指针 ; 返回 presult: 错误代码, 错误代码含义请看宏定义 ; void PCI2410_IntEnable(pci2410_INT_HANDLER funcinthandler,lresult* presult); 函数功能 : 禁止中断 ; void PCI2410_IntDisable(LRESULT* presult); 函数功能 : 判断中断是否允许 ; IntIsEnabled,true: 中断允许 ;false: 中断禁止 ; void PCI2410_IntIsEnabled(BOOL *IntIsEnabled,LRESULT* presult); 函数功能 : 读中断控制字 ; myintcon, 中断控制字 ; 中断字结构 ( 高 -> 低 ) 对应二进制 : LD[7] LD[6] LD[5] LD[4] LD[3] LD[2] LD[1] LD[0] 涵义 0 0 0 0 触发满半满空 LD[3], 置 1 表示触发采集准备就绪 ; LD[2], 置 1 表示 FIFO 已满 ; LD[1], 置 1 表示 FIFO 半满 ; LD[0], 置 1 表示 FIFO 为空 ; void PCI2410_R_Int_Con(unsigned char *myintcon,lresult* presult); 函数功能 : 设置不同采集模式下的采集点数 ; CHNum, 有效通道数 ; TriggerTime, 不同的触发模式,00,01,10,11 分别代表预触发 NUM_J 有效 中间触发 NUM_J NUM_K 有效 后触发 NUM_K 有效 延时触发 NUM_D NUM_K 有效 ; 在单次触发模式下 : 预触发采集点数, NUM_J 为通道数和 64 的整倍数 ; 中间触发采集点数,NUM_J NUM_K 之和为通道数和 64 整倍数 ; 后触发采集点数,NUM_K, 为通道数和 64 的整倍数 ; 延迟触发采集点数,NUM_D 为通道的整倍数,NUM_K, 为通道数和 64 的整倍数 ; 在周期触发模式下 : 预触发采集点数, NUM_J 为通道数和 64 的整倍数 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 20

中间触发采集点数,NUM_J NUM_K 之和为通道数和 64 整倍数 ; 后触发采集点数,NUM_K, 为通道数的整倍数 ; 延迟触发采集点数,NUM_D 为通道的整倍数,NUM_K, 为通道数的整倍数 ; NUM_J, 触发事件前采集点数 NUM_D, 触发事件后延时点数 NUM_K, 触发事件后采集点数 void PCI2410_Set_Trigger_NUM(unsigned char CHNum,unsigned char TriggerTime,DWORD DWORD NUM_D,DWORD NUM_K,LRESULT* presult); NUM_J, 函数功能 : 设置定时 心跳 触发间隔时间 ; times, 定时 心跳 触发间隔时间 (ms); 并返回实际出发时间 ; void PCI2410_Set_HeartbeatTime(float *times,lresult* presult); 函数功能 : 通道选择设置 ; ADCH, 通道选择按位组成二进制数, 二进制高到低 D[7] [0] 对应通道 7 0;D[0], 为 1 通道 0 选中, 为 0 未选中 ; void PCI2410_Set_CHConfig(unsigned char ADCH,LRESULT* presult); 函数功能 : 设置采集频率 ; FreMode: 分频模式, 0 为 156KHZ,1 为 312KHZ 默认为 0 Fre: 采集卡的采样频率 (a7765)(1-156)khz( 同步 ); 并返回实际采样频率 ;,a7764(1-156kz) void PCI2410_Set_Fre(unsigned char FreMode,float *Fre,LRESULT* presult); 函数功能 : 设置模拟触发电压 ; voltage, 模拟触发电压 (-5~5)V; void PCI2410_Set_Trigger_V(float voltage,lresult* presult); 函数功能 : 设置增益 ( 设置电压时调用 ) bdata: LD[1:0] = 0 对应 -30V -- +30V 档, LD[1:0] = 1 对应 -3V -- +3V 档, LD[1:0] = 2 对应 -300mV -- +300mV 档, LD[1:0] = 3 对应 -30mV -- +30mV 档版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 21

void PCI2410_Set_Gain(unsigned char bdata,lresult* presult); 函数功能 : 清 FIFO; void PCI2410_ClearFIFO(LRESULT* presult); 函数功能 : 启动 AD; void PCI2410_AD_Start(LRESULT* presult); 函数功能 : 停止 AD; void PCI2410_AD_Stop(LRESULT* presult); 函数功能 : 设置采集方式 ; ClockMode,LD[8] 0 内时钟,1 外时钟 ( 决定采集频率 = 时钟频率 / 128); Series_or_no,LD[9] 0 连续采,1: 触发采 ; SingleCard,LD[10] 0 单卡采集,1: 多卡同步采集 ; 多卡同步采集时需要相同时钟源 ; TriggerTime,LD[17:16] 触发采集模式 ;00,01,10,11 分别代表预触发 中间触发 后触发 延时触发 ; TriggerMode,LD[3:0] 触发源,00,01,10,11 分别代表, 软触发, 定时 心跳 触发, 模拟触发, 和脉冲触发 ; 软触发用于连续采集, 多卡同步连续采集时, 需复用脉冲触发引脚, 以确保两块卡同时软触发采集 ; Trigger,LD[13:12] 脉冲触发边沿类型 01: 上升沿触发,10: 下降沿触发, 11, 双边沿触发 ; TriggerType,LD[15:14] 模拟触发 SLOPE 类型 01: Positive-slope trigger, 10: Negative-slope trigger; 11duL-slope trigger; TriggerNum,LD[4] 1: 周期触发,0: 单次触发 ; void PCI2410_Set_AcquisitionMode(unsigned char ClockMode,unsigned char Series_or_no,unsigned char SingleCard,unsigned char TriggerTime,unsigned char TriggerMode,unsigned char Trigger,unsigned char TriggerType,unsigned char TriggerNum,LRESULT* presult); 函数功能 :16 位开关量输出 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 22

data, 开关量按位输出的值, 二进制位由高到低 LD[15] LD[0] 对应 DO[15] DO[0],1 为高电平 ; void PCI2410_W_DO(WORD data,lresult* presult); 函数功能 :16 位开关量输入 ; data, 开关量按位读取的值, 二进制位由高到低 LD[15] LD[0] 对应 DI[15] DI[0],1 为高电平 ; void PCI2410_R_DI(WORD *data,lresult* presult); 函数功能 :PWM 初始化设置 ; *Fre,PWM 脉冲输出频率, 并返回实际频率, 单位 KHz; high_low,pwm 脉冲占空比 (5% 95%); Num, 输出固定的脉冲个数 ; CHNum,PWM 脉冲输出通道 (0-1); void PCI2410_Set_PWMInt(float *Fre,float high_low,dword Num,unsigned char CHNum,LRESULT* presult); 函数功能 :PWM 启动或停止命令 ; data, 二进制数据位 LD[3:2] 各位分别代表 PWM[1:0] 各通道的状态, 1 代表启动,0 代表停止 ; LD[1:0] 各位分别代表 PULSE[1:0] 各通道的状态, 1 代表启动 ; 由于 PWM 和 PULSE 为同一管脚,LD[3:2],LD [1:0] 对应位不能都为 1; LD[5:4], 固定 PULSE ch1 ch0, 置 1 强制停止 PULSE 输出 void PCI2410_Set_PWMStar(unsigned char data,lresult* presult); 函数功能 : 读脉冲输出是否完成 CHNum: 数据低位 (0,1) 分别代表通道 0, 通道 1 返回 bstatus: 0 代表完成,1 代表未完成 void PCI2410_Read_PWMStatus(unsigned char CHNum,unsigned char* bstatus,lresult* presult); 函数功能 : 设置 8254 工作模式 ; data, 二进制数据位 LD[1],LD[0] 分别代表通道 1 0 工作方式 ;1: 计数,0: 分频 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 23

void PCI2410_Set_8254Mode(unsigned char data,lresult* presult); 函数功能 : 设置分频系数 ; num, 分频系数 ; CHNum, 分频 ( 计数器 ) 输入通道 (0-1); void PCI2410_Set_FreDivNum(DWORD num,unsigned char CHNum,LRESULT* presult); 函数功能 : 设置计数器初始值 ; num, 计数器初始值 ; CHNum, 计数器 ( 分频 ) 输入通道 (0-1); void PCI2410_Set_CounterInt(DWORD num,unsigned char CHNum,LRESULT* presult); 函数功能 : 读取计数器值 ; num, 返回当前计数器的值 ; CHNum, 计数器 ( 分频 ) 输入通道 (0-1); void PCI2410_R_CounterNum(DWORD *num,unsigned char CHNum,LRESULT* presult); 函数功能 : 启动测频 ; CHNum, 测频输入通道 [1:0], 按位存储, 即 0 通道 01,1 通道 10,[0,1] 通道 11. void PCI2410_Set_FrequencyStar(unsigned char CHNum,LRESULT* presult); 函数功能 : 开启 / 关闭恒流源 bstart 是否开启 1 开启,0 关闭 void PCI2410_Set_ConstantVolSource(unsigned char bstart, LRESULT* presult); 函数功能 : 读取测频状态 ; Status, 返回测频通道频率状态 ;0, 结束 ;1 未结束 CHNum, 测频输入通道 (0-1); void PCI2410_R_FrequencyStatus(unsigned char *Status,unsigned char CHNum,LRESULT* presult); 函数功能 : 读取测频值 ; Fre, 返回测频通道频率值 (KHz); 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 24

CHNum, 测频输入通道 (0-1); void PCI2410_R_FrequencyNum(float *Fre,unsigned char CHNum,LRESULT* presult); 函数功能 :PCI2410 卡打开 DMA; dwlocaladdr,dma 起始地址 ;PCI2410 卡的 DMA 起始地址为 :0x80000000; dwbytes,dma 传送的字节数 ; 在 Win2000,XP,2003,NT 操作系统下, 允许 Cache 会加快 DMA 传送速度 ; 触发采集模式下 : 单次触发 : 预触发,dwBytes = (NUM_J + 通道数 * 64)* 4;( 由于 AD 存在延迟, 每个通道大约延迟 28 个点, 所以每个自动多取 64 个点 ( 总点数为 64 的整倍数 )) 中间触发, dwbytes = (NUM_J+NUM_K)*4; 后触发,dwBytes = NUM_K * 4; 延迟触发, dwbytes=num_k * 4; 周期触发 : 预触发,dwBytes = (NUM_J + 通道数 * 64)* 4; 中间触发, dwbytes = (NUM_J+NUM_K)*4; 后触发, 根据 FIFO 大小设置取数点数 ; 延迟触发, 根据 FIFO 大小设置取数点数 ; 连续采集模式下 : 根据 FIFO 大小设置取数点数 ; dmachannel,dma 通道, 有效值 0 或 1; PCI2410_hDma,DMA 操作句柄 ; void PCI2410_DMAOpen(DWORD dwlocaladdr, DWORD dwbytes, BOOL Is_Allow_Cache, int dmachannel,handle *pci2410_hdma,lresult* presult); 函数功能 :PCI2410 卡进行 DMA 传输 ; hdma,dma 操作句柄, 由 PCI2410_DMAOpen 返回 ; pdma_data, 指针, 指向数据区 ;DMA 数据存放的首地址 ; dwbytes,dma 传送的字节数, 与 PCI2410_DMAOpen 函数中 dwbytes 保持一致 ; 触发采集模式下 : 单次触发 : 预触发 中间触发 后触发 延迟触发根据 FIFO 状态信号 LD[3] 为 1 时取数 ; 周期触发 : 预触发 中间触发根据 FIFO 状态信号 LD[3] 为 1 时取数 ; 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 25

后触发 延迟触发根据 FIFO 半满中断状态取数 ; 连续采集模式下 : 根据 FIFO 半满中断状态取数 ; void PCI2410_DMAStart(HANDLE hdma, unsigned char *pdma_data, DWORD dwbytes,lresult* presult); 函数功能 :PCI2410 卡关闭 DMA; hdma,dma 操作句柄, 由 PCI2410_DMAOpen 返回 ; void PCI2410_DMAClose(HANDLE hdma,lresult* presult); 函数功能 :PCI2410 卡判断 DMA 传输是否完成 ; hdma,dma 操作句柄, 由 PCI2410_DMAOpen 返回 ; mydmaisdone,true: 完成 ; false: 未完成 ; void PCI2410_DMAIsDone(HANDLE hdma,bool *mydmaisdone,lresult* presult); 函数功能 :AD 复位 ; void PCI2410_ADReset(LRESULT * presult); 函数功能 : 重新打开中断 ;( 在用户中断服务程序结束时调用 ) void PCI2410_interruptAgain(LRESULT * presult); 函数功能 : 全局复位 ;(PLX9054,FPGA, 均复位 ) void PCI2410_Reset(LRESULT * presult); 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 26

函数功能 : 读寄存器器的值 ; dwreg,plx9054 内部寄存器的地址 ; regdata, 从寄存器读回的数 ; void PCI2410_ReadReg(DWORD dwreg,dword *regdata,lresult* presult); 函数功能 : 写寄存器 ; dwreg,plx9054 内部寄存器的地址 ; dwdata, 往寄存器写的数 ; void PCI2410_WriteReg(DWORD dwreg,dword dwdata,lresult* presult); /******************* 高级用户调用开始 *******************/ 函数功能 : 写 EEPROM; nstartaddr, 要写入 EEPROM 的首地址,( 范围 0X58~0XFF); pflashdata, 写入的数据 ; nbuffersize, 写入的数据大小 ; void PCI2410_WriteFlashToDevice(int nstartaddr, const LPBYTE pflashdata, DWORD nbuffersize,lresult* presult); 函数功能 : 读 EEPROM; nstartaddr, 要读取 EEPROM 的首地址,( 范围 0X58~0XFF); pflashdata, 读取的数据 ; nbuffersize, 读取的数据大小 ; void PCI2410_ReadFlashFromDevice(int nstartaddr, LPBYTE pflashdata, DWORD nbuffersize,lresult* presult); 函数功能 : 往指定偏移地址读一个字节 ; dwlocaladdr, 偏移地址 data, 读回的数值 void PCI2410_R_Byte(DWORD dwlocaladdr,unsigned char *data,lresult* presult); 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 27

函数功能 : 往指定偏移地址读一个字 ; dwlocaladdr, 偏移地址 data, 读回的数值 void PCI2410_R_Word(DWORD dwlocaladdr,word *data,lresult* presult); 函数功能 : 往指定偏移地址读一个双字 ; dwlocaladdr, 偏移地址 data, 读回的数值 void PCI2410_R_DWord(DWORD dwlocaladdr,dword *data,lresult* presult); 函数功能 : 往指定偏移地址写一个字节 ; dwlocaladdr, 偏移地址 ; data, 待写的数值 void PCI2410_W_Byte(DWORD dwlocaladdr,unsigned char data,lresult* presult); 函数功能 : 往指定偏移地址写一个字 ; dwlocaladdr, 偏移地址 ; data, 待写的数值返回 presult, 错误代码, 错误代码含义请看宏定义 void PCI2410_W_Word(DWORD dwlocaladdr,word data,lresult* presult); 函数功能 : 往指定偏移地址写一个双字 ; dwlocaladdr, 偏移地址 ; data, 待写的数值 void PCI2410_W_DWord(DWORD dwlocaladdr,dword data,lresult* presult); /******************* 高级用户调用结束 *******************/ 函数功能 : 关闭 PCI2410 卡 ;( 已包含禁止中断 ) 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 28

void PCI2410_DeviceClose(LRESULT* presult); 函数功能 : 获得 DLL 版本号, 返回版本号 :DLL 版本 (1.71) double xc_getversion(); 十 维修服务 10.1 产品完整性 PCI2410 产品应包括以下内容, 请检查其完整性 : 1 PCI2410 卡一块 ( 贴有出厂日期 ); 2 DB37 头套 ; 3 软件光盘一张( 含驱动软件及说明书 ) 10.2 维修本产品自售出之日起两年内, 凡用户正确使用下, 出现产品质量问题的, 免费维修 ( 出厂日期的贴条撕毁无效 ) 因违反操作规定和要求而造成损坏的, 需缴纳器件费和维修费及相应的运输费用, 如果板卡有明显烧毁 烧糊情况不予维修 如果板卡开箱测试有问题, 可以免费更换 ( 限购买板卡 10 天内 ) 10.3 服务当您购买 PCI2410 之后, 软 硬件及其它技术上使用问题均可通过电话或 E-mail 与我们联系, 我们将提供令您满意的服务 版权所有 @XC www.xckz.com 最后更新时间 :2014-3-12 29