《USBCAN-II Pro 用户手册解析.docx》由会员分享,可在线阅读,更多相关《USBCAN-II Pro 用户手册解析.docx(24页珍藏版)》请在三一办公上搜索。
1、USBCAN-II Pro工业级USB-CAN转换器用户手册文档版本:V4.01 (2017/01/13)修订历史版本日期原因V1.002013/06/16创建文档V2.012013/12/20修正设备工作参数V3.012015/04/22添加部分参数V3.502016/07/16添加OBDII功能V4.012017/01/13添加CANopen功能1. 功能简介41.1功能概述41.2性能特点41.3典型应用52. 设备安装62.1驱动及软件安装62.2与PC连接62.3 CAN总线连接73. 设备使用83.1 USB 连接83.2 CAN 连接83.3 CAN总线终端电阻93.4系统状态指
2、示灯94. ECANTools 软件使用114.1软件启动114.2数据收发124.3总线分析功能134.4中继功能、脱机功能144.5其他功能155. 二次开发166. 技术规格177. 常见问题18附录CAN2.0B协议帧格式211. 功能简介1.1功能概述USBCAN-II Pro是集成2路CAN接口的高性能型CAN-bus总线通讯接口卡。 该型号CAN卡可兼容USB2.0总线全速规范,采用USBCAN-II Pro高性能CAN 接口卡,PC可以通过USB接口快速连接至CAN-bus网络,构成现场总线实验 室、工业控制、智能小区、汽车电子网络等CAN-bus网络领域中数据处理、数 据采集
3、的CAN-bus网络控制节点。USBCAN-II Pro高性能CAN接口卡是CAN-bus产品开发、CAN-bus数据分 析的强大工具,同时具有体积小巧、即插即用等特点,也是便携式系统用户的最 佳选择。USBCAN-II Pro接口卡上自带USB接口,集成CAN接口电气隔离保护 模块,使其避免由于瞬间过流/过压而对设备造成损坏,增强系统在恶劣环境中 使用的可靠性。USBCAN-II Pro 高性能 CAN 接口卡支持 WindowsXP/Win7/Win8/Win10 等 32位/64位操作系统。我公司为用户提供统一的应用程序编程接口和完整的应用 示范代码,含VC、VB、.Net、Delphi
4、、Labview和C+Builder等开发例程示范, 方便用户进行应用程序开发。USBCAN-II Pro接口卡可使用我公司自主开发的ECANTools通用测试软件, 可执行CAN-bus报文的收发和监测等功能。1.2性能特点 PC接口符合USB2.0全速规范,兼容USB1.1及USB3.0;集成2路CAN-bus接口,使用插拔式端子接线方式; 支持CAN2.0A和CAN2.0B帧格式,符合ISO/DIS 11898规范; CAN-bus通讯波特率在5Kbps1Mbps之间任意可编程; 使用USB总线电源供电,或使用外接电源(DC+5V,130mA); CAN-bus接口采用电气隔离,隔离模块
5、绝缘电压:DC 3000V;最高接收数据流量:14000 fps; CAN端接收报文时间戳精度可达1us; 支持 WinXP、Win7、Win8、Win10 等 Windows 操作系统; 支持ECANTools测试软件; 工作温度范围:-40C+85C; 尺寸:(长)103mm * (宽)64mm * (高)24mm。1.3典型应用 CAN-bus网络诊断与测试汽车电子应用电力通讯网络工业控制设备高速、大数据量通讯2. 设备安装本章介绍了 USB-CAN接口卡与电脑连接的方法及初次使用电脑连接 USB-CAN接口卡时的注意事项。2.1驱动及软件安装驱动及软件安装之前,请用户确保自己登陆Win
6、dows的账户是管理员,或 用户账户有安装驱动及软件的相关权限,否则可能导致安装失败。确认Windows账户权限的方法:控制面板-用户账户。2.1.1驱动及软件安装用户可以通过直接安装ECANTools软件的方式,完成驱动及软件的打包安 装。如需手动安装驱动,请进入光盘中的“驱动driver”文件夹,选择与系统对 应(32/64 位)的安装文件(DriverSetup.exe/DriverSetup64.exe)进行手动安装。2.1.2驱动及软件卸载用户可以通过运行上方DriverSetup.exe/DriverSetup64.exe后点击“卸载”按 钮卸载安装好的设备驱动。用户可通过“添加/
7、删除程序”中找到ECANTools软件对其进行卸载。2.2与PC连接USBCAN-II Pro接口卡具有即插即用的特点,因此用户可以使用PC机的 USB接口直接向USBCAN-II Pro接口卡供电;若USB供电不足,则需选用外部 电源供电方式。2.2.1 USB总线供电模式USB总线供电模式适合于大多数应用场合,例如,当USBCAN-II Pro接口 卡是USB端口连接的唯一设备时。将PC与USBCAN-II Pro接口卡通过随机附带的USB电缆直接连接,由USB 电缆向USBCAN-II Pro接口卡提供+5V电源;此时,指示灯PWR、SYS点亮, 表示设备工作正常且处于待连接状态。2.2
8、.2外部电源供电模式外部电源供电模式适合于PC机使用了 USB总线集线器(HUB),或者已经 连接了多个USB终端设备,而导致USB端口不能够向USBCAN-II Pro接口卡提 供足够电流的场合。使用外部电源(DC+5V,130mA)连接到USBCAN-II Pro接口卡的DC5V电 源插座,此时指示灯PWR、SYS点亮;然后将PC与USBCAN-II Pro接口卡通 过随机附带的USB电缆连接,USBCAN-II Pro接口卡即可正常工作。2.3 CAN总线连接USBCAN-II Pro接口卡集成2路CAN通道,由1个6 Pin插拔式接线端子引出, 可以用于连接2个C AN-bus网络或者
9、C AN-bus接口的设备。接线端子的引脚定义 如表2.1所示。引脚端口名称功能1CAN1LCAN_L信号线(CAN低)2PE屏蔽3HCAN_H信号线(CAN高)4CAN2LCAN_L信号线(CAN低)5GCAN地6HCAN_H信号线(CAN高)表2.1 USBCAN-II Pro接口卡的CAN-bus信号分配实际使用中,大多数情况仅需将CAN_H与总线CAN_H相连,CAN_L与总线 CAN_L相连即可实现通信。3. 设备使用3.1 USB连接USBCAN-II Pro接口卡的USB接口符合USB2.0全速协议规范,可以与具有 USB1.1标准、USB2.0标准、USB3.0标准的PC机连接
10、通讯。USBCAN-II Pro接口卡与PC的连接方式有以下两种:A. 通过随机附带的USB电缆直接连接PC的USB接口,由PC的USB接口向 USBCAN-II Pro接口卡提供+5V电源,采用总线供电模式。B. USBCAN-II Pro接口卡通过外置的USB总线集线器连接到PC机;如果使用 总线供电方式的USB集线器,必须保证电源达到5V,200mA电流。驱动、软件正常安装后,将设备插入PC的USB接口,即可在PC设备管理 器中发现新USBCAN设备,驱动名称:“GC-TechUSBCAN Device”,如无黄色 叹号或问号即表示设备驱动正常,USBCAN设备已与PC正常连接。3.2
11、CAN连接USBCAN-II Pro接入CAN总线连接方式如2.3中介绍,将CAN_H连 CAN_H,CAN_L连CAN_L即可建立通信。CAN-bus网络采用直线拓扑结构,总线最远的2个终端需要安装120Q的终端 电阻;如果节点数目大于2,中间节点不需要安装120Q的终端电阻。对于分支连 接,其长度不应超过3米。CAN-bus总线的连接见图3.1所示。终端电阻终端电阻图3.1 CAN-bus网络的拓扑结构注意:CAN-bus电缆可以使用普通双绞线、屏蔽双绞线。理论最大通信距离 主要取决于总线波特率,最大总线长度和波特率关系详见表3.1。若通讯距离超 过1Km,应保证线的截面积大于O1.0mm
12、2,具体规格应根据距离而定,常规是随 距离的加长而适当加大。波特率总线长度1 Mbit/s40m500 kbit/s110m250 kbit/s240m125 kbit/s500m50 kbit/s1.3km20 kbit/s3.3km10 kbit/s6.6km5 kbit/s13km表3.1波特率与最大总线长度参照表3.3 CAN总线终端电阻为了增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰,CAN总线 网络最远的两个端点通常要加入终端匹配电阻,如图3.2所示。终端匹配电阻的 值由传输电缆的特性阻抗所决定。例如双绞线的特性阻抗为120Q,则总线上的 两个端点也应集成120Q终端电阻
13、。USBCAN-II Pro接口卡采用82C251收发器,如 果网络上其他节点使用不同的收发器,则终端电阻须另外计算。其它部N设备USBCAN-II图3.2 USBCAN-II Pro与其他CAN节点设备连接注意:USBCAN-II Pro内部已集成120 Q终端电阻,可通过拨码开关选择是 否将电阻接入总线,拨码开关在6pin端子旁边,R1、R2分别对应为CAN1、CAN2 的终端电阻,拨到ON的位置即可将电阻启用。3.4系统状态指示灯USBCAN-II Pro接口卡具有1个PWR指示灯、1个SYS指示灯、1个CAN1指示 灯、1个CAN2指示灯来指示设备的运行状态。这4个指示灯的具体指示功能
14、见表 3.2,这4个指示灯处于各种状态下时,CAN总线的状态如表3.3所示。指示灯颜色指示状态PWR绿电源指示SYS绿系统指示CAN1绿CAN 1信号指示CAN2绿CAN2信号指示表3.2 USBCAN-II Pro接口卡指示灯USBCAN-II Pro接口卡上电后,四个指示灯同时点亮,之后PWR和SYS常亮, 但CAN1和C AN2灯不亮,表明设备已经供电,系统完成初始化;否则,表示存 在系统电源故障或其他故障,需联系我公司客服人员。USB接口连接正常后,当PC端有上位机软件调用USBCAN设备时,USB信 号指示灯SYS会闪烁。此时,当CAN 1或CAN2有数据收发时,对应的CAN1、CA
15、N2 指示灯会有闪烁。SYS闪烁但CAN1或CAN2指示灯不亮,说明。心通道无数 据,请检查接线、通信波特率、匹配电阻等是否正确。指示灯状态指示状态PWR亮电源供电正常不亮电源供电故障SYS常亮设备初始化通过,待机状态不亮设备初始化未通过闪烁PC端有软件调用设备CAN1、CAN2不亮CAN通道无数据传输闪烁对应CAN通道有数据传输表3.3 USBCAN-II Pro接口卡指示灯状态4. ECANTools软件使用ECANTools软件是我公司针对Windows平台开发的专用调试分析软件,使用 该软件,用户可以直观,快速的进行CAN总线数据收发。软件极易使用且扩展功 能非常丰富,用户可以很快上手
16、使用。本章将对ECANTools主要功能做介绍。4.1软件启动1.如用户已安装ECANTools软件,可以通过双击桌面上的“ Ecantools ”图标 打开软件。2. 选择对应的设备类型后,点击“打开设备”即可在设备列表中出现已经插 入电脑USB接口的CAN设备。3. 选择工作模式。软件提供3种工作模式可选:正常模式、只听模式、自发 自收模式。正常模式适用于软件数据收发;只听模式适用于在不干扰总线的情况 下监听总线,但不可发送数据,此时U SBCAN设备不作为CAN总线节点,不发 送应答和时钟信号;自发自收模式用于测试USBCAN设备的CAN通信是否正常。4. 选择波特率。用户需要按实际接入
17、的总线的波特率进行设置,如波特率与 总线不匹配,则无法正常通信,甚至干扰总线。如需自定义波特率,请与我公司 联系。当用户并不知道总线波特率时,也可使用自动识别波特率功能进行扫描。4.2数据收发接收和发送界面是ECANTools的主要功能,在此界面,用户可以直观的看到 接收到的CAN报文,以及通过普通发送或列表发送的方式,向总线上发送数据。/ZCAN1 Receive/TraiiSimit CAN2 R=zerve/Tran5rnt保律数有-如i实的保芹 H哲惜品示 二启示模式.清陪罕法菠设宜序号帕隔R捐皿曲D幢类型帧格式ULC救据哽9.TT5.6L5LlljDDkTkSTAHIiJJIi6Ei
18、D DI 02 OQ CH 05 06 0710000000L0. m.8L6IJIJLInxrxSTAHDAELgDD DI 02 03 DA 05 06 0713.Z5S.3L3mmSTWJDAKD3 ! OZ DG M 05 DB 07Luriririririu:-ia.216.uijuUUODXTkSTMTOAKD0DD DI 02 CCi CH 05 06 0TIa.246.696LlljDDkTkSTAHIiArii6EiD DI 02 OS CM 05 06 071LIIJIJLIIJLIIJ5O.iJLHJ. HO主副。tLHJOHkTkSTAWHAJHaDD 01 02 03
19、 Oil 05 06 071.ZZ4.DDDDJiTlSTMIDAEDa ! 02 DB W 05 DB 07L00000007a.:i54.0Lii:iLlljDDKTkSTAHEAFUaEiD DI 02 OG B 05 06 071L3虱表爵 寸发咨:伴 4 op/s 窃岩幡:m炭s司正常肱住葬次菽谖时:甘TT色;.送一叩浅S斋浅汕拒宕=遂一叩弟.曾侦案型:标准倾TrLJlHEU: CCI:00勘挹 H:.00 01 33 34 CH CC CTj友:21女软:1莓可鬲:础切停止株送间隔最小O.Ln,实际发送速虔登波特率暴响J除以上基本功能外,软件还具有发送文件功能。文件发送分为普通文件
20、发送 及批处理文件发送。普通文件发送可以向总线上的节点发送文件,用户可以基于 此功能开发CAN总线程序烧录软件;批处理文件发送可以将用户保存的批处理文 件(.can)按保存时的时序及数据重新发送回CAN总线,批处理文件保存详见4.5。批处理文件发送应用举例:exampl.can -目事本文件促编辑旧格式帮曲田50, 1? 1,00223344, 01 02 03 04 05 06 07 08 60,。,1,1,01 02 03 04 05 06 07 08 .70,0,0,1,01 02 03 04 05 06 07600;。,hL01020304030607OS700,0, 0,1?0102
21、0304050607088g 0, 1,K01020304050607OS900, 0, 1,L0102030405060708第一位:帧间隔时间,单位毫秒 第二位:标准顿0,扩展顿1 第三位!数据帧0,远程帧1 第四位,帧ID 第五位:帧数据4.3总线分析功能ECANTools具有总线诊断功能,可以检测到总线错误帧以及总线仲裁丢失 位,实现了比较全面的CAN总线分析。状态P X控制状态总钱状态总线错误计数接收寄存器满正在发谖总线正常桂收:0搔陨寄存器益错误报零被动崖误发廷寄存器空篷存区喧出主动黑误发谖;发住结束总线数据错误总线关田正在接收总线仲裁错误C.WS状.悉cq状态CAN总线状态显示:
22、指示当前CAN总线状态包括:总线正常、被动错误、 主动错误、总线挂起。CAN控制器内部FIFO溢出:某一段时间内的总线报文过于密集,导致 USBCAN来不及接收,发生报文丢失。CAN控制器错误报警:总线发生多次发送错误或接收错误,错误计数器超 出报警阈值,并能显示错误计数值。CAN控制器消极错误:总线发生多次发送错误或接收错误,导致CAN控制 器进入错误消极状态,并能显示错误计数值。CAN控制器仲裁丢失:本节点与其他设备在竞争总线时失败,待发报文将 在下一次总线空闲时尝试发送,能捕捉到相应的错误位信息并显示出来。CAN控制器总线错误:总线发生一次发送错误或接收错误,错误计数器的 值将累加,并能
23、捕捉错误的位信息,比如ACK、CRC、位界定错误信息。CAN数据缓冲区溢出:由于一段时间未与PC交换数据,导致设备存储的报文数目超出硬件容量限制,新接收的报文将覆盖最早的报文。4.4中继功能、脱机功能CAN中继功能可将2条波特率相同或不同的CAN总线数据相互转发,用法类 似于CAN中继器。还可设置中继监控模式,通过电脑可以看到数据流向,比如 CAN 1收CAN2发,此功能可以用来测试两个节点的数据流向,清晰的看出哪些数据是哪个通道接收到的,便于进行通信协议破解等用途。配置脱机模式时,用户可以用记事本(.txt)编辑指令,下载到【JCAN设备中, 下载好的CAN设备通电后就可以根据记事本中的指令
24、进行脱机工作,可进行脱机 的指令有:发送、延时、触发发送、接收修改后发送等常用功能,用户即使不会 二次开发软件,也可轻松实现脱机自动控制。上电就可以自动发送数据,此功能 可用于生产线测试,破解协议后模拟协议数据等,用途非常广泛。脱机模式应用举例:10 (开始等待时间),1(模式1=CAN1收发2=CAN2收发3=CAN 1收CAN2 发4=CAN2收CAN1发),40000000 (触发ID,如果是40000000表示不触发),0000 (替换掩码0000 00xx,xxxx xxxx每位代表一个替换1变换,0不换。按ID,长度, 数据顺序,二进制),0D223344 (发送ID),0(0=标
25、准帧,1=标准远程帧,2=扩展 帧,3=扩展远程帧),8 (长度),01 02 03 04 05 06 07 08,100 (发送次数,0表示无 限次),500 (间隔时间ms) 例如:10,1,40000000,0000,144,0,8,01 02 03 04 05 06 07 08,100,500此条数据的功能是:上电等待10ms,初始化CAN1通道收发数据,不设置触发,不替换ID和数据, 发送ID 144,标准帧,数据长度8位,发送数据01 02.08,发送次数100次,每 次发送时间间隔500ms。4.5其他功能ECANTools软件扩展功能极为丰富,且都很方便易用,灵活运用这些扩展
26、功能可以帮助用户方便快速的分析数据。商带会瞬- i祝裁升 II哲唾示f弱疝 七源 S 球迎 承可禽 初旦示稽演岐 岬咨垣Og + ?p/5 Wts长汕保存数据/实时保存:可保存接收列表,保存格式有:txt、can、excel、二进 制。暂停显示:可暂停接收列表的滚动。显示模式:可选滚动模式和列表模式,列表模式可按规则将数据实时分类。清除:可清除当前接收列表中的数据。滤波设置:通过编辑滤波ID的方式,实现多段滤波。高级屏蔽:通过屏蔽ID的方式,不显示已屏蔽的ID。显示错误帧:可显示/隐藏总线上的错误帧。OBDII插件:可直观的解析部分汽车参数。CANopen主站:方便用户进行CANopen协议解
27、析。请注意:ECANTools软件更多功能详述请查看“ ECANTools软件使用说明”5.二次开发我公司为二次开发的用户提供标准的接口函数库,包括:ECANVCI.h、ECANVCI.lib、ECANVCI.dll。该接口函数库均为标准格式,用户可以在VC、VB、 Labview等编程环境中,对这些接口函数声明调用,具体使用方法详见“ ECAN 动态库使用手册”。图5.1为常用结构体名称及函数库调用流程。参数结构体封装BOARDNFO; :CAN_OBJ: : IN1T_CONFQ极卡信恩结构体:C南N痈醐体::板卡诲化结构体;FILTER_RECORDCAN_STATUSC: 明史日正。|
28、状签器拘体:错误值息结构体:表格式帧日波皓构体 L 一一一 1 -图5.1二次开发函数调用6.技术规格连接方式PC端USB接口,人类型CAN端OPEN6插拔式端子接口特点USB 接口USB2.0全速接口,兼容USB1.1,USB3.0CAN 接口遵循ISO 11898标准,支持C AN2.0A/BCAN波特率5Kbit/s1Mbit/s电气隔离3000V,DC-DCCAN终端电阻已集成,通过拨码开关选择是否启用供电电源供电电压+5V DC (USB 接口)供电电流最大130mA环境试验工作温度-40 C +85 C工作湿度15%90%RH,无凝露EMC测试EN 55024:2011-09EN
29、55022:2011-12防护等级IP 20基本信息外形尺寸103 mm *64mm *24mm重量120g7.常见问题1. 在ECANTools测试软件中,为何显示“打开设备错误”?可能产生此类故障的原因是:设备类型选择不正确或U SBCAN设备驱动没有 正常安装。在PC的设备管理器中检查USBCAN设备属性,看看有没有“! ”或“? ” 在USBCAN设备前面;若有,则检查硬件软件冲突,并重新安装USBCAN设备 驱动程序。2. 是否一定需要使用120ft终端匹配电阻?建议120Q终端匹配电阻用于吸收端点反射,提供稳定的物理链路。当进行 单节点的自发自收测试时必须连接该120Q的终端电阻构
30、成回路,否则无法进行 自发自收测试。USBCAN高性能CAN接口卡内部已经连接有120Q的终端电阻。3. 台计算机能否安装多块USBCAN接口卡?旧版的接口不支持多卡同时操作,但是目前的USBCAN接口卡,支持多达8 个同一型号的U SBCAN接口卡同时操作。4. USBCAN-II Pro接口卡最高的数据转换率是多少?USBCAN接口卡的单一 CAN通道最高支持8000 fps的CAN总线数据转换,这 里提到的帧是指标准帧8个数据的数据帧,如果是小于8字节数据或者远程帧可能 会更快。另外,最高数据流量会受PC性能的限制。5. 为何CAN状态指示灯不亮?因为USBCAN接口卡的所有操作是受PC
31、机控制的,只有PC机发送了启动 CAN通讯的命令后,CAN状态指示灯才会有意义。6. 为何调用接口函数时系统非法操作?首先在使用接口函数时请认真阅读函数说明,保证输入参数合法,特别注意 指针(地址)的传递,或参照提供的例子程序,倘若问题还是未能解决,可联系我 们的技术支持。7. USBCAN接口卡的通讯波特率如何设置?设备提供了一组常用的波特率的设置值,若要使用其他的波特率,请联系广 成科技客服进行计算。需要注意:USBCAN接口卡的CAN控制器使用24MHz时 钟,用户自定义波特率时要根据该时钟频率进行计算。8. 系统进入待机或睡眠状态是否影响接收?会有影响。这时所有处理将停止,最大可能导致
32、硬件接收缓冲溢出错误。若 有程序打开设备将尝试阻止系统进入待机或睡眠状态,从而保证系统正常工作。使用USBCAN接口卡时,请禁止系统的待机和睡眠功能。9. 如何处理应用中的错误?错误主要分为函数调用错误和CAN-bus通讯错误两种。函数调用错误一般 由参数错误引起,如:设备号超出范围,类型号错误等,用Win32函数GetLastError 返回的错误号是87,还有的是对未打开的设备进行操作,实际是对一个非法句柄 操作,根据具体函数调用情况都有相应的Win32标准错误码提供,用户可以使 用GetLastError进行错误分析,这部分除错工作一般应该在设计时完成。对于CAN-bus通讯错误,一般由
33、CAN网络引起,也可能因用户设置不当而引 起,如:波特率设置不一致、没有启动CAN控制器便调用发送函数等。大部分 错误已经在设备驱动中作了简单的处理,如果要进行更深层次的错误分析和处 理,可以调用ReadCANStatus函数。另外需要注意的是数据溢出中断错误,它的产生有两种可能:(1)软件接收 缓区冲溢出。这说明应用程序无法及时处理接收到的数据,这时用户应该优化 应用程序或更改通讯策略。(2)硬件接收缓冲区溢出。产生这种错误是由于接收 端PC中断延迟太大而引起的。只能通过提升计算机性能或协调其余节点适当 降低发送速度来解决。10. 打开关闭设备要注意哪些事项?USBCAN-II Pro接口卡
34、提供2个CAN端口,用户能够在同一程序中操作不同 的端口。USBCAN-II Pro接口卡不允许共享方式打开设备,同一个设备不可被不 同进程通过调用OpenDevice函数多次打开。OpenDevice和C loseDevice函数一般在 应用程序初始化和退出时只需要调用一次。当关闭设备时若能当前端口不再使 用,应该先调用ResetCAN函数使当前端口脱离CAN总线,设备驱动程序只会在 最后一个设备句柄关闭时才自动调用ResetCAN退出CAN总线的连接。11. 如何使用中断方式操作通讯卡?USBCAN接口卡不提供直接操作中断的接口,因为中断已经在驱动程序中处 理了。需要在应用程序中操作中断的
35、多数原因是:程序不知道数据何时能到达设 备,需要得到一个接收消息的触发才能从缓冲读取数据。解决这个问题的一般手 段是使用多线程(或多任务)。即启动一个新的线程,在线程中循环调用Receive 函数来查询接收缓冲。Receive内部已实现了阻塞机制,在缓冲里没有数据时会 挂起调用线程,这时不会占用CPU的时间,应用程序仍然可以处理其他事务。12. 如何更好的使用Transmit发送函数?USBCAN接口卡的驱动提供约128帧发送缓冲FIFO,每次Transmit调用最多 发送约128帧数据。发送设备的发送速度由当前计算机软硬件性能决定,一般连 续发送速度在2000 fps左右(标准数据帧11By
36、tes,1Mbps),若发送速度过快将有 可能使远端接收设备数据溢出而失去响应,这样用户可在应用编程中适当添加延 时以降低发送速度。发送过程中每一帧都有超时限制,单帧发送时超时时间约2秒,一次发送多 帧时最后一帧发送超时为2秒,其余为1秒。发送超时一般由于CAN总线繁忙且当 前节点优先级较低时发生,并不是函数调用或通讯错误,用户可以编程实现重发 (一般中低速网络极少发生发送超时事件)。因此,在系统设计时注意保证CAN总 线占用不应该超过总线容量的60-70%。13.如何更好的使用Receive函数?设备驱动提供100000帧软件接收缓冲区,这为应用编程人员提供了充足的反 应处理时间。当软件接收
37、缓冲数据溢出时设备驱动程序将调用ResetCAN复位 CAN总线,同时置位CAN statu s的数据溢出中断标志位,注意软件缓冲溢出和 CAN控制器硬件缓冲溢出都是使用该标志位。接收函数提供Wait参数适合用于多线程编程,函数内部封装一个阻塞函数, 其参数 Wait 含义如同 Win32 的 WaitForSingleObject 的 dwMilliseconds 参数(请参考 Win32API说明),它 为Receive指定一个超时返回时间,单位为毫秒。当Wait为0时函数调用时立即返回当前成功读取到的帧数,若接收缓冲为空 则返回0。当Wait非0时,若函数调用时接收缓冲中已经有数据则马上
38、返回成功 读取的帧数,若这时接收缓冲为空,函数将等待一个指定的超时到达或接收到数 据才返回成功接收的帧数。当Wait为0xFFFFFFFF时为无限等待直到有数据接收 到,建议不要把Wait设得过大,无限等待更应该注意。nFrames等于0时函数实际是一个通知消息返回,不要求读接收缓冲区,是一 个特殊的技巧性用法。注意:若在主线程中调用Receive函数并且Wait非0则有可 能引起应用程序暂时性的失去响应。若通过查询方式接收,一般应该把Wait设为 0。附录CAN2.0B协议帧格式CAN2.0B标准帧CAN标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为 信息部分。765432
39、10|1FTRTRKXDLC (数据长度)字节2(报丈识别码)ID. 10ID 一 3字节3D21D.0XXXXX字节4数据1字节5数据2字节6数据3字节7数据4字节&数据5字节9数据6字节10数据7字节11数据8字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR) 表示帧的类型,RTR=0表示为数据帧,RTR= 1表示为远程帧;DLC表示在数据 帧时实际的数据长度。字节2、3为报文识别码,11位有效。字节411为数据帧的实际数据,远程帧时无效。CAN2.0B 扩展帧CAN扩展帧信息为13个字节,包括两部分,信息和数据部分。前5个字节为 信息部分。765437 10字节1FFRTRXXDLC (数据长度)字节2(报文识别码)ID.2S-ID.21字节3ID.20ID 13字节ID.12ID.5字节5ID4-DOXXX字节6数据1字节7数据2字节数据3字节9数据4字节10数据3字节11数据6字节12数据7字节13数据8字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF=1;第6位(RTR) 表示帧的类型,RTR=0表示为数据帧,RTR= 1表示为远程帧;DLC表示在数据帧 时实际的数据长度。字节25为报文识别码,其高29位有效。字节613为数据帧的实际数据,远程帧无效。