PCI-9014 运动控制卡硬件接线与信号配置指南

📅 2026/7/30 7:44:43
PCI-9014 运动控制卡硬件接线与信号配置指南
本文介绍 PCI-9014 运动控制卡的硬件接口定义、脉冲输出模式选择、编码器反馈接线、限位与报警信号配置以及驱动安装和调试工具的使用方法。通过完整的接线实例帮助开发者在硬件集成阶段快速完成系统搭建。PCI-9014 是升立德科技推出的 4 轴脉冲型运动控制卡采用 PCI 总线接口核心逻辑由 FPGA 实现。板卡对外提供 CN1DB37和 CN2DB25两个接口分别承载脉冲/编码器/限位信号和通用数字 IO。01 接口定义与信号分布1.1 CN1 接口DB37 公头CN1 是板卡的主信号接口承载 4 轴的脉冲输出、编码器输入和轴信号1.2 CN2 接口DB25 母头CN2 为通用数字 IO 接口信号类型数量说明数字输出 DO16 路DO[0]~DO[15]DO[4] 在比较器使能时被占用数字输入 DI16 路DI[0]~DI[15]光耦隔离GND—公共地1.3 板载拨码开关板卡上有一个 4 位拨码开关Board ID用于多卡同机时区分卡号。取值范围 0~15对应p9014_initial返回的board_id数组。同一系统中多张卡的 Board ID 必须互不相同。02 脉冲输出模式选择与接线2.1 四种脉冲输出模式PCI-9014 支持四种脉冲输出方式通过p9014_set_pls_outmode函数配置int p9014_set_pls_outmode(int axis, int pls_outmode);pls_outmode输出方式说明典型驱动器0PUL/DIR 正逻辑脉冲方向高电平有效大部分伺服/步进1PUL/DIR 反逻辑脉冲方向低电平有效少数日系驱动器2CW/CCW 双脉冲正转脉冲反转脉冲安川、松下部分型号3正交 AB 相A/B 两相脉冲相位差90°旧式驱动器配置必须在运动启动前完成运动过程中修改脉冲模式会导致不可预期的行为。2.2 差分接线伺服驱动器CN1 的脉冲输出为差分信号PUL/PUL-、DIR/DIR-适合长距离传输和抗干扰场景。接线方式差分输出时信号质量在 5 米线缆以内可以保证超过 5 米建议使用双绞屏蔽线。2.3 单端接线步进驱动器部分步进驱动器仅接受单端脉冲输入共阳或共阴接法。差分输出的 PUL- 和 DIR- 可以接至驱动器的公共端PUL 和 DIR 接脉冲输入端单端接法时脉冲频率建议不超过 500KHz差分接法可达 2MHz。03 编码器反馈输入配置3.1 输入模式设置编码器反馈用于闭环位置监控和位置比较器参考源。通过p9014_set_pls_iptmode配置计数模式int p9014_set_pls_iptmode(int axis, int pls_iptmode);pls_iptmode倍频说明01×仅计 EA 上升沿12×计 EA 上升沿和下降沿24×计 EA/EB 全部边沿精度最高4 倍频模式下编码器每转一圈的计数值为线数的 4 倍。例如 2500 线编码器4 倍频后每转计数值为 10000。3.2 差分编码器接线差分输出型编码器EA/EA-、EB/EB-直接接入 CN1 对应引脚无需额外供电3.3 集电极开路编码器接线集电极开路型编码器需要通过 CN1 的 VCC 引脚提供外部电源。VCC 可选 5V 或 24V取决于编码器规格如果编码器为集电极开路类型而未接 VCC 供电p9014_get_pos读取的编码器位置将始终为 0位置锁存功能也会报错。3.4 位置计数器PCI-9014 内部维护两个位置计数器cntr_no计数器数据来源0命令位置脉冲输出累计值1反馈位置编码器输入累计值计数器为 28 位有符号整数范围 -134,217,728 ~ 134,217,727。超范围后会自动回绕使用时需要注意int cmd_pos, enc_pos; p9014_get_pos(axis, 0, cmd_pos); // 命令位置 p9014_get_pos(axis, 1, enc_pos); // 编码器反馈位置命令位置和反馈位置的差值可用于判断丢步或跟随误差。04 限位与原点信号接线4.1 限位信号电平配置PCI-9014 的限位信号PEL/MEL支持配置有效电平int p9014_set_el_level(int axis, int active_level); // active_level: 0 - 低电平有效常开型开关 // 1 - 高电平有效常闭型开关硬件版本差异2011 年 6 月之后的板卡采用 Lattice XP2 FPGA去除了限位类型拨码开关默认为常开类型低电平有效。如需使用常闭型限位开关需要 API 版本 ≥ 0x0110Logic Version 0x0110 或更高。低版本硬件上调用此函数不会报错但配置不生效。4.2 限位信号状态查询p9014_get_io_status返回的io_status位定义位信号说明bit 0PEL正向限位触发bit 1MEL负向限位触发bit 4EMG急停信号当限位信号触发时该方向的运动指令会被拒绝返回RC_EL_ACTIVE错误码 205。反向运动不受影响。4.3 原点信号与回零回零功能通过p9014_home_config和p9014_home_move实现// mode: 0 - 仅找 ORG 信号 // 2 - ORG EZ编码器 Z 相 p9014_home_config(axis, mode, org_level, ez_level); p9014_home_move(axis, plus_dir); // plus_dir: 0 负向, 1 正向mode 0轴以回零速度运行检测到 ORG 信号后减速停止停止位置即为原点。mode 2轴以回零速度运行检测到 ORG 信号后反向低速运行寻找第一个 EZ编码器 Z 相信号在 Z 相位置停止。此模式回零重复精度更高但要求编码器必须接入 Z 相信号。org_level和ez_level配置有效电平0 为低电平有效1 为高电平有效。4.4 限位与原点接线示例限位和原点开关推荐使用常开型低电平有效接线时开关一端接信号输入引脚另一端接 GND。光耦隔离输入的驱动电流约 5mA无需额外限流电阻。05 报警信号配置5.1 报警输入设置伺服驱动器的报警输出信号接入 PCI-9014 的 ALM 引脚通过以下函数配置int p9014_set_alarm(int axis, int enable, int active_level); // enable: 0 - 禁止报警检测, 1 - 使能 // active_level: 0 - 低电平有效, 1 - 高电平有效伺服驱动器的报警输出通常为常闭类型正常时导通报警时断开因此active_level应设为 0。当报警信号触发时对应轴的运动会被立即停止。5.2 报警停止方式int p9014_set_error_stop_mode(int axis, int stop_mode); // stop_mode: 0 - 减速停止, 1 - 急停减速停止适用于大惯量负载避免机械冲击急停适用于安全要求高的场景运动立即停止但可能对机械结构造成冲击。建议根据负载惯量和安全要求选择场景推荐模式说明小惯量步进电机急停 (1)响应快惯量小无冲击大惯量伺服电机减速停止 (0)保护机械结构安全门/光栅急停 (1)最高安全优先级06 数字 IO 分配与使用6.1 IO 概览CN2 接口提供 16 路数字输出DO和 16 路数字输入DI全部光耦隔离// 整体读写 int p9014_set_do(int card_no, uint data); // 写16路DO int p9014_get_do(int card_no, uint* pData); // 读DO状态 int p9014_get_di(int card_no, uint* pData); // 读16路DI // 位操作 int p9014_set_do_bit(int card_no, uint bit_no, uint data); // 写单路DO int p9014_get_di_bit(int card_no, uint bit_no, uint* pData); // 读单路DI6.2 DO[4] 特殊用途DO[4] 在位置比较器使能时被自动占用为比较器触发脉冲输出集电极开路。比较器禁止后DO[4] 恢复普通数字输出功能。使用 DO 时需注意若程序中使用了位置比较器功能不要通过p9014_set_do或p9014_set_do_bit操作 DO[4]否则会干扰比较器输出。p9014_set_do一次写入 16 路 DO 状态建议先读取当前状态修改目标位后再写回避免误改其他 DOuint do_data; p9014_get_do(card_no, do_data); // 读取当前状态 do_data | (1 3); // 置位 DO[3] do_data ~(1 5); // 清零 DO[5] p9014_set_do(card_no, do_data); // 写回6.3 DI 信号去抖数字输入经过光耦隔离硬件上有一定的滤波效果但在软件层面仍建议对关键信号如按钮、传感器做去抖处理// 简单去抖连续3次读取一致才认为有效 int read_di_stable(int card_no, uint bit_no) { uint val1, val2, val3; p9014_get_di_bit(card_no, bit_no, val1); Sleep(2); p9014_get_di_bit(card_no, bit_no, val2); Sleep(2); p9014_get_di_bit(card_no, bit_no, val3); return (val1 val2 val2 val3) ? val1 : -1; }07 位置比较器输出接线7.1 输出特性位置比较器的触发脉冲从 CN1 的 DO[4] 引脚输出为集电极开路Open Collector类型。输出特性参数值输出类型集电极开路最大灌电流约 20mA输出引脚CN1 第 52 脚DO[4]脉冲宽度可配置p9014_comp_enable的length参数单位 ns7.2 24V 触发信号接线相机或激光器的触发信号通常要求 24V 电平。由于 DO[4] 为集电极开路输出需要外接上拉电阻上拉电阻阻值计算R (Vcc - Vce_sat) / I_sink。24V 电源下取 4.7kΩ 时电流约 5mA在 DO[4] 的 20mA 灌电流能力范围内。7.3 5V 触发信号接线如果触发信号仅需 5V 电平如部分工业相机的 GPIO 触发可使用较大阻值的上拉电阻5V 场景下上拉电阻取值较宽几百 kΩ 即可满足电平要求同时降低功耗。7.4 接线注意事项上拉电阻必须接到与接收端匹配的电源电压不可直接接到 24V 而接收端只承受 5V。触发线缆长度建议不超过 2 米长距离传输建议使用屏蔽线并将屏蔽层单端接地。如果触发信号需要电气隔离可在 DO[4] 和接收端之间增加光耦器件。08 驱动安装与调试工具8.1 驱动安装PCI-9014 的驱动基于 Windows KMDF 1.9 框架开发支持 Windows XP/Vista/Win7/Win832 位和 64 位。驱动文件位于 SDK 的driver/目录driver/ ├── x86/ │ ├── pci9014.sys # 32位驱动 │ ├── PCI9014.inf # 安装信息文件 │ └── PCI9014.cat # 数字签名目录 └── x64/ ├── pci9014.sys # 64位驱动 ├── PCI9014.inf ├── PCI9014.cat └── WdfCoInstaller01009.dll # KMDF联合安装器安装步骤Windows 7 64 位将板卡插入 PCI 插槽开机后设备管理器中出现未知设备。右键driver/x64/PCI9014.inf选择安装。系统弹出数字签名警告选择始终信任此发布者。安装完成后设备管理器中Solidtech Motion Controller类别下出现PCI-9014设备。SDK 提供的驱动包含带时间戳的数字签名证书不会因过期而导致无法安装。PCI 设备 ID驱动 INF 中注册了两个 Vendor IDVendor IDDevice ID对应 FPGA11AA9014Actel ProASIC3早期批次12049014Lattice XP2当前批次两个 ID 的驱动安装方式相同系统会自动匹配。8.2 MotionPanel 调试工具SDK 附带 MotionPanel 调试工具用于在不编写代码的情况下测试板卡功能程序路径说明MotionPanel.exeMotionPanel/32 位版本可在 32 位系统使用MotionPanel64.exeMotionPanel/x64/64 位版本64 位系统推荐MotionPanel 支持轴参数配置速度、加速度、脉冲模式点位运动/连续运动/回零测试位置计数器监控IO 状态显示参数配置保存/加载配置文件格式使用建议在编写应用程序前先用 MotionPanel 验证硬件接线和驱动安装是否正常。如果 MotionPanel 能控制电机运动且编码器位置正确说明硬件层面没有问题后续开发中遇到的异常基本可以排除接线因素。8.3 版本查询驱动安装后通过 API 查询板卡版本信息确认硬件功能支持情况uint api_ver, driver_ver, logic_ver, revision; p9014_get_version(card_no, api_ver, driver_ver, logic_ver); p9014_get_revision(card_no, revision); printf(API: 0x%04X\n, api_ver); printf(Driver: 0x%04X\n, driver_ver); printf(Logic: 0x%04X\n, logic_ver); printf(Revision: 0x%02X\n, revision);版本与功能对应关系功能最低 Logic Version最低 Revision限位电平配置0x0110—T 型曲线飞行变速0x0113—S 型加减速0x0113—位置比较器0x01130x10Y 轴编码器位置锁存0x01130x11多卡同机最多16张API 0x0115—09 完整系统接线实例9.1 伺服电机系统以下为单轴伺服电机系统的完整接线方案适用于点位定位场景对应初始化代码int count, board_id[16]; p9014_initial(count, board_id); int card_no board_id[0]; int axis card_no * 4; // X轴 // 脉冲输出模式PUL/DIR 正逻辑 p9014_set_pls_outmode(axis, 0); // 编码器输入4倍频 p9014_set_pls_iptmode(axis, 2); // 限位电平低电平有效常开型开关 p9014_set_el_level(axis, 0); // 报警使能低电平有效常闭型 p9014_set_alarm(axis, 1, 0); // 报警停止方式减速停止 p9014_set_error_stop_mode(axis, 0); // 速度曲线T型 p9014_set_t_profile(axis, 1000, 100000, 500000, 500000); // 回零配置ORG EZ低电平有效 p9014_home_config(axis, 2, 0, 0);9.2 步进电机系统步进电机系统通常不需要编码器反馈接线更简单步进系统初始化时编码器输入模式可以不配置无反馈但建议仍调用p9014_set_pls_iptmode设置为 0避免计数器处于未定义状态。9.3 视觉飞拍系统视觉飞拍是位置比较器的典型应用场景。X 轴运动过程中比较器在预设位置触发相机拍照同时锁存 Y 轴编码器位置用于后续坐标补偿该系统要求 Logic Version ≥ 0x0113 且 Revision ≥ 0x11。10 常见问题排查10.1 电机不运动排查步骤检查p9014_initial返回值确认卡已正确识别。检查p9014_get_io_status返回值确认 PEL/MEL 信号未触发bit 0/bit 1 为 0。检查p9014_set_alarm配置确认报警信号未触发。检查脉冲输出模式p9014_set_pls_outmode是否与驱动器接线匹配。检查p9014_pmove返回值RC_AXIS_BUSY202表示轴正在运动中RC_EL_ACTIVE205表示限位触发。10.2 编码器位置为零原因与处理差分编码器未接 EA/EB 信号线 → 检查接线。集电极开路编码器未接 VCC 供电 → 通过 CN1 VCC 引脚提供 5V 或 24V 电源。编码器输入模式未配置 → 调用p9014_set_pls_iptmode设置倍频模式。编码器线序接反 → 交换 EA/EB 线序观察位置计数方向是否改变。10.3 位置比较器无输出排查步骤检查版本号p9014_get_revision返回值需 ≥ 0x10p9014_get_version的 logic_ver 需 ≥ 0x0113。检查p9014_comp_enable返回值RC_FEATURE_NOT_SUPPORTED500表示硬件版本不支持。检查 FIFO 中参考位置是否单调递增正向运动或递减负向运动。检查 DO[4] 接线确认上拉电阻和电源电压正确。检查运动距离是否覆盖所有参考位置点。10.4 驱动安装失败常见原因32 位系统安装了 64 位驱动或反之→ 根据系统版本选择driver/x86/或driver/x64/。Windows 10 及以上版本未签名驱动无法安装 → SDK 驱动已包含数字签名确认安装时选择了始终信任。设备管理器中设备 ID 与 INF 不匹配 → 检查设备属性中的硬件 ID确认 Vendor ID 为 11AA 或 1204Device ID 为 9014。10.5 回零不准排查方向mode 0仅 ORG的回零精度受 ORG 开关机械重复性影响建议改用 mode 2ORG EZ。ORG 开关安装位置有间隙或抖动 → 更换质量更好的接近开关或光电开关。回零速度过快导致减速距离超出 ORG 位置 → 降低回零速度或增大减速度。EZ 信号电平配置错误 → 检查ez_level参数是否与编码器 Z 相输出类型匹配。关于升立德升立德科技专注于运动控制技术研究和通用运动控制软硬件产品的研发主要产品包括 PCI/PCIe 系列运动控制卡、独立式运动控制器、EtherCAT 总线运动控制方案等广泛应用于点胶、激光加工、数控机床、包装机械、检测设备等工业自动化领域。相关资料SDK 开发包、用户手册、编程手册可通过官网技术支持页面获取。