文档库 最新最全的文档下载
当前位置:文档库 › PC-98XX系列PC接口CAN卡用户手册

PC-98XX系列PC接口CAN卡用户手册

广州致远电子股份有限公司

PCI-98XX 系列用户手册

工业级

PCI 接口通用CAN 卡

User Manual

类别 内容

关键词 PCI 接口通用CAN 卡,工业级CAN 接口卡

摘 要

PCI-98XX 系列接口卡是一款符合工业级温度范围,兼容PCI2.2规范的多通道PCI-CAN 通讯接口卡,每一个CAN 通道均集成独立的隔离保护电路。

修订历史

目录

1. 功能简介 (1)

1.1产品概述 (1)

1.2功能特性 (1)

1.3产品外观 (2)

2. 设备硬件 (3)

2.1规格参数 (3)

2.2接口定义 (3)

2.3终端电阻 (4)

2.4硬件安装 (5)

3. 安装驱动程序 (6)

3.1安装驱动程序 (6)

3.2如何检查安装 (9)

3.3卸载驱动程序 (10)

4. 常见问题解答 (11)

5. 检查和维护 (14)

6. 附录A:CAN2.0B协议帧格式 (15)

7. 附录B:SJA1000标准波特率 (17)

8. 免责声明 (18)

1. 功能简介

1.1 产品概述

致远电子PCI-98XX系列通用CAN卡,兼容PCI 2.2规范的,带有1~4路CAN接口的高性能CAN接口卡。采用PCI接口CAN卡,PC机可以通过PCI接口连接至CAN网络,构成实验室、工业控制、智能小区等CAN网络领域中的数据采集与数据处理。

接口卡均为工业级设计,为了提高系统性能,PCI-98XX系列接口卡提供了完全电气隔离且EMI/EMC性能增强的CAN-bus通讯接口,保护计算机避免地环流的影响,增强系统在恶劣环境中使用的可靠性。

PCI-98XX系列是通用型CAN接口卡,用于绝大多数PC控制CAN总线的场合,通讯速度极高,实时性很强。

PCI-98XX系列接口卡提供ZOPC服务器软件,支持在常用的组态环境(如昆仑通态MCGS、组态王KingView、力控、Intouch等软件)进行CAN-bus产品项目的开发;支持在NI的LabView测控软件中开发CAN-bus产品项目。

本系列产品均配有可在Win2000/XP/WIN7/WIN8、各种Linux、Vxworks5.5等操作系统下工作的驱动程序,并包含详细的应用例程。

1.2 功能特性

●PC接口:采用高速PCI接口芯片,符合PCI ver. 2.2 (32-bit),中断和I/O由BIOS分配;

●供电方式:PCI接口供电(+5V,300mA);

●电气隔离:DC 2500V 或者AC 1700V;

●工作温度:-40℃~+85℃;

●存储温度:-40℃~+85℃;

●物理尺寸:130mm*90mm;

●CAN通道数:1、2、4通道隔离CAN接口;

●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标准。

1.3 产品外观

图 1.1 PCI-9810I 图 1.2 PCI-9820I

图 1.3 PCI-9840I 图 1.4 PCI-9820

2. 设备硬件

2.1 规格参数

表格2.1 产表品规格参数

2.2 接口定义

图 2.1 接口卡的DB9插座位置

PCI-98XX 接口卡通过DB-9针型连接器与实际的CAN-bus 网络进行连接。DB9针型连接器的引脚信号定义如表2.2所示。引脚定义符合DeviceNet 和CANopen 标准。

表 2.2 DB9插座的引脚定义

可以通过选配的DB9_OPEN5转换器,将DB-9连接器的信号转至5引脚的OPEN5连接器。

表 2.3 OPEN5插座的引脚定义

2.3 终端电阻

PCI-98XX 系列接口卡的每路CAN 通道都内建120Ω终端电阻。接口卡通过连接/断开JP 如 图 2.2来设定对应的CAN 通道是否使用集成120Ω终端电阻。出厂时,这些跳线器默认连接状态,即使用集成120Ω终端电阻。

