工业级PCI接口通用CAN卡——PCI-98XX系列深度解析

电子说

1.4w人已加入

描述

工业级PCI 接口通用CAN 卡——PCI-98XX 系列深度解析

作为电子工程师,在工业控制、数据采集等领域,CAN 卡的应用十分广泛。今天就来和大家深入探讨一下致远电子的 PCI - 98XX 系列工业级 PCI 接口通用 CAN 卡。

文件下载:PCI-9820I.pdf

一、功能简介

产品概述

PCI - 98XX 系列是兼容 PCI 2.2 规范的高性能 CAN 接口卡,带有 1 - 4 路 CAN 接口。通过 PCI 接口,PC 机能够连接到 CAN 网络,在实验室、工业控制、智能小区等 CAN 网络领域实现数据采集与处理。该系列接口卡为工业级设计,提供完全电气隔离且 EMI/EMC 性能增强的 CAN - bus 通讯接口,能保护计算机免受地环流影响,增强系统在恶劣环境下的可靠性。同时,它还是通用型 CAN 接口卡,适用于绝大多数 PC 控制 CAN 总线的场合,通讯速度高,实时性强。此外,还提供 ZOPC 服务器软件,支持在多种常用组态环境和 NI 的 LabView 测控软件中进行 CAN - bus 产品项目开发。并且,它配有多种操作系统下工作的驱动程序和详细应用例程。

功能特性

这个系列卡的功能特性非常丰富。PC 接口方面,采用高速 PCI 接口芯片,符合 PCI ver. 2.2 (32 - bit),中断和 I/O 由 BIOS 分配;供电通过 PCI 接口供电(+5V,300mA)。电气隔离上,达到 DC 2500V 或者 AC 1700V,能有效保障设备安全。工作和存储温度范围均在 - 40℃ - +85℃,可适应恶劣环境。物理尺寸为 130mm * 90mm。CAN 通道方面,有 1、2、4 通道隔离 CAN 接口,且通道采用电磁隔离、DC/DC 电源隔离,隔离电压为 2500VDC。同时支持 CAN2.0A 和 CAN2.0B 协议,符合 ISO/DIS 11898 - 1/2/3 标准。安装方式为标准电脑/工控机机箱 PCI 接口,CAN 接口 EMC 等级高,接触放电±8KV,群脉冲±2KV,甚至可以用在有安全防爆需求的环境中。最高帧流量单通道可高达 14000 帧/秒(1M 波特率、标准远程帧),CAN 波特率可编程任意设置,范围在 5Kbps - 1Mbps 之间,CAN 接口为 DB9 接口,120 欧姆终端电阻可配置,符合 DeviceNET 和 CANopen 标准。

二、设备硬件

规格参数

PCI - 98XX 系列不同型号(PCI - 9810I、PCI - 9820I、PCI - 9840I、PCI - 9820)在 CAN 通道数上有所不同,分别为 1 路、2 路、4 路、2 路。工作电压均由 PCI 接口供电(+5V,300mA),频率范围是 33M PCI 数据总线,符合 PCI ver. 2.2 (32 - bit)标准,功耗≤5W。隔离电压为 DC 2500V 或者 AC 1700V,输出端子为 DB9 针式。CAN 波特率在 5Kbps - 1Mbps 之间可编程任意设置,数据接收能力为 14000 帧/秒/通道,数据发送能力为 4000 帧/秒/通道。支持多种操作系统驱动,包括 Windows、Linux、VxWorks 5.5 版本。尺寸均为 130 × 90 mm,存储和工作温度范围为 - 40°C - +85°C,环境湿度要求在 10% - 90%(无凝露),且必须远离腐蚀性气体。

接口定义

PCI - 98XX 接口卡通过 DB - 9 针型连接器与实际的 CAN - bus 网络连接,DB9 针型连接器的引脚信号定义符合 DeviceNet 和 CANopen 标准。同时,还可以通过选配的 DB9_OPEN5 转换器,将 DB - 9 连接器的信号转至 5 引脚的 OPEN5 连接器。

