一种多通道CAN通信总线端口扩展方法及系统转让专利

申请号 : CN201711212701.1

文献号 : CN108089491B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈卡李顺章徐金刘晓伟

申请人 : 武汉合康智能电气有限公司

摘要 :

本发明公开了一种多通道CAN通信总线端口扩展系统,包括如下单元:主MCU、多个辅助MCU;所述主MCU通过其串口与多个辅助MCU的串口相连;所述辅助MCU通过一个串口转为两个硬件上独立的CAN接口。实施本发明提供的多通道CAN通信总线端口扩展方法及系统与现有技术相比具有以下有益效果:通过设置辅助MCU芯片,并且设计的四个辅助MCU的软件程序是相同的,这样可以节省大量的研发测试时间。相比较采用其他的方法(如SPI接口转CAN);同时扩展出八路CAN接口,该方法简单,易开发,成本低,并且方便扩展出多达十四个扩展的CAN接口。

权利要求 :

1.一种多通道CAN通信总线端口扩展系统,其特征在于,包括如下单元:

主MCU、多个辅助MCU;

所述主MCU通过其串口与多个辅助MCU的串口相连;

所述辅助MCU通过一个串口转为两个硬件上独立的CAN接口;

其中,主MCU上电初始化其多个串口的硬件后,设置串口的通信波特率;主MCU判断是否有数据需要发送给扩展的辅助MCU的CAN接口,如果有,则根据需要发送的目标CAN接口编号来判断需要把数据发送给某个辅助MCU的串口,主MCU把需要发送的数据和CAN接口编号打包一起发送给辅助MCU;同时判断是否有接收到辅助MCU的串口数据,若果有,则处理该数据;

每个辅助MCU上电初始化串口的硬件后,设置串口的通信波特率;辅助MCU的串口接收到主MCU数据时,根据主MCU数据中的CAN接口编号将数据发送给对应的CAN接口;辅助MCU的CAN接口接收到数据时,将该数据和对应的CAN接口编号打包在一起作为辅助MCU的数据通过串口发送给主MCU;

辅助MCU的两个CAN口接收到数据后,转存到串口的发送队列中,按先进先出的方式发送给主MCU,以此防止辅助MCU的两个CAN接口同时接收到数据后需要同时通过同一个串口发送给主MCU的数据冲突问题。

2.如权利要求1所述的多通道CAN通信总线端口扩展系统,其特征在于,

所述辅助MCU为四个,所述主MCU的四个串口分别连接到四个辅助MCU的串口上。

3.如权利要求1所述的多通道CAN通信总线端口扩展系统,其特征在于,

所述主MCU以及辅助MCU的串口的通信波特率分别为115200bps。

4.一种多通道CAN通信总线端口扩展方法,其特征在于,通过如权利要求1-3任一项所述的多通道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的数据冲突问题。

5.如权利要求4所述的多通道CAN通信总线端口扩展方法,其特征在于,其还包括:S5:依据CAN2.0B规范中规定:标准帧使用11位标识符的CAN数据帧,扩展帧使用29位标识符的CAN数据帧,以及SAEJ1939-21:2006标准规定的每个CAN数据帧包含一个单一的协议数据单元PDU,而PDU的数据域包括八个字节。

说明书 :

一种多通道CAN通信总线端口扩展方法及系统

技术领域

[0001] 本发明涉及汽车电气技术领域,特别涉及一种多通道CAN通信总线端口扩展方法及系统。

背景技术

[0002] 随着电动汽车技术的发展,电动汽车普及的很快,需要建设很多大功率的超级充电站。超级充电站内需要配置大功率的充电模块柜,以及多个充电终端。每个充电终端通过电力输出电缆和CAN通信总线与充电模块柜相连。这样不同型号的电动汽车同时使用多个充电终端进行充电时,充电模块柜可以根据每个车不同的功率需求来分配功率。在实际的应用中,一个充电模块柜需要与多达十个充电终端相连,这样模块柜内的充电模块就需要分成十组,模块柜的控制器需要十路CAN接口来分别连接十组充电充电模块;另外模块柜控制器换需要两个CAN接口来连接十个充电终端(每五个充电终端连接到模块柜的同一个CAN接口上)。这样模块柜的主微控制器(Microcontroller Unit,以下简称MCU)需要多达十二路CAN通信端口,目前市场中没有含有十二路CAN接口的MCU芯片。本例中使用的MCU芯片MC9S12XEQ512也只有四路CAN总线接口,任然满足不了需求,需要另外扩展八路CAN通信端口。
[0003] 而在选着扩展CAN的方法时,不仅要考虑价格成本,运行速度,可靠性,还要考虑开发的难度和集成度。本发明提供一种简单实用,易扩展的方法来实现多路CAN接口的需求,采用辅助MCU实现串口转CAN接口从而达到扩展CAN接口的目的。而辅助MCU采用国产的低成本的MCU芯片,型号为GD32F105R8T6,该芯片含有两路CAN接口,这样一个辅助MCU可以扩张出两路CAN接口。

发明内容

