CN103440218A - 基于usb-hid协议的can总线监控方法 - Google Patents

基于usb-hid协议的can总线监控方法 Download PDF

Info

Publication number
CN103440218A
CN103440218A CN201310355104XA CN201310355104A CN103440218A CN 103440218 A CN103440218 A CN 103440218A CN 201310355104X A CN201310355104X A CN 201310355104XA CN 201310355104 A CN201310355104 A CN 201310355104A CN 103440218 A CN103440218 A CN 103440218A
Authority
CN
China
Prior art keywords
usb
hid
bus
monitoring
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310355104XA
Other languages
English (en)
Inventor
刘矗
莫莽
吴宝红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI GUTAI TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI GUTAI TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI GUTAI TECHNOLOGY Co Ltd filed Critical SHANGHAI GUTAI TECHNOLOGY Co Ltd
Priority to CN201310355104XA priority Critical patent/CN103440218A/zh
Publication of CN103440218A publication Critical patent/CN103440218A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明涉及一种CAN总线监控系统,它包括微控制器、至少两个CAN控制器、一个USB模块,其特点是,所述的CAN总线监控系统可以同时与至少两个CAN总线相连,在任何一根CAN总线上监听到CAN报文或是错误帧时,系统能将监听的数据存入本地内存,并将内存中的数据发送至USB模块,USB模块通过USB线连接至PC机,在PC机上采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互,从而实现CAN总线的监控,包括信号的显示和报文的收发等等。

Description