终端电阻

每路 CAN 通道都内建 120Ω 终端电阻,可通过连接/断开 JP 来设定对应的 CAN 通道是否使用集成 120Ω 终端电阻,出厂时跳线器默认连接状态。若接口卡的对应 CAN 通道位于一个 CAN 网络的端点,需将对应通道的跳线器连接,或者在对应 CAN 通道的 CAN_H 和 CAN_L 之间接上一个约 120Ω 终端电阻。若网络上其他节点使用不同的收发器,终端电阻须另外计算。

硬件安装

PCI - 98XX 系列接口卡是静电敏感产品,操作时要采取防护措施。硬件安装和拆卸都要在 PC 断电状态下进行,且该接口卡没有任何开关和跳线用于分配中断和 I/O 地址,由 BIOS 自动分配。安装步骤为:先关闭计算机电源,打开计算机盖子,将接口卡插入空闲的 PCI 插槽,拧紧固定板卡的螺钉,最后打开计算机电源,此时 BIOS 会自动分配中断和 I/O 地址。这里要特别注意,请勿带电插拔 PCI 接口卡,安装时严禁用手触摸器件,防止静电损坏器件。

三、安装驱动程序

以 PCI - 9840I 在 Windows XP 下安装驱动为例,安装前要保证板卡已正确安装到 PC 机的 PCI 槽上。安装驱动时,若 Windows XP 自动检测到新设备,会激活“找到新的硬件向导”程序;若未提示发现新设备,需检查硬件安装是否正确。安装步骤如下:选择“从列表或指定位置安装”,标记“在搜索中包括这个位置”,点击“浏览”按钮指定驱动程序安装文件的位置,等待安装向导安装驱动程序,安装完成后点击“完成”按钮,此时系统会提示新硬件已安装并可使用。检查安装可通过“开始→控制面板→系统”,选择“硬件”标签,点击“设备管理器”按钮,若设备安装成功,在“设备管理器”窗口中应能看到“ZLGCAN”设备类下的“PCI - 9840I PCICAN Communication Card”。卸载驱动程序同样通过“开始→控制面板→系统”,选择“硬件”标签,点击“设备管理器”按钮,右键点击“PCI - 9840I PCICAN Communication Card”,选择“卸载”,在“确认设备删除”对话框中点击“确定”即可。

四、常见问题解答

驱动检测不到通讯卡

可能原因有设备未安装、未可靠插入 PCI 插槽、主板没有可用中断分配给设备等。针对这些问题,可以将设备安装到空的 PCI 插槽,重新插入设备到 32 位 PCI 插槽或尝试其他插槽,进入 BIOS 修改配置确保 PCI/PnP 中断可用。

板卡和驱动正确但不能发送数据

需要检查线缆连接是否正确,尝试其他端口、线缆或板卡,检查终端电阻连接,确保总线上有两个以上节点,仔细阅读 API 文档并参考示例程序检查 API 调用是否正确。

多通道大流量数据传送占用系统资源多

对于非智能通讯卡,不建议用于同时多通道的大数据量传输,建议多个通道同时工作时数据流量不超过 1000 帧/秒,计算机性能好时可适当提高。此外,可以降低 CAN 波特率以减少系统资源占用,设计 CAN 系统时保证总线占用率不超过 60 - 70%。

通讯波特率设置

上位机软件提供常用波特率设置值,若要使用其他波特率,需参照 SJA1000 数据手册自行计算,注意 PCI - 98XX 通讯卡的 CAN 控制器使用 16MHz 时钟,自定义波特率时要根据该时钟频率计算。

系统待机或睡眠状态影响接收

系统进入待机或睡眠状态会有影响,可能导致硬件接收缓冲溢出错误。若有程序打开设备会尝试阻止系统进入待机或睡眠状态,使用时建议禁止系统的待机和睡眠功能。

