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

文档序号:8004260阅读:678来源:国知局
基于usb-hid协议的can总线监控方法
【专利摘要】本发明涉及一种CAN总线监控系统,它包括微控制器、至少两个CAN控制器、一个USB模块,其特点是,所述的CAN总线监控系统可以同时与至少两个CAN总线相连,在任何一根CAN总线上监听到CAN报文或是错误帧时,系统能将监听的数据存入本地内存,并将内存中的数据发送至USB模块,USB模块通过USB线连接至PC机,在PC机上采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互,从而实现CAN总线的监控,包括信号的显示和报文的收发等等。
【专利说明】基于USB-HID协议的CAN总线监控方法
【技术领域】
[0001]本发明涉及通信领域,特别涉及一种针对CAN总线与USB总线之间的一个数据传输的系统。
【背景技术】
[0002]CAN总线作为各个微控制器之间的通信接口,在汽车和工业中有着广泛的应用;在应用中一个重要的需求就是通过特定的硬件电路从CAN总线采集各个微控制器之间传递的信号,并传输到PC机,并在其上显示,从而实现对CAN总线通信过程中的监控。
[0003]将从CAN总线采集到的信号传输到PC机,最常见的做法是使用USB总线,并在运行Windows操作系统的PC端,针对特定的设备编写USB设备驱动程序,设备驱动程序负责接收下位机的数据,并将其传输给PC端的应用程序。
[0004]针对特定的设备编写USB设备驱动程序存在以下不足:1、设备驱动程序制作复杂,需要考虑到USB电源管理,枚举,数据通信等一系列问题;2、设备驱动程序调试困难;3、设备驱动程序的微小故障将导致操作系统崩溃;4、低版本的设备驱动程序无法兼容高版本的操作系统,不适合PC机的升级

【发明内容】

[0005]本发明的目的,就是为了克服USB专用的设备驱动程序编制的缺陷,提供一种无需自行编写驱动程序的,基于USB-HID协议的CAN总线监控的解决方案和装置。
[0006]本发明提供的具体技术方案如下:
[0007]基于USB-HID协议的CAN总线监控系统,所述系统使用微控制器与至少两个CAN控制器连接,所属装置在任何一根CAN总线上监听到CAN报文或是错误帧后,将监听的数据读入本地内存,并将此内存中的数据发送到USB模块,USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互,从而实现CAN总线的监控,包括信号的显示和报文的收发
坐坐寸寸ο
[0008]基于USB-HID协议的CAN总线监控系统,包括硬件电路,下位机程序和上位机程序。
[0009]基于USB-HID协议的CAN总线监控系统中设计的硬件电路,由微控制器、至少两个CAN控制器、USB模块组成;微控制器与至少两个CAN控制器连接,所属装置在任何一根CAN总线上监听到CAN报文或是错误帧后,将监听的数据读入本地内存,并将此内存中的数据发送到USB模块。
[0010]基于USB-HID协议的CAN总线监控系统中的USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互。
[0011 ] 本发明实施例中,在硬件的USB模块中以HID设备类的方式进行设备枚举,枚举成功后设备即可被PC机识别并自动在Windows端由HID设备驱动接管通信,只要打开上位机软件即可正常访问下位机,通信效率高,通信质量可靠,从而有效地提高了设备开发效率,同时此系统使得在任何安装有Windows并带有USB接口的电脑上均可使用此设备,而不需要对此设计任何驱动程序。
【专利附图】