接口卡的对应CAN 通道位于一个CAN 网络的端点,请将对应通道的跳线器连接,或者在对应CAN 通道的CAN_H 和CAN_L 之间接上一个约120Ω终端电阻。PCI-98XX 系列采用的是PCA82C251收发器,如果网络上其他节点使用不同的收发器,则终端电阻须另外计算。

图 2.2 终端电阻选择示意图

2.4 硬件安装

PCI-98XX系列接口卡是属于静电敏感产品,出厂时安放在专用保护袋中。因此,在对接口卡进行操作时,请注意采取必要的防护措施,以保证接口卡不受损坏。

硬件安装时要在PC断电状态下,同样,拆卸PCI-98XX系列接口卡也应当在PC断电的状态下进行。

PCI-98XX系列接口卡没有任何开关和跳线用于分配中断和I/O地址,这些都是由BIOS 自动分配的。因此,在安装驱动程序之前板卡必须事先安装到PCI槽上。以下是安装步骤:

1. 关闭计算机电源。

2. 打开计算机的盖子。

3. 将PCI-98XX系列接口卡插入空闲的PCI插槽。

4. 拧紧固定板卡的螺钉。

5. 打开计算机电源,此时BIOS会自动给PCI-98XX系列接口卡分配中断和I/O地址。

图 2.3 PCI-98XX系列工业级CAN接口卡

注意:请勿带电插拔PCI接口卡;安装时严禁用手触摸器件,防止静电损坏器件。

3. 安装驱动程序

以下步骤以PCI-9840I,显示在Windows XP下如何安装PCI-9840I通讯卡的驱动。安装之前必须保证板卡已经正确安装到PC机的PCI槽上。

3.1 安装驱动程序

Windows XP能自动检测新设备并激活“找到新的硬件向导”程序来安装即插即用设备驱动程序。如果此时系统没有提示发现新设备,请检查硬件是否安装正确。

1.选择“从列表或指定位置安装”,如错误!未找到引用源。,单击“下一步”继续。

图 3.1 从列表或指定位置安装

2.如下图

3.2所示,标记“在搜索中包括这个位置”,然后点击“浏览”按钮。在弹

出的文件夹浏览对话框中指定驱动程序安装文件的位置。单击“下一步”继续。

图3.2 指定位置搜索3.等待安装向导安装驱动程序。

图3.3 正在安装驱动

4.接下来的窗口显示了已经安装好的设备。并提示“找到新的硬件向导”已经完成了

驱动程序的安装。单击“完成”按钮结束安装。

图3.4 驱动安装完成

5.此时,系统会提示新硬件已安装并可以使用了。

3.2 如何检查安装

您可以通过“开始→控制面板→系统”检查设备的安装。选择“硬件”标签,然后单击“设备管理器”按钮,界面如下图3.5所示。

图3.5 打开设备管理器

如果设备安装成功,在“设备管理器”窗口中应该可以看到“ZLGCAN”设备类下的“PCI-9840I PCICAN Communication Card”,如下图3.6所示。

图3.6 驱动显示正常

3.3 卸载驱动程序

您可以通过“开始→控制面板→系统”卸载设备驱动。选择“硬件”标签,然后单击“设备管理器”按钮,如图3.5所示。

将鼠标移动到“PCI-9840I PCICAN Comm

nication Card”上,单击鼠标右键,在弹出菜单上选择“卸载”按钮。

图3.7 卸载驱动

在“确认设备删除”对话框中点击“确定”按钮。PCI-9840I的驱动将会被卸载。“设备管理器”会自动刷新并显示该设备已经被移除。

4. 常见问题解答

1.在安装的时候ZLGCAN驱动程序检测不到PCI-98XX系列通讯卡。

A.设备没有安装。请把设备安装到空的PCI插槽上。

B.设备没有可靠的插入到系统的PCI插槽上。如果遇到这种情况,请从新将设备插入

到32位PCI插槽上。另一种可能是PCI插槽本身有问题。这时候可以尝试另一个