基于USB-HID协议的CAN总线监控方法
技术领域
本发明涉及通信领域,特别涉及一种针对CAN总线与USB总线之间的一个数据传输的系统。 
背景技术
CAN总线作为各个微控制器之间的通信接口,在汽车和工业中有着广泛的应用;在应用中一个重要的需求就是通过特定的硬件电路从CAN总线采集各个微控制器之间传递的信号,并传输到PC机,并在其上显示,从而实现对CAN总线通信过程中的监控。 
将从CAN总线采集到的信号传输到PC机,最常见的做法是使用USB总线,并在运行Windows操作系统的PC端,针对特定的设备编写USB设备驱动程序,设备驱动程序负责接收下位机的数据,并将其传输给PC端的应用程序。 
针对特定的设备编写USB设备驱动程序存在以下不足:1、设备驱动程序制作复杂,需要考虑到USB电源管理,枚举,数据通信等一系列问题;2、设备驱动程序调试困难;3、设备驱动程序的微小故障将导致操作系统崩溃;4、低版本的设备驱动程序无法兼容高版本的操作系统,不适合PC机的升级 
发明内容
本发明的目的,就是为了克服USB专用的设备驱动程序编制的缺陷,提供一种无需自行编写驱动程序的,基于USB-HID协议的CAN总线监控的解决方案和装置。 
本发明提供的具体技术方案如下: 
基于USB-HID协议的CAN总线监控系统,所述系统使用微控制器与至少两个CAN控制器连接,所属装置在任何一根CAN总线上监听到CAN报文或是错误帧后,将监听的数据读入本地内存,并将此内存中的数据发送到USB模块,USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互,从而实现CAN总线的监控,包括信号的显示和报文的收发等等。 
基于USB-HID协议的CAN总线监控系统,包括硬件电路,下位机程序和上位机程序。 
基于USB-HID协议的CAN总线监控系统中设计的硬件电路,由微控制器、至少两个CAN控制器、USB模块组成;微控制器与至少两个CAN控制器连接,所属装置在任何一根CAN总线上监听到CAN报文或是错误帧后,将监听的数据读入本地内存,并将此内存中的数据发送到USB模块。 
基于USB-HID协议的CAN总线监控系统中的USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互。 
本发明实施例中,在硬件的USB模块中以HID设备类的方式进行设备枚举,枚举成功后设备即可被PC机识别并自动在Windows端由HID设备驱动接管通信,只要打开上位机软件即可正常访问下位机,通信效率高,通信质量可靠,从而有效地提高了设备开发效率,同时此系统使得在任何安装有Windows并带有USB接口的电脑上均可使用此设备,而不需要对此设计任何驱动程序。 
附图说明
图1为本发明实施例中CAN总线监控总体架构图 
图2为本发明实施系统中下位机的流程图 
图3为本发明实施系统中上位机检测HID设备流程图 
图4为本发明实施系统中上位机的数据通信流程图 
图1中,微控制器(101),CAN控制器(102),CAN收发器(103),CAN总线CANH(104),CAN总线CANL(105),USB模块(106),USB HID驱动程序(107),上位机监控程序(108),PC机(109),下位机硬件电路(110),USB线(111) 
具体实施方式
在图1中,微控制器(101)连接至少两个CAN控制器(102),每个CAN控制器的TX引脚与RX引脚分别连接CAN收发器(103)的TX引脚和RX引脚,CAN收发器的CANH连接至CAN总线CANH(104),CAN收发器的CANL连接至CAN总线的CANL(105)。 
在图1中,PC机(109)内部包括Windows自带的HID设备驱动程序(107),监控程序(108)通过HID驱动程序连接至USB线(111),并连接至下位机硬件(110)的USB模块(106)。 
微控制器(101),内部集成CPU和内存,与一个或多个独立的CAN控制器相连;或是内部集成一个或多个CAN控制器;图1显示的是微控制器内部集成两个CAN控制器(102)的情形。 
CAN控制器(102),作为CAN总线的协议转换芯片,负责将CAN总线上的报文和错误帧等信息反馈给微控制器,每一个CAN控制器都有与CAN收发器相连的TX和RX引脚。 
下面结合附图2-4对本发明的控制流程进行详细说明。 
参阅图2所示,本发明实施中下位机监控详细流程如下: 
步骤201:CAN控制器报文接收中断和错误中断。CAN控制器在监控到总线上的报文或是错误帧后,以中断形式通知微控制器,微控制器同时会进入中断处理程序。 
步骤202:读取相应的CAN控制器的监控数据。微控制器在中断服务程序中读取相应的CAN控制器所获取的监控数据至内存。 
步骤203:判断本地缓冲区是否已满。微控制器判断当前的CAN总线监控缓冲区是否已被填满,若被填满则转到步骤204,若没有填满则转到步骤205。 
步骤204:错误处理。在当前CAN总线监控缓冲区满的情况下,内存中的数据不能写入缓冲区,当前的内存数据将被丢弃。 
步骤205:数据保存至本地内存。微控制器将内存中的数据保存至本地的缓冲区内。 
步骤206:将本地内存数据提交至USB模块。微控制器将缓冲区内的数据提交给与其相连的USB模块。 
步骤207:USB模块上传数据。USB模块中的HID设备自动将其内的数据上传至PC端。 
步骤208:完成一次HID数据传输。 
参阅图3所示,本发明实施中上位机在打开HID设备的处理流程详述如下: 
步骤301:遍历检测HID设备。上位机的监控程序启动后遍历检测电脑上所有的HID设备。 
步骤302:判断是否检测到ID符合的设备。在检测到符合USB厂商编号和设备编号的设备后,跳转至步骤303,若未检测到符合的设备,则跳转到步骤304。 
步骤303:打开此HID设备。上位机的监控程序尝试打开此HID设备。 
步骤304:显示设备连接状态。显示HID设备的打开状态。 
参阅图4所示,本发明实施中上位机通过HID设备类进行数据通信的流程详述如下: 
步骤401:检测下位机是否有数据。若有需要上传的数据,则跳转到步骤402,否则返回。 
步骤402:向下位机请求读取数据。向下位机发起读请求,取得下位机内部保存的数据。 
步骤403:处理读取的数据。在获取下位机的数据后,提取CAN总线上监控的报文和错误帧。 
步骤404:显示监控信息。在上位机的监控界面上,显示监控到的信息。 
步骤405:完成一次数据显示。 

Claims (5)

1.基于USB-HID协议的CAN总线监控系统,它包括微控制器,至少两个CAN控制器,一个USB模块,其特征在于,微控制器与至少两个CAN控制器连接,CAN控制器在与其连接的CAN总线上监听到CAN报文或是错误帧后,微控制器将监听的数据读入本地内存,并将此内存中的数据发送到USB模块,USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互,从而实现CAN总线的监控,包括监听数据的保存,信号的显示和报文的收发功能。 
2.根据权利要求1所述的基于USB-HID协议的CAN总线监控系统,其特征在于,系统包括硬件电路,下位机程序和上位机程序。 
3.根据权利要求2所述的基于USB-HID协议的CAN总线监控系统,其特征在于,系统的硬件电路,由微控制器、至少两个CAN控制器、USB模块组成;微控制器与至少两个CAN控制器连接,所属装置在任何一根CAN总线上监听到CAN报文或是错误帧后,将监听的数据读入本地内存,并将此内存中的数据发送到USB模块。 
4.根据权利要求3所述的基于USB HID协议的CAN总线监控系统,其特征在于,系统的USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互。 
5.根据权利要求2所述的基于USB-HID协议的CAN总线监控系统,其特征在于,下位机程序在硬件的USB模块中以HID设备类的方式进行设备枚举,枚举成功后设备即可被PC机识别并自动在Windows端由HID设备驱动接管通信;上位机程序通过打开相应的HID设备即可访问下位机,同时此系统使得在任何安装有Windows并带有USB接口的电脑上均可使用此设备,而不需要对此设计任何驱动程序。 
CN201310355104XA 2013-08-15 2013-08-15 基于usb-hid协议的can总线监控方法 Pending CN103440218A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310355104XA CN103440218A (zh) 2013-08-15 2013-08-15 基于usb-hid协议的can总线监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310355104XA CN103440218A (zh) 2013-08-15 2013-08-15 基于usb-hid协议的can总线监控方法

