一种基于can总线的多路can仿真系统的制作方法
【专利摘要】本发明涉及一种基于CAN总线的多路CAN仿真系统,它由微控制器,五个CAN控制器和USB模块组成,微控制器与五个CAN控制器相连,每个CAN控制器分别通过CAN收发器连接至CAN总线,每个CAN收发器可以通过插拔方式替换为高速CAN、低速CAN和单线CAN,微控制器通过USB总线与PC机进行数据传输从而实现基于PC的CAN报文收发,在PC机上运行仿真内核,仿真内核可以同时虚拟多条CAN总线,用户可以为每条虚拟CAN总线上的仿真CAN节点编写代码,从而使得每个虚拟的CAN节点都能和与其相连接的真实的CAN总线上的节点进行通信。
【专利说明】—种基于CAN总线的多路CAN仿真系统
【技术领域】
[0001]本发明涉及一种电子设备,特别涉及一种基于CAN总线的仿真系统。
【背景技术】
[0002]CAN总线作为各个微控制器之间的通信接口,在汽车和工业中有着广泛的应用;在CAN总线的开发过程中,为了验证某个节点的功能,通常需要将总线上与此节点交互的其他没有的节点通过计算机虚拟出来,并与真实的网络一起通信,从而对充分验证被测节点的各项性能,和整个网络的性能。
[0003]通常的做法是使用USB转CAN的接口卡,将CAN总线与计算机连接起来,在上位机上,通过USB接口,控制下位机发送和接收报文,以对总线上的节点进行仿真。这样的仿真系统存在的问题是:1、一般一个系统只支持一根CAN总线,对网关和多路CAN总线支持不好;2、由于收发器固定,不能同时支持高速CAN、低速CAN和单线CAN。
【发明内容】
[0004]本发明的目的,就是为了克服CAN总线仿真过程中的多路CAN总线支持问题以及扩展性问题,使用了支持五路CAN的硬件,同时每个CAN接口的收发器可以通过插拔替换的方法支持:高速CAN、低速CAN和单线CAN。
[0005]本发明提供的具体技术方案如下:
[0006]一种基于CAN总线的多路CAN仿真系统,使用微控制器与五个CAN控制器连接,每个CAN控制器分别连接至CAN总线上,每个CAN收发器可以通过插拔方式替换为高速CAN、低速CAN和单线CAN,微控制器通过USB总线与PC机进行数据传输从而实现CAN报文的收发,在PC机上执行仿真,使PC虚拟的每一个仿真CAN节点都有自己的行为。
[0007]一种基于CAN总线的多路CAN仿真系统,包括硬件电路,下位机程序和上位机程序。
[0008]一种基于CAN总线的多路CAN仿真系统,所述的硬件电路由微控制器、五个CAN控制器、USB模块组成;微控制器与五个CAN控制器连接,每个CAN控制器连接一个CAN收发器,每个CAN收发器均连接至一根独立的CAN总线上。
[0009]一种基于CAN总线的多路CAN仿真系统,所述的CAN控制器在总线上监听到CAN报文或是错误帧后,将监听的数据反馈给微控制器,微控制器将其读入本地报文接收缓冲区,并将接收缓冲区内的数据通过USB模块上传至PC机。
[0010]一种基于CAN总线的多路CAN仿真系统,所述的USB模块接收到上位机的命令后,对微控制器进行配置,包括CAN总线参数的配置等等。
[0011]一种基于CAN总线的多路CAN仿真系统,所述的上位机程序仿真网络中的虚拟节点,并通过USB驱动程序将需要发送的报文传给下位机进行发送;同时通过USB驱动程序将下位机接收的报文读取并传递给虚拟节点。
[0012]一种基于CAN总线的多路CAN仿真系统,它的优势在于,1、设计合理,结构清晰,可以虚拟任意个节点,节点与节点是完全独立,互不影响的;2、可以同时支持五个CAN总线进行同时仿真,支持网关功能;3、每路CAN总线都支持高速CAN、低速CAN和单线CAN。
【专利附图】
【附图说明】
[0013]图1为本发明实施方法中上下位机连接的总架构图
[0014]图2为本发明实施方法中硬件电路的执行逻辑
[0015]图3为本发明实施方法中仿真系统执行逻辑
[0016]图1中,微控制器(101),CAN控制器(102),CAN收发器座(103),CAN总线CANH(104),CAN 总线 CANL (105),USB 模块(106),PC 机(109),下位机硬件电路(110),USB 线(111),电源模块(112),通道I发送指示灯(113),通道I接收指示灯(114),通道I错误指示灯(115),通道2发送指示灯(116),通道2接收指示灯(117),通道2错误指示灯(118),高速CAN收发器子板(119 ),低速CAN收发器子板(120 ),单线CAN收发器子板(121)
[0017]图2中,CAN控制器接收缓冲区(201),CAN控制器发送缓冲区(202),本地CAN发送缓冲区(203),本地CAN接收缓冲区(204),测试引擎(205),报文USB发送缓冲区(208),报文USB接收缓冲区(209),计算机CPU (211),CAN总线仿真应用程序(212)
[0018]图3中,USB驱动程序(301),USB接收缓冲区(302),USB发送缓冲区(303),CAN总线仿真程序(304)
【具体实施方式】
[0019]在图1中,下位机硬件电路(110)包含微控制器(101)、USB模块(106)和CAN收发器座(103),下位机硬件电路(110)通过USB线缆(111)连接至PC机(109),同时通过CAN总线CANH (104)和CANL (105)连接至总线上的其他节点(112)。
[0020]微控制器(101)连接至少一个CAN控制器(102),每个CAN控制器的TX引脚与RX引脚分别连接CAN收发器座(103)的TX引脚和RX引脚,CAN收发器的CANH连接至CAN总线CANH (104),CAN收发器的CANL连接至CAN总线的CANL (105)。
[0021]微控制器(101),内部集成CPU和内存,与一个或多个独立的CAN控制器相连;或是内部集成一个或多个CAN控制器;图1显不的是微控制器内部集成一个CAN控制器(102)的情形。
[0022]CAN控制器(102),作为CAN总线的协议转换芯片,负责将CAN总线上的报文和错误帧等信息反馈给微控制器,每一个CAN控制器都有与CAN收发器相连的TX和RX引脚。
[0023]在图2中,下位机硬件电路(110)通过USB线缆(111)连接至PC机(109),PC机(109)包含至少一个中央处理器(211),PC机(109)内部运行自动化服务器应用程序(212)和至少一个自动化客户端应用程序(213)。
[0024]下位机硬件电路(110)通过连接CAN总线CANH (104)和CAN总线CANL (105)与其他节点进行通信。
[0025]下位机硬件电路(110)接收来自CAN总线的报文的流程是,其CAN控制器(102)通过CAN收发器座(103)连接的收发器监听到CAN报文后,将其缓存至内部的CAN接收缓冲区(201),并通知微控制器(101),微控制器(101)通过调用接收函数(204)将收到的报文保存到报文USB接收缓冲区(209),通过USB模块(106)将这些数据上传至PC机(109)。[0026]下位机硬件电路(110)的发送流程是,下位机微控制器(101)从报文USB发送缓冲区(208)中读取来自USB模块(106)的要发送的报文数据,再通过发送函数(203)将需要发送到总线上的报文放入CAN控制器(102)的CAN发送缓冲区内,经由CAN控制器(102)通过CAN收发器座(103)连接的收发器发送到CAN总线的CANH (104)和CANL (105)上。
[0027]在图3中,上位机内部运行的CAN总线仿真程序(304)通过USB驱动程序(301)连接至USB线缆(111),从而与下位机硬件电路(110 )之间建立起USB通信。
[0028]在图3中的仿真流程是,CAN总线仿真程序(304)虚拟五根CAN总线,并在各个虚拟的总线上虚拟出需要仿真的节点,仿真的节点的发送请求都放入USB发送缓冲区(303),并通过USB驱动程序(301)下发到下位机硬件电路(110 )中,通过仿真节点所在的虚拟CAN网络以及仿真节点发送的目标网络,决定发送到下位机的哪一根真实CAN总线上;当USB驱动程序(301)收到了来自下位机监听的CAN报文数据后,将这些数据存入USB接收缓冲区(302)中,CAN总线仿真程序(304)读取这些数据并将其发送给各个的仿真节点。
【权利要求】
1.一种基于CAN总线的多路CAN仿真系统,它由微控制器,多个CAN控制器和USB模块组成,其特征在于,微控制器与多个CAN控制器相连,每个CAN控制器分别通过CAN收发器连接至CAN总线,每个CAN收发器可以通过插拔方式替换为高速CAN、低速CAN和单线CAN,微控制器通过USB总线与PC机进行数据传输从而实现基于PC的CAN报文收发,在PC机上运行仿真内核,仿真内核可以同时虚拟多条CAN总线,用户可以为每条虚拟CAN总线上的仿真CAN节点编写代码,从而使得每个虚拟的CAN节点都能和与其相连接的真实的CAN总线上的节点进行通信。
2.根据权利要求1所述的一种基于CAN总线的多路CAN仿真系统,其特征在于,系统包括硬件电路,下位机程序和上位机程序。
3.根据权利要求2所述的一种基于CAN总线的多路CAN仿真系统,其特征在于,所述的硬件电路由微控制器、多个CAN控制器、USB模块组成;微控制器与多个CAN控制器连接,每个CAN控制器连接一个CAN收发器,每个CAN收发器均连接至一根独立的CAN总线上。
4.根据权利要求3所述的一种基于CAN总线的多路CAN仿真系统,其特征在于,所述的CAN控制器在总线上监听到CAN报文或是错误帧后,将监听的数据反馈给微控制器,微控制器将其读入本地报文接收缓冲区,并将接收缓冲区内的数据通过USB模块上传至PC机。
5.根据权利要求4所述的一种基于CAN总线的多路CAN仿真系统,其特征在于,所述的USB模块接收到上位机的命令后,对微控制器进行配置,包括CAN总线参数的配置等等。
6.根据权利要求2所述的一种基于CAN总线的多路CAN仿真系统,所述的上位机程序仿真网络中的虚拟节点,并通过USB驱动程序将需要发送的报文传给下位机进行发送;同时通过USB驱动程序将下位机接收的报文读取并传递给虚拟节点。
7.根据权利要求6所述的一种基于CAN总线的多路CAN仿真系统,其特征在于,所述的每一个仿真CAN节点都有相关的代码编写接口,通过编译得到可执行代码,并经由仿真引擎调用执行。
8.根据权利要求7所述的一种基于CAN总线的多路CAN仿真系统,其特征在于,所述的每一个仿真CAN节点都可以接收到通过USB接口上传的总线报文,通过每个节点相应的可执行代码的逻辑以决定仿真CAN节点对于总线上的CAN事件的反应,需要仿真节点发送的报文将通过仿真内核传输给USB接口并下发到下位机硬件电路,并经由下位机的CAN模块发到总线上。
【文档编号】H04L12/40GK103428050SQ201310355117
【公开日】2013年12月4日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】刘矗, 莫莽, 吴宝红 申请人:上海固泰科技有限公司