PCI插槽,直到系统能检测到设备为止。

C.主板没有可用的中断分配给设备。进入BIOS修改配置,确保PCI/PnP中断可用。

2.板卡和驱动都安装正确,但就是不能发送数据。

A.检查线缆连接是否正确。

B.线缆或板卡有问题。请尝试其他端口、线缆或另一块板卡。

C.检查终端电阻是否连接正确。

D.如果没有使用自收发模式,请确保总线上有两个以上的节点存在。

E.调用API不正确,请仔细阅读API文档,并参考示例程序。

3.多通道大流量数据传送时占用较多的系统资源如何处理?

对于非智能通讯卡来说驱动要完成较多的工作,因此不建议用于同时多通道的大数据量传输,建议多个通道同时工作时数据流量不超过1000帧/秒,当计算机性能较好时可以适当提高传输流量。由于CAN波特率本身就是一个限制帧流量的主要因素,因此在较低波特率下系统资源将大大减少。CAN系统在设计时应保证总线占用率不超过60-70%,在此范围内PCI-98XX系列能满足大多数应用的需求。

4.通讯波特率如何设置?

错误!未找到引用源。提供一组常用的波特率的设置值,若要使用其他的波特率,请参照SJA1000数据手册自行计算。需要注意:PCI-98XX通讯卡的CAN控制器使用16MHz时钟,用户自定义波特律时要根据该时钟频率进行计算。

5.系统进入待机或睡眠状态是否影响接收?

有影响。这时所有处理将停止,最大可能导致硬件接收缓冲溢出错误。若有程序打开设备将尝试阻止系统进入待机或睡眠状态,从而保证系统正常工作。使用PCI-98XX 通讯卡时请禁止系统的待机和睡眠功能。

6.如何处理应用中的错误?

错误主要分为函数调用错误和CAN-bus通讯错误两种。

函数调用错误一般由参数错误引起,如:设备号超出范围,类型号错误等,用Win32函数GetLastError返回的错误号是87,还有的是对未打开的设备进行操作,实际是对一个非法句柄操作,根据具体函数调用情况都有相应的Win32标准错误码提供,用户可以使用GetLastError进行错误分析,这部分除错工作一般应该在设计时完成。

对于CAN-bus通讯错误,一般由CAN网络引起,也可能因用户设置不当而引起,如:波特率设置不一致、没有启动CAN控制器便调用发送函数等。大部分错误已经在

设备驱动中作了简单的处理,如果要进行更深层次的错误分析和处理,可以调用VCI_ReadCANStatus函数。

另外需要注意的是数据溢出中断错误,它的产生有两种可能:(1) 软件接收缓区冲溢出。这说明应用程序无法及时处理接收到的数据,这时用户应该优化应用程序或更改通讯策略。(2)硬件接收缓冲区溢出。产生这种错误是由于接收端PC中断延迟太大而引起的。只能通过提升计算机性能或协调其余节点适当降低发送速度来解决。

7.打开关闭设备要注意哪些事项?

PCI-98XX系列提供1~4个CAN端口,用户能够独立操作不同的端口。该通讯卡允许共享方式打开设备,同一个设备可被不同进程通过调用VCI_OpenDevice函数多次打开,使得在不同进程中使用不同的通讯端口成为可能,但在同一进程中多次调用VCI_OpenDevice函数实际只会打开一次设备。因此,尽可能不要在不同进程中共享同一个端口。VCI_OpenDevice和VCI_CloseDevice函数一般在应用程序初始化和退出时只需要调用一次。

当关闭设备时若能当前端口不再使用,应该先调用VCI_ResetCAN函数使当前端口脱离CAN总线,设备驱动程序只会在最后一个设备句柄关闭时才自动调用VCI_ResetCAN退出CAN总线的连接。

8.如何使用中断方式操作通讯卡?

PCI-98XX系列不提供直接操作中断的接口,因为中断已经在驱动程序中处理了。