处理应用中的错误

错误分为函数调用错误和 CAN - bus 通讯错误。函数调用错误一般由参数错误等引起,可使用 Win32 函数 GetLastError 进行错误分析;CAN - bus 通讯错误一般由 CAN 网络或用户设置不当引起,大部分错误在设备驱动中已简单处理,若要进行深层次处理可调用 VCI_ReadCANStatus 函数。数据溢出中断错误可能由软件接收缓冲区溢出或硬件接收缓冲区溢出导致,前者需优化应用程序或更改通讯策略,后者需提升计算机性能或协调其余节点降低发送速度。

打开关闭设备注意事项

PCI - 98XX 系列允许共享方式打开设备,但尽可能不要在不同进程中共享同一个端口。VCI_OpenDevice 和 VCI_CloseDevice 函数一般在应用程序初始化和退出时只需要调用一次。关闭设备时若当前端口不再使用,应先调用 VCI_ResetCAN 函数使当前端口脱离 CAN 总线。

使用中断方式操作通讯卡

PCI - 98XX 系列不提供直接操作中断的接口,中断已在驱动程序中处理。若需要在应用程序中操作中断,可使用多线程(或多任务),启动一个新线程,在线程中循环调用 VCI_Receive 函数查询接收缓冲。

更好使用 VCI_Transmit 发送函数

PCI - 98XX 系列设备驱动提供 16 帧软件发送缓冲 FIFO,每次 VCI_Transmit 调用最多发送 16 帧数据,发送速度由当前计算机软硬件性能决定,一般连续发送速度在 2000 - 4000 帧/秒之间(标准数据帧 11Bytes,1Mbps)。若发送速度过快可能使远端接收设备数据溢出,可在应用编程中适当添加延时降低发送速度。发送过程中每一帧都有超时限制,用户可编程实现重发,系统设计时要注意保证 CAN 总线占用不超过总线容量的 60 - 70%。

更好使用 VCI_Receive 函数

设备驱动提供 130000 帧软件接收缓冲区,软件接收缓冲数据溢出时设备驱动程序将调用 VCI_ResetCAN 复位 CAN 总线。接收函数提供 Wait 参数适合多线程编程,当 Wait 为 0 时函数调用立即返回当前成功读取到的帧数,若接收缓冲为空则返回 0;当 Wait 非 0 时,若接收缓冲有数据则马上返回成功读取的帧数,若为空则等待指定超时或接收到数据才返回;当 Wait 为 0xFFFFFFFF 时为无限等待,建议不要把 Wait 设得过大。nFrames 等于 0 时函数是一个通知消息返回。若在主线程中调用且 Wait 非 0 可能引起应用程序暂时性失去响应,查询方式接收时一般把 Wait 设为 0。

是否提供测试程序

在 Tools 目录下提供 CANTest 软件可以对多种 CAN 接口卡进行通讯测试。

五、检查和维护

PCI - 98XX 系列接口卡的主要电气部件是半导体元件,虽寿命长,但在不正确环境下可能加速老化,建议每 6 个月到一年至少检查一次,不利环境下应更频繁检查。检查内容包括电源供应、周围环境(温度、湿度、灰尘等)、安装接线等,若遇到问题可参照手册中的检查与维护表格查找原因,若仍无法解决可联系广州致远电子有限公司。

六、附录

手册中还包含了 CAN2.0B 协议帧格式(标准帧和扩展帧)以及 SJA1000 标准波特率的相关内容,方便工程师在实际应用中参考。

总之,PCI - 98XX 系列工业级 PCI 接口通用 CAN 卡功能强大,应用广泛,但在使用过程中也需要我们注意安装、驱动、维护等方面的问题。大家在实际使用中遇到过哪些有趣的问题或者有什么独特的使用经验呢?欢迎在评论区分享交流。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分