本发明涉及汽车电气技术领域,特别涉及一种多通道can通信总线端口扩展方法及系统。
背景技术:
随着电动汽车技术的发展,电动汽车普及的很快,需要建设很多大功率的超级充电站。超级充电站内需要配置大功率的充电模块柜,以及多个充电终端。每个充电终端通过电力输出电缆和can通信总线与充电模块柜相连。这样不同型号的电动汽车同时使用多个充电终端进行充电时,充电模块柜可以根据每个车不同的功率需求来分配功率。在实际的应用中,一个充电模块柜需要与多达十个充电终端相连,这样模块柜内的充电模块就需要分成十组,模块柜的控制器需要十路can接口来分别连接十组充电充电模块;另外模块柜控制器换需要两个can接口来连接十个充电终端(每五个充电终端连接到模块柜的同一个can接口上)。这样模块柜的主微控制器(microcontrollerunit,以下简称mcu)需要多达十二路can通信端口,目前市场中没有含有十二路can接口的mcu芯片。本例中使用的mcu芯片mc9s12xeq512也只有四路can总线接口,任然满足不了需求,需要另外扩展八路can通信端口。
而在选着扩展can的方法时,不仅要考虑价格成本,运行速度,可靠性,还要考虑开发的难度和集成度。本发明提供一种简单实用,易扩展的方法来实现多路can接口的需求,采用辅助mcu实现串口转can接口从而达到扩展can接口的目的。而辅助mcu采用国产的低成本的mcu芯片,型号为gd32f105r8t6,该芯片含有两路can接口,这样一个辅助mcu可以扩张出两路can接口。
技术实现要素:
有鉴于此,本发明提出一种简单实用,易扩展的方法来实现多路can接口的需求,采用辅助mcu实现串口转can接口从而达到扩展can接口的目的的多通道can通信总线端口扩展方法及系统。
一种多通道can通信总线端口扩展系统,包括如下单元:
主mcu、多个辅助mcu;
所述主mcu通过其串口与多个辅助mcu的串口相连;
所述辅助mcu通过一个串口转为两个硬件上独立的can接口。
在本发明所述的多通道can通信总线端口扩展系统中,
所述辅助mcu为四个,所述主mcu的四个串口分别连接到四个辅助mcu的串口上。
在本发明所述的多通道can通信总线端口扩展系统中,
所述主mcu以及辅助mcu的串口的通信波特率分别为115200bps。
本发明还提供一种多通道can通信总线端口扩展方法中,通过如上述任一项所述的多通道can通信总线端口扩展系统实现,包括如下步骤:
s1:将主mcu的各个串口分别连接到各个辅助mcu的串口上,每个辅助mcu通过一个串口转为两个硬件上独立的can接口,以扩展出多路can接口;
s2、主mcu上电初始化其多个串口的硬件后,设置串口的通信波特率;主mcu判断是否有数据需要发送给扩展的辅助mcu的can接口,如果有,则根据需要发送的目标can接口编号来判断需要把数据发送给某个辅助mcu的串口,主mcu把需要发送的数据和can接口编号打包一起发送给辅助mcu;同时判断是否有接收到辅助mcu的串口数据,若果有,则处理该数据;
s3、每个辅助mcu上电初始化串口的硬件后,设置串口的通信波特率;辅助mcu的串口接收到主mcu数据时,根据主mcu数据中的can接口编号将数据发送给对应的can接口;辅助mcu的can接口接收到数据时,将该数据和对应的can接口编号打包在一起作为辅助mcu的数据通过串口发送给主mcu;
s4、辅助mcu的两个can口接收到数据后,转存到串口的发送队列中,按先进先出的方式发送给主mcu,以此防止辅助mcu的两个can接口同时接收到数据后需要同时通过同一个串口发送给主mcu的数据冲突问题。
在本发明所述的多通道can通信总线端口扩展方法中,其还包括:
s5:依据can2.0b规范中规定:标准帧使用11位标识符的can数据帧,扩展帧使用29位标识符的can数据帧,以及saej1939-21:2006标准规定的每个can数据帧包含一个单一的协议数据单元pdu,而pdu的数据域包括八个字节。
实施本发明提供的多通道can通信总线端口扩展方法及系统与现有技术相比具有以下有益效果:通过设置辅助mcu芯片,并且设计的四个辅助mcu的软件程序是相同的,这样可以节省大量的研发测试时间。相比较采用其他的方法(如spi接口转can);同时扩展出八路can接口,改方法简单,易开发,成本低,并且方便扩展出多达十四个扩展的can接口。
附图说明
图1是本发明实施例的多通道can通信总线端口扩展系统结构框图。
图2是主mcu工作流程图。
图3是辅助mcu工作流程图。
具体实施方式
如图1所示,本发明采用多个辅助mcu来实现串口转can的方法实现主mcu的can接口扩展,使用一个主mcu和四个辅助mcu来扩展八路can接口。
如图2、图3所示,本方案实现的can接口扩展方法包括以下步骤:
s1:将主mcu的四个串口分别连接到四个辅助mcu的串口上,每个辅助mcu通过一个串口转为两个硬件上独立的can接口,这样就可以一共扩展出八路can接口。本发明采用的主mcu芯片mc9s12xeq512实际有七个串口,最大可以扩展出十四路can接口。
s2:主mcu上电初始化四个串口的硬件后,设置串口的通信波特率为115200bps。主mcu判断是否有数据需要发送给扩展的辅助mcu的can接口,如果有,则根据需要发送的目标can接口编号来判断需要把数据发送给某个辅助mcu的串口,主mcu把需要发送的数据和can接口编号打包在一起发送给辅助mcu;同时判断是否有接收到辅助mcu的串口数据,若果有,则处理该数据。
s3:每个辅助mcu上电初始化串口的硬件后,设置串口的通信波特率为115200bps。辅助mcu的串口接收到主mcu数据时,根据主mcu数据中的can接口编号将数据发送给对应的can接口;辅助mcu的can接口接收到数据时,将该数据和对应的can接口编号打包在一起作为辅助mcu的数据通过串口发送给主mcu。
s4:辅助mcu的两个can口接收到数据后,转存到串口的发送队列中,按先进先出的方式发送给主mcu,以此防止辅助mcu的两个can接口同时接收到数据后需要同时通过同一个串口发送给主mcu的数据冲突问题。
s5:依据can2.0b规范中规定:标准帧使用11位标识符的can数据帧,扩展帧使用29位标识符的can数据帧,以及saej1939-21:2006标准规定的每个can数据帧包含一个单一的协议数据单元(pdu),而pdu的数据域有八个字节。定义主mcu和辅助mcu之间的数据通信协议格式如下:
有益效果
本发明采用国产的低成本的辅助mcu芯片,型号优选为gd32f105r8t6,并且设计的四个辅助mcu的软件程序是相同的,这样可以节省大量的研发测试时间。相比较采用其他的方法(如spi接口转can)
同时扩展出八路can接口,改方法简单,易开发,成本低,并且方便扩展出多达十四个扩展的can接口。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。