需要在应用程序中操作中断的多数原因是:程序不知道数据何时能到达设备,需要得到一个接收消息的触发才能从缓冲读取数据。解决这个问题的一般手段是使用多线程(或多任务)。即启动一个新的线程,在线程中循环调用VCI_Receive函数来查询接收缓冲。

VCI_Receive内部已实现了阻塞机制,在缓冲里没有数据时会挂起调用线程,这时不会占用CPU的时间,应用程序仍然可以处理其他事务。

9.如何更好的使用VCI_Transmit发送函数?

PCI-98XX系列设备驱动提供16帧软件发送缓冲FIFO,每次VCI_Transmit调用最多发送16帧数据,发送设备的发送速度由当前计算机软硬件性能决定,一般连续发送速度在2000至4000帧/秒之间(标准数据帧11Bytes,1Mbps),若发送速度过快将有可能使远端接收设备数据溢出而失去响应,这样用户可在应用编程中适当添加延时以降低发送速度。

发送过程中每一帧都有超时限制,单帧发送时超时时间约2秒,一次发送多帧时最后一帧发送超时为2秒,其余为1秒。发送超时一般由于CAN总线繁忙且当前节点优先级较低时发生,并不是函数调用或通讯错误,用户可以编程实现重发(一般中低速网络极少发生发送超时事件),因此,在系统设计时注意保证CAN总线占用不应该超过总线容量的60-70%。

10.如何更好的使用VCI_Receive函数?

设备驱动提供130000帧软件接收缓冲区,这为应用编程人员提供了充足的反应处理时间。当软件接收缓冲数据溢出时设备驱动程序将调用VCI_ResetCAN复位CAN总

线,同时置位CAN status的数据溢出中断标志位,注意软件缓冲溢出和CAN控制器硬件缓冲溢出都是使用该标志位。

接收函数提供Wait参数适合用于多线程编程,函数内部封装一个阻塞函数,其参数Wait含义如同Win32的WaitForSingleObject的dwMilliseconds参数(请参考Win32API 说明),它为VCI_Receive指定一个超时返回时间,单位为毫秒。

当Wait为0时函数调用时立即返回当前成功读取到的帧数,若接收缓冲为空则返回0。当Wait非0时,若函数调用时接收缓冲中已经有数据则马上返回成功读取的帧数,若这时接收缓冲为空,函数将等待一个指定的超时到达或接收到数据才返回成功接收的帧数。当Wait为0xFFFFFFFF时为无限等待直到有数据接收到,建议不要把Wait 设得过大,无限等待更应该注意。

nFrames等于0时函数实际是一个通知消息返回,不要求读接收缓冲区,是一个特殊的技巧性用法。注意:若在主线程中调用VCI_Receive函数并且Wait非0则有可能引起应用程序暂时性的失去响应。若通过查询方式接收,一般应该把Wait设为0。

11.是否提供测试程序?

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

5. 检查和维护

PCI-98XX 系列接口卡的主要电气部件都是半导体元件,尽管它有很长的寿命,但在不正确环境下也可能加速老化。应该进行定期检查,以保证保持所要求的条件。推荐每6个月到一年,至少检查一次。在不利的环境条件下,应该进行更频繁的检查。

如果在维护过程中遇到问题,请阅读下面的内容,以便找到问题的可能的原因,如表5.1示。如果仍无法解决问题,请联系广州致远电子有限公司。

表 5.1检查与维护

6. 附录A:CAN2.0B协议帧格式

CAN2.0B标准帧

CAN标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。

字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。

字节2、3为报文识别码,11位有效。

字节4~11为数据帧的实际数据,远程帧无效。

CAN2.0B扩展帧

CAN扩展帧信息为13个字节,包括两部分,信息和数据部分。前5个字节为信息部分

字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF =1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际的数据长度。

字节2~5为报文识别码,其高29位有效。

字节6~13为数据帧的实际数据,远程帧无效。

7. 附录B:SJA1000标准波特率

注:带*号的是CIA协会推荐的波特率。

相关文档
相关文档 最新文档