[0004] 有鉴于此,本发明提出一种简单实用,易扩展的方法来实现多路CAN接口的需求,采用辅助MCU实现串口转CAN接口从而达到扩展CAN接口的目的的多通道CAN通信总线端口扩展方法及系统。
[0005] 一种多通道CAN通信总线端口扩展系统,包括如下单元:
[0006] 主MCU、多个辅助MCU;
[0007] 所述主MCU通过其串口与多个辅助MCU的串口相连;
[0008] 所述辅助MCU通过一个串口转为两个硬件上独立的CAN接口。
[0009] 在本发明所述的多通道CAN通信总线端口扩展系统中,
[0010] 所述辅助MCU为四个,所述主MCU的四个串口分别连接到四个辅助MCU的串口上。
[0011] 在本发明所述的多通道CAN通信总线端口扩展系统中,
[0012] 所述主MCU以及辅助MCU的串口的通信波特率分别为115200bps。
[0013] 本发明还提供一种多通道CAN通信总线端口扩展方法中,通过如上述任一项所述的多通道CAN通信总线端口扩展系统实现,包括如下步骤:
[0014] S1:将主MCU的各个串口分别连接到各个辅助MCU的串口上,每个辅助MCU通过一个串口转为两个硬件上独立的CAN接口,以扩展出多路CAN接口;
[0015] S2、主MCU上电初始化其多个串口的硬件后,设置串口的通信波特率;主MCU判断是否有数据需要发送给扩展的辅助MCU的CAN接口,如果有,则根据需要发送的目标CAN接口编号来判断需要把数据发送给某个辅助MCU的串口,主MCU把需要发送的数据和CAN接口编号打包一起发送给辅助MCU;同时判断是否有接收到辅助MCU的串口数据,若果有,则处理该数据;
[0016] S3、每个辅助MCU上电初始化串口的硬件后,设置串口的通信波特率;辅助MCU的串口接收到主MCU数据时,根据主MCU数据中的CAN接口编号将数据发送给对应的CAN接口;辅助MCU的CAN接口接收到数据时,将该数据和对应的CAN接口编号打包在一起作为辅助MCU的数据通过串口发送给主MCU;
[0017] S4、辅助MCU的两个CAN口接收到数据后,转存到串口的发送队列中,按先进先出的方式发送给主MCU,以此防止辅助MCU的两个CAN接口同时接收到数据后需要同时通过同一个串口发送给主MCU的数据冲突问题。
[0018] 在本发明所述的多通道CAN通信总线端口扩展方法中,其还包括:
[0019] S5:依据CAN2.0B规范中规定:标准帧使用11位标识符的CAN数据帧,扩展帧使用29位标识符的CAN数据帧,以及SAEJ1939-21:2006标准规定的每个CAN数据帧包含一个单一的协议数据单元PDU,而PDU的数据域包括八个字节。
[0020] 实施本发明提供的多通道CAN通信总线端口扩展方法及系统与现有技术相比具有以下有益效果:通过设置辅助MCU芯片,并且设计的四个辅助MCU的软件程序是相同的,这样可以节省大量的研发测试时间。相比较采用其他的方法(如SPI接口转CAN);同时扩展出八路CAN接口,改方法简单,易开发,成本低,并且方便扩展出多达十四个扩展的CAN接口。

附图说明

[0021] 图1是本发明实施例的多通道CAN通信总线端口扩展系统结构框图。
[0022] 图2是主MCU工作流程图。
[0023] 图3是辅助MCU工作流程图。

具体实施方式

[0024] 如图1所示,本发明采用多个辅助MCU来实现串口转CAN的方法实现主MCU的CAN接口扩展,使用一个主MCU和四个辅助MCU来扩展八路CAN接口。
[0025] 如图2、图3所示,本方案实现的CAN接口扩展方法包括以下步骤:
[0026] S1:将主MCU的四个串口分别连接到四个辅助MCU的串口上,每个辅助MCU通过一个串口转为两个硬件上独立的CAN接口,这样就可以一共扩展出八路CAN接口。本发明采用的主MCU芯片MC9S12XEQ512实际有七个串口,最大可以扩展出十四路CAN接口。
[0027] S2:主MCU上电初始化四个串口的硬件后,设置串口的通信波特率为115200bps。主MCU判断是否有数据需要发送给扩展的辅助MCU的CAN接口,如果有,则根据需要发送的目标CAN接口编号来判断需要把数据发送给某个辅助MCU的串口,主MCU把需要发送的数据和CAN接口编号打包在一起发送给辅助MCU;同时判断是否有接收到辅助MCU的串口数据,若果有,则处理该数据。
[0028] S3:每个辅助MCU上电初始化串口的硬件后,设置串口的通信波特率为115200bps。辅助MCU的串口接收到主MCU数据时,根据主MCU数据中的CAN接口编号将数据发送给对应的CAN接口;辅助MCU的CAN接口接收到数据时,将该数据和对应的CAN接口编号打包在一起作为辅助MCU的数据通过串口发送给主MCU。
[0029] S4:辅助MCU的两个CAN口接收到数据后,转存到串口的发送队列中,按先进先出的方式发送给主MCU,以此防止辅助MCU的两个CAN接口同时接收到数据后需要同时通过同一个串口发送给主MCU的数据冲突问题。
[0030] S5:依据CAN2.0B规范中规定:标准帧使用11位标识符的CAN数据帧,扩展帧使用29位标识符的CAN数据帧,以及SAEJ1939-21:2006标准规定的每个CAN数据帧包含一个单一的协议数据单元(PDU),而PDU的数据域有八个字节。定义主MCU和辅助MCU之间的数据通信协议格式如下:
[0031]
[0032]
[0033] 有益效果
[0034] 本发明采用国产的低成本的辅助MCU芯片,型号优选为GD32F105R8T6,并且设计的四个辅助MCU的软件程序是相同的,这样可以节省大量的研发测试时间。相比较采用其他的方法(如SPI接口转CAN)
[0035] 同时扩展出八路CAN接口,改方法简单,易开发,成本低,并且方便扩展出多达十四个扩展的CAN接口。
[0036] 可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。