USBCANOBD 用户手册.docx
- 文档编号:9632806
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:26
- 大小:848.32KB
USBCANOBD 用户手册.docx
《USBCANOBD 用户手册.docx》由会员分享,可在线阅读,更多相关《USBCANOBD 用户手册.docx(26页珍藏版)》请在冰豆网上搜索。
USBCANOBD用户手册
USBCAN-OBD
工业级USB-CAN转换器
用户手册
文档版本:
V4.01(2017/01/13)
修订历史
版本
日期
原因
V1.00
2013/6/16
创建文档
V2.01
2013/12/20
修正设备工作参数
V3.01
2015/04/22
添加部分参数
V3.50
2016/07/16
添加OBDII功能
V4.01
2017/01/13
添加CANopen功能
1.功能简介
1.1功能概述
USBCAN-OBD是集成1路CAN接口的便携式CAN-bus总线通讯接口卡。
该型号CAN卡是我公司专为汽车电子开发或汽车故障诊断用户设计,使用USBCAN-OBD便携式CAN接口卡,PC可以通过USB接口快速连接至汽车OBD接口中的CAN-bus网络,使PC可以构成汽车CAN-bus网络中数据处理、数据采集的CAN-bus网络控制节点。
USBCAN-OBD便携式CAN接口卡是CAN-bus产品开发、CAN-bus数据分析的强大工具;同时具有体积小巧、即插即用等特点,也是便携式系统用户的最佳选择。
USBCAN-OBD接口卡上自带USB连接线缆,集成CAN接口电气隔离保护模块,使其避免由于瞬间过流/过压而对设备造成损坏,增强系统在恶劣环境中使用的可靠性。
USBCAN-OBD便携式CAN接口卡支持WindowsXP/Win7/Win8/Win10等32位/64位操作系统。
我公司为用户提供统一的应用程序编程接口和完整的应用示范代码,含VC、VB、.Net、Delphi、Labview和C++Builder等开发例程示范,方便用户进行应用程序开发。
USBCAN-OBD接口卡可使用我公司自主开发的ECANTools通用测试软件,可执行CAN-bus报文的收发和监测等功能。
1.2性能特点
●PC接口符合USB2.0全速规范,兼容USB1.1及USB3.0;
●集成1路CAN-bus接口,OBDII接口方式;
●支持CAN2.0A和CAN2.0B帧格式,符合ISO/DIS11898规范;
●CAN-bus通讯波特率在5Kbps~1Mbps之间任意可编程;
●使用USB总线电源供电(DC+5V,130mA);
●CAN-bus接口采用电气隔离,隔离模块绝缘电压:
DC1500V;
●最高接收数据流量:
14000fps;
●CAN端接收报文时间戳精度可达1us;
●支持WinXP、Win7、Win8、Win10等Windows操作系统;
●支持ECANTools测试软件;
●工作温度范围:
-40℃~+85℃;
●尺寸:
(长)88mm*(宽)43mm*(高)22mm,线长1.5m。
1.3典型应用
●CAN-bus网络诊断与测试;
●汽车数据解码工具;
●OBD等汽车电子设备开发;
●汽车故障诊断分析;
●ECU数据模拟。
2.设备安装
本章介绍了USB-CAN接口卡与电脑连接的方法及初次使用电脑连接USB-CAN接口卡时的注意事项。
2.1驱动及软件安装
驱动及软件安装之前,请用户确保自己登陆Windows的账户是超级管理员,或用户账户有安装驱动及软件的相关权限,否则可能导致安装失败。
确认Windows账户权限的方法:
控制面板-用户账户。
2.1.1驱动及软件安装
用户可以通过直接安装ECANTools软件的方式,完成驱动及软件的打包安装。
如需手动安装驱动,请进入光盘中的“驱动driver”文件夹,选择与系统对应(32/64位)的安装文件(DriverSetup.exe/DriverSetup64.exe)进行手动安装。
2.1.2驱动及软件卸载
用户可以通过运行上方DriverSetup.exe/DriverSetup64.exe后点击“卸载”按钮卸载安装好的设备驱动。
用户可通过“添加/删除程序”中找到ECANTools软件对其进行卸载。
2.2与PC连接
USBCAN-OBD接口卡具有即插即用的特点,因此用户可以使用PC机的USB接口直接向USBCAN-OBD接口卡供电;若USB供电不足,则需选用外部电源供电方式(仅USBCAN-IIPro支持外部供电方式)。
2.2.1USB总线供电模式
USB总线供电模式适合于大多数应用场合,例如,当USBCAN-OBD接口卡是USB端口连接的唯一设备时。
将PC与USBCAN-OBD接口卡的USB端直接与电脑的USB接口连接,由USB接口向USBCAN-OBD接口卡提供+5V电源;此时,两个指示灯都点亮,随后一个熄灭,表示设备工作正常且处于待连接状态。
2.2.2外部电源供电模式(仅USBCAN-IIPro支持)
外部电源供电模式适合于PC机使用了USB总线集线器(HUB),或者已经连接了多个USB终端设备,而导致USB端口不能够向USBCAN-OBD接口卡提供足够电流的场合。
此时可使用我公司USBCAN-IIPro设备,通过外部电源(DC+5V,200mA)连接到USBCAN-IIPro接口卡的DC5V电源插座,此时指示灯PWR、SYS点亮;然后将PC与USBCAN-IIPro接口卡通过随机附带的USB电缆连接,USBCAN-IIPro接口卡即可正常工作。
2.3CAN总线连接
USBCAN-OBD接口卡集成1路CAN通道,由1个OBDII接口引出,可以用于连接CAN-bus网络或者CAN-bus接口的设备。
接线端子的引脚定义如表2.1所示。
引脚
端口
名称
功能
6
OBDII
CAN_H
CAN_H信号线
14
CAN_L
CAN_L信号线
其他
NC
无连接
表2.1USBCAN-OBD接口卡的CAN-bus信号分配
实际使用中,大多数情况仅需将CAN_H与总线CAN_H相连,CAN_L与总线CAN_L相连即可实现通信。
3.设备使用
3.1USB连接
USBCAN-OBD接口卡的USB接口符合USB2.0全速协议规范,可以与具有USB1.1标准、USB2.0标准、USB3.0标准的PC机连接通讯。
USBCAN-OBD接口卡与PC通过设备自身的USB电缆直接连接PC的USB接口,由PC的USB接口向USBCAN-OBD接口卡提供+5V电源,采用总线直接供电模式。
驱动、软件正常安装后,将设备插入PC的USB接口,即可在PC设备管理器中发现新USBCAN设备,驱动名称:
“GC-TechUSBCANDevice”,如无黄色叹号或问号即表示设备驱动正常,USBCAN设备已与PC正常连接。
3.2CAN连接
USBCAN-OBD接入CAN总线连接方式如2.3中介绍,将CAN_H连CAN_H,CAN_L连CAN_L,或直接将插头插入汽车OBD接口中即可建立通信。
CAN-bus网络采用直线拓扑结构,总线最远的2个终端需要安装120Ω的终端电阻;如果节点数目大于2,中间节点不需要安装120Ω的终端电阻。
对于分支连接,其长度不应超过3米。
CAN-bus总线的连接见图3.1所示。
图3.1CAN-bus网络的拓扑结构
注意:
CAN-bus电缆可以使用普通双绞线、屏蔽双绞线。
理论最大通信距离主要取决于总线波特率,最大总线长度和波特率关系详见表3.1。
若通讯距离超过1Km,应保证线的截面积大于Φ1.0mm2,具体规格应根据距离而定,常规是随距离的加长而适当加大。
波特率
总线长度
1Mbit/s
40m
500kbit/s
110m
250kbit/s
240m
125kbit/s
500m
50kbit/s
1.3km
20kbit/s
3.3km
10kbit/s
6.6km
5kbit/s
13km
表3.1波特率与最大总线长度参照表
3.3CAN总线终端电阻
为了增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰,CAN总线网络最远的两个端点通常要加入终端匹配电阻,如图3.2所示。
终端匹配电阻的值由传输电缆的特性阻抗所决定。
例如双绞线的特性阻抗为120Ω,则总线上的两个端点也应集成120Ω终端电阻。
USBCAN-OBD接口卡采用82C251收发器,如果网络上其他节点使用不同的收发器,则终端电阻须另外计算。
图3.2USBCAN与其他CAN节点设备连接
注意:
USBCAN-OBD内部未集成120Ω终端电阻,如需在此节点增加终端电阻,则需在连接线上集成终端电阻即可。
3.4系统状态指示灯
USBCAN-OBD接口卡具有1个双色指示灯用来指示设备的运行状态。
这个指示灯的具体指示功能见表3.2,这个指示灯处于各种状态下时,CAN总线的状态如表3.3所示。
指示灯
颜色
指示状态
SYS
红/绿
电源指示及
系统、数据指示
表3.2USBCAN-OBD接口卡指示灯
USBCAN-OBD接口卡上电后,SYS灯点亮且处于红色,表示设备供电正常,且处于初始化状态;当电脑识别到USBCAN设备后会自动加载其驱动,加载完毕后指示灯会变成绿色。
USB接口连接正常后,软件打开设备后,SYS灯会慢闪,当USB总线有数据在传输时,USB信号指示灯SYS会快速闪烁。
指示灯
状态
指示状态
SYS
红
电源供电正常,系统初始化
绿
设备驱动正常,等待连接
慢闪
设备与软件正常连接
快闪
CAN总线有数据收发
表3.3USBCAN-OBD接口卡指示灯状态
4.ECANTools软件使用
ECANTools软件是我公司针对Windows平台开发的专用调试分析软件,使用该软件,用户可以直观,快速的进行CAN总线数据收发。
软件极易使用且扩展功能非常丰富,用户可以很快上手使用。
4.1软件启动
1.如用户已安装ECANTools软件,可以通过双击桌面上的“ECANTools”图标打开软件。
2.选择对应的设备类型后,点击“打开设备”即可在设备列表中出现已经插入电脑USB接口的CAN设备。
3.选择工作模式。
软件提供3种工作模式可选:
正常模式、只听模式、自发自收模式。
正常模式适用于软件数据收发;只听模式适用于在不干扰总线的情况下监听总线,但不可发送数据,此时USBCAN设备不作为CAN总线节点,不发送应答和时钟信号;自发自收模式用于测试USBCAN设备的CAN通信是否正常。
4.选择波特率。
用户需要按实际接入的总线的波特率进行设置,如波特率与总线不匹配,则无法正常通信,甚至干扰总线。
如需自定义波特率,请与我公司联系。
当用户并不知道总线波特率时,也可使用自动识别波特率功能进行扫描。
4.2数据收发
接收和发送界面是ECANTools的主要功能,在此界面,用户可以直观的看到接收到的CAN报文,以及通过普通发送或列表发送的方式,向总线上发送数据。
4.3总线分析功能
具有总线诊断功能,可以检测到总线错误帧以及总线仲裁丢失位,实现了比较全面的CAN总线分析。
CAN总线状态显示:
指示当前CAN总线状态包括:
总线正常、被动错误、主动错误、总线挂起。
CAN控制器内部FIFO溢出:
某一段时间内的总线报文过于密集,导致USBCAN来不及接收,发生报文丢失。
CAN控制器错误报警:
总线发生多次发送错误或接收错误,错误计数器超出报警阈值,并能显示错误计数值。
CAN控制器消极错误:
总线发生多次发送错误或接收错误,导致CAN控制器进入错误消极状态,并能显示错误计数值。
CAN控制器仲裁丢失:
本节点与其他设备在竞争总线时失败,待发报文将在下一次总线空闲时尝试发送,能捕捉到相应的错误位信息并显示出来。
CAN控制器总线错误:
总线发生一次发送错误或接收错误,错误计数器的值将累加,并能捕捉错误的位信息,比如ACK、CRC、位界定错误信息。
CAN数据缓冲区溢出:
由于一段时间未与PC交换数据,导致设备存储的报文数目超出硬件容量限制,新接收的报文将覆盖最早的报文。
4.4汽车数据解析功能
USBCAN-OBD设备可以使用ECANTools软件的汽车信号解析功能。
使用该设备接入汽车OBD接口即可将汽车内部部分传感器的实际数值解析出来,信号解析功能仅支持家用汽油车ISO15765协议。
车速、转速、水温可通过软件仪表盘显示。
用户可通过此界面直观的看到汽车当前实时车速、转速和水温的具体数值,便于用户校对汽车仪表盘数值是否准确。
USBCAN-OBD设备还可以读取、解析、清除汽车的故障码,解析ISO15765协议中规定的汽车传感器数据包括:
发动机转速、冷却液温度、车辆速度、电压、进气歧管压力、进气温度、空气流速、节气门位置、氧传感器电压、燃油压力等等。
并且以上这些数据的数值变化可以实时保存在电脑中。
标准协议中描述的其他数据可通过左侧输入PID手动获取其具体数值,详细数据与PID对应关系请见“附录2”。
用户可以通过此功能直观的看出汽车内部部分传感器的具体数值并基于这些数据诊断汽车各传感器状态是否正常。
用户还可直观的比较某些传感器数值的变化规律和多种传感器数值之间进行比较。
以上数据数值变化也可通过曲线实时显示其变化轨迹,如下图所示。
用户最多可选择四个变量在同一界面同时显示。
用户可以通过曲线功能选择最多四个关心的变量,通过观察曲线的方式实时了解每个数据的变化,并且还可直观的比较多个数值之间的相对变化,可用于调整发动机怠速时转速、扭矩等。
4.5其他功能
ECANTools软件扩展功能极为丰富,且都很方便易用,灵活运用这些扩展功能可以帮助用户方便快速的分析数据。
保存数据/实时保存:
可保存接收列表,保存格式有:
txt、can、excel、二进制。
暂停显示:
可暂停接收列表的滚动。
显示模式:
可选滚动模式和列表模式,列表模式可按规则将数据实时分类。
清除:
可清除当前接收列表中的数据。
滤波设置:
通过编辑滤波ID的方式,实现多段滤波。
高级屏蔽:
通过屏蔽ID的方式,不显示已屏蔽的ID。
显示错误帧:
可显示/隐藏总线上的错误帧。
OBDII插件:
可直观的解析部分汽车参数。
CANopen主站:
方便用户进行CANopen协议解析。
请注意:
ECANTools软件更多功能详述请查看“ECANTools软件使用说明”
5.二次开发
我公司为二次开发的用户提供标准的接口函数库,包括:
ECANVCI.h、ECANVCI.lib、ECANVCI.dll。
该接口函数库均为标准格式,用户可以在VC、VB等编程环境中,对这些接口函数声明调用,具体使用方法详见“ECAN动态库使用手册”。
图5.1为常用结构体名称及函数库调用流程。
图5.1二次开发流程
6.技术规格
连接方式
PC端
USB接口,A类型
CAN端
OBDII接口
接口特点
USB接口
USB2.0全速接口,兼容USB1.1,USB3.0
CAN接口
遵循ISO11898标准,支持CAN2.0A/B
CAN波特率
5Kbit/s~1Mbit/s
电气隔离
1500V,DC-DC
CAN终端电阻
未集成
供电电源
供电电压
+5VDC(USB接口)
供电电流
最大130mA
环境试验
工作温度
-40℃~+85℃
工作湿度
15%~90%RH,无凝露
EMC测试
EN55024:
2011-09
EN55022:
2011-12
防护等级
IP20
基本信息
外形尺寸
88mm*43mm*22mm,线长1.5m
重量
110g
7.常见问题
1.在ECANTools测试软件中,为何显示“打开设备错误”?
可能产生此类故障的原因是:
设备类型选择不正确或USBCAN设备驱动没有正常安装。
在PC的设备管理器中检查USBCAN设备属性,看看有没有“!
”或“?
”在USBCAN设备前面;若有,则检查硬件/软件冲突,并重新安装USBCAN设备驱动程序。
2.是否一定需要使用120Ω终端匹配电阻?
建议120Ω终端匹配电阻用于吸收端点反射,提供稳定的物理链路。
当进行单节点的自发自收测试时必须连接该120Ω的终端电阻构成回路,否则无法进行自发自收测试。
USBCAN高性能CAN接口卡内部已经连接有120Ω的终端电阻。
3.一台计算机能否安装多块USBCAN接口卡?
旧版的接口不支持多卡同时操作,但是目前的USBCAN接口卡,支持多达8个同一型号的USBCAN接口卡同时操作。
4.USBCAN-OBD接口卡最高的数据转换率是多少?
USBCAN接口卡的单一CAN通道最高支持8000fps的CAN总线数据转换,这里提到的帧是指标准帧8个数据的数据帧,如果是小于8字节数据或者远程帧可能会更快。
另外,最高数据流量会受PC性能的限制。
5.为何CAN状态指示灯不亮?
因为USBCAN接口卡的所有操作是受PC机控制的,只有PC机发送了启动CAN通讯的命令后,CAN状态指示灯才会有意义。
6.为何调用接口函数时系统非法操作?
首先在使用接口函数时请认真阅读函数说明,保证输入参数合法,特别注意指针(地址)的传递,或参照提供的例子程序,倘若问题还是未能解决,可联系我们的技术支持。
7.USBCAN接口卡的通讯波特率如何设置?
设备提供了一组常用的波特率的设置值,若要使用其他的波特率,请联系广成科技客服进行计算。
需要注意:
USBCAN接口卡的CAN控制器使用24MHz时钟,用户自定义波特率时要根据该时钟频率进行计算。
8.系统进入待机或睡眠状态是否影响接收?
会有影响。
这时所有处理将停止,最大可能导致硬件接收缓冲溢出错误。
若有程序打开设备将尝试阻止系统进入待机或睡眠状态,从而保证系统正常工作。
使用USBCAN接口卡时,请禁止系统的待机和睡眠功能。
9.如何处理应用中的错误?
错误主要分为函数调用错误和CAN-bus通讯错误两种。
函数调用错误一般由参数错误引起,如:
设备号超出范围,类型号错误等,用Win32函数GetLastError返回的错误号是87,还有的是对未打开的设备进行操作,实际是对一个非法句柄操作,根据具体函数调用情况都有相应的Win32标准错误码提供,用户可以使用GetLastError进行错误分析,这部分除错工作一般应该在设计时完成。
对于CAN-bus通讯错误,一般由CAN网络引起,也可能因用户设置不当而引起,如:
波特率设置不一致、没有启动CAN控制器便调用发送函数等。
大部分错误已经在设备驱动中作了简单的处理,如果要进行更深层次的错误分析和处理,可以调用ReadCANStatus函数。
另外需要注意的是数据溢出中断错误,它的产生有两种可能:
(1)软件接收缓区冲溢出。
这说明应用程序无法及时处理接收到的数据,这时用户应该优化应用程序或更改通讯策略。
(2)硬件接收缓冲区溢出。
产生这种错误是由于接收端PC中断延迟太大而引起的。
只能通过提升计算机性能或协调其余节点适当降低发送速度来解决。
10.打开关闭设备要注意哪些事项?
USBCAN-OBD接口卡提供1个CAN端口,用户能够在同一程序中操作不同的端口。
USBCAN-OBD接口卡不允许共享方式打开设备,同一个设备不可被不同进程通过调用OpenDevice函数多次打开。
OpenDevice和CloseDevice函数一般在应用程序初始化和退出时只需要调用一次。
当关闭设备时若能当前端口不再使用,应该先调用ResetCAN函数使当前端口脱离CAN总线,设备驱动程序只会在最后一个设备句柄关闭时才自动调用ResetCAN退出CAN总线的连接。
11.如何使用中断方式操作通讯卡?
USBCAN接口卡不提供直接操作中断的接口,因为中断已经在驱动程序中处理了。
需要在应用程序中操作中断的多数原因是:
程序不知道数据何时能到达设备,需要得到一个接收消息的触发才能从缓冲读取数据。
解决这个问题的一般手段是使用多线程(或多任务)。
即启动一个新的线程,在线程中循环调用Receive函数来查询接收缓冲。
Receive内部已实现了阻塞机制,在缓冲里没有数据时会挂起调用线程,这时不会占用CPU的时间,应用程序仍然可以处理其他事务。
12.如何更好的使用Transmit发送函数?
USBCAN接口卡的驱动提供约128帧发送缓冲FIFO,每次Transmit调用最多发送约128帧数据。
发送设备的发送速度由当前计算机软硬件性能决定,一般连续发送速度在2000fps左右(标准数据帧11Bytes,1Mbps),若发送速度过快将有可能使远端接收设备数据溢出而失去响应,这样用户可在应用编程中适当添加延时以降低发送速度。
发送过程中每一帧都有超时限制,单帧发送时超时时间约2秒,一次发送多帧时最后一帧发送超时为2秒,其余为1秒。
发送超时一般由于CAN总线繁忙且当前节点优先级较低时发生,并不是函数调用或通讯错误,用户可以编程实现重发(一般中低速网络极少发生发送超时事件)。
因此,在系统设计时注意保证CAN总线占用不应该超过总线容量的60-70%。
13.如何更好的使用Receive函数?
设备驱动提供100000帧软件接收缓冲区,这为应用编程人员提供了充足的反应处理时间。
当软件接收缓冲数据溢出时设备驱动程序将调用ResetCAN复位CAN总线,同时置位CANstatus的数据溢出中断标志位,注意软件缓冲溢出和CAN控制器硬件缓冲溢出都是使用该标志位。
接收函数提供Wait参数适合用于多线程编程,函数内部封装一个阻塞函数,其参数Wait含义如同Win32的WaitForSingleObject的dwMilliseconds参数(请参考Win32API说明),它为Receive指定一个超时返回时间,单位为毫秒。
当Wait为0时函数调用时立即返回当前成功读取到的帧数,若接收缓冲为空则返回0。
当Wait非0时,若函数调用时接收缓冲中已经有数据则马上返回成功读取的帧数,若这时接收缓冲为空,函数将等待一个指定的超时到达或接收到数据才返回成功接收的帧数。
当Wait为0xFFFFFFFF时为无限等待直到有数据接收到,建议不要把Wait设得过大,无限等待更应该注意。
nFrames等于0时函数实际是一个通知消息返回,不要求读接收缓冲区,是一个特殊的技巧性用法。
注意:
若在主线程中调用Receive函数并且Wait非0则有可能引起应用程序暂时性的失去响应。
若通过查询方式接收,一般应该把Wait设为0。
附录1:
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为数据帧的实际数据,远程帧无效。
附录2:
ISO15765协议数据与PID对应关系
PID
数据头
最小值
最大值
单位
01
当前故障码数量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- USBCANOBD 用户手册