Publications (1)

Publication Number Publication Date
CN103440218A true CN103440218A (zh) 2013-12-11

Family

ID=49693909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310355104XA Pending CN103440218A (zh) 2013-08-15 2013-08-15 基于usb-hid协议的can总线监控方法

Country Status (1)

Country Link
CN (1) CN103440218A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104267331A (zh) * 2014-09-16 2015-01-07 四川和芯微电子股份有限公司 Usb芯片的测试方法
CN110096002A (zh) * 2018-01-30 2019-08-06 上海融聂电子科技有限公司 一种基于canfd总线的自动化测试系统及测试方法
CN111462353A (zh) * 2020-03-30 2020-07-28 北京经纬恒润科技有限公司 一种基于网关的记录整车信息的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2638142Y (zh) * 2003-08-29 2004-09-01 清华大学 基于usb接口的便携式can总线分析记录仪
CN101276488A (zh) * 2008-03-26 2008-10-01 中国科学院电工研究所 一种可实现智能can总线通信的车载记录仪
CN202929617U (zh) * 2012-11-30 2013-05-08 苏州坤宏电子有限公司 一种通过usb实现hid即插即用的通用串行接口装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2638142Y (zh) * 2003-08-29 2004-09-01 清华大学 基于usb接口的便携式can总线分析记录仪
CN101276488A (zh) * 2008-03-26 2008-10-01 中国科学院电工研究所 一种可实现智能can总线通信的车载记录仪
CN202929617U (zh) * 2012-11-30 2013-05-08 苏州坤宏电子有限公司 一种通过usb实现hid即插即用的通用串行接口装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104267331A (zh) * 2014-09-16 2015-01-07 四川和芯微电子股份有限公司 Usb芯片的测试方法
CN110096002A (zh) * 2018-01-30 2019-08-06 上海融聂电子科技有限公司 一种基于canfd总线的自动化测试系统及测试方法
CN111462353A (zh) * 2020-03-30 2020-07-28 北京经纬恒润科技有限公司 一种基于网关的记录整车信息的方法及系统

Similar Documents

Publication Publication Date Title
US20200366135A1 (en) Near field communication and wireless power
CN100366029C (zh) 通信控制器、主机端控制器、通信设备、通信系统和方法
KR101725536B1 (ko) Pcie 프로토콜 스택을 이용하는 저전력 phy의 동작을 위한 디바이스, 방법 및 시스템
JP4886601B2 (ja) Usbインタフェース設備に対して操作を行う装置及び方法
CN107301138B (zh) 一种串行总线桥接方法及串行总线系统
CN102576339A (zh) 多协议存储设备桥
CN108111382B (zh) 基于i3c总线的通信装置及其通信方法
CN104350481A (zh) 设备断开检测
CN101788972A (zh) 一种数据传输的系统与方法
CN104021102A (zh) 基于状态机和片内总线的cpci串口板及其工作方法
US9552279B2 (en) Data bus network interface module and method therefor
CN105183575A (zh) 处理器故障的诊断方法、装置及系统
CN105068955A (zh) 一种局部总线结构及数据交互方法
CN103092648B (zh) 一种镜像升级方法、系统及用户设备和个人计算机
CN104112413A (zh) Led显示屏坏点点检系统
CN103440218A (zh) 基于usb-hid协议的can总线监控方法
CN103019905A (zh) 一种基板管理控制器及其数据处理方法
CN104484260B (zh) 一种基于GJB289总线接口SoC的仿真监控电路
CN104780123A (zh) 一种网络包收发处理装置及其设计方法
CN116137603B (zh) 链路故障的检测方法和装置、存储介质及电子装置
CN103425123A (zh) 一种基于软件脚本的can总线自动化测试方法
CN103888375A (zh) 基于arinc 429的通信方法、装置及扩展接口
CN203754167U (zh) 一种电梯调试维修手持终端
CN103441912A (zh) 基于USB-HID协议的FlexRay总线监控方法
WO2014027223A1 (en) Data bus network interface module and method therefor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131211