【附图说明】
[0012]图1为本发明实施例中CAN总线监控总体架构图
[0013]图2为本发明实施系统中下位机的流程图
[0014]图3为本发明实施系统中上位机检测HID设备流程图
[0015]图4为本发明实施系统中上位机的数据通信流程图
[0016]图1 中,微控制器(101 ),CAN控制器(102),CAN收发器(103),CAN总线 CANH( 104),CAN总线CANL (105),USB模块(106),USB HID驱动程序(107),上位机监控程序(108),PC机(109),下位机硬件电路(110),USB线(111)
【具体实施方式】
[0017]在图1中,微控制器(101)连接至少两个CAN控制器(102),每个CAN控制器的TX引脚与RX引脚分别连接CAN收发器(103)的TX引脚和RX引脚,CAN收发器的CANH连接至CAN总线CANH (104),CAN收发器的CANL连接至CAN总线的CANL (105)。
[0018]在图1中,PC机(109)内部包括Windows自带的HID设备驱动程序(107),监控程序(108)通过HID驱动程序连接至USB线(111),并连接至下位机硬件(110)的USB模块(106)。
[0019]微控制器(101),内部集成CPU和内存,与一个或多个独立的CAN控制器相连;或是内部集成一个或多个CAN控制器;图1显示的是微控制器内部集成两个CAN控制器(102 )的情形。
[0020]CAN控制器(102),作为CAN总线的协议转换芯片,负责将CAN总线上的报文和错误帧等信息反馈给微控制器,每一个CAN控制器都有与CAN收发器相连的TX和RX引脚。
[0021]下面结合附图2-4对本发明的控制流程进行详细说明。
[0022]参阅图2所示,本发明实施中下位机监控详细流程如下:
[0023]步骤201:CAN控制器报文接收中断和错误中断。CAN控制器在监控到总线上的报文或是错误帧后,以中断形式通知微控制器,微控制器同时会进入中断处理程序。
[0024]步骤202:读取相应的CAN控制器的监控数据。微控制器在中断服务程序中读取相应的CAN控制器所获取的监控数据至内存。
[0025]步骤203:判断本地缓冲区是否已满。微控制器判断当前的CAN总线监控缓冲区是否已被填满,若被填满则转到步骤204,若没有填满则转到步骤205。
[0026]步骤204:错误处理。在当前CAN总线监控缓冲区满的情况下,内存中的数据不能写入缓冲区,当前的内存数据将被丢弃。
[0027]步骤205:数据保存至本地内存。微控制器将内存中的数据保存至本地的缓冲区内。
[0028]步骤206:将本地内存数据提交至USB模块。微控制器将缓冲区内的数据提交给与其相连的USB模块。
[0029]步骤207 =USB模块上传数据。USB模块中的HID设备自动将其内的数据上传至PC端。
[0030]步骤208:完成一次HID数据传输。
[0031]参阅图3所示,本发明实施中上位机在打开HID设备的处理流程详述如下:
[0032]步骤301:遍历检测HID设备。上位机的监控程序启动后遍历检测电脑上所有的HID设备。
[0033]步骤302:判断是否检测到ID符合的设备。在检测到符合USB厂商编号和设备编号的设备后,跳转至步骤303,若未检测到符合的设备,则跳转到步骤304。
[0034]步骤303:打开此HID设备。上位机的监控程序尝试打开此HID设备。
[0035]步骤304:显示设备连接状态。显示HID设备的打开状态。
[0036]参阅图4所示,本发明实施中上位机通过HID设备类进行数据通信的流程详述如下:
[0037]步骤401:检测下位机是否有数据。若有需要上传的数据,则跳转到步骤402,否则返回。
[0038]步骤402:向下位机请求读取数据。向下位机发起读请求,取得下位机内部保存的数据。
[0039]步骤403:处理读取的数据。在获取下位机的数据后,提取CAN总线上监控的报文和错误帧。
[0040]步骤404:显示监控信息。在上位机的监控界面上,显示监控到的信息。
[0041]步骤405:完成一次数据显示。
[0042]
【权利要求】
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所述的基于USBHID协议的CAN总线监控系统,其特征在于,系统的USB模块通过USB线连接至PC机,在PC机采用HID设备类的方式打开USB设备,并通过应用程序调用HID设备类相关的读写API函数与下位机进行数据交互。
5.根据权利要求2所述的基于USB-HID协议的CAN总线监控系统,其特征在于,下位机程序在硬件的USB模块中以HID设备类的方式进行设备枚举,枚举成功后设备即可被PC机识别并自动在Windows端由HID设备驱动接管通信;上位机程序通过打开相应的HID设备即可访问下位机,同时此系统使得在任何安装有Windows并带有USB接口的电脑上均可使用此设备,而不需要对此设计任何驱动程序。
【文档编号】H04L12/40GK103440218SQ201310355104
【公开日】2013年12月11日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】刘矗, 莫莽, 吴宝红 申请人:上海固